Edison based edu robot

概述

教育机器人是由生产厂商专门开发的以激发学生学习兴趣、培养学生综合能力为目标的机器人成品、套装或散件。它除了机器人机体本身之外,还有相应的控制软件和教学课本等。2014 年 Intel 推出了 edison 平台,下面我们就基于 edison 平台,来搭建一个有趣的小智能机器人。

这个小智能机器人使用了一款名叫 Multiplo 的开源机器人积木套件。详细的资料,可以从 multiplo 的官方网站上得到,甚至所有的零件 3D 模型,都可以找到。拿到这些模型之后,你可以使用 CNC 或者 3D 打印机自己制造一批这样的零件,按照自己的想法,做一个简单的机器人车身。

总体的思路是使用 multiplo 的套件来控制车身运动,multiplo 的主控板通过串口与 edison 连接。Edison 连接摄像头与 LED 点阵。上电之后 edison 通过串口发送命令给 multiplo 板,开始向四周转动,edison 通过摄像头获取视频图像,然后通过 opencv 库来识别人脸,发现人脸之后,edison 在发控制命令给 multiplo 板,让云台停止转动,并让小车转向正对人脸的方向。

车身的装配

Multiplo 套件中基本都包含下图这样的零件:

图片1.png

我们看到,套间里面有电池盒、电机、各种传感器,以及右边的这种通用板件。这些板件通过下图的连接铆钉互相连接。

图片1.png

上下两张板件叠在一起,对准孔,然后用铆钉穿过去固定。如下图:

图片3.png

当然,还有其他的通用板件,还可以组装出车轮,云台等等。这些都可以在 multiplo 的网站上找到组装说明。

下面的图片是我自己组装的一个小车的模型,组装原则是尽可能用通用板件组装的大一点,这样能够放下所有的机器人小车需要的零件。

图片4.png

这个部分没有固定,是因为有可能还要往中间安装一些零件,所以做成可以打开的样子。

图片5.png

总之,这个小车的样子没有特别的要求,全看各位的想象力了。

基于上面的形式,我们组装的小车是这个样子的。

图片6.png

车身运动部分

小车的动力部分直接用了 multiplo 套件中的直流电机,因为直接用直流电源控制,所以无法做到随意控制电机正传反转,所以我们还使用了 multiplo 的主控板,这块板卡是 arduino based 的,上面集成了一片 L298N 的 H 桥芯片,然后我们使用了 multiplo 的 arduino 库来直接控制 H 桥,这些源码都可以从 multiplo 的网站下载:

http://multiplo.org/duinopack-1/

multiplo 主控板的图片:

图片7.png

组装时,需要把两个直流电机连接到 M0 和 M1 接口,就是最下边中间的两个红色接口,舵机接到 S5 接口,就是上图左边最下面的蓝色接口,舵机主要用来控制承载摄像头和 LED 点阵的云台转动。Multiplo 板通过串口与上位的 edison 板连接,也就是右下角白色的 COMM 接口。电池盒连接在上面的白色接口处。上电之后,multiplo 板卡开始坚挺串口,并等待 edison 板卡发来的命令。

Arduino 部分的代码:serialMotor.zip

Edison 控制部分

Edison 固件更新

从 Edison – Software Downloads 下载最新的 image(ww05-15) 和 driver

参照 Getting Started with the Intel® Edison Board for Windows,连接至 Edison

按照 Flashing Intel® Edison (wired) – Windows 更新 Edison 中的固件

使用串口连接到 Edison,运行 configure-edison –setup,配置设备的 SSH 服务以及 wifi

Edison 控制摄像头配置

Edison 板卡上需要摄像头需要先做一些配置。

先按照

首先打开配置文件/etc/opkg/base-feeds.conf

在文件中添加下列源:

src/gz all http://repo.opkg.net/edison/repo/all

src/gz edison http://repo.opkg.net/edison/repo/edison

src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32

终端中更新源列表:

opkg update

然后在终端中执行:

opkg install kernel-module-uvcvideo

opkg install opencv-dev

注意:如果 opencv-dev 安装不成功,请再试一次,并在指令后面增加–force-reinstall。

kernel-module-uvcvideo 是一个比较通用的摄像头模块,支持大部分摄像头。 opencv-dev 则是 opencv 的库,因为下面的 demo 中涉及 opencv,所以要安装。

这两个包安装完成后,将摄像头与 Edison 连接,记得将小开关扳至 A 型 USB 口一侧(大口)。

连接后,在终端中输如 dmesg,可以看到 usbcore: registered new interface driver uvcvideo 之类的信息。

这样就可以使用摄像头了。

Edison 控制麦克风和音箱

升级到最新的 ww05 的 image 之后,需要安装下面两个 pkg。

opkg install kernel-module-snd-usb-audio

opkg install alsa-utils

前一个是 edison 的声卡驱动,后一个是用来 alsa 声卡的实用程序,然后通过运行下面的程序,测试 usb 声卡是不是 ok 了。

root@edison:~# aplay -Ll

null

Discard all samples (playback) or generate zero samples (capture)

default:CARD=Loopback

Loopback, Loopback PCM

Default Audio Device

sysdefault:CARD=Loopback

Loopback, Loopback PCM

Default Audio Device

default:CARD=Set

C-Media USB Headphone Set, USB Audio

Default Audio Device

sysdefault:CARD=Set

C-Media USB Headphone Set, USB Audio

Default Audio Device

**** List of PLAYBACK Hardware Devices ****

card 0: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]

Subdevices: 8/8

Subdevice #0: subdevice #0

Subdevice #1: subdevice #1

Subdevice #2: subdevice #2

Subdevice #3: subdevice #3

Subdevice #4: subdevice #4

Subdevice #5: subdevice #5

Subdevice #6: subdevice #6

Subdevice #7: subdevice #7

card 0: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]

Subdevices: 8/8

Subdevice #0: subdevice #0

Subdevice #1: subdevice #1

Subdevice #2: subdevice #2

Subdevice #3: subdevice #3

Subdevice #4: subdevice #4

Subdevice #5: subdevice #5

Subdevice #6: subdevice #6

Subdevice #7: subdevice #7

card 1: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]

Subdevices: 1/1

Subdevice #0: subdevice #0

root@edison:~#

上面最后的几行 C-Media USB xxxx 跟你在 dmesg 里面看到的一样,就是你的声卡

然后:

vi /etc/asound.conf

在里面填上下面的句子,注意,最后一个 Set 是设备的名字,要跟上面 aplay –Ll 里面的最后的 Card 名字一样,我上面是 card 1: Set [C-Media USB Headphone Set],所以这里应该是 sysdefault:Set。

pcm.!default sysdefault:Set

保存。这句话,是为了告诉系统,要用这个设备作为默认的声音输出设备。

好了,你的 edison 已经可以播放 wav 文件了。

aplay /usr/share/sounds/alsa/Front_Center.wav

这个/usr/share/sounds/alsa/目录就是刚才装 alsa_utils 的时候自动安装了很多测试的声音,输入上面的命令之后,你就能从音箱中听到测试声音了。不过目前只能播放 wav,如果需要 edison 播放 mp3,还需要安装一个 MP3 播放器:

opkg install mpg123

以后播放 MP3,就可以直接输入 mpg123 xxx.mp3.

摄像头、LED 点阵以及摄像头麦克风的连接

要连接上述的设备,需要使用 edison 板上的大 USB 接口,可是只有一个 USB 口,怎么接怎么多设备呢?还需要一个 USB HUB。整个连接方式如下图所示:

图片8.png

如果你愿意,也可以用耳麦来代替 MIC 和音箱,不过就没那么方便了。建议 USB HUB 使用有源的,或者 Edison 的供电使用电流大的适配器。

连接好上面的设备之后,再在控制台输入上面的命令

aplay /usr/share/sounds/alsa/Front_Center.wav

就能从音箱中听到声音了。

最后还需要连接 LED 点阵,才能使机器人的表情能够显示出来。我们目前使用的 LED 点阵式 16*16 的红绿双色点阵,如图:

图片9.png

背部接口如下图所示:

图片11.png

与 edison 连接时,需要将上图 LED 阵列的 IN 端,按照 SERC->SERB 的顺序,依次插入开发板的 DIGITAL 区的 13-6 引脚,7 引脚不用,使用会导致 wifi 不稳定。连接 LED 阵列的电源。接线图如下所示。

图片10.png

接线到此为止。

程序运行

你可以选择用 ssh 上传程序至 Edison,也可以用 Eclipse 的 Remote Application 功能运行程序。不过在运行前记得将 BigEyes 文件夹下的 haarcascade_frontalface_alt.xml 通过 scp 或者 sftp 拷贝至和程序同一个目录。这个是人脸识别的分类器文件, 程序需要使用它进行人脸检测。

同时还需要将附带的三个声音文件 welcome.wav、 hello.wav 和 unhappy.wav 传到 BigEyes/sound 文件夹下,这三个文件会分别在系统启动时、发现人脸时,以及人脸消失时播放。当然你也可以换成自己想要的声音,只要是 wav 格式就行了。

运行程序,你可以在终端中看到 width:160 height:120 的字样,摄像头指示灯亮起(如果有的话),摄像头和 LED 会不停的环视 180 度的范围,LED 阵列显示表情,且表情会随着人脸检测的结果变化。

程序源代码:BigEyes.zip

Edison 开发环境

如果你只想运行我们提供的程序,那以上的配置结束后,就可以了,如果你想自己在开发一些有趣的功能,那就需要在 edison 上编写程序,配置 edison 的开发环境,有一个比较简单的方法就是直接去 Intel 的官网上下载一个配置好的 Eclipse IDE,网址如下:

http://www.intel.com/support/motherboards/desktop/sb/CS-035343.htm

其中有 linux、windows、mac 对应的 IDE,请按照你的系统来选择不同的 IDE。

下载好之后,直接解压缩,然后打开下图的 devkit-laucher.bat 就可以使用了。

图片13.png

打开之后,导入智能机器人的工程就可以做二次开发了。

运行结果

程序运行后,摄像头会不停转动。如下图:

图片14.png

 

发布者:Cara,转载请注明出处:http://www.makercollider.com/viewpoint/2150

发表评论

登录后才能评论
QR code