你说现在搞六足机器人挺热门,12个舵机加Arduino就能搞定,我最近也想试试,主要是给家里的孩子找点事做。毕竟看蜘蛛侠那会儿,托尼给帕克做的外骨骼真帅,但那东西造价太高了,咱们就退而求其次,弄个六足小蜘蛛,能爬能走的,让娃当个侦察兵玩多好。 材料也没啥特别的,Arduino Mega、MG90S舵机一共12个、HC-05蓝牙模块,再配个稳压和电池就行。别看叫六足机器人挺吓人,只要有耐心,家里带娃的都能上手。这既算是物理启蒙,又能锻炼动手能力,比光玩手机强多了。 硬件这块儿其实挺简单,每只脚用两种舵机就行。一个负责前后迈步摆动,另一个负责左右抬腿摆动。把这12个舵机按图装好,齿轮咬合上连杆机构,步态立马就有了。 代码部分我打算分三步走。第一步先试试让单个舵机从0度转到180度,写个最简单的程序让它动起来看看效果。这时候我发现得先搞定SoftwareSerial库,把USB口和蓝牙串口桥接起来才行。这就用到了SoftwareSerial(BT)、BT.begin还有BT.print、BT.read这些函数。 接下来重点说下HC-05模块的使用。我把RX和TX分别接在8号和9号针脚上,然后在setup函数里让Serial和BT都以38400的波特率运行。这里有个关键逻辑:如果主串口有数据进来,就读出来转发给蓝牙模块;如果蓝牙串口有数据回来,也直接回发给电脑。这样就能实现透明转发,手机发什么指令电脑就回什么指令。 到了主控逻辑这部分就复杂了。我在setup里先定义了三条腿的初始角度,也就是InitAngle数组里的三个值。然后在loop里不断循环读取手机发来的指令并执行。比如示例代码里发送的那个“#4P500#5P500”,就是控制1、3、5号腿的前轮小角度推进;“#8P1900#28P900”就是控制2、4、6号腿的后轮大角度推进。 不过要注意指令的顺序得对,先抬后落才能避免卡住。每次执行完动作后我都会延时500毫秒让机械结构反应一下,防止CPU过热导致冲击太大。最后再delay一会儿让CPU休息一下就完事了。