1.电池一定要小心接,最好反复确认自己理解了电源部分是怎么接线的,然后再通电;否则不能随便通电,以免短路起火或发生爆炸。
2.对于新手来讲,一定要认真阅读理解本教程,不能一目十行不仔细阅读文字说明只看图片,这将会导致很多步骤理解不到。
3.在碰到不懂且说明书上没有的内容时,一定要善于用百度进行搜索且多多尝试。(也可以在群里问,推荐在群里提问!)
4.如果机器人运行不正常,首先要检查电源,或者将电池充电试试,初学者很容易买到新电池没电了也不知道,所以首先充电保证电量充足,很可能问题就解决了。
最新代码在这里:https://github.com/Allen953/Baize_H1mini
国内用这个地址更快:https://gitee.com/li9535/baize_-h1mini
实际上这个机械结构是国外老哥做的一款arduino六足机器人。
这里我们把他改造成arduino版本的,提供更多丰富的功能。目前主要用arduino和ros两种软件平台来做,可以用于学习arduino或者ros编程,同时也可以将ros于arduino结合。
在这个六足机器人的制作中,我们摒弃传统的开发板+舵机驱动板的方式。开发板+舵机驱动板的方式一个方面是集成度不高,杜邦线接线麻烦且可靠性差。另一个方面,两块板子成本加起来也要将近200块,实在是浪费。所以我们自己做了两版舵机驱动板,用esp8266或者esp32做主控,更低的成本,更强大的性能,更丰富的功能且支持WiFi无线遥控,实在是香!他们分别是采用esp8266做主控的Baize_Servo8266和采用esp32做主控的Baize_Servo32,如下图:
实物图
两个版本的机器人外观如下图所示:
在开始制作该项目前,最好将所有的资料先下载到自己的电脑上,你需要按照以下步骤来下载该项目需要用到的全部资料:
首先访问项目网页:GitHub - Allen953/Baize_H1mini
为了方便访问和下载,我把仓库同步到gitee了,下载速度更快。这里是地址:https://gitee.com/li9535/baize_-h1mini
接着,你的浏览器会开始下载资料,左下角会出现正在下载的资料压缩包并显示已下载数据大小:
耐心等待下载完成并解压压缩包即可提取出完整的数据。
重要提示:自己使用打印机打印零件时,对于新手来说肯定会由于参数设置问题将零件打废,因此要仔细配置参数确保参数正确。对于需要添加支撑的零件,一定要记得添加支撑。
首先要找到零件的图纸,打开我们刚刚下载的整个项目资料文件夹,找到如下路径1.3D model\Baize_HexapodRobot_Arduino_3DPrinter\STL Files,可以看到该文件夹下有很多可以打印的STL格式图纸,如下图红框中所示:
接下来就可以开始打印了,我这里用的是拓竹P1P型号3D打印机,因此下面的打印教程也是用该款型号打印机制作的,如果你用的其他型号的3D打印机,则可以一次做参考并参照自己3D打印机的说明书进行打印。
下载Bambu Studio:http:bambulab.com/download
登录Bambu Stidio,新建或打开一个项目。
添加一个模型进行模型切片。
完成模型切片后,选择打印机并发送打印。
打印板类型选择纹理PEI打印板
打印材料是啥? PLA 3D打印材料一般有PLA和ABS两款材料
这里需要选择打印材料,打印机材料一定要选择正确,否则肯定打印失败。
C4和C5都是10uF
R8是10K电阻
1..舵机x18
2.电池
电池要买18650大功率电池,单节电池是3.7V左右(之所以说是3.7V左右而不是3.7V是因为电池电压随着使用过程会发生改变,当单节电池充满电时大多数在4.2V左右,当电池放电到没电状态之后,电池电压会下降到3.7V甚至3.2V,电池电压下降到3.2V的时候就要充电了,如果电池电压下降太多,可能会发生永久性的损坏充不了电,因此在使用过成功要及时为电池充电以免电池损坏),这里我们两节串联起来使用,加起来就是7.2V左右。
3.螺丝等标准件
螺丝一共有以下几种:下面是螺丝型号及数量
M2*30——36个
M2*8——12个
M2*15——6个
M2*5——42个
圆柱销φ4*12——18个
4.LM2596S压降模块
这个压降模块可以将2节18650电池的7.4~8.4V电压降至5V电压,由于我们的板子供电电压是5V,而且舵机供电电压也是5V,因此需要用到这个模块。
下面是零件的实物照片
1.主控板x1
Baize_ServoDriver_esp8266或者Baize_ServoDriver_esp32
如下图左边为 Baize_ServoDriver_esp8266;右边为Baize_ServoDriver_esp32
建议arduino版六足用Baize_ServoDriver_esp8266而ROS版六足用Baize_ServoDriver_esp32。
我们这里是做arudino版,所以就默认为Baize_ServoDriver_esp8266。
2.机械零件
链接:https://github.com/Allen953/Baize_H1mini
在如下目录下即可下载到
找到下面的φ4*12的金属圆柱销,然后将圆柱销用力塞进或者敲进打印的零件里面
如下图所示,就证明装好了。
首先,需要找一个18650电池的电池盒,由于电池盒上面直接引出来了两条线,这两条电源线是先输入到LM2596S这个压降模块的,需要先降压到5V。由于直接把电池盒上面的两条电源线焊接在LM2596S模块上那就进行了通电,而无法断电,因此需要一个开关。我们现在的做法是在电池的输出端和LM2596S的输入端各焊一个插接口的电源线,这样可以通过插拔的方式给整个电路通电和断电,起到开关的作用。
接着需要焊接LM2596S的输入和输出线
LM2596S压降模块的作用就是把电压降至5V,电流从电池里面出来的时候是7.4V,进入该模块的时候也是7.4V,从该模块出来的时候,电压就变成5V了,就可以输入到机器人板子上了。整个电源部分工作原理如下图所示,LM2596S模块的IN+表示输入正极,IN-表示输入负极,也就是电池的电从这两个地方输入到模块;OUT+表示的是输出负极,OUT-表示的是输出正极,输出的5V电压从这里流出去。
电源线红色是正极,黑色是负极。
接下来,就可以直接把电池的输出接口插在LM2596的输入接口了,这个时候先别着急把LM2596S模块的输出接口接到舵机控制板上面,如下图所示,红色打叉号的两条线先断开别接上。因为LM2596S模块的输出电压我们还没调节,默认情况下LM2596S模块的输出电压太高,我们如果直接将LM2596S的输出线路接入舵机控制板,则会烧毁我们的舵机控制板,因此需要现行调节LM2596S模块的输出电压。
如下图所示,首先需要将电压调至5V。接着再给机器人通电,如果通电测试正常,则可以将机器人电源板固定好。
固定电池:
固定压降模块,注意别让该模块挡住主控板的micro usb口,我这里就挡住了口,不方便烧录代码了。
固定主板:
接线的话,按照如下图所示进行接线即可。就是右腿第一个舵机接到板子的第一个口上面,注意有的板子是从0开始有的板子是从1号开始,如果板子上面的舵机标号从0开始就从0开始接线,如果板子上面的舵机标号从1开始就从1开始接线。
这一步主要是在arduino ide里面添加esp8266的硬件支持,我们默认安装完arduino之后,arduino里的开发板选项是没有esp8266的,因此需要添加硬件支持,让arduino ide可以支持esp8266开发板。首先打开Arduino IDE,点击文件——首选项
接下来会跳出下方界面,点击箭头1所示的那个白色小方框,接着会跳出箭头2所示的小窗口,将该网址——http://arduino.esp8266.com/stable/package_esp8266com_index.json,复制粘贴到小窗口里面,如图3所示,保证这个网址在里面就可以了,然后点击箭头4所示的好即可。
接下来,点击Arduino IDE上方的工具——开发板——开发板管理器
接着会跳出来如下窗口,在箭头1所示的窗口中输入esp8266并敲下回车按钮进行开发板搜索,接着将会出现图中的esp8266选项,点击箭头2所示的版本选择最新的版本,根据箭头3点击安装即可开始安装,等待进度条完成安装即可。
接着,我们在工具——开发板选项里面,就可以看到esp8266开发板了,我们选择如下图所示的开发板即可。
在配置了开发板之后,还需要配置我们项目需要用到的库文件,这样我们的程序代码才能正常编译烧录。
编译是程序编程机器代码的过程,计算机只能直接理解机器代码,我们编写的程序它是不能直接理解的,因此我们写的程序都需要进行编译计算机才能理解。
烧录是将编译后的程序从电脑上上传到机器人板子上面的芯片里面的过程,只有将程序上传到机器人的板子上面,程序才能正确执行并且控制机器人运行。
找到如下文件夹:
将其复制到自己电脑的如下文件夹里面:
烧录代码前,首先根据如下步骤,一步一步通过文件路径找到我们需要的代码文件。
首先打开3.Software这个文件夹
然后打开Arduino主程序这个文件夹
接着再打开第一个Baize_HexapodRobot_Arduino文件夹
然后找到Baize_HexapodRobot_Arduino.ino这个程序文件,找到之后可以双击直接打开。
打开后的界面如下图所示:
接下来,我们选择开发板类型,然后通过软件的验证功能看程序代码是否有格式错误。
选择开发板类型如下:
然后点击软件界面的验证按钮,可以看到如图,下面出现编译完成的提示,说明我们的代码没有问题,并且已经通过了编译。
接下来,我们将开发板通过Micro USB线连接到电脑上。
注意:当通过Micro USB线连接开发板和电脑时,开发板上不能连接任何舵机,否则可能烧坏电脑主板。
接下来,点击上传按钮,即可把程序上传到开发板上面。
如果你用的是Baize_Servo32板子,则使用下方的程序进行烧录。
我们希望当我们把关节装在机械零位的时候,舵机刚好也在他的机械零位。
例如,我们希望当舵机的转角在 90 度的时候,机器人的姿态如下图所示:什么是关节标定以及为什么需要关节标定呢?
当我们把所有关节垂直安装时,我们希望刚好舵机这个时候在 90 度(在程序中,我们把
0-180 度映射到-90 到 90 度),而正常情况下会有误差,我们需要测定这个误差,每次运动的
时候作为补偿,这样关节就能正常运动到零位了,这个过程就叫做标定。
正常情况下大部分机器都是需要标定的,尤其是精确控制,而如果你的运动精度不需要
那么精确,其实不标定也可以。但是为了达到更好的运动效果,我们这里需要对机器人关节
尽心标定。
那么我们首先进行关节摇臂的固定,然后进行关节标定。在烧录了我们的固件之后,正
常情况下,机器人在上电的一瞬间,会驱动所有的舵机转到 90 度。因此首先给机器人上电,
然后听到关节舵机转到 90 度的位置之后,就可以给机器人断电了,接下来这个时候,我们按
照如下的姿态,就可以将机器人的关节舵机的摇臂安装上去了。
在测试前,首先需要给你的手机安装一个遥控软件并且进行相应的设置,我们这里安装的遥控软件名字是NeTorch,如果你的应用市场可以直接搜到的话,可以直接在应用市场进行安装。
如果应用市场搜索不到的话,可以将这个软件安装包发送到自己的安卓手机上,然后再进行安装。
软件安装包位置如下图所示,首先找到4.Android app这个文件夹。
如下图所示的NeTorch.apk就是我们需要找到的手机遥控软件安装包,你可以通过QQ或者微信将安装包发送到手机上进行安装。
安装之后打开如下图所示:
接下来,需要你用自己的手机开个热点。
热点名字(SSID)是:Baize
热点密码(PASS)是:baizerobot
接下来需要给机器人通电,机器人通电之后,可看到主板上有个蓝灯亮起来了。
如果蓝灯过几秒之后变为闪烁状态,则代表着机器人主板已经连接到了手机热点,网络连接正常。
接下来可以设置手机遥控APP进行遥控了。
首先需要你查看一下机器人的IP地址,点击个人热点之后,可以看到有一个设备连接了你的手机,这里可以看到如下图所示界面,我们可以看到这个IP地址为:192.168.43.227,这里需要你先记下这个IP地址。
然后打开Netorch软件界面,进行相应的设置:
然后我们设置按钮:
首先点击按钮模式,接下来长按按钮就可以进行按钮的设置了。我们点开按钮把相应的前后左右设置好,按照如下图完成按钮的设置。
控制指令表如下:
控制指令表
指令 |
动作 |
指令 |
动作 |
a |
前进行走 |
f |
向左横移 |
b |
后退行走 |
g |
向右横移 |
c |
原地左转 |
h |
步态切换 |
d |
原地右转 |
i |
身高切换 |
e |
停止 |
后续会更新更多动作指令!
接下来便可以进行遥控操作测试了,点击一下前进的按钮,是不是已经发现机器人开始前进了呢?
接下来可以愉快的玩耍了。
我们在程序中设定了开机自检程序,主要检测PCA9685的工作状态,如上图所示,如果通电之后箭头所示指示灯每秒短暂闪烁一次,则证明板子上面的PCA9685芯片没有正常工作,如果每秒闪烁两次,则说明板子下面的PCA9685芯片没有正常工作。如果不闪烁并且常亮,而且过一会儿之后一闪一闪,并且机器人做出前进准备动作,则说明板子已经连接到手机热点。
到这里 Arduino 版的六足机器人就算是做完了,太棒了!赶紧去遥控遥控玩玩吧!
代码:https://gitee.com/li9535/baize_hexapod-robot
最新代码在这里:
Arduino版:https://github.com/Allen953/Baize_HexapodRobot_Arduino
ROS版:https://github.com/Allen953/Baize_HexapodRobot_ROS
实际上这个机械结构是国外老哥做的一款arduino六足机器人。
这里我们把他改造成ros和arduino两个版本的,提供更多丰富的功能。
下面我们在这个项目后面加上“_arduino”和"_ros"的后缀来区分arduino和ros两个版本。
再在后面加上"_v1"来表示版本号。
例如:“白泽六足机器人_arduino_v1”就是表示这个是arduino版本的第一版。
目前主要用arduino和ros两种软件平台来做,可以用于学习arduino或者ros编程,同时也可以将ros于arduino结合。
最初这个机器人用的也是arduino mega2560当主控,外加一块舵机驱动板,如下图
在新版本中,我们摒弃传统的开发板+舵机驱动板的方式。开发板+舵机驱动板的方式一个方面是集成度不高,杜邦线接线麻烦且可靠性差。另一个方面,两块板子成本加起来也要将近200块,实在是浪费。
所以我们自己做了两版舵机驱动板,用esp8266或者esp32做主控,更低的成本,更强大的性能,更丰富的功能且支持WiFi无线遥控,实在是香!
他们分别是采用esp8266做主控的Baize_ServoDriver_esp8266和采用esp32做主控的Baize_ServoDriver_esp32。
如下图,都是开源的,点击项目名称即可跳转到开源链接。
实物图
两个版本的机器人外观大致如下图所示:
持续更新中!!!!!!!
Baize_ServoDriver_esp32 一块
1.主控板firefly rk3328(支持ubuntu18.04)或者 Nanopi k2 x1
2.舵机驱动板 x1
例如这个链接:
https://item.taobao.com/item.htm?spm=a230r.1.14.106.49f870adIwVBvR&id=650939352245&ns=1&abbucket=11#detail
3.3D模型(自己用3D打印机打印)
链接:https://pan.baidu.com/s/1PqPVgCxGNF1Ukh1rzuvQqQ
提取码:tjld
复制这段内容后打开百度网盘手机App,操作更方便哦
4.舵机 x18
5.轴承 x18
624ZZ
6.电池+充电器+电池盒
两节电池,一个充电器一个双槽串联电池盒
电池要买大功率电池,7.4V的大电流电池。
例如:
https://item.taobao.com/item.htm?spm=a21bo.21814703.1997525049.2.5af911d9oeX6fz&id=623681078513
Nano pi k2安装ubuntu core 16.04
为Nano pi k2的ubuntu core 16.04安装xfce桌面
为Nano pi k2安装Ros kinetic