嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

用arduino制作气体磁悬浮盆景

原作者:luna

转载自:http://mc.dfrobot.com.cn/thread-268571-1-1.html

作者首次在Kickstarter众筹平台上看到这个项目时,就深深喜欢上了它:Air Bonsai(气体磁悬浮盆景)。我真的很惊讶那位日本作者是如何制作的,这件作品真的美丽而又神奇。
 
142701nk6ln9hhh35vkhk3_c3a46f659e78ebfa828b1b1694d4e612da95fae5.gif
一旦了解了基本原理,我们就可以打开任何谜底。一个多月前,我了解到诸多关于气体盆景的概念,实际上它就是一种磁悬浮现象。我还翻阅过诸多关于如何实现磁悬浮的教程,所有这些教程指出了磁悬浮是通过电控控制的电磁铁,实现物体在上方漂浮的。但是,我没有找到关于如何制作类似于气体盆景的电路说明。
 
那么大家可以看下我是如何通过Arduino一步步制作出属于自己的盆景的。
 
第1步:演示视频

 
▲请观看上述视频,快速了解如何实现磁悬浮
 
请注意视频说明非常简单,项目开始提醒事项一点都不拖沓。只需观看视频,然后按照以下所有步骤,即可确保您成功制作出属于自己的气体磁悬浮盆景。
 
 
 
第2步:工作原理
 
 
142752ntak1jjlagjd3zsz_1c7f4a76f372154d5fee517fdc799390eddca241.gif

经过仔细研究,我意识到kickstarter平台的气体盆景系统电路非常复杂,不存在任何微控制器,我对它的模拟电路非常陌生,这看起来似乎无能为力。但是我仔细观察后,却发现它的原理其实非常简单,那就是让一块磁铁悬浮在另一块磁铁上方。我需要做的仅仅是让悬浮磁铁不会坠落。
 
142752wmmz0b66sbwg7ie8_d92d8c037d54b1921884eba7d2987a44df058dd5.jpg142752oana0danxrtssgjt_6c301a36b03f247828716803f03e755538c11a18.jpg

 
我认为使用Arduino实际上比模拟电路计算要容易得多。我通过这种方式大获成功,真的很简单。
 
 
磁悬浮包括两个部分,基础组件和悬浮组件。
 
1.基础组件
  • 该部分位于底部,通过磁铁创建一个圆形磁场,以及能够控制整个磁场的电磁铁
  • 每个磁铁都包含两极:北极和南极。实验表明,异性相吸,同性相斥。四个圆柱形磁铁放置在正方形中,并具有相同的极性,从而向上形成一个圆形磁场,以推动任何磁体发生转动,这些转动的磁体具有相同的磁极,并位于这些圆柱形磁铁之间。
  • 四个电磁铁放置在同一正方形中,彼此对称形成一对,它们的磁场总是彼此相反。
  • 霍尔传感器和驱动电路控制着这些电磁铁。通过将电流转移流过电磁铁,在电磁铁上形成相反的两个电极。
 
2.悬浮组件
  • 基础组件上方放置一块磁铁,可以吸起一个小铁罐。
 
如何工作?
顶部磁铁经由底部磁铁的磁场提升,因为它们的磁极相同。然而,它顶部磁铁比较容易翻到,从而导致两块磁铁相吸。
为了防止顶部磁铁上下颠倒,电磁铁会产生磁场推动或拉动以平衡顶部磁铁,这要归功于霍尔传感器。
电磁铁通过两个X轴和Y轴进行控制,导致顶部磁铁保持平衡和悬浮状态。
控制电磁铁并不简单,这需要您对PID控制器有着非常充分的认识,我们将在下一步中进行详细的讨论。
 
 
第3步:PID控制器
 
什么是PID?
源自维基百科:“比例-积分-微分控制器(PID控制器或三项控制器)是一种控制回路反馈机制,它广泛应用于工业控制系统以及其它各种需要连续调制控制的应用中。PID控制器能够持续计算误差值{\通过字母e(t)表示},误差值表示期望设定值(SP)和测量过程变量(PV)之间的差异,并应用基于比例、积分和微分项(分别通过P、I和D进行表示)的校正过程,这三个字母构成了控制器的名字。”
简而言之:“PID控制器计算‘误差’值,并将其作为测量[输入]和所需设定值之间的差值。控制器试图通过调节[输出]来实现误差的最小化。”
因此,您告诉PID控制器需要测量哪些内容(“输入”)、待测量的位置(“设定点”),以及待调整的变量(“输出”)。
通过Youtube网站轻松理解PID:https://www.youtube.com/watch?v=UR0hOmjaHp0
 

142843l1fafonu3afz63ys_797f643435cf1396306afe7df4a6f68432b1e578.gif142851qhro69rxhy99jmap_658ad47471046604b1109aafec470715452e07cd.jpg 

 
 

随后PID将调整输出结果,试图使输入等于设定值。作为参考,在汽车领域,输入、设定点和输出分别为速度、期望速度和油门角度。
 
 
在此项目中:
1.输入是霍尔传感器当前的实时数值,由于悬浮磁铁位置会实时变化,因此该数值将不断刷新。
2.设定点是霍尔传感器的数值,当悬浮磁铁处于平衡位置时,在磁铁基座中心进行测量。该指数是固定的,不会随时间而发生变化。
3.输出将是控制电磁铁的速度。
感谢Arduino社区编写出如此便捷的PID库。
关于Arduino PID的更多信息,请访问https://playground.arduino.cc/Code/PIDLibrary
我们需要在Arduino中使用一对PID控制器,一个应用于X轴,另一个应用于Y轴。
现在是时候开始购买必要组件了。
 
 
第4步:材料清单
 
以下是您需要针对此项目而购买的组件列表,请确保在开始前您拥有所有这些组件。
 
142905ldsu1iqj76ushus6_c14fd0f14987c30901e4169041964a8b2e39bc84.jpg


部分组件相当流行,我相信您已经拥有这些库存设备。
 
142916gn4961yiu91c4mfp_cd37c49f10a3928dece53b543e759c84828ca73f.png

组件随附数量和推荐链接。大多数推荐链接来源于Aliexpress,您可以在该网站购买到经济实惠的组件并能够享受免费送货服务。如果拥有更加简单的方式,您还可以在别处购买这些组件。
  • LM324N - X1  
  • 悬浮线圈 - X4
  • SS495a霍尔传感器 - X2
  • 12V 2A DC适配器 - X1
  • 环形磁铁D15 * 4mm - X8
  • 直流电源插孔 - X1
  • 环形磁铁D15 * 3mm - X4
  • L298N模块 - X1
  • 14引脚插座 - X1
  • 磁铁D35 * 5mm - X2
  • 5.6K欧姆电阻 - X2
  • 180K欧姆电阻 - X2
  • 47K欧姆电阻 - X2
  • 10K欧姆电位器 - X2
  • 丙烯酸板A5尺寸 - X1
  • 木罐 - X1
  • PCB面包板 - X1
  • 3mm螺丝 - X8
  • 电线
 
迷你方案,如肉质植物、仙人掌、迷你盆景
 

第5步:工具
 
以下是几乎所有人都会用到的工具列表。
 
 
142932z8835emqw8u68800_a89d51c198fe320f8cab7e518d5edfa33cd54628.png

  • 电烙铁
  • 手锯
  • 万用表
  • 螺丝刀
  • 示波器(可选,您可以使用万用表代替)
  • 台钻
  • 热胶枪
  • 电子钳
 
步骤6:LM324运算放大器和L298N驱动器和SS495a
 
 

142943mukkezolop1us13b_1c4b1b0d10c5c6b37e220a85c1427eda62b837ad.png 

LM324运算放大器
运算放大器(op-amp)是目前最重要、应用最为广泛以及最通用的电路之一。
我们使用运算放大器对霍尔传感器的信号进行放大,目的是增加灵敏度,使arduino能够很容易地识别磁场的变化。如果霍尔传感器输出仅变化几个mV,那么在Arduino中通过放大器后,这个数值可能会变化数百个单位。这对于保持PID控制器的平稳稳定是非常有必要的。
在此教程中了解关于运算放大器工作原理的更多信息。
我选择了价格极为低廉的通用运算放大器LM324,您可以在任何电子商店购买到它。LM324包含4个内部放大器,使用非常灵活,但是在这个项目中我只需要两个放大器,一个用于X轴,另一个用于Y轴。
您可以在以下步骤中找到如何组装LM324的说明。
 
 
L298N模块
双H桥L298N通常用于控制两个直流电机的电机速度和方向,或轻松控制一个双极步进电机。 L298N H桥模块可用于工作电压介于5和35V DC之间的电机。
此外我还用到一个板载5V稳压器,因此如果您的电源电压高达12V,您还能够通过电路板获得5V电压。
在此项目中,我采用L298N控制两对电磁线圈,并使用5V输出为Arduino和霍尔传感器供电。

 
模块引脚:
  • 输出2:一对电磁铁X.
  • 输出3:一对电磁铁Y.
  • 输入电源:DC 12V输入
  • GND:接地
  • 5v:输出到Arduino和霍尔传感器的5v电压
  • EnA:针对Out 2启用PWM信号
  • In1:启用输出2
  • In2:启用输出2
  • In3:启用输出3
  • In4:启用输出3
  • EnB:针对Out3启用PWM信号
 
连接Arduino:我们需要拆除EnA和EnB引脚的2根跳线,然后将6个引脚In1、In2、In3、In4、EnA、EnB分别连接到Arduino。以下步骤对其进行了详细说明。
通过此说明书了解关于L298N模块的更多信息。

SS495a霍尔传感器
SS495a是一款带模拟输出的线性霍尔传感器。
注意模拟输出和数字输出之间的区别,此项目不会用到带数字输出的传感器,因为后者只有两种状态“1”或“0”,您无法通过这两种状态测量磁场输出。
模拟传感器的电压范围为250mV至Vcc,您可以使用Arduino的模拟输入端进行读数。
我们需要通过两个霍尔传感器测量X和Y轴磁场。
 
 
第7步:钕磁铁(化学式:Ndfeb)
 
142950mb2n2peb00b9p9y2_87e987e31a416237741f19744b53e23995fa8b74.png
 
 
维基百科:“钕是一种具有铁磁性的金属(更具体地说,它具有反铁磁性质),这意味着它能够像铁一样被磁化,但是其居里温度为9 K (−254 °C),因此实际上它的磁性只会出现在极低温度下。然而,钕与过渡金属(如铁)的化合物的居里温度可以远高于室温,这些都有助于钕磁铁的制造工艺。
得益于超强的磁性,我们通常用“磁王”来形容钕磁铁。你不能将此称号赐予铁氧体磁铁,因为它们的磁性太弱。钕磁铁比铁氧体磁铁价格要贵得多。
小磁铁用于制造基础组件,大磁铁用于制造悬浮组件。
注意:使用钕磁铁应当特别小心,因为它们的强磁性会影响到您,或者它会破坏硬盘驱动器或对其它易受磁场干扰的电子设备的数据造成影响。
小贴士:您只能将两块磁铁从水平方向上分开,因为它们的磁场太强,所以你不能沿着相反的方向将二者分开。它们还非常脆弱,很容易碎裂。
 
 
 
第8步:准备基础组件的盖板
 
 
 
143014hmbzmg3gxxxwx3kl_c4f687aa7df3fe33cc3a11c085b4a1ada30d6966.png

我使用直径为3/4 "的小陶土锅,它通常用于培育多汁植物或仙人掌。你还可以使用陶瓷锅或木锅,只要它们合适即可。
使用8mm钻头在锅底附近开孔,用于固定直流插头。
小贴士:你应该使用扁平的木头钻进陶土锅,我使用的是铁钻,但是它几乎烧掉了,真的一点用都没有。
您还可以使用水来冷却钻头,避免其过热。
 
 
 
第9步:3D打印悬浮磁铁支架和丙烯酸激光切割
 
3D打印
 
使用随附的STL文件打印悬浮磁铁支架。
 
 
 
143022pwwcyv7oyqjdwvj8_7ed357db5cb4fb47f7426b4219caf73590ffc23f.jpg

143029urrlx9q2n9pancnq_6955537d8f131e05a686f1e12804e10b5456fc8c.jpg

如果您有幸拥有一台3D打印机,那么恭喜你了,你将有机会通过这台机器制作所有物件。如果没有,也请不要失望,因为您可以使用价格低廉的3D打印服务,这是现在非常流行的。
小贴士:您只需花费约20分钟即可完成此部件,并且仅填充30%。
 
 
 
激光切割
您应使用本地激光切割服务,切割两个带锉刀的丙烯酸片,我将其附加至AcrylicLaserCut.dwg。这是一个autocad文件。
 

143038wejr3gjeepojvskv_7abd2b34f2b10d584bdef20cb3eb0afff29673b9.jpg
 
丙烯酸片用于支撑磁铁和电磁铁,其余部分用于覆盖陶土锅表面。

3D打印模型和激光切割文件下载:
 AcrylicLaserCut.dwg (26.34 KB, 下载次数: 49, 售价: 25 创造力)
 MagnetHolder.stl (679.48 KB, 下载次数: 27, 售价: 25 创造力)

第10步:准备SS495a霍尔传感器模块
 
144816rrm9ms3irauuauau_3529ef670942205e050f1c5ceb0a246d6fddb9e2.png
 
 
将pcb面包板切成两块,一块用于连接霍尔传感器,另一块用于制作LM324电路。
将两个磁传感器垂直连接到PCB。注意传感器的两侧刻纹相互咬合,并固定焊接。
使用细线将传感器两个VCC引脚接在一起,对于GND引脚同样如此。输出引脚是分开的。
 
 
 
第11步:运算放大器电路
 
根据原理图将插座和电阻器焊接到PCB,注意两个电位器位于同一方向,方便以后轻松校准。
144117wz1610hx61kphpww_e969c7f79928aadbf5fbee5b1248062122bc74a5.jpg
144845hkbbwnkr6wik7ubb_3f519dd0a2bcaa533acd2d7d4e8c6129049b6f88.jpg

将LM324连接到插座,然后将霍尔传感器模块的两个输出端连接到运算放大器电路。
 
144906hxpfch8e4ge22ewk_16ad8d9668369c4069ed72d6ea76a5dee65cc11b.jpg
144922qighpnywnvgvpxvp_3620089ecf2f7c85c8259db9d3214aebd3a62868.png
 
将两根LM324输出线连接到Arduino。L298N模块也采用相同的12V输入端,L298N模块的5V输出连接到电位器的5V端口。
 
第12步:组装电磁铁
将电磁铁组装到丙烯酸板上,注意固定在靠近中心的四个孔处,拧紧螺钉以免滑动。
144936zaciah7ibzc12hpi_4d24be2972446043f2b52e72b945b90058dc00af.png

由于电磁铁中心对称,所以它们的磁极始终相反,因此电磁铁内侧导线连接在一起,电磁铁外侧的导线则连接到H型驱动器L298N。
扯下丙烯酸板下方电线并穿过附近孔洞,以连接L298N。
小贴士:铜线涂有绝缘层,因此必须先使用刀片切割绝缘层,才能将它们焊接在一起,记得在焊接完成后使用热缩管接续。
 
 
第13步:连接传感器模块和磁铁
 
使用热胶将传感器模块固定在不同电磁铁之间,注意每个传感器必须与两个电磁铁围成一个正方形,一个在前面,另一个在后面。
 
144946ti6c356m9e4kxv26_be3f35f0f64e90200728bd0c2f507f938c77d0aa.png
尝试尽可能集中校准两个传感器,使它们不相互重叠,这将使传感器的性能发挥到极致。
下一步是将磁铁组装在丙烯酸基底上。将两个D15*4mm磁铁和一个D15*3mm磁铁组合在一起形成一个圆柱体,这将使磁铁和电磁铁具有相同的高度。
在成对电磁铁之间组装磁铁,注意向上磁铁的磁极必须相同。
 
第14步:直流电源插孔和L298N 5V输出
 
145012bi3fy4ts44iwzii4_313f3ec4a151b87deae0644f565dd8f607cca5ce.png
 
通过两根电线焊接直流电源插孔,并使用热缩套管。将直流电源插孔连接到L298N模块输入端,其5V输出将对Arduino进行供电。
 
第15步:L298N和Arduino
 
 
145028htd6g2fwdz2dzgt2_ea47d9f766fab3938d473cc1a377a68391e18ffe.jpg
 
根据上述原理图将L298N模块连接到Arduino。
 
144929mm48v8q88o88jlym_61730700980f890950f30d7b552d3a1ffb95344d.jpg
L298N ===> Arduino
Out 5V ===> VCC
GND ===> GND
EnA ===> 7
In1 ===> 6
In2 ===> 5
In3 ===> 4
In4 ===> 3
EnB ===> 2

第16步:Arduino Pro Mini编程
145115wduyyjusdy1ojmud_daafb76878db64481ef69ff3dcf9ef28cb6a059c.jpg
 
由于Arduino pro mini无任何USB连接串口,因此您需要连接外部编程器。
 
145125z2492szytdzr8nns_ea4f928758a412c707677a97376be614cf782034.jpg
 
FTDI Basic将对Pro Mini进行编程(和供电)。
 
第17步:悬浮组件制备
将两个D35*5磁铁连接在一起,以增加磁铁的磁性。
 
145134njr09p02x508br2y_1e7ab63ef38795020b77455a1a08093d1f3fdf72.jpg
 
第18步:设定值校准
将ReadSetpoint.ino程序加载至附加的Arduino。该程序将读取霍尔传感器的数值,并通过串口将其发送给计算机。打开COM端口即可查看。
 
145150cjtbw2dceadjncwj_82ebd0ec765842bac4610b9cf528e7a2f4e177ac.png
 
将12V DC插入直流电源插孔,您还可以使用示波器读取传感器值。
观察屏幕上的数值,通过调节两个电位计进行调整。最佳值为560,此时传感器的输出约为2.5V。
145155xl2lya24ylc42alo_c4c42b14fe490eb334f5615dda15ac9a268f9290.jpg
 
当设好设定值后,将悬浮磁铁片放在基础组件上方并进行晃动,查看屏幕上设定值的变化情况。
145200nn14k009jn2t1fz0_3658547f4f2076a9497fedb1e7ee3d6a5d81588f.jpg
 
小贴士:分别在X和Y轴上对电磁铁和电位计进行标记,方便日后进行轻松修正。

下载附件:
 ReadSetpoint.ino (387 Bytes, 下载次数: 42, 售价: 25 创造力)
 
第19步:加载主程序
校准设定值后,现在可以尽情享受你的成果了。
145217vek0gq66ee5w1p60_e31a12d99088fd114e0f9a0e7e5e8687228bf6e8.jpg
 
加载下面随附的Levitation.ino主程序。
145221g56yyuhi8bt0ky28_658682f39620b046f9e9f7575f9b99767548091e.jpg
 
使用强力胶固定前面3D打印的磁铁片和磁铁支架。
 

145210f04pz6f4rnen0fyf_4bcd588b469f1c7d2c472ff1fbb422ee4b516f9f.png 

小贴士:加载主程序后,可以对电位器进行小幅调整,使悬浮组件固定在中心位置。
 
附件下载:  Levitation.ino
 
第20步:融为一体
首先将DC电源插孔连接到罐中,然后将剩余部分也放入罐中。
 
145311qo23iue3yjoey0c3_52fb1c1615a6d47c4c5323dbd6dcc46271be7ff0.png

最后,使用剩余的丙烯酸板制作罐体表面。
 
145308urevftdrewvfrota_031c8aac25c197bb98813edcff0126c0e5b618b3.png
 
第21步:准备植物
将木罐连接到悬浮的磁铁片上。
 
 
145348ovv4yrv1yi6jjr8j_cd74b41d3375d25edc7123e8c8787aca8e025bce.png
145423hybl3lzl03uqu0ib_9dff910eb59ab6f4ea7a0e04813eb249d5811b7c.jpg

 
我使用小仙人掌进行种植。您可以使用仙人掌或多肉植物或任何对称或小而轻的迷你盆景。
 
第22步:享受成果
尽情享受您的成果,您可以在自己的办公桌上通过气体磁悬浮盆景让别人见证您所付诸的努力。
 
145437uoxnioeiiie8hy24_fee58fa53744c163b360cea22ba3776ea3adcb0e.jpg


By funelab来源:https://www.instructables.com/id/Arduino-Air-Bonsai-Levitation/

 

PuaChengLin 还没写个人简介...
DesignSpark Electrical Logolinkedin