企业库 微信资讯

生物骇客,用Arduino遥控“捕蝇草”,探索机械生物

北京创客空间    2015/2/12  


我们将在这个简单又有趣的项目里创造一棵遥控捕蝇草,并将捕蝇草的叶片接上Arduino控制器,再发送微小的电子信号来触发生物反应。材料费只需要250人民币(不包括重复利用的Arduino),组装所需要的时间还不到90分钟(但必须外加24小时让捕蝇草休息),非常适合当做课堂范例。还可以加装WiFi模组和第二组电路来侦测叶子闭合的状况,这样你就有一颗可连上网络的捕蝇机械植物了!

运行原理


生物界中大部分的运动,主要由物质在不同浓度间流动的力量所驱动。在捕蝇草这样的生物体中,细胞利用这样的浓度差异来移动“离子”,也就是带点的粒子。钙(Ca2+)和钾(K+)离子带有正电荷,代表他们需要获得电子(e-)以变成中性。氯(Cl-)离子则带负电荷,代表其需要释放出电子来变成中性。捕蝇草的离子流动同时改变了离子浓度和电荷,电池也利用了同样的原理。电池一端充满电子,另一端缺乏电子,电子本来会从高浓度流动到低浓度,不过一道不可穿越的墙阻隔了它们,只有透过导线连接电池两端才能形成通路。当有昆虫刺激到捕蝇草表面的感觉毛时,其内部细胞的离子浓度会发生变化,而电荷(e-)的改变会让叶子的主叶脉快速充水,促使叶片闭合。


如果我们把捕蝇草放到电路里面会发生什么事呢?从植物的观点来看,涌入细胞的电荷会让它“感觉”离子浓度发生变化。因此,我们可以利用电流来模拟苍蝇停在叶片时所产生的生物反应。


材料


  • 捕蝇草(Venus Flytrap):学名Dionea muscipulosa(又称King Henry),可在petflytrap.com上购买。

  • 银线,纯度99.99%,长度5″(2)

  • 牙签

  • 烈酒杯(SHOT杯)

  • 家用漂白水,10mL

  • 胶带:透明胶带、纸胶带或电工胶带。

  • Arduino Uno开发板

  • 一般A接头转B接头的USB数据线

  • 面包板

  • 电线

  • 电池座,2×AA

  • AA电池(2)

  • 电阻,10kΩ(2)

  • 光耦合器(IC),4引脚DIP封装,125mA:如Lite-On LTV-814H。

  • 运算放大器IC,LM358


工具


  • 三用电表

  • 有Arduino IDE软件的电脑:可至arduino.cc/en/Main/Software免费下载。


第一步:制作电极


漂白水倒入烈酒杯,并注意水面高度。一次可以制作两个电极,分别将两条银线都缠到牙签上,留下大约1”的长度,刚好让一端有1cm的长度可以浸到漂白水中。


接着把牙签放在酒杯上,让银线进行15分钟的反应(图1),以形成一层氯化银,而完成后的颜色会比较暗沉一点。xx把银线拆下,放在水龙头下冲洗干净。


第二步:设置电极



小心地把一个电极插入捕蝇草的主叶脉,此时叶子可能会阖上,不过没关系,接着再把第二个电极插入其中一瓣叶片的中间(图2)。


将两条电极分开,并用胶带固定在花盆上,以减少移动来避免短路。


第三部:搭建电路

把AA电池座的两条电线分别接到面包板的正负极(红线接正极、黑线接负极),再把电阻、运算放大器IC、光耦合器和电线依照图3的方式接好。


把10kΩ电阻的一端接到正极,另一端接到运算放大器IC附近的一列(但是不要连接在同一列)。


把第二个10kΩ电阻的一端跟第一个电阻连接到同一列,另一端则接到负极。


电池放入电池座以测试电路。三用电表的红色探针接到电源正极,黑色探针接到负极,你应该会读到“3.0V”或略高。接着将三用电表的红色探针移到两个电阻的连接处,此时读书应该只有一半。


移除AA电池座和面包板连接的红色电线。


第四步:安装运算放大器IC


依照图4在面包板中间跨接运算放大器IC,靠近(但不要相连)两个电阻,引脚1最靠近电压负极。


引脚8跨接电压正极;引脚4跨接电池负极;引脚1和引脚2相连;引脚3连接到两个10kΩ电阻连接处。并在引脚1连接第二条电线,另一端不用连接到其他元件。


重新接上AA电池座的红色电线至面包板以测试电路。三用电表的红色探针接到IC引脚8,黑色探针接到引脚4,你应该会读到“3.0V”;红色探针接到引脚1,黑色探针接到引脚4,读数恰为一半。


第五步:设置Arduino



先将面包板放置一旁,然后开始设置Arduino,这可以让你连接电路和避免失败。用USB数据线连接电脑和Arduino,打开Arduino软件,选择文档->范例->01.基本->闪烁(File→ Examples → 01.Basics → Blink)


按下上传键并选择适当的串口(例如/dev/cu.usbmodem1421),上传成功后,面包板上的小灯会开始闪烁。拔除USB数据线以关闭Arduino电源。


第六步:安装光耦合器


将光耦合器插入面包板上未使用的孔洞,引脚1最靠近电压负极。


依照图6跨接引脚:引脚1和Arduino引脚2跨接;引脚2接地;引脚3跨接面包板上的电压负极;引脚4接上电线一端,电线另一端不用连接任何元件。


第七步:测试电路

重新连接电池座红色电线并确认其与面包板已正确连接。


接着用USB数据线连接电脑和Arduino,复制一下程序代码:


  1. /*

  2. VenusTrigger

  3. A simple sketch to actuate the closure of a

  4. venus flytrap leaf using a simple circuit.

  5. Wait to receive a character on the serial port,

  6. then cause pin 2 to go high for 5 seconds.

  7. Distributed under the GPLv2 public license.

  8. Author: jordan.husney@gmail.com

  9. (c) 2013

  10. */

  11. int incomingByte = 0;

  12. void setup() {

  13. Serial.begin(9600);

  14. pinMode(2, OUTPUT);

  15. digitalWrite(2, LOW);

  16. }

  17. void loop()

  18. {

  19. Serial.print("Waiting for keypress: ");

  20. while (Serial.available() == 0) {

  21. // Just hang out;

  22. }

  23. incomingByte = Serial.read();

  24. Serial.println("triggered!");

  25. digitalWrite(2, HIGH);

  26. delay(5000);

  27. digitalWrite(2, LOW);

  28. }


按下上传键上传至Arduino。选择工具->串口监视器(Tools → Serial Monitor)以打开串口监视器窗口,输入“hi”并按下发送,便会看到窗口显示出“Triggered!”和“Waiting for keypress:”的字样。将三用电表的红色探针接到光耦合器的引脚1上,黑色太真接到引脚2上,此时你应该会读到“0V”。再从串口监视器发送一次“hi”之后,你则会读到“5V”且时间持续5秒。


接下来,将红色探针同时接到运算放大器未连接的电线和光耦合器未连接的电线上,应该会读到“0V”。接着在串口监视器中按下任何一个按键,应该会读到“1.5V”且时间持续5秒钟。如果结果是这样,便可以将其与真正的植物相连了!


第八步:启动机械植物



先等待捕蝇草xx打开(可能需要12到72消失,请耐心等候),再来便是大显身手的时刻了。


将运算放大器未连接的电线与主叶脉电极相连,而光耦合器未连接的电线则与叶片的电极相连,在此时叶片应该还是处于打开的状态。


在Arduino的串口监视器中,准备按下按键。数到三,说“启动捕蝇草!”然后按下任何一个按键,叶片就会阖上!如果没阖上,可以再对它电击一次,有时可能需要电个两三次才能顺利动作,现在你便可以操纵机械食肉植物了!


第九步:电路原理

原理是用两个电阻作为分流器,它们连接的位置刚好就是总电流的一半。电极一端链接运算放大器作为缓冲,输出经过电阻的电流至捕蝇草叶脉。另一端电极连接光耦合器,光耦合器可以隔绝捕蝇草和“危险的”Arduino电压,转而连接“安全的”电池电压。光耦合器内含LED和光感器,Arduino传送脉冲时LED就会发亮,光感器感应到光亮后电流就会通过捕蝇草叶片,叶片就会关闭。原理跟三极管一样,其实这里应该可以用三极管取代,不过用LED连接生物体还是比较聪明的作法。所有的医疗诊断器材也是使用LED而不是使用三极管,因为通路时光耦合器是可以隔绝电流,但是三极管等其他开关短路时才能隔绝电流,可能会伤害或杀害生物体。


第十步:探索更多可能。



完成了遥控捕蝇草之后,你大概想出一堆如何使用它的电子,但这里有几个建议:


考虑使用Arduino的WiFi或XBee扩展板来制作无线捕蝇草。


把连接到捕蝇草的电极当做苍蝇探测器,当感觉到毛触动时,电极上会出现很微弱(仅0.14V)且短暂(<2ms)的电压脉冲,你可以使用一种叫做信号放大器的芯片(如Analog Devices AD623)将这个微小的信号发达几百或几千倍,得以让Arduino进行侦测。



技术支持:免费b2b网站   [免责申明]   [举报]    立即注册发布信息