林委锋
“老师,机器人还可以做什么呢?” “嗯,大家平时在朋友圈里最喜欢做什么呢?对了,是点赞!今天就来做一个会点赞的机器人吧!”我们在上期做的机器人小车上添加一双“眼睛”、一只会动的“手臂”和一张会说话的“嘴巴”。当你接近这个机器人时,它就会说“你好棒”,同时给你竖起一只“手臂”——为你点赞!
所需要的材料如图1所示:超声波传感器和安装固定支架、ISD1820录放音模块、辉盛SG90舵机、两段PVC线槽。PVC线槽用来制作机器人的手臂,舵机的作用是让机器人手臂能够转动。舵机,英文叫Servo,它是由直流电机、减速齿轮组、传感器和控制电路组成的一套自动控制系统。舵机和直流电机不同,舵机不能一圈圈转动,只能在一定角度内转动。它有一个最大转动角度,有的是180度,有的是360度。
在一段PVC线槽的一侧开一个口,把舵机固定到线槽上,再把舵机的摇臂安装固定到另一段PVC线槽上,把两段线槽连接起来,就形成了一只简单的机器人手臂(如图2)。把机器人的手臂和小车连接并固定好,再把超声波传感器安装固定到小车的前方,最后把录放音模块安装到小车合适的位置处,点赞机器人就做好了。
各个模块与Arduino板的连线如图3所示,可分为两个部分:电源线和信号控制线。Arduino板只有一个5V电源接口,这个接口电源供超声波传感器使用。另外再从电池盒引出两组电源供舵机和录放音模块使用,引出的电源可以是3节电池或4节电池,对应的电压为4.5V或6V。要注意的是,舵机的引线有3根,默认红色和棕色是电源线,分别接电源的正、负极,另外一根黄色是信号线,接Arduino板的数字口12。ISD1820录放音模块的PL- E接11脚,超声波传感器的TRIG、ECHO分别接数字口2、3。
现在编一个程序让机器人的手臂动起来,如图4所示。舵机转动指令Servo在ArduBlock的GENERIC Hardware模块里。注意,该指令默认提供的引脚数据不能用,上传时会显示出错,需删掉并换成用“变量/常量”模块中的数字常量来替换。程序中舵机的转动角度为60度和180度,调整机器人手臂的起始位置,使得机器人手臂可以在水平和垂直方向上来回转动,实现点赞的功能。
ISD1820录放音模块是一个简易的录音、放音模块,它可以录制大约10秒钟的声音。打开电源,按住REC按钮,对着模块的MIC话筒说“你好棒”,声音就被录了下来,按PLAY- E键可试听录制的声音。录放音模块上的P- E是一个触发控制端,给该引脚发送高电平,可播放录制的声音,发送完后要把该引脚转为低电平。
最后,完整的程序如图5所示。程序先设定舵机转动角度为180度,让机器人的手臂转到水平位置处。然后超声波传感器每隔100毫秒检测一次前面障碍物的距离。当人与超声波传感器的距离小于10厘米时,条件判断指令如果/否则的值为真,执行以下动作:13脚输出高电平,Arduino板上的13脚指示灯亮;12脚输出高电平,录放音模块发出“你好棒”的声音;舵机控制机器人的手臂转动竖起为你点赞!(如图6)