【原创】Arduino与LEGO结合下的自动栏杆 科技系列

宜昌城老张 2012-6-20 2884

按此在新窗口浏览图片

博客文章网址:[url]http://www.eefocus.com/zhang700309/blog/12-02/238201_e57c1.html。 看到街边停车场的自动栏杆随轿车的进出自动升降,于是前去观察,一上一下的,蛮有意思,想想,是否可以做个原型产品娱乐下,所以我就制作了这个Arduino与LEGO结合下的自动栏杆。
这个作品的工作过程是:当红外传感器(图中黄色圆柱状器件)检测到小车到达栏杆前方,栏杆自动升起打开,并保持打开状态一小会,小车通过栏杆处后,栏杆会放下关闭。看看视频:
点击开新窗口欣赏该flash动画![全屏欣赏]
http://player.youku.com/player.php/sid/XMzUwNjk5MDA4/v.swf

判断轿车是否到达栏杆跟前,依靠下图所示红外测距开关传感器,这个传感器的三根线,我把它们接到DFRobot公司的Arduino Xbee传感器扩展板V5 的数字端口5上,黄线接在端口的D引脚,红线接在端口的VCC引脚,绿线接在端口的GND引脚。这个红外传感器的后端有个小旋钮,可以用“一字起”工具旋转,以调节测量距离,我通过调节,把测量距离设为15厘米左右。如果在15厘米内检测到障碍物,则发低电平,否则为高电平。
按此在新窗口浏览图片

完成作品工作过程的Arduino程序:(有详细注释)
/*当红外传感器检测到小车到达栏杆前方,
栏杆自动升起打开,并保持打开状态一小会,
小车通过栏杆处后,栏杆放下关闭*/
#include //声明伺服马达函数库
Servo myservo; // 定义伺服马达对象
int IR=5; //红外传感器连在数字端口5
int IR_State=0;// 红外传感器状态
int flag=0; //栏杆打开或者关闭的标志
//初始化
void setup()
{

pinMode(IR,INPUT); //设置与红外传感器相连的数字端口5为输入端口
myservo.attach(9); //初始化9号引脚来控制马达
}
//循环执行主程序中的指令
void loop()
{
//如果被测物体在设定距离内,红外传感器状态为低电平
IR_State=digitalRead(IR); //读取红外传感器的状态
//如果如果被测物体在设定距离内,并且栏杆处于关闭状态
if(IR_State==LOW && flag==0)
{
myservo.write(0); // 启动伺服电机正转
delay(6000); // 等待6s,让栏杆打开到位
flag=1; //标志栏杆处于打开状态
myservo.write(93); //伺服电机停止
delay(4000); //让栏杆保持打开状态4s
}
//如果如果被测物体在设定距离外,并且栏杆处于打开状态
if(IR_State==HIGH && flag==1)
{
myservo.write(180); // 启动伺服电机反转
delay(5000); // 等待5s,让栏杆关闭到位
flag=0; //标志栏杆处于关闭状态
myservo.write(93); // 伺服电机停止
}
}
前段时间我写了两篇介绍新车间出品的免费Arduino图形化编程软件ArduBlock,它们是:
《新车间Arduino图形化编程软件ArduBlock的介绍(上)》[URL]http://www.eefocus.com/zhang700309/blog/12-02/237994_76dea.html[/URL] 和新车间《Arduino图形化编程软件ArduBlock的介绍(下)》[URL]http://www.eefocus.com/zhang700309/blog/12-02/238093_5e52f.html[/URL] 。目前新车间的这个软件已经有中文版,中文版下载网址:[url]https://github.com/downloads/taweili/ardublock/ardublock-all.jar
。软件安装方法见《新车间Arduino图形化编程软件ArduBlock的介绍(上)》一文。 我使用了一段时间ArduBlock软件,感觉蛮好用,直观形象,编程工作仿佛变成了拼图游戏,一个个模块按照您的逻辑不断“咔咔”地拼接在一起,如果拼接能严丝合缝,就不用担心出现语法错误,但编程逻辑错误,就看您是否经过了适当的编程训练了。
现在我用中文版ArduBlock软件编写图形化的程序,注意看,模块标识和程序注释都是简体中文啊。(点击图片,放大看)

按此在新窗口浏览图片
新车间是一家位于上海长宁区安化路76号的创客空间,网址:[url]http://xinchejian.com/?lang=zh,看视频,了解新车间的情况。
点击开新窗口欣赏该flash动画![全屏欣赏]
http://player.youku.com/player.php/sid/XMzAxMjE2NzY0/v.swf

自动栏杆作品的机械部分是用乐高积木搭建。对于Arduino控制器与乐高电池盒如何连接,舵机与乐高结构件如何连接,可以看《把Arduino与乐高结合起来做创意作品》一文的介绍,网址:[URL]http://www.eefocus.com/zhang700309/blog/12-01/237459_6b7a6.html[/URL] 。至于自动栏杆主体部分的搭建,可通过下面3张图片有所了解。
按此在新窗口浏览图片
按此在新窗口浏览图片
按此在新窗口浏览图片

乐高机械作品的搭建是否成功主要看传动链的设计是否合理可行,从舵机旋转到栏杆升降,这条传动链里一共有三个机构,以动力的传动方向来看,它们分别为皮带轮机构、蜗轮蜗杆机构和四杆机构。所以一个小小的自动栏杆原型作品,不仅要选择电子器件,编写和调试程序,还要完成机构的设计与制作。
[/SIZE]
最新回复 (10)
  • LittleNut 2012-6-20
    2
    有趣,有空去看看
  • 树树808 2012-6-20
    3
    老张的帖子很多是关于工业控制的,呵呵:D
  • 拒绝融化の冰 2012-6-20
    4
    专业。顶 :d
  • ruf 2012-6-20
    5
    这个不错,我打算用NXT仿一个~
  • 拒绝融化的冰 2012-6-20
    6
    车子好给力啊
  • cccsean 2012-6-20
    7
    舵机好眼熟啊,还有电源接口
  • 楚沐猴 2012-6-20
    8
    有趣的小东西
  • mansonq 2012-6-21
    9
    不错啊 和赞的 东西 喜欢啊 加油老张
  • dergott 2012-6-21
    10
    看似简单,背后蕴藏着强大的技术,强悍!偶像级人物老张
  • 宜昌城老张 2012-6-22
    11
    恢复了视频。
返回
发新帖