当你阅读完Intel® Edison入门指南,我们之前的教程,Intel® Edison mini-breakout入门指南之后,你会对Intel® Edison有了大致的了解。现在,让我们来完成一个更复杂的杰作吧。你也可以用Node.js试玩一下,它是一个在JavaScript上运行的编程平台,同时也是一个较完美的可构建Web应用的选择。Node.js由Intel® Edison标准系统图像支持,因此你可以直接在上面运行node.js的脚本。
(“射门!得分!”观众欢呼!)
让我们来制作一个能跟你一起玩篮球的机器人。此处的教程将一步步教你制作出,一个简单迷你的运用Intal® Edison的差动式驱动机器人。你能从中学到更多关于如何运用mini-breakout套件来构建node.js通讯服务器的技巧。
在你开始之前,确保你已经学习了Intel® Edison入门指南,和我们以前的教程,Intel® Edison mini-breakout入门指南。
这意味着你的Intel® Edison:
-已更新的固件
-连接到本地无线网络
-可以连接到SSH / SCP通过microUSB或WiFi
这里是一个列表项,你需要准备以下项目:
● Intel® Edison mini-breakout套件
● 连续的微型伺服电机
● CD40109b电平移位器1
● 10K欧姆的电阻
● 公头排针
● 母头排针
● 150mm×70mm的洞洞板
● 4节AAA电池
● 1个AAA电池盒
● 9V电池扣子
● 1个电池盒电源连接器
● 跳线
● 1节锂电池
● 若干皮筋
● 若干硬线
● 铜带一卷
● 螺钉
● 螺母和螺栓
● 废塑料片
● 乒乓球
● 胶水
工具:
● 烙铁和焊锡
● 剪刀
● 螺丝刀
● 钳
装配机器人的外壳与电子部分:
为了方便安装,先用激光切割好外壳。(注:在B5部分优先安装螺母,整体安装将更方便)
下图是电子原理图。
按照原理图将电子元件焊接一起。
将母头针脚焊到Intel® Edison板上,公头排针焊到洞洞板上。这将使它以后更方便地利用mini-breakout板。
将电池和面包板分别固定在外壳上。
确保如B5部分,电池组后边缘对齐。
使用A1部分当做间隔,确保如B5部分,洞洞板与排针头朝后边缘对齐。
连接边与边。
确保B4部分与B6部分与B5对齐,电机朝外侧。
安装并固定电机。
将洞洞板连接上。
在洞洞板上,将Intel® Edison板与Mini-Breakout板连接上。
将电池盒与电机连接上。
将充满电的锂电池连接到Intel® Edison上。
确定J2连接到mini-breakout板的左上侧。
将红色线与左引脚(J2-1)连接上,并将黑色线与右引脚(J2-2)连接上。
注意:电池充电时,底部的micro USB接口(J16)是连接的。要确保它是插上的,方可充电。
安装前轮。
在轮胎表面用橡皮筋编织,通过槽口,来回地缠绕。
将电机舵盘按到槽位里。
紧固电机。
安装后轮
切下100mm的硬线,将其安装到A2滑动部分的中间。
弯曲线的两侧,然后将线末端捋直,并末端插入B2部分。
附上B2部分的安装。
制作篮球传感器的开关。
将篮球传感器线的一端与一小段铜带焊接上。
用胶带将其粘在B8部分中心的孔上。
从塑料上切下一块40 mm x 10 mm大小的塑料,用作开关。
将其对折,并覆盖一半的铜带。
修剪一下塑料,使其在一个乒乓球的重量下能轻易弯曲。
在另一半的中间部分穿一个孔。
螺钉穿过B8部分中间处,紧固塑料开关。
在B8部分边孔中插入其他篮球传感器导线,并将它们焊到小条铜带上。
将半边铜带的顶端也给胶上。
注意:螺丝主要用于连接铜带。调整好螺丝高度跟塑料开关的形状,这样能更方便地将它们连接上。
做个篮子。附上B8部分的顶部组件。将B9部分插入到B8部分中,并胶上。
封闭机器人。输入程序。附上B7部分装配
编程机器人
第一步将更新的库,用于多种语言在Linux驱动GPIO引脚。
通过串行端口或者IP地址,SSH到你的 Intel® Edison板中。
键入以下命令到终端:
echo "src maa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/intel-iotdk.conf
opkg update
opkg upgrade
这将需要几分钟完成更新过程。
从附件中下载文件,用scp将其复制到 Intel® Edison板中。它含有服务器运行所需的文件。
解压压缩包到你的主目录中。“解压 robotServer.zip ~/”并启动服务器。进入目录“cd ~/robotServer”。并运行“node index.js”。如果你看到“listening on *:3000”,恭喜!它正在运行。
使用机器人
当服务器在 Intel® Edison板子上运行时,我们需要访问Web接口来控制篮球机器人。
如果你无法得到 Intel® Edison板子的IP地址,那么可以在终端输入“ifconfig”,它会出现在“wlan0”的下一节。
打开一个你电脑或者手机上的浏览器,输入“edison-ip-address:3000”找到该网页。点击箭头按键来控制机器人,或者点击“开始一场篮球比赛!”文本。将兵乓球扔进篮子里后,机器人会做一个小小的庆祝动作。
校准电机
如果电机在没有指令的情况下运作,那么你将需要校准电机。由此,要将螺丝刀插入到后面的电机槽位,转动,直到电机不再运作。
电平移位
在我们最后的教程中,我们谈到 mini-breakout板子采用1.8V逻辑高电平。一个连续运行的电机通常需要至少3V的逻辑高电平,因此我们需要一个电平移位器。
如果你只想开关一个LED,或者实现不同程度的衰弱,那么一个晶体管放大电路就可以实现。电机需要高频数据的输入,但是晶体管电路在高、低电平下会反转。
为了解决这个问题,我们将使用一个CD40109B。它是一个可以转换4个引脚从低电平到另一方向的高电平的4通道低转高电平移位器。按照原理图或者通过阅读数据表来了解更多。
有许多的电平移位器,比如一个来自Sparkfun的是双向的,来自Adafruit的可支持I2C。它们有共同的功能,但却是通过不同的方法实现的。你需对此做一定的研究,从中找出最合适你项目的那一种。
驱动机器人
如果你之前驱动过多个电机组成的系统,你可能因此知道最好地供电机电力方式,是分开从Arduino板上供电,因为Arduino板不能单独提供足够的电力来驱动电机。Intel® Edison板也是如此。
在这种情况下,我们使用一个4节AAA电池盒来对电机供电。电池盒可以提供5-6V,正适合电机。另一个好处是电池盒体积小,便于安装。
为了给Intel® Edison板与mini-breakout板供电,你需要提供一个7-15V的电源或者使用锂电池。由于AAA电池盒无法满足,所以我们需要一个专用的锂电池。对于如何驱动Intel® Edison板与mini-breakout板的更多细节,你可以看一下我们的Intel® Edison mini-breakout教程。
Node.js
Node.js是一个在JavaScript上运行的编程平台,它高效并且强大,是一个较完美的构建Web应用的选择。Node.js由Intel® Edison标准系统图像支持,因此你可以直接在上面运行node.js的脚本。
在本教程中,我们使用一些库来实现我们的目标。Socket.io被用来Socket通信,做到远程控制信号可以被实时传送。Express可容易地服务Web界面,Cylon.js是一个基于引脚与硬件接口的库。
类似于你如何运行 Intel® Edison板的python脚本,你可以输入“node scriptname.js”用来执行一个Node.js的应用。我们的代码正作为一个Web服务器运行,因此你可以通过浏览器访问网页并发送数据。
如果你想知道更多关于Node.js,你可以从官方网站或者互联网上找到更多关于Node.js的教程。