极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 490403|回复: 155

【已更新教程】【简易磁悬浮】装置

  [复制链接]
发表于 2014-6-12 12:52:20 | 显示全部楼层 |阅读模式
本帖最后由 pz_cloud 于 2017-11-21 16:32 编辑

刚做好的一个下推式磁悬浮装置~需要的外围东西很少,用arduino uno控制,l298n驱动四个线圈电磁铁,配合霍尔传感器就能悬浮了,演示效果看视频。源代码先传上,等过几天有空了来更新详细教程,包括原理介绍,线圈绕制,电路连接等都会发上来。








来补坑写教程了。。。。

首先介绍一下原理,其实很简单,磁力对悬浮物的控制,其基本原理是:霍尔传感器在浮子的正下方,当检测到浮子向左运动时,两边的线圈一个吸一个拉,把它推向右;反之如果浮子想右运动,那么两个线圈的电流都反向,总共两组共四个这样的线圈,就可以把浮子限制在二维平面之内了。但是线圈产生的力是比较小的,因此只能够推动浮子在水平面移动,要克服浮子的重力让它悬浮起来,就要在四个线圈下面再加一个大的环形磁铁提供斥力。
大家应该玩过这中磁悬浮玩具

原理差不多,它下面其实就是一个大的磁铁提供斥力,但是浮子放上去是不稳定的,所以这种玩具需要借助陀螺高速旋转产生的陀螺仪效应维持平衡。而我们这个装置不需要浮子旋转,放上去就能悬浮,对浮子的限制是靠线圈调节的。

我们这个装置主要用到的东西有
1.arduino主控板
2.线圈
3.大磁铁
4.霍尔传感器

顺便解释一下霍尔传感器。。。这是一种测量磁场强度的元件,可以把通过它垂直面的磁力线强度转化为不同的电压值,这样我们用单片机ADC读取之后就可以得到浮子的位置信息了。霍尔传感器的安装位置很有讲究,前面说了它是测量通过其垂直面的磁力线,也就是浮子发出的磁力线,而我们电磁线圈在调节的同时磁力线也在变,如果这个变化被霍尔感应到了结果就很不可靠了,所以霍尔的安装位置应该是位于四个线圈的中间高度,这里的磁力线刚好是与霍尔平行,不产生影响。

      

用前后左右共四个线圈,两个霍尔传感器配合,就可以把浮子稳定的悬浮住。

为了让悬浮更加稳定,我们采用了PID控制的平衡算法,对PID算法的了解有助于我们对整个实验原理的理解,借用网上对PID的一段介绍:在工程实际中,PID控制是应用最为广泛的调节器控制机制。PID控制中得P代表比例,即proportion;I代表积分,即integral;D代表微分,即differential;因此,PID控制,即比例-积分-微分控制。当被控对象的结构和参数不能完全掌握,或者得不到精确的数学模型时,其他的控制方法难以采用,那么控制器的结构和参数必须结合经验和现场调试来决定,在这种情况下采用PID调节最为方便。首先,比例控制是一种最简单的控制方式,就像胡克公式中的比例系数一样,当控制器的输出与输入信号成比例关系,那么就可以得到一个比例系数。其次,积分控制是指控制器的输出与输入的误差信号的积分有关。就如同电路中的电感元件,某个时刻的电压与电流的积分有关。类似的,有时候信号的输出必须综合之前信号的输入,而这种综合往往是求和关系,因此使用积分控制简单易行。最后,微分控制是指控制器的输出与输入信号的微分有关。最简单的微分关系就是速度是位矢的微分。我们在控制悬浮物的平衡时,光知道悬浮物偏离平衡位置的位移从而采用比例控制是不够的,对于同样的偏离位移,悬浮物可能有不同的速度,那么要求我们对悬浮物有不同的处理方法,而恰恰速度是位矢的微分,于是我们可以通过对位移输入数据进行微分操作,来实现对悬浮物的精确实时控制。可见,PID控制器是一种那个动态的控制机制。 以上就是实现下推式磁悬浮的基本原理,借助以上的基本原理,结合一定的软件算法实现,我们就可以对悬浮物进行动态控制。

看不懂的可以不管那些废话...总之就是我们把霍尔元件度数也就是浮子的位置作为输入变量输入PID函数,设定一个目标值也就是浮子在中间位置时的读数值,然后把输出赋值给PWM驱动线圈,剩下的就是调整PID参数让它自己控制浮子去啦。

接下来是电路
这个其实电路并不复杂,回复中有人给了电路图了,这里再发一个简化一点的



这是L298N和线圈连接的方式,arduino和l298n的连接大家应该比较熟悉了,网上也有很多例程,大家把我代码里的相关引脚改成你连接的脚就行了,霍尔用analogRead()读取,PID有arduino的相关库。

霍尔元件一般需要放大电路放大,但是考虑到对一些初学者比较复杂,大家可以考虑直接到网上买那种线性霍尔元件模块,内置放大的直接接到arduino上就能用,注意一定要线性的!还有一种是开关式的只能输出0和1两个值,我们需要的是输出模拟电压的模块。

接下来是线圈,这个东西买不到,得自己绕制,去网上买一大卷漆包线就可以了,用支架自己绕上2,3百圈基本就够用。。。
这是我绕的样子



这里有三个霍尔,额外的一个用于检测是否放置了浮子的。

这是加上大磁铁之后的样子


三层板。。。


供电电源大家自己想办法,只用arduino的5v电压是肯定不够的,线圈要产生足够的磁力需要更大一点的电压电流,我使用的是电脑显示器的电源适配器,最大有12v4A,大家可以自己去网上找找相关的电源适配器,应该不难买的。

暂时就想到这么多,大家还有什么不懂的再问吧。

程序源代码

另外欢迎访问个人网站 www.pengzhihui.xyz

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +6 收起 理由
Microduino + 6

查看全部评分

回复

使用道具 举报

发表于 2016-10-20 15:17:13 | 显示全部楼层
你那个“【简易磁悬浮】装置”  有更详细的资料吗?
比如 霍尔传感器的型号?铜线直径?塑料骨架哪里来? 大磁铁怎么搞到。PID算法的代码!!
谢谢! 学习一下,难以入门,江湖求助
回复 支持 6 反对 0

使用道具 举报

发表于 2016-10-5 20:10:43 | 显示全部楼层
厉害,要是能在飘起来的东西上用上无线供电就更厉害啦
回复 支持 2 反对 0

使用道具 举报

发表于 2016-6-6 21:46:53 | 显示全部楼层
楼主,请问你设定的那个BL干嘛用的?我在中文社区看到源代码文件
回复 支持 1 反对 0

使用道具 举报

发表于 2016-12-27 14:26:22 来自手机 | 显示全部楼层
能把程序代码发给我么
回复 支持 1 反对 0

使用道具 举报

发表于 2014-6-12 13:27:26 | 显示全部楼层
哇, 真的是太酷了! 就是没有硬件说明哦!
回复 支持 反对

使用道具 举报

发表于 2014-6-12 13:33:10 | 显示全部楼层
厉害厉害,佩服佩服。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2014-6-12 13:45:06 | 显示全部楼层
好期待哦。。。
回复 支持 反对

使用道具 举报

发表于 2014-6-12 14:00:07 | 显示全部楼层
只会旋转和悬浮吗?能否多谢动作如翻滚,另外旋转速度,三维移动可控就好了.
回复 支持 反对

使用道具 举报

发表于 2014-6-12 14:04:15 | 显示全部楼层
真的很厉害了  达人  看着像天津学校的
回复 支持 反对

使用道具 举报

发表于 2014-6-12 14:05:53 | 显示全部楼层
最好搞一个群 一起探讨看能衍生什么产品 最好能公布一下 群 我的号码77167898
回复 支持 反对

使用道具 举报

发表于 2014-6-12 15:05:34 | 显示全部楼层
你这个是程序控制吗?我弄过一个是硬件上吸的磁悬浮,效果不是很理想,只能有2厘米距离。
回复 支持 反对

使用道具 举报

发表于 2014-6-12 15:26:54 | 显示全部楼层
{:soso__243768207940266248_3:}顶一个
回复 支持 反对

使用道具 举报

发表于 2014-6-12 15:59:10 | 显示全部楼层
耗电呢?怎么样?
回复 支持 反对

使用道具 举报

发表于 2014-6-12 16:05:44 | 显示全部楼层
很不错,继续关注!!
回复 支持 反对

使用道具 举报

发表于 2014-6-12 18:39:08 | 显示全部楼层
赶紧赞一个。。。厉害!
回复 支持 反对

使用道具 举报

发表于 2014-6-12 19:15:36 | 显示全部楼层
{:soso_e179:}
回复 支持 反对

使用道具 举报

发表于 2014-6-12 20:21:43 | 显示全部楼层
这个必须顶~待搞完电调仔细再看
回复 支持 反对

使用道具 举报

发表于 2014-6-12 20:37:40 | 显示全部楼层
手机控制!!高玩呀!美中不足用了一个大的环形磁石!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 09:06 , Processed in 0.057641 second(s), 39 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表