`
作者Smudger_WTH利用3D打印和基于Arduino的机器人程序开发一个能够行走,也能够变成机器小车的“变形金刚”;其通过安卓手机的蓝牙连接进行控制。作者为其起名为蜘蛛机器人(Spiderbot),下面我们就来看看这只变形蜘蛛是怎么炼成的。 第一步:准备工作Arduino Nano
12个EMAX ES08MA II舵机
Adafruit 16信道12位PWM/伺服驱动
蓝牙HC-05模组
电机驱动L293D
4个300RPM 6V N20直流电机(带橡胶轮胎)
Hobbywing UBEC-8A2-6S 电子调速器(UBEC)
Wild Scorpion 7.4V 2200mAh LiPo电池和对应的电池接头
2个LED灯
线材等
结构材料:
50枚M2 x 10mm圆头螺丝
30枚M1.2 x 6mm沉头自攻螺钉
少量扎带
3D打印组件
第二步:3D打印结构本项目的大部分结构部件都是利用3D打印技术制作完成的,具体的文件点击3D_Print_Parts_STL.rar
下载,其中包含8个独立的文件,打印数量如下: base.stl 基板x1
cover.stl 盖板x1
coxa.stl 髋板x2
coxa_mirror.stl 髋板固定x2
femur.stl 股板x4
motorMount.stl 电机安装板x4
tibia_mirror.stl 胫板固定x2
第三步:安装结构注意电机和舵机的方向。
第四步:制作PCB并焊接电子件电子组件的连接图如下,我们需要为这些连接制作一块PCB板。
PCB板的设计(下载PDF文件),其尺寸为6cm x 9.5cm。
制作成功的PCB。
安装各个部件,这里安装了6条线:2条5V、2条接地、Arduino Rx<->HC-05 Tx和Arduino Tx<->HC-05 Rx。
安装开关。
将两个LED分别串联一个电阻后并联起来,它们将作为机器人的两只眼睛。
最后,将电子调速器(UBEC)连接到6V输出,并将UBEC的输出连接到16信道伺服驱动。
第五步:连接舵机和电机将舵机连接到板上。舵机有三条线,其中棕色是地线,红色接V+,黄色是PWM。
为了和后面的程序匹配,这里选择的连接方式是:
左前腿舵机是0,1,2;
右前腿舵机是4,5,6;
左后腿舵机是8,9,10;
右后腿舵机是12,13,14;
另外,接口3,11,15空接;接口7用于LED的PWM调制。
然后将控制4个轮子的4个电机和PCB上的电机焊接起来,一共8个接口。
第六步:写入代码并调试这里的代码需要用到Adafruit_PWMServoDriver舵机驱动库,其安装方法点击这里查看。
库安装完成后,就可以开始编译代码了。另外注意一点:在使用USB为Arduino Nano写入代码时,注意不要将其它供电组件连接到Arduino上。点击
下载代码。 设备启动时,所有的舵机都会回归到“0”位点,最后会呈现下图的模样:髋板与基板成45度角,股板与髋板成30度角,而胫板竖直略向外。如果样子不同,那就需要进行适当的调整,调整过程中不需要断电。另外,你也可以通过调节Arduino代码中的偏移值对其进行校准。
接下来在底面固定电池。
第七步:调试机器人的运动你可以在Arduino代码的主循环函数中单独调用单个函数来对机器人进行调试。
void loop() {
//去掉函数前面的双斜杠即可单独调用该函数
//forward();
//backward();
//left();
//right();
//vehicle();
}
如果运动方式不对,进行相应的调节即可。在汽车模式下,机器人的腿应该像下图一样折叠起来。注意折叠起来之后不要对舵机的运动构成阻碍,一旦你听到异常响亮的噪声,很可能是舵机负载过大,这时应该切断电源。
至于机器人的步态(creep gait),看起来有些奇怪,但机器人运动学不是本项目的主题,详情你可以点击这里了解。简单来说,就是在一只脚抬起的时候,另外三只脚必须在地面以保持平衡和稳定。你也可以在Arduino代码中对步态进行调节,让它看起来更优雅一点。
最后你也可以修改代码中mleft()和mright()函数中的参数修改汽车模式下机器人左转右转的角度。
第八步:安装安卓软件并连接蓝牙本项目的安卓程序是作者自己编写的,界面比较简单,只有左下角的运动控制和右下角的变形按钮。另外需要注意的一点是,如果你没有进行修改,该蓝牙设备的初始名字应该是HC-05,初始密码是1234.
本安卓程序的源代码在
下载,编译好的APK文件则可点击这里下载。 第九步:安装盖板,完成将LED穿过盖板上的孔,盖紧盖板就完成了,接下来开始试玩,跑起来还真够奇葩的!
`
54