自制蠢萌机器人,有感情的逗猫小帮手!有手就能复刻
不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我
会说话?会跳舞?会逗猫?蠢萌桌面机器人诞生记——
01
桌面机器人功能规划
关于桌面机器人,市面上有现成的成品(除了贵,没毛病),还有很多技术达人的DIY制作,比如稚晖君的这个名为“ElectronBot”的小机器人。
既然设计逗猫的桌面机器人,就得好好设计它的功能:
■ 能有一些肢体语言,简单说就是能做一些动作
■ 能有自己的表情,搭配动作,这样机器人的展现力才更好
■ 能听懂指令,可以进行简单的对话,机器人的标配
■ 虽然说是逗猫的,但也要有更实际的功能,比如联网获取天气、时间等信息
功能规划好了,摆在面前的是个选择难题——机器人的外形做成什么样?
为什么机器人外形会成为选择难题呢?因为机器人的形态还真是挺多的,大类上就有轮式、履带式以及仿生足式等等。
轮式、履带式这两种一般用在工业上做搬运机器人比较多,电控简单,按照既定的路线动作即可。对于桌面机器人来说,如果做成轮式或者履带式的,就有点单调了。所以,还是得上仿生足式的,但仿生足式机器人下属的种类也很多,比如有仿生狗四足和仿生蜘蛛多足的。仿生狗对驱动电机的要求比较高,而且步态复杂,仿生蜘蛛就比较简单一些,而且外形也比较酷炫,所以外形就定为四足仿生蜘蛛。
形态确定之后,就要设计具体的模型了。网上四足机器人的模型开源的已经非常多了,我们没有必要重复造轮子,借助大佬开源的3D模型,根据我们机器人自己的实际需求就可以设计机器人外壳,然后3D打印出来即可。(感谢开源精神,为我们省一把力,为了回馈开源精神,我们这个机器人也会开源,让喜欢机器人的朋友获得更多一份参考。)
02
机器人硬件组成
机器人的外形有了,接下来就是做机器人最核心的电控和功能实现了。根据各个功能的实现来选择相应的硬件:
功能一:如果要机器人完成一定的动作,比如前进、左转、右转或其他特定动作,就需要使用舵机来控制。这个机器人有四条腿,每条腿上有两个关节,每个关节都要单独控制,所以就需要8个舵机,MG90S就是一款很常见的舵机模块,由单片机发出PWM控制指令,它可以迅速转到指定的角度。
控制这8个舵机就需要8个PWM通道,可以使用单片机的PWM接口直接连接,也可以交给舵机驱动模块,只要让单片机通过串口给舵机驱动模块下发动作组控制命令即可,这样单片机就省力了不少。
功能二:机器人的表情,必须上LED显示屏了。为了让机器人更可爱,选用一块1.6寸的400*400分辨率的圆形触摸屏,通过串口与单片机通讯,实现控制命令的下发和数据上传,自带丰富控件,可以简化我们对机器人的设计难度。
功能三:可以对话的语音交互功能。不会说话的机器人是不完美的,所以得让它开口说话。
语音交互有在线交互和离线交互两种,第一种是借助网络实现交互,功能强大,但是成本极高,而离线语音虽然交互内容简单一些,但是对于桌面机器人也足够使用了,比如可以使用LU-ASR01离线语音模块,特别适合DIY语音开关以及语音机器人等产品,支持图形化编程,对小白用户非常友好,新手用起来毫无压力。
功能四:获取天气和时间的联网功能。对于DIY项目来说,使用最多的无线模组就是WiFi了,选用ESP-12模组。有了无线通信功能,以后可以为桌面机器人升级功能,比如远程控制家电,让机器人成为家庭智能管家。
03
机器人核心:微控制器
根据功能需求,选择好相应的功能模块之后,大家有没有发现好像缺少点什么。对!那就是机器人的大脑——控制器,负责发布控制指令使机器人的动作以及控制各个模块之间的数据通讯。
从这些功能的实现分析,机器人的控制器功能不需要性能太高,但需要有丰富的外设接口。环顾市面上现有的MCU芯片,今年TI推出的基于Arm Cortex-M0+内核的MSPM0系列就是个不错的选择。在TI官网上可以看到MSPM0系列有很多芯片:
我们就选择了MSPM0G3507,主频80MHz,48pin,集成丰富的外设资源:
■ 2个 SPI接口
■ 2个 I²C超快速接口
■ 4个 UART接口
■ 1个 CAN-FD接口
■ 2个总计多达17个外部通道的124Msp同步采样ADC
■ 1个集成输出缓冲器的12位1MSPS DAC
■ 3个高速比较器
■ 2个零漂移、零交叉斩波运算放大器
■ 1个通用放大器
如此丰富的外设资源,驾驭小小的机器人绰绰有余。选定MCU之后,系统框图随之而出:
系统的电源使用电池供电,3000mAH的7.4V电池组。机器人各个模块都需要5V供电,因此还使用了一个5V的DC-DC稳压模块,在机器人连续动作的情况下,电池可以使用2小时。
04
硬件设计及搭建
机器人硬件中需要设计MSPM0G3507的最小系统,参考TI官网给出的方案,进行电路绘制:
05
软件代码
06
机器人联调
由于机器人整体是3D打印的,打印件会收缩,导致公差较大,安装过程中还要做一定的调节。此外,各个模块之间都是通过排线连接的,机器人内部的美观与否全靠手工整理了。
下面就是桌面机器人的表演时刻了:
以上就是一个桌面机器人从零到有的全过程了,规划的所有功能都已实现。看上去,是不是很简单?其实在调试过程中,还是遇到了一些问题的,比如8个关节动作的控制,需要按照一定的顺序进行;第一次使用MSPM0芯片,由于个人操作问题,在开发环境上耽误了点时间,不过最后都顺利解决了。
作为一个桌面机器人,这个机器人的功能还是有很大的提升空间的,比如在外形上,可以设计成更可爱的造型;有自动唤醒的功能,可以自定义做些动作;通过语音播报天气等等,更好玩的版本正在进行中,大家可以期待一下啦。