Posts Tagged ‘下推式’

盗梦陀螺攻略4- 下推式磁悬浮电路

距上一篇攻略已经过了快一个月了。这个月生病一次,加班数次,其中还有带病加班的几天,过年前的日子真难过啊 :) 不过今年春节有10天假,强烈期待中。另外后天公司开年会,希望能抽个大奖,哈哈!

下面继续发磁悬浮的攻略。下推式其实原理和上拉式很相似,区别在于需要两组线圈才能维持浮子的平衡。下面是其中一组线圈的电路示意图:

下推式电路示意图

下推式电路示意图,点击看大图

这个电路和之前上拉式的完全一样,所以这次不需要额外的焊接工作,对比上篇博客的电路图,只是多了一些杜邦头的插针,便于连线:

上推式磁悬浮连线实物图

上推式磁悬浮连线实物图

之前制作小爱的时候,试验过Arduino的模拟输入输出数字输入输出,这里再简单复习下。

Android Mega一共有四种IO接口:模拟输入输出和数字输入输出。其中模拟输入标记为“ANALOG IN”,可以测量0~5V的电压,对应在代码中的读数范围是0~1023,示例代码如下:

int readValue1 = analogRead(read1Pin);

模拟输出实际上输出的是一串方波,通过高低电压的占空比来产生“平均电压”。在板上对应的标记是PWM,输出电压同样是0~5V,但是请注意设置的数值范围却是0~255。示例代码如下:

analogWrite(power1Pin, Pid1.power);

数字输入输出需要先设置管脚的模式,直接看示例代码吧,相信聪明的你肯定明白:

pinMode(Pin1, OUTPUT);     //设置为输出管脚
pinMode(Pin2, INPUT);      //设置为输入管脚
digitalWrite(Pin1, HIGH);  //输出高电压
int v = digitalRead(Pin2); //读取Pin2的电压,返回结果是0或1
anduino控制板

anduino控制板

其中0~53所有的接口都可以作为数字输入输出接口,而其中只有2~13可以用作PWM模拟输出。模拟输入的接口编号是0~15,和刚才的编号是互相独立的,不会冲突。对于盗梦陀螺来说,传感器和电位器的读数显然要用模拟输入,而线圈电流的控制也显然要用模拟输出。强烈建议把接线的编号集中写在程序的最前面,这样可以一目了然的看出是怎么接的线:

int adjust1Pin = 1;    //用来调节A方向的电位器
int adjust2Pin = 2;    //用来调节B方向的电位器
int read1Pin = 4;      //用来连接输入A传感器
int read2Pin = 3;      //用来连接输入B传感器
int i1Pin = 36;        //连接电机驱动板的I1接口
int i2Pin = 37;        //连接电机驱动板的I2接口
int i3Pin = 39;        //连接电机驱动板的I3接口
int i4Pin = 38;        //连接电机驱动板的I4接口
int power1Pin = 5;     //连接电机驱动板的EA接口
int power2Pin = 6;     //连接电机驱动板的EB接口

细心的朋友一定看到上面代码中,有I1到I4四个接口,我将会把它们设置成数字输出。这里再顺便介绍下L298N的用法。
L298N直接连接了20V的电源,通过板内取电的方式提供5V电压给电路使用。板上包含了对称的两组电流驱动电路,以I1,I2,EA为例:

I1=0;I2=1;  //输出正电压,EA范围0~255时,输出电压对应为0~+20V
I1=1;I2=0;  //输出负电压,EA范围0~255时,输出电压对应为0~-20V
I1=0;I2=0;  //输出电压均为0
I1=1;I2=1;  //输出电压均为0

我们可以用数字输出I1和I2控制线圈的电压方向,用模拟输出EA控制电压的大小。I3,I4和EB是完全一样的,这里就不多说啦。友情提醒一下,Arduino的地线,L298N的地线,还有焊接电路的地线,这些地线一定要都连在一起。

到这里电路硬件的部分就介绍完了,实际上,按照这个方式做好的版本是非常不稳定的。看下面的视频,就是最初的不稳定版本,可以看出振动的非常厉害:

后面会继续介绍如何让悬浮更稳定,主要是引入PID控制的概念,另外还需要提高Arduino的PWM方波频率。

磁悬浮预告篇

有一个月没有更新博客了,最近发生很多事情,晕头转向….不过可以肯定的一点是,真正的Geek们是不会闲着的。

前一段时间迷上了磁悬浮,鉴于之前制作两轮平衡小车的失败经历,圈圈妈建议我把东西做的靠谱点再发博客,省的出去丢人:)

好吧,今天终于可以发几张效果图了,视频和攻略接下来慢慢补充。

上拉式磁悬浮,可以调节间隙高度

上拉式磁悬浮,可以调节间隙高度

下推式磁悬浮

下推式磁悬浮

下推式磁悬浮接线图

下推式磁悬浮接线图

所需材料列表:
Arduino Mega 开发板 1块
L298N驱动板 1块
可任意折磨的洞洞板 1块
10K多圈电位器 2个
10K手拧式电位器 2个
3.9K电阻 2只
200K电阻 2只
LM358P数字放大器 1个
UGN3503霍尔传感器 2个
LM7809稳压器 1个
20V直流电源 1个
巨大圆环形黑磁铁 1个
圆片钕铁硼强磁 若干
绕线用铜丝 半斤
杜邦头连接线 若干
被电烙铁烫伤的烤人肉 1块

 友情提示:玩DIY的兄弟们,一定要把电烙铁,热胶枪,强磁等东西放到孩子们够不到的地方。顺路想起一个故事:当年在学校的时候,曾经拆过一个硬盘,里面有两块钕铁硼强磁;我和一个叫“大马猴”的同学决定用它夹前排某同学的耳朵;我们一人拿一块,本来只想轻轻夹一下,结果还很远的时候就“啪”的吸上了。这个可怜的家伙直接跳起来暴走。。。。呼呼,让你上课睡觉!:)