Archive for the ‘小制作’ Category

盗梦陀螺攻略3- 上拉式磁悬浮

有了磁悬浮陀螺的念头,我没有直接开始做下推式,而是先做一个上拉式的练练手。这件事的经历说明:对一个新手来说,可以采用由浅入深,先易后难的策略;虽然总时间可能会更长一点,但是对增强信心,掌握经验很有帮助。(好吧,水木的Joker们看到这句话一定会想歪,色情猥琐男们请自觉面壁)

上拉式磁悬浮原理相当简单。先用万能的乐高颗粒搭一个架子,把绕好的线圈固定在上面。然后用钕铁硼强磁做一个浮子。小窍门来了,我们在线圈的上方放置一个大磁铁,一开始浮子会被吸在线圈下方,慢慢的向上抬大磁铁,到一定高度时,浮子吸不住了向下落。记住这个位置,把大磁铁固定在那里。这样的效果是:线圈里只要通一点电流,就可以吸住浮子,电流一断浮子就会下落。

线圈和浮子的安装

线圈和浮子的安装

图中的浮子下面有个白色的东西,其实那不是什么秘诀,只是我用来标示上下的记号。大磁铁下面有好几个乐高齿轮,其实那都是调节高度用的,之所以用齿轮而不是用圆片倒是有原因的,因为我觉得比较酷 :D

电路方面,上拉式磁悬浮只需要一个传感器,但是我还是焊了双路的板子,这样和将来的下推式用同一块就可以。电路图还没时间学习怎么画,先用画笔凑合弄了个原理图,里面省略了一些细节,不过应该能看明白了。

上拉式磁悬浮原理图

上拉式磁悬浮原理图

请注意我的电路中用了两个电位器。其中电位器1是多圈电位器,作用是调节传感器输出范围。3503很灵敏,电流被放大以后,很容易就超出0到5V的测量范围,所以在需要一个精密的电位器,让输出范围尽量在5V以内。电位器2是用来调节浮子位置的,它是我们设置的“目标位置”。Arduino开发板的作用,就是调整线圈电流大小,从而控制浮子上下移动,最终让传感器的读数等于我们设定的目标值。实物的接线图请看:

接线图,貌似不太清楚

接线图,貌似不太清楚

这个可能大点

这个可能大点

代码就非常简单了,所有的代码只有下面这几行:

int readPin = 2;    //用来连接输入
int i1Pin = 36;     //连接电机驱动板的I1接口
int i2Pin = 37;     //连接电机驱动板的I2接口
int powerPin = 8;   //连接电机驱动板的EA接口
int adjustPin = 6;

boolean flag = true;
int power = 0;
int readValue = 0;
int adjustValue = 0;

void GetPowerValue()
{
  power = readValue - adjustValue;
  if(power < 0) power = 0;
  if(power > 50) power = 50;
  power = power * 16 / 10;
}

void setup()
{
  pinMode(i1Pin, OUTPUT);     //I1和I2都是数字信号
  pinMode(i2Pin, OUTPUT);     //通过设置I1和I2来控制电流方向
  pinMode(powerPin, OUTPUT);  //按占空比方式输出的模拟信号
  digitalWrite(i1Pin, !flag);
  digitalWrite(i2Pin, flag);
  //Serial.begin(9600);          //设置波特率
}

void loop()
{
  //读取电位器和传感器的读数
  readValue = analogRead(readPin);
  //传感器的电压范围是220~580,所以调节电位器的范围可以稍作调整
  adjustValue = analogRead(adjustPin) / 3 + 220;
  GetPowerValue();
  //Serial.println(readValue);
  //Serial.println(adjustValue);
  //Serial.println(power);

  analogWrite(powerPin, power);
  //delay(2000);
  //delay(1);
}

代码虽然简单,但是在制作的过程中却走了很多弯路。这段代码的重点在于:
power = power * 16 / 10;

这个相当于是调整线圈电流的放大倍数,参数1.6如果小了则吸不住浮子,大了则无法稳定。程序中的16如果换成15或者17都不行的。因为这么一个小小的问题,我走了一星期的弯路。当时怀疑原理不对,在反复检查无果之后,已经跟圈妈提出放弃这个项目。幸好这时候得到了圈圈妈“严厉”的鼓励:遇到这么点困难就打退堂鼓,以后怎么做大事!从另一个角度说,当你想尽办法几乎绝望的时候,其实已经接近成功了,因为你已经排除了大部分错误。

果然第二天就解决了问题!后来在制作下推式的时候,类似的事情又一次发生,那次主要问题在于线圈绕的不行,而重做线圈是一个非常浩大的工程,同样也是在圈妈的鼓励下,终于下决心重新做一遍。在此向顽强的圈妈表示敬意(圈妈表示鸭梨不大,反正她不出力干活^_^ )

这个实验最终的经验总结如下:
1,参数很重要!如果你的磁悬浮上下跳动的厉害,恭喜你,其实你已经接近成功了。
2,这个试验中的参数有效范围非常窄,跟程序也有关系,后面会介绍一种PID算法,可以扩大范围,更容易调节。
3,坚持,太累的时候放松一下,然后换个思路想想。

视频如下:

盗梦陀螺攻略2- 线圈和传感器

相信很多人看过原理图之后,和我一样信心满满,这个东西太容易做了,不就是照图焊器件嘛,一星期就可以搞定了!

真正动起手来,才知道没那么容易。第一件事就郁闷了:去哪里找线圈?在淘宝搜了一大圈也没找到合适的。铜丝直径?线圈直径?线圈高度?绕多少匝?线圈之间距离?乱七八糟的好多事情,who tama knows!

最后只能去电子城买了一公斤的铜丝回来自己绕。那时候我还不知道有“线圈骨架”这么个名词,没找到合适的东西,就自己做了几个轴。于是出现了下面这么多奇形怪状的线圈:

奇形怪状的线圈们

奇形怪状的线圈们

更奇形怪状的线圈们

更奇形怪状的线圈们

细心的同学可能会发现,其中有些是带铁芯的(我分别用大螺丝和一毛钱的硬币柱当过铁芯),有些是没有铁芯的。事实证明,磁悬浮的线圈不能有铁芯!这点和我最初的直觉有点不符,因为觉得加了铁芯后磁场会更强。事实上因为我们的浮子是钕铁硼强磁,铁芯对它的吸力远大于线圈产生的磁力。也就是说,带铁芯的线圈只能产生“很大的吸力”和“更大的吸力”,没法产生“较小的吸力”和“较小的斥力”

绕线圈是一个非常痛苦的差事,我数过一个线圈平均大概是800匝左右,绕的我头昏眼花。所以后来做了一个绕线用的小东西,这就是我喜欢乐高的原因,很简单的一堆颗粒,可以拼出很多你想要的东西:

乐高制作的绕线器

乐高制作的绕线器

用绕线器绕出的线圈们

用绕线器绕出的线圈们

后来买了线圈骨架,这下绕的就好看多了。对于下推式磁悬浮,一共需要4个线圈。霍尔传感器尽量放在4个线圈的中心位置,这样的好处是线圈通电时,感应的磁场在中心处几乎都互相抵消了,只有浮子的移动才会影响到传感器的读数。

霍尔传感器安装在中心位置

霍尔传感器安装在中心位置

事实上,传感器的位置并不需要太严格。因为霍尔测量的是垂直它表面的磁通量。只要传感器的高度在线圈的高度中心,这里的磁通量都是平行与传感器的,也不会产生影响。

高度尽量居中

高度尽量居中

我的第一个版本的悬浮,传感器就是用胶布贴在侧面的中心,一样可以悬浮。缺点是浮子移动时,磁场的变化不是线性的,容易产生振动。

高度居中时,水平位置要求并不高

高度居中时,水平位置要求并不高

接线方面,互相对面的一组线圈之间反相连接。也就是说当在一对线圈两端通电时,一个会对浮子产生斥力,另一个会产生引力,正好是相反的,连推带拉才給力!

下面这个是背面的接线图,其中中心位置的是两个传感器,我把它们引出到两个杜邦头插针上,这样可以方便插拔。对面的线圈分别把相同极性的抽头焊在一起:

接线图,希望你能看懂

接线图,希望你能看懂

最后发一个关于线圈的经验小贴士,省的大家再重做无用功了:
1,产生相同的磁力,铜丝越细需要的电压越高,因为电阻比较大。我用的是0.27的铜丝,20V的电源。(用20V的原因是我有个坏掉的笔记本,利用下电源)
2,磁力的大小跟匝数关系不大,因为匝数增大的时候,电阻也增大,电流减小,产生的磁场差不多。但是匝数越多越省电。
3,四个线圈之间距离要稍大一点,浮子会更稳定,当然也别大的离谱,我的经验是线圈中心的直径和浮子直径差不多。
4,传感器的位置尽量在线圈中间,高度上也尽量放在中心的高度。
5,不要装铁芯。
6,给线头留长点,当你辛苦装上几个线圈,突然发现线头不够长的时候,会有看破红尘的感觉。

Segway雏形

几个月前企图做一个两轮平衡机器人,当时准备用手机的重力感应器来做,结果悲剧了。有兴趣的朋友请回顾“悲剧的一周”。俗话说的好,从哪里摔倒,就从哪里爬起来,这几天看了Lego高手Robin同学的视频,模仿搭了一个小人,改天有空再继续写代码。

两轮平衡小人

两轮平衡小人

话说这种两轮小车,大家一般都叫它Segway,查了下才知道这是一款产品,据说美国的那个小布什是它的粉丝,连中国的特警也喜欢玩这个:

中国特警是在过家家吗?

这个玩意儿其实没有看上去的那么容易玩,驾驶员(姑且这么称呼)通过调节身体的倾斜角度,以此来控制Segway的速度和方向。看看布什小朋友是怎么摔倒的:

乔治.狗啃屎.布什

最后,建议小朋友们最好不要玩这个东东。第一是因为这个家伙价格不菲,第二是因为它确实有危险。最悲剧的莫过于Segway公司的CEO,此人在悬崖边玩自家产品,不幸坠河身亡,可惜了数亿美元的家产。所以大家还是自己搭个小车玩玩就好。

盗梦陀螺攻略1- 原理图与器件清单

本来昨天就想发这个帖子,因为想画一个原理图出来,所以这两天试着安装了Protel和PCsELcad。结果整了两天也没把图画好,看来圈圈妈说的对,这一行我确实门还没迈进去。既然这样,我先把网上找到的电路图发出来,其实基本是差不多的。
这次做悬浮陀螺,我从中国电子开发网上找到了很多资料,其中下推式磁悬浮的电路,基本上是参考了网友liguang70217的ATmega8单片机方案,点击这里可以查看原帖。
下推式磁悬浮电路图

下推式磁悬浮电路图

更清晰的pdf版本可以从这里下载。看到这里,有些同学们估计已经坐不住了:嗨,早说有这个网站,我们直接去看就得了,何必在这里等攻略捏?
其实Ourdev的磁悬浮开源活动,从09年4月份就开始了,所以心急的同学们应该反省一下自己的搜索能力。另外,那个论坛基本上是高手出没的地方,我等无门无派的新手,看人家双截棍耍的挺酷,自己一动手往往碰的鼻青脸肿。所以我默认来这里看攻略的,都是跟我一样的新手们,尽量从新手的角度来记录制作过程。
首先简单介绍一下这个电路的原理:
图中右下角的两个3503,就是传说中的线性霍尔传感器,安装在浮子的正下方,分别用来测量横竖两个方向的磁场强度;当磁场变化时,输出电压也会相应变化;因为传感器的变化量一般都比较小,所以需要经过放大,这里用的是LM358数字放大电路;放大后的信号由ATMag8单片机采集,经过一定的算法之后,输出控制信号;因为单片机的控制信号支持的电流都比较小,需要用这个信号驱动一个大电流控制板,让它通过电压的变化来控制线圈磁场,从而实现对悬浮物的控制。
因为小爱计划暂时停止了,我手头有一块富裕的Arduino Mega168控制板和一块L298N直流电路板,所以我正好就以手头的这两块板子为基础做实验。当然,DIY的乐趣在于学习和改造,我的磁悬浮和这个电路有下面这些区别:
1. 因为单片机改成了Arduino开发板,所以图中单片机周边的电容和晶振就不需要了。
2. 因为没有合适的电源,我把那个坏掉的笔记本电源利用上了,额定电压20V,最大电流2A。
3.Arduino的电源是9V,所以加了一块lm7809用来生成9V电压。
4.10k和4.7K的电阻,我换成了100k和2k,好像影响不大。
5.L298N的驱动,图中是每组用两根控制线驱动,我改用三根,编程的时候会方便点(这个后面再介绍)
6.外接了两个旋转电位器,用来调节平衡,这个主要是为了装箱子以后方便,免得总开箱用螺丝刀拧。
7.对应的代码,需要针对Arduino进行修改。
因为电路图不太会画,这里就不贴啦。下面是器件清单和相应的资料pdf,方便大家查询:
器件名称 规格 数量 功能 文档
直流稳压电源 20V,2A 1 电源
UGN3503 2 线性霍尔传感器,
用于测量磁场强度
UGN3503.pdf
LM358N 1 数字电流放大器 LM358N.pdf
LM7809 1 输出9V电压,给Arduino供电 lm7809.pdf
Arduino开发板 Mega 168 1 数据采集,逻辑控制,输出控制 见攻略
L298N控制板 1 大电流输出,用于控制线圈磁场 见攻略
电阻 100K
2K
2
2
用于数据采集电路 这个不需要了吧
多圈电位器 10K 2 用于设置空载时的电压。
需要精确设置
dwq1
调节电位器 10K 2 用于调节位置,
精度要求不高
dwq2
导线 最好是芯硬一点的 若干
杜邦头 若干 线多的时候,用这个接插比较方便 dbt
线圈骨架 D32*D15*H18 4 用来绕线圈 gj
漆包线铜丝 直径0.27mm 1公斤 绕线圈
洞洞板 最好买3连孔的,好焊 2块 用来焊电路 ddb
乐高颗粒 齿轮,连杆等 若干 用来搭一些简单结构
圆环形黑磁铁 145*80*20 1个 产生斥力让浮子悬浮 请咨询幼儿园小朋友
钕铁硼强磁 D15*4mm
D30*2mm
D31.7*19.1*3.2mm
1
1
1
用来组装浮子 请咨询幼儿园小朋友
一元钱硬币 1 浮子配重 请咨询央行行长
牙医专用石膏 1公斤装 1 做陀螺造型用 请咨询牙医或骨科大夫
指甲油 古铜色 1 陀螺上漆 请咨询您的mm
好了,以上就是所有需要的材料,下面插播花絮几则:
1,在电路图里,有两个LM358放大器,于是我一开始蹭蹭的就焊了两块上去,后来才知道,这个LM358有两路放大器的,焊一个就够。据圈妈说,这个是原理图,跟器件的真实形状,管脚顺序都未必一样(那个是PCB图)。好吧,新手就是这样….
2.当时为了绕线圈,我在淘宝试过好多关键词,什么线圈轴,线圈,电磁铁芯等等,都没有搜到,只好用乐高的齿轮+轴绕线圈。因为绕的质量不好,调试时吃尽了苦头(振动非常大)再后来,才知道这东西原来叫线圈骨架,买回来重绕,立竿见影的就成功了!
3,我的板子焊好后,得意洋洋的拿去给圈妈鉴定。圈妈惊呆了,作为一个资深业内人士,这么多年来新手见得多了,但是焊的这么丑的真是第一回见:布局不合理,导线满天飞,而且还有各种虚焊连焊,简直可以当反面教材了。唯一欣慰的是能闻到点烤肉味,让人食欲大开。
唉,为了不影响圈圈,我一直在一个阴暗的跑步机架子上焊东西,这样就算不错了,至少运行还蛮稳定的,请欣赏漫天的飞线:
新手焊的板子

新手焊的板子

磁悬浮的故事(下) – 动态磁悬浮

今天接着上次的内容,继续分享动态磁悬浮。

话说恩绍大定理问世以后,在很长的一段时间内,如果某个物理学家宣布要制造磁悬浮,一定会受到同行们的羞辱,因为这个跟永动机一样是不可能的。可惜的是,有无数的民间“科学家”不认得恩绍,更不知道什么大定理小定理,他们日复一日的做各种尝试。奇迹往往就这样产生了,1993年美国的一位叫罗来.哈里根(Roy Harrigan)的民间发明家申请了一项磁悬浮的专利。玩过陀螺的人一定都注意到一个现象:静止的陀螺是不可能直立的,但是只要旋转起来,就能保持平衡。哈里根同学的方法就是这样,虽然静止的磁铁不能保持稳定,但是可以做成一个陀螺,让它旋转起来就可以保持悬浮状态。

后来有两位无耻的物理学家(美国拉斯维莫斯国家实验室,所以大家也别相信美国的所谓社会公德),作为学院派的人物,他们抱着找茬的态度联系了发明家。在亲眼目睹了这个神奇的发明之后,他们骗走了一套陀螺回去研究。之后的事情大家应该能猜到了,他们稍作修改,申请了新的专利,并制作了一种叫Levitron的玩具大赚特赚。这次为了研究磁悬浮,我也特地从淘宝买了一套,只需要15元:

不用电的磁悬浮,但是需要很高的技巧

不用电的磁悬浮,但是需要很高的技巧

说到这里必须多提两句。据专家分析,这种陀螺在磁体上几十毫米的空中浮动,但稳定区域只有4毫米左右,陀螺必须呆在这一看不见摸不着的狭小区域中才能稳定。不仅如此,陀螺的重量必须精确到1%左右,轻则飞出,重则落地。加之陀螺的稳定还随环境温度变化,必须随时调整。使用者还要学会在磁体强烈的斥力下把陀螺转到一定的转速,快了慢了都不能稳定。作为一个成熟产品,我大概玩了一个小时才能掌握让它浮起来的技巧,真不知道这些发明家们经历了多少失败才发明出来的!在此向这些伟大的DIY玩家致敬!

这个不用电的陀螺虽然能悬浮,但是只能保持几分钟(空气阻力)。然后21世纪到了!集成电路,霍尔传感器,钕铁硼强磁….科技的进步让我这样的业余玩家也可以在家做磁悬浮,这就是所谓的站在巨人肩膀上。这次我做了两种磁悬浮:上拉式和下推式。其中用到的一个关键器件是线性霍尔传感器,这种传感器简而言之就是能够感知磁场的大小:

线性霍尔传感器

线性霍尔传感器

这种传感器的安装要非常小心,因为它测量的是通过那个小小的平面的磁通量,如果磁场和表面平行,那么再强的磁场也测不出来。另外这里必须用线性霍尔,而不是开关型霍尔,我选用的型号是UGN3503。

有了传感器,其他的事情就好办了。例如上拉式磁悬浮,如果检测到磁铁向下运动,就加大电流把它吸上来;反之如果向上运动,就减小电流让它下落。当然这里面也需要一些编程上的技巧,我后面会介绍PID算法原理。

上拉式磁悬浮原理图

上拉式磁悬浮原理图

下推式悬浮原理很类似(其实两种悬浮我用的是同一块电路板),但是需要横竖两个方向共同合作。以一个方向上的截面为例:

下推式磁悬浮原理图

下推式磁悬浮原理图

它的原理是:霍尔传感器在浮子的正下方,当检测到浮子向左运动时,两边的线圈一个吸一个拉,把它推向右;反之如果浮子想右运动,那么两个线圈的电流都反向,把它推向左。用前后左右共四个线圈,两个霍尔传感器配合,就可以把浮子稳定的悬浮住。

至于让浮子旋转,我参考的是鼠笼式电动机的原理,基本上是依据楞次定律,制造一个旋转磁场,以此让浮子无接触的转动。这个实验没有成功,我觉得主要是因为线圈的电磁场随距离衰减过快,无法驱动陀螺。不过这次实验倒是让我学习了一些数字电路的知识,改天也会总结一下发上来。

鼠笼式电动机原理

鼠笼式电动机原理

有了磁悬浮的基础,可以有一些很酷的应用。你可以想象一个悬浮的无线供电灯泡,或者一个悬浮的广告灯箱。有一家叫Crealev的荷兰公司专门做磁悬浮产品,效果非常酷,看下面的产品图:

悬浮台灯

悬浮台灯

悬浮的儿童不宜

悬浮的儿童不宜

昨天跟一群同事一起去吃烤肉,那些肉特别容易粘在篦子上,贪吃的你一定知道的。同事们开玩笑说,你发明个东西,让肉飘在空中吧,无接触式翻烤。呼呼,这还真是个有意思的创意!

好了,磁悬浮的背景故事说完了。还有几句题外话:
上面说起了永动机,不得不再提一下民间发明家们。即使是现在,依然有很多人在孜孜不倦的发明永动机,大部分人当然是浪费时间,但是依然有一些非常有创意的小发明问世,姑且称之为“准永动机”。比如我们常见的自动手表,就是通过人体运动驱动摆锤自动上发条。还有一种神奇的喝水鸟,只要一天的温差超过几度,它就可以不停的点头喝水,很好玩 :)

靠温差运动的神奇“喝水鸟”

靠温差运动的神奇“喝水鸟”

磁悬浮的故事(上) – 静态磁悬浮

先说说这几天都干了什么吧。总结来说,就是又做了一个不成功的实验。在上次的视频里,被眼尖的童鞋们敏锐的指出,这个陀螺转速是越来越慢的。事实上,这个陀螺慢到一定程度之后,会保持稳定的速度旋转,不会停下来。这周的主要想法就是做一个高频旋转的磁场,试试看能不能带动陀螺高速旋转。

使用的方案是:方波+74LS161计数器+74LS138译码器+L298N直流电路驱动器。电路总算是调通了,但是作用力不足以影响陀螺的转速,实在是太肉了。发个截图留念吧,明天就把它拆了。

旋转磁场的发生装置

旋转磁场的发生装置

下面言归正传,把我之前收集的一些磁悬浮相关的知识分享给大家。

自然界的物质有抗磁性,顺磁性和铁磁性三种特性,来自潘多拉星球的阿凡提同学可能对此存有疑惑,不过在咱们地球目前只有这么三种。其中:
抗磁性】几乎是所有物质都有的,它的来源是楞次定律。这个抗磁性非常微弱,大部分情况下可以忽略不记,常温下抗磁性最强的物质是金属铋;
顺磁性】这种物质的主要特征是,不论外加磁场是否存在,原子内部存在永久磁矩。但在无外加磁场时,由于顺磁物质的原子做无规则的热振动,宏观看来,没有磁性;在外加磁场作用下,每个原子磁矩比较规则地取向,物质显示极弱的磁性,金银铝铂之类的金属貌似都是顺磁性;
铁磁性】这个大家最熟悉,一根铁钉在磁铁上蹭几下,它就变成一个小磁铁。具有铁磁性的元素有五种:铁,钴,镍,钆,镝。这些元素的化合物也可能具有铁磁性,咱们最常见的黑磁铁主要成分就是四氧化三铁,还有巨牛无比的钕铁硼(友情提示,那个字念“女”)

说起磁铁,相信是很多小盆友儿时的宝贝,也许大家也曾想过用巧妙的设计让磁铁悬浮起来。例如我构思过这么一个方案,把很多磁铁N极向上贴在一个碗的内侧,然后把另外一些磁铁N向外贴在一个球的外侧,这样是否能悬浮呢?

儿时幻想的磁悬浮

儿时幻想的磁悬浮

下面就是一个著名的恩绍大定理(Earnshaw’s theorem)

这个可恶的家伙早在1842年就用数学证明了:若单靠宏观的静态古典电磁力,稳定的磁悬浮是不可能实现的。这是因为在物件上所承受的各种合力,包括了引力、静电场及静磁场会使物件变得很不稳定。

你可以想象在光滑的坡顶放一个小球,虽然有某个平衡点存在,但事实上是无法稳定的,任意小的扰动都会让它失去平衡。所以大家不要费劲去设计了,像下面这样的磁悬浮列车设计没有外界能源时是无法平衡的:

无法实现的稳定磁悬浮

无法实现的稳定磁悬浮

但是恩绍大定理有个例外,就是前面提到的抗磁性。超导现象就是抗磁性的一个极端情况,因为超导体内部的感应电流可以非常大。实验也非常简单,弄一个超导体的盘子,直接扔一块磁铁进去,它就能稳定的悬浮着。

超导磁悬浮

超导磁悬浮

事实上如果磁场足够大的话,生物体内水分的抗磁性都足以让它悬浮起来。2000年,科学家安德烈·海姆和迈克尔·贝瑞使用磁性让一只青蛙悬浮在半空中,他们因此获得了当年的搞笑挪被窝儿奖(不过他们今年真的拿奖了,因为石墨烯,不得不赞一个,感觉这两个科学家的研究工作都是在玩啊)

用超导体的强大磁场,可以把青蛙悬浮起来

用超导体的强大磁场,可以把青蛙悬浮起来

 我们在常温下有没有可能实现静态稳定磁悬浮呢?答案是肯定的!以我们刚才说的最强的抗磁性金属铋(这个东西居然淘宝有卖的,而且比奶粉便宜)为例。因为它的抗磁性非常弱,所以有网友设计了一种巧妙的方法,先用一组磁铁让悬浮物处于“基本平衡”的状态,这时候微弱的抗磁力就可以让悬浮物稳定的平衡了。看下面的图:

用铋实现的常温下 稳定磁悬浮

用铋实现的常温下 稳定磁悬浮

另外一个例子是石墨烯,这个东西轻飘飘的,也可以在常温下悬浮。下面这个图里,四块磁铁是N对S这样分别吸住的,据说国外有人用铅笔芯削成薄片也可以实现这样的效果。我试了下貌似不行,于是又有人解释说国内的铅笔芯含粘土,不是纯石墨。。。具体怎么样有兴趣的兄弟自己试试吧:)

常温下悬浮的石墨片

常温下悬浮的石墨片

今天晚了,改天再介绍动态磁悬浮。最后发一个展望未来的图,嘿嘿:

想一想都觉得爽啊

想一想都觉得爽啊

盗梦陀螺来啦!

还记得两个月前热映的电影《盗梦空间》吗?那是有圈圈之后第一次去看电影,电影非常酷,我也非常兴奋。也许有人跟我有过类似的经历:早上从梦中惊醒,迷迷糊糊起床,刷牙洗脸吃早饭,然后去学校考试,没想到平时很熟的题目就是不会做,一着急就穿越了,原来还在床上……汗,梦中好像还上了厕所,赶紧检查一下

中国古代也有类似的故事,例如黄粱一梦(典故向下看)。那个道士应该算是Inception的鼻祖了,而那个书生也因为这个梦看透了荣华富贵。嗯?貌似跟电影还挺相似啊,难倒是抄袭了创意?呵呵,跑题了,总之这是一部让人深思的电影。

电影中最让我印象深刻的就是那个陀螺(因为圈圈妈会审查我的博客,所以不能说印象最深刻的是那个小美女造梦师)。看完电影,圈圈妈说:你也做一个不会倒的陀螺吧。

不会倒的陀螺其实很好做,用几块磁铁就可以让陀螺处于竖直稳定状态:

不会倒的陀螺简易版

不会倒的陀螺简易版

这个陀螺叠加上旋转磁场后,就可以一直旋转下去了。但是我觉得这样不够酷,于是跟圈圈妈夸下海口,要做一个能悬浮的陀螺。事实证明,一个已婚已育的IT加班男,最好不要随便吹牛。电影之后我马不停蹄的查阅资料,购买器件,设计电路,制作陀螺,调试程序,到最近才刚刚做成雏形。回头看了下当时的博客,神啊,两个多月过去了。

秀一下做好的陀螺吧,本来想尽量做成跟电影里一样,不过看来手艺一般。这个外形我用小刀整整抠了一晚上,大家给个面子夸一夸吧:

纯手工打造的盗梦陀螺

纯手工打造的盗梦陀螺

这是悬浮状态时的陀螺截图:

悬浮状态的盗梦陀螺截图

悬浮状态的盗梦陀螺截图

有兴趣的同学可以进一步观看视频:

第一次悬浮成功的时候,还真有一种恍然如梦的感觉。也许人生就是这样,有些梦看似遥不可及,真正动起手来其实就是两个月的业余时间。当然,搞不好这个作品只是在梦中实现的,希望明早醒来的时候,这个玩意儿还在我的桌子上 :)

=============传说中的昏鸽线==================
从百度贴一段典故,供半文盲小白们查阅:

唐朝时期,一个书生姓卢,字萃之,别人称之为卢生。

一年,他上京赶考,途中在邯郸的旅馆里投宿,遇到了一个叫吕翁的道士,并向他感慨人生的穷困潦倒。吕翁听后,从衣囊中取出一个枕头给卢生,说:“你晚上睡觉时就枕着这个枕头,保你做梦称心如意。”

这时已晚,店主人开始煮黄米饭。卢生便按着道士的说法开始睡觉,他很快睡着了。在睡梦中,他回到家中,几个月后,还娶了一个清河的崔氏女子为妻,妻子十分漂亮,钱也多了起来。卢生感到十分喜悦。不久他又中了进士,多次层层提拔,做了节度使,大破戎虏之兵,又提升为宰相做了十余年。他先后生了五个儿子,个个都做了官,取得了功名,后又有了十几个孙子,成为天下一大家族,拥有享不尽的荣华富贵。然而到了八十多岁时,他得了重病,十分痛苦,眼看就要死了,突然惊醒,才知是一场梦。

这时,店主煮的黄米饭还未熟。卢生感到十分奇怪地说:“这难道是场梦?”吕翁听了便说:“人生的归向,不也是这样吗?”

经过这次黄粱一梦,卢生大彻大悟,再不去想进京赶考了,反而进入深山修道去了。

磁悬浮预告篇

有一个月没有更新博客了,最近发生很多事情,晕头转向….不过可以肯定的一点是,真正的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的兄弟们,一定要把电烙铁,热胶枪,强磁等东西放到孩子们够不到的地方。顺路想起一个故事:当年在学校的时候,曾经拆过一个硬盘,里面有两块钕铁硼强磁;我和一个叫“大马猴”的同学决定用它夹前排某同学的耳朵;我们一人拿一块,本来只想轻轻夹一下,结果还很远的时候就“啪”的吸上了。这个可怜的家伙直接跳起来暴走。。。。呼呼,让你上课睡觉!:)

神奇的电机们

前几天有几个小朋友给我发邮件,说是打算自己动手设计电路和机械结构来制作魔方机器人,其中提到了用步进电机来旋转魔方。

说来惭愧,电子电路和嵌入式我还真是门外汉,连步进电机都没玩过。看他们如火如荼的进展着,我也心痒痒的,迅速在淘宝上订了一个步进电机。这几天查了点资料,总算对步进电机有了一点了解。

想起给小爱选电机的时候,发现电机的种类真不少,常见的有:直流电机,舵机,步进电机和伺服电机。这是按原理分类的,如果考虑一些附件的话,又有减速电机,直线电机等等,看的我眼花缭乱。这里稍微总结一下,以供跟我一样的初学者参考。

直流电机
小时候经常拆东西的破坏大王们,最熟悉的就是这种电机了,刮胡刀玩具车里都有这个。只有两根线,通过电压来调节转速,把电池反过来接,电机就反向旋转。破坏力更强的一定也知道,里面一般会有电刷和几个转子,还有两块永磁铁,原理就不介绍了。
优点:控制简单,还没学物理的时候就知道怎么玩了
缺点:不能精确的控制旋转角度和速度

舵机
现在终于明白这种电机为什么叫舵机了。大海航行靠舵手,舵机一般用来控制角度,所以经常用来航模和船模上。这种电机内部其实也是普通的直流电机,区别在于加上了一个小电路,用一个电位器(模拟型舵机)来读取电机的当前转角,并不断的调节直流电机两端的电压来让这个转角维持在设定值。一般来说,舵机都会带一个齿轮箱,用来提高精度和扭力。
优点:可以精确控制角度
缺点:角度范围有限,一般小于180度,不能连续旋转,不能设置速度

步进电机
从名字就可以看出来,步进电机是“一步一步”旋转的。例如我买的电机步距角是1.8度,按照指定的时序发送脉冲信号,每收到一个脉冲电机就旋转1.8度。你想让电机转5度?抱歉,这是不行滴,换一个不同步距角的型号吧。另外,通过控制发脉冲的频率,就可以控制步进电机的转速了。哇,角度和速度都可以控制,这下貌似完美了。先别激动,因为步进电机是一个开环系统(简单的说就是无反馈),很可能会发生失步或者越步的现象。当脉冲发的太快或者负载太大的时候,电机还没反应过来,下一个脉冲就到了,这就失步了;当电机带动的转子惯性很大时,脉冲停止后,转子可能还会继续转动,这就是越步了。
优点:角度和速度都可以控制
缺点:失步或越步

伺服电机
完美的电机终于出现了,给步进电机加上伺服电路,检测它是否转到了指定的角度,这就是伺服电机了。一般是靠电机屁股上的一种编码器来读取角度,这玩意儿据说非常精确,当然,这个东西如果价格再便宜点就真的完美了。
优点:角度和速度都可以精确控制
缺点:价格高,控制最复杂
值得一提的是,乐高的NXT系列,用的就是伺服电机,加上开发API接口后,控制非常方便!

对于以上几种电机,如果想用程序控制的话,都需要加上控制器和驱动器。其中控制器一般可以用单片机,相当于发送时序指令给电机。对于小功率的电机,其实用控制器就可以带动了。但是对于功率较大的电机,就需要加上驱动器。驱动器可以简单理解为功率放大器,接受控制器的信号,然后输出大电流给电机。

另外两个概念:减速电机是通过齿轮箱或蜗杆给电机减速,用来提高扭矩;直线电机是通过丝杠,把电机的转动变成丝杠的平动,一般用来做推杆。

倒腾了一晚上,终于用我的Arduino开发板实现步进电机正转和反转了。之前在小爱成长记里写过直流电机舵机的控制,周末整理一下,把步进电机的控制也加上。至于伺服电机,等以后用的上的时候再研究吧 :)

悲剧的一周

上周夸下海口,说准备做一个两轮的平衡小车。当时的想法实在是非常肤浅:把手机捆在NXT身上,不断的向NXT发送当前的倾斜角度,NXT根据角度进行调整。当小车向前倾的时候,轮子就向前滚,小车向后倾时,轮子就向后滚。同时根据角度倾斜的大小来设置轮子的滚动速度。

按照这个思路开始搭建,因为手头的乐高颗粒严重不够,只好从萝卜头身上割了点肉下来,即使这样也只能用小件拼大件,最后搭了个像怪物似的“两轮平衡小车”:

未成功的两轮平衡小车

未成功的两轮平衡小车

细心的同学可能发现小车的背后有个亮度传感器,这个是后话,等会儿解释。最初我的想法是手机通过蓝牙和NXT连接并控制电机运动。HTC手机控制NXT的代码如下(其中Timer设置的时间间隔是50ms):

private Nxt nxt;
private void ConnectButton_Click(object sender, EventArgs e)
{
    try
    {
        nxt = new Nxt();
        nxt.Connect("COM9");
    }
    catch (Exception)
    {
        nxt.Dispose();
        nxt = null;
    }
}

private void nxtTimer_Tick(object sender, EventArgs e)
{
    if (nxt != null)
    {
        try
        {
            GVector gvector = mySensor.GetGVector();
            //1.75 is the fix number for center line
            double gz = gvector.Z - 1.75;

            sbyte power = Convert.ToSByte(-8 * gz);

            nxt.SetOutputState(MotorPort.PortB, power, MotorModes.Regulated,
                MotorRegulationMode.Speed, 0, MotorRunState.Running, 0);
        }
        catch (Exception) { }
    }
}

冒着被丈母娘训斥的危险折腾到半夜,终于完工了。一般来说,工作的完成意味着悲剧的开始:这个小车反应非常迟钝,先躺到地上,然后轮子才开始动,就像个耍赖的小P孩。我试过把50ms的Timer调的更小,但是这时候手机已经处理不过来,反而更慢了。

本来想把这个失败的作品马上拆了(萝卜头的胳膊还处于脱臼状态),但是有点儿不甘心。于是第二天又想了个“好办法”:也许是蓝牙传输太慢,我能不能根据倾斜角度来改变屏幕的颜色,然后NXT用亮度传感器通过读屏幕颜色来控制电机呢?于是脱臼的萝卜头又被拆掉了一个传感器,凑成了这样一个小车:

背着手机的小车

背着手机的小车

用来改变屏幕颜色的代码如下:

private void UpdateSpeed()
{
    GVector gvector = mySensor.GetGVector();
    int gray = Convert.ToInt32(256 * (gvector.Z + 9.8) / 19.6);
    if (gray < 0) gray = 0;
    if (gray > 255) gray = 255;

    this.BackColor = Color.FromArgb(gray, gray, gray);
}

再次折腾到半夜。事实证明,变色的反应速度比蓝牙要快一点,但还是不足以让小车保持平衡。小车吱吱嘎嘎前后晃动几下,就倒在了地上。这个平衡小车的尝试到此宣告失败。失败的原因总结如下:
1,小车重心太高,以至于倒下的速度太快,这个因为零件太少实在没办法
2,数据反应速度太慢,经我测试,WM手机+C#的最快反应速度只能到50ms,对于平衡这样的工作来说实在是太漫长了

搭车再提供一项悲剧,我用了两年的笔记本坏掉了,虽然还能凑合用,但是显卡貌似没有绿色了。没错,这个就是315曝光的HP笔记本,从症状判断应该是显卡损坏,坏掉的时候正好过了保修期几天…..

昨晚拆性大发,把这个烂笔记本拆了个七零八落:

臭名昭著的HP Presario笔记本

臭名昭著的HP Presario笔记本

拆完发现主板的显卡是集成的,没啥好玩的,只好又装回去。还好,重新装好后只剩下两颗螺丝,开机居然还可以使用,创下我破坏史上的最低纪录。

这就是一周总结了,奋战了三个晚上,没做出啥成果,只能供大家娱乐一下了。后来在网上搜了一下,还真有NXT的两轮平衡小车,用亮度传感器+两个电机,有兴趣的同学自己去研究一下吧:

http://www.nxtprograms.com/segway/index.html

NXT两轮平衡小车

NXT两轮平衡小车