原创 体验乐高NXT机器人之机器螳螂(视频)

2010-11-15 15:01 3656 5 5 分类: MCU/ 嵌入式

a15ff20d-dd6d-427a-8e80-c961bf1f7141.jpg


这个六足机器昆虫有六条腿和一个长长的脖子,而我能找到的最接近的昆虫是螳螂,这并不是说象它,而是由于它的行为象螳螂(这是一个害羞的机器人),所以把这个作品称为机器螳螂。


机器螳螂是个怕羞的昆虫,当它的超声波传感器看到有“动物”接近它时,它会低下头,收缩翅膀,向左或向右转过身去,然后再抬头看看新的方向上有没有“动物”,如果有,又低头转个方向,如果没有,则抬起头,煽动着翅膀骄傲地往前走,直到又碰到“动物”。


看看视频是不是这样的“机器螳螂”:


 


看看螳螂腹部的六腿位置定位装置: 


cb0e05c7-7c05-491e-b8f6-896815061b64.jpg 


为了行走,首先必须正确定位螳螂的六条腿在开始前行时的位置。如果没有这样做,螳螂只是不停地将它的腿往前走,而身子却停留在同一个地方。为了克服这个问题,我添加了一个触摸传感器,使螳螂的腿同步。两个用来行走的电机共享相同的触摸传感器。


看看螳螂六条腿的结构(经典): 


551d47a2-c15b-4763-92ea-5b1f36d97f62.jpg 


再看看实现机器螳螂动作的程序吧,程序注释很详细,点击图片,放大它,看得清楚。


9588806a-8177-4e34-b630-4280617ac832.jpg 


上图的程序样式,我还很少见,两个程序段并行独立运行,只是通过了一个变量名为“障碍物”的布尔变量来相互交流信息,这种在一个程序界面里执行两三个并行独立程序的编程样式在C语言中能实现吗?我以前没做过。是不是NXT-G软件所独有的“利器”,以后我用labview for NXT试试。


在上面主程序中应用了“步伐同步”子程序,用来定位螳螂六条腿开始前行时,使其处于正确的位置。如果螳螂步伐乱了,你可以再执行一下这个子程序,重新协调好它的步伐。


“步伐同步”子程序,点击放大。


80d6b88d-f096-4d49-afad-e4d51d11b9f3.jpg


 机器螳螂作品来源于网址:http://mindstorms.lego.com/en-us/News/ReadMore/Default.aspx?id=136791


点击该网址可以下载作品的搭建手册,这篇文章我写的是学习这个作品的体会,程序请下载(与源网址里的程序不同,一些不重要的程序段,我删去了,并加上了详细的中文注释):



 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /3 下一条