宜昌老张

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

0
阅读(3741)

 

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

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

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

 

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

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

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

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

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

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

    “步伐同步”子程序。

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

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