传感器、舵机、arduino和机器狗-《无线电》2014.11
2014-12-11 09:35:30一片avr atmega8 单片机,只有8kb程序内存和1kb 数据内存,刷了arduino固件,内存就更小了,可以做什么?可能很多初学者会认为用它驾驭一辆智能小车都有点勉强。如果让它同时控制8 个舵机、一个4 路输出具有动态跟踪功能的2 自由度云台,组成一只机器狗,最后还要让小狗和主人互动,做出诸如双腿站立、观察、握手等花样百出的动作,是不是有点强人所难?
10自由度机器狗提起多自由度机器人的核心元件,很多朋友会想到舵机控制板和舵机。如果你想制作具有自主行为的步行机器人,情况就会复杂得多,还要用到主控板和传感器。系统的工作流程是主控板采集传感器信号,经主程序分析以后,决定机器人各个关节舵机的旋转。比如传感器检测到前方有障碍,就应该令腿部舵机停止运转,启用头部云台扫描周围环境或发出后退指令,机器人的每个动作都是在一组舵机的有序运转下实现的。这些动作可以成组编写在主程序里,通过主控板上的i/o 输出直接驱动舵机。但实际情况是舵机数量多了以后,主控板上的单片机就会不堪重负,于是我们就引入了舵机控制板,把涉及动作的部分全部交给这块板子,动作组预先编排并存储在板子里,通过串口调用。这里主控板好比一台计算机的cpu,舵机控制板好比协处理器,两块板子上的单片机相对独立,各司其职。
对业余机器人爱好者来说,8 位单片机的好玩之处在于怎么能从有限的资源中挖掘出更大的价值。如果能用一片单片机完成所有工作,岂不是很有趣?因此第一种方案不失为一种更具创客精神的选择。本文介绍的正是这样一个典型例子,用一块arduino 兼容板控制10 个舵机,与特制的红外传感器组成一只机器狗,而隐藏在这只动作丰富的小狗下面的,只不过是一片avr atmega8。
■ 图1 准备好机器狗的全部材料,开始组装。
未完。。。
全文详见《无线电》2014.11