第1步:Pssst,公民科学和“官方科学”有什么区别?
最大的区别在于,正如我所说,公民科学是“手波浪”,这意味着存在许多错误和不确定性,并且没有严格的过程来识别它们。因此,通过公民科学得出的结论远不如科学科学那么准确,不应该依赖于做出严重/改变生命/危及生命的主张或决定。*
话虽如此,公民科学是建立对各种迷人科学现象的基本理解的好方法,对于大多数日常应用来说已经足够好了。
*如果您正在进行公民科学研究并发现有潜在危险的事物(例如水中铅含量过高),请通知您的教育工作者(如果适用)并联系相关机构和专业人士寻求帮助。
第2步:什么是Arduino ??
Arduino是一个微控制器板和集成开发环境(“IDE”),这是一种说“编码程序”的奇特方式。对于初学者,我强烈推荐 Arduino Uno 主板,因为它们非常强大,可靠且功能强大。
Arduino板是公民科学项目的不错选择,因为它们有很多输入引脚可以读取interwetten与威廉的赔率体系 和数字传感器(我们稍后会详细介绍)。
当然,您可以根据您(或学生)的需求,能力和舒适程度,将其他微控制器用于公民科学。以下是微控制器的概述,以帮助您决定什么是最适合您的!
1。在工具 - 》板下选择您正在使用的Arduino类型。 (照片2)
2。选择端口(也就是连接到计算机的位置)。 (照片3)
3。单击“上载”按钮,检查它是否完成上载。 (照片4)
第3步:工具和材料
如果您刚入门,获取套件是一种快速简便的方法一次得到一堆零件。我在本教程中使用的工具包是 Elegoo Arduino入门套件。*
工具
Arduino Uno
USB A到B电缆(又名打印机电缆)
跳线
3 male- to-male
3男性对女性
面包板
可选但建议让您的生活更轻松,更有趣:)
材料
对于本教程中涉及的项目,您需要以下部分来自Elegoo Arduino入门套件:
倾斜开关
DTH11温度和湿度传感器
100欧姆电阻
*完全披露:我购买了相同的套件研讨会,但本教程中使用的工具包是由Elegoo的可爱人员捐赠的。
第4步:我们可以使用哪种传感器?
设计科学前我们通常会提出一个问题:植物每天吸收多少二氧化碳?跳跃的冲击力是多少?什么是意识?
根据我们的问题,我们可以确定我们想要测量的内容并进行一些研究以找出我们可以用来收集数据的传感器(虽然最后收集数据有点棘手)问题!)。
使用电子设备时,有两种主要类型的传感器数据信号:数字和模拟。 在照片中,前两行的部分都是数字传感器,而前两行是模拟的。
有许多不同类型的数字传感器,有些更难以工作与其他人相比。在为您的公民科学项目进行研究时,请始终检查传感器如何输出数据(srsly tho)并确保您可以找到该特定传感器的(Arduino)库。
在本教程涉及的三个项目中,我们将使用两种类型的数字传感器和一种模拟传感器。让我们来学习吧!
第5步:数字传感器!第1部分:Easy Ones!
您将使用的大多数传感器输出数字信号,这是一个信号,要么是打开或关闭。*我们使用二进制数来表示这两种状态:On信号由1或True给出,而Off为0或False。如果我们要绘制二进制信号的图像,那就像方波2中的方波一样。
有一些数字传感器,如开关,非常简单直接测量因为按下按钮并且我们得到信号(1),或者没有按下按钮而我们没有信号(0)。第一张照片底行中的传感器都是简单的开/关类型。顶行的传感器有点复杂,在我们的第一个项目之后就会被覆盖。
本教程的前两个项目将教你如何使用这两种类型!继续建立我们的第一个项目!!
* On表示电流和电压形式的电信号。关闭表示无电信号!
步骤6:项目1:倾斜开关数字传感器
对于第一个项目,让我们使用一个倾斜开关,即带有两条腿的黑色圆柱形传感器!
步骤1:将倾斜开关的一条腿插入Arduino数字引脚13,另一脚接入引脚13旁边的GND引脚。方向无关紧要。
步骤2:编写一个草图,读入并打印出Digital Pin 13的状态。
或者你可以使用我的!
如果您刚开始编写代码,请仔细阅读注释,以便更好地了解草图的工作原理,并尝试更改某些内容以了解会发生什么!打破事情是可以的,这是一种很好的学习方式!您可以随时重新下载该文件并重新开始:)
步骤3:要查看您的实时数据,请单击“串行监视器”按钮(照片2)。
。. aaaand就是这样!您现在可以使用倾斜开关来测量方向!将它设置为在敲击东西时叫出你的小猫,或用它来跟踪风暴期间树枝如何移动! 。.在这两个极端之间可能存在其他应用。
第7步:数字传感器!第2部分:PWM和串行通信
有很多方法可以创建更复杂的数字信号!一种方法称为脉冲宽度调制(“PWM”),,这是一种奇特的方式,表示信号在一定时间内开启并关闭一段时间。伺服电机(可用于测量位置)和超声波传感器是使用PWM信号的传感器示例。
还有一些传感器使用串行通信来发送数据一位,或二进制数字,一次。这些传感器需要熟悉读取数据表,如果您刚开始使用它们会非常棘手。幸运的是,常见的串行传感器将具有代码库*和示例程序,因此您仍然可以拼凑一些功能性的东西。有关串行通信协议的更多细节超出了本教程的范围,但是这里有一个很好的资源来自SparkFun的串行通信以了解更多信息!
对于这个示例项目,让我们使用温度和湿度传感器(DHT11)!这是一个带有孔和3个针脚的蓝色正方形。
首先,我们需要为DHT11传感器提供一些特殊的库: DHT11库和Adafruit统一传感器库。
安装这些库(以及大多数其他Arduino库):
步骤1:打开Arduino库管理器,转到草图 - 》库 - 》管理库(照片2)
步骤2:安装并激活DHT库,搜索“DHT”,然后单击“安装”以获取“DHT Arduino Library”(照片3)
步骤3:安装并激活Adafruit统一传感器库,方法是搜索“Adafruit Unified Sensor”并单击“安装”。
步骤4:插入DHT库Libraries,然后单击“DHT Arduino Library。”(照片4)这将在草图顶部插入几行新行,这意味着我们的库现在处于活动状态随时可以使用!(照片5)
*就像你喜欢的一样ocal库,代码库是丰富的知识和其他人的辛勤工作,我们可以用来使我们的生活更轻松,yay!
第8步:项目2:温度和湿度数字串行传感器
抓住3个男性到来自Elegoo Arduino入门套件的女性跳线我们已经准备好了!
第1步:当标题针朝向你时,连接最右边的标题将DHT11引脚连接到Arduino接地(“GND”)引脚。
步骤2:将中间接头引脚连接到Arduino 5V 输出引脚。
步骤3:将最左边的标头引脚连接到Arduino数字引脚2。
第4步:最后,阅读DHT库并试着写一个草图! Oooor你可以在Arduino中使用我的或DHT测试示例草图 - 》示例!
当你启动并运行时,出去测量所有东西的温度和湿度! 。.就像动物的呼吸,温室或一年中不同时间你最喜欢的攀岩点,找到*完美的*发送温度。
步骤9:模拟传感器!
在难以深入数字传感器后,模拟传感器看起来轻而易举!模拟信号是连续信号,如第2张照片所示。大多数物理世界存在于模拟(例如温度,年龄,压力等),但由于计算机是数字*,大多数传感器将输出数字信号。一些微控制器,如Arduino板,也可以读取模拟信号**。
对于大多数模拟传感器,我们给出传感器功率,然后使用模拟输入引脚读取模拟信号。对于此测试,我们将使用更简单的设置来测量LED上的电压时LED上的电压。
*计算机使用数字信号存储和传输信息。这是因为数字信号更易于检测且更可靠,因为我们必须担心的是信号与否,而不必担心信号的质量/准确性。
**要在数字设备上读取模拟信号,我们必须使用模数转换器或ADC转换器,它通过将输入与已知输入进行比较来近似模拟信号设备上的电压,然后计算达到输入电压所需的时间。有关详细信息,这是一个有用的网站。
步骤10:项目3:LED作为光传感器!
抓住LED(白色以外的任何颜色),100欧姆电阻和2根跨接电缆。哦,还有面包板!
步骤1:将LED插入面包板,右侧有较长的腿。
步骤2 :连接Arduino模拟引脚A0的跳线和较长的LED支脚。
步骤3:在较短的LED支脚和面包板负电源导轨之间连接电阻(蓝线旁边)。
步骤4:将Arduino GND引脚连接到面包板上的负电源轨。
步骤5:编写一个读入的草图模拟引脚A0并打印到串行监视器!
以下是启动ya的示例代码。
步骤11:可视化数据:Arduino IDE!
Arduino IDE附带内置工具来可视化数据。我们已经探索了串行监视器的基础知识,它允许我们打印传感器值。 如果您想保存和分析数据,直接从串行监视器复制输出并粘贴到文本编辑器,电子表格或其他数据分析工具中。
我们可以用来查看Arduino程序中的数据的第二个工具是串行绘图仪,串行监视器的可视版本(又称图形)。 要使用Serial Llotter,请转到Tools - 》 Serial Plotter。 照片2中的图表是项目3中LED作为光传感器的输出!*
该图将自动缩放并作为只要您对传感器使用Serial.println(),它也会以不同颜色打印所有传感器。万岁!就是这样!
*如果你看一下,有一个非常有趣的波浪模式,可能是由于我们的头灯中的交流电(“AC”)!
第12步:可视化数据:Excel!第1部分
对于更严肃的数据分析,有一个超酷(并且免费!)Excel的加载项称为 Data Streamer *,。
这个加载项从串口读取,所以我们可以使用完全相同的编码威廉希尔官方网站 将数据打印到串口,直接将数据输入Excel 。.哎呀!
如何使用Data Streamer加载项:
1。 一旦安装完毕(或者如果你有O365),点击Excel中的Data Streamer标签(最右边)。
2。 插入Arduino并点击“连接设备”,,然后从下拉菜单中选择Arduino。(照片1)
第3。单击“开始数据”开始数据收集! (照片2)您会看到三张新纸张打开:“数据输入”,“数据输出”和“设置”。
实时数据打印在数据输入表中。 (照片3)每行对应一个传感器读数,最新值打印在最后一行。
默认情况下,我们只获得15行数据,但您可以通过转到“设置”来更改此行。我们最多可以收集500行(限制是由于Excel带宽 - 背景中发生了很多事情!)。
*完全披露:虽然本教程不隶属于我,但我确实工作w/开发此插件的Microsoft Hacking STEM团队。
步骤13:可视化数据:Excel!第2部分
4。添加数据图!做一些数据分析!
散点图显示传感器读数如何随时间变化,这与我们在Arduino串行绘图仪中看到的相同。
添加散点图:
转到“插入” - 》“图表” - 》“散点”。弹出绘图后,右键单击它并选择“选择数据”,然后选择“添加”。我们希望我们的数据显示在y轴上,x轴上带有“time”*。为此,请单击 y轴旁边的箭头,转到数据输入表,然后选择所有传入的传感器数据(照片2)。
我们也可以在Excel中进行计算和比较!要编写公式,单击一个空单元格并键入等号(“=”),然后执行您要执行的计算。有很多内置命令,如平均值,最大值和最小值。
要使用命令,键入等号,命令名称和左括号,然后选择要分析的数据并关闭括号(照片3)
5。要发送多列数据(AKA多个传感器),请在逗号分隔的同一行上打印值,最后一行为空行,如下所示:
Serial.print(sensorReading1);
Serial.print(“,”);
Serial.print(sensorReading2);
Serial.print(“,”);
Serial.println();
*如果希望实际时间在x轴上,请在“数据输入”表中的“A列”中为散点图中的x轴值选择时间戳。无论哪种方式,我们都会看到我们的数据随着时间的推移而变化。
第14步:进行测量并测量所有事情!!
-
微控制器
+关注
关注
48文章
7552浏览量
151423 -
Arduino
+关注
关注
188文章
6469浏览量
187071
发布评论请先 登录
相关推荐
评论