首页 >> 想要一个免费的篮球机器人陪你玩吗?
想要一个免费的篮球机器人陪你玩吗?
来源:  时间:2015-04-06
分享到:

当你阅读完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的教程。