源连接: https://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2015/05/15/beaglebone-rc-bot
如何搭建可以通过WIFI控制的BeagleBone Black机器人
我刚刚通过BBB完成了一个项目, 我创造了一个可以在局域网内通过wifi控制的机器车。听起来很酷,但是还有很多东西需要调整和改善。如果你们有谁在此基础上做了优化和改进,请一定要告诉我,即使是不一定能用得上的方案, 而我们也可能可以帮你继续实现它。
而首先我们需要去构建Bob(我是这么称呼它的) 。
操作步骤:
- 1. 准备零部件
- 2. 构造机壳
- 3. 焊接原型板用于连接电源(需要一些电路知识以及焊接经验)
- 4. 在BBB上安装相应的开发包
- 5. 运行web服务
- 6. 运行python脚本
- 7. 自启动需要运行的脚本
- 8. 编译Bob(很简单,也可能繁琐)
- 9. 通电
- 10.出发
1. 准备零部件
我们所需要的部件, 还是挺多的
Where to buy |
Farnell Order Code |
quantity |
product |
cpc.farnell.com |
HK01209 |
1 |
ROBOT KIT CHASSIS |
uk.farnell.com |
2422228 |
1 |
BBONE-BLACK-4G |
uk.farnell.com |
2437981 |
1 |
WIFI DONGLE |
uk.farnell.com |
1650685 |
2 |
BATTERY HOLDER, LEADED, 4 X AA |
uk.farnell.com |
2345257 |
1 |
Alkaline AA Batteries (any will do, get rechargeable if you prefer) |
uk.farnell.com |
2075366 |
2 |
Continuous rotation servos |
uk.farnell.com |
1267751 |
1 |
PCB, RAW, 100X160 |
uk.farnell.com |
1564682 |
1 |
Step-Down Voltage Regulator |
uk.farnell.com |
2474675 |
1 |
Prototyping Board |
uk.farnell.com |
9451080 |
1 |
100 µf radial capacitor |
uk.farnell.com |
9451129 |
1 |
1000 µf radial capacitor |
uk.farnell.com |
9565051 |
1 |
Diode |
uk.farnell.com |
1209546 |
1 |
100µH inductor |
同时也需要.....
- 电焊台(烙铁, 热垫, 焊接, PPE防护套件)
- 一些线 (支持5V/3A, 或者一些较薄规格用于控制电机的电线)
- 一些公母跳线
- 一些扁头钳子
- 一字/十字螺丝刀
- 万能胶(小心腐蚀)或双面胶
- 一些泡沫(或者可以固定BBB和电池的一些东西,可拆卸)
- 胶带或者其他物品, 将BBB绑定到机壳
- 锋利的工艺刀(小心, 如果不自信可以找有经验的人帮忙)
2. 构造机壳
把所有的机壳零件拿出来, 我们这里只是用了主要的基础台架,滚珠轴承
和轮子。
使用螺丝钉将滚珠轴承固定到机壳背部, 并确保螺钉拧下去一直伸到底部而没有高出顶部,否则我们将无法正确地安装我们的电池。
然后把线绕到顶部。你可能要把孔挖大一点,以便连接头可以穿过去......
接着我们需要裁剪翼板,使得BBB可以安放在上面。确定你需要多大(确定BBB需要多大的空间),然后按PCB板划线, 剪掉多余的部分。需要非常小心,最好用裁尺之类。持续切割知道泡沫刚好能装下BBB板。如果你没有裁尺或很自信, 用类似工艺刀的工具来切割也可以。
小心在机壳前面做一个可以起合的挡板,以支持接下来电池的装卸。
现在我们可以切出泡沫来适应BBB和电池了。测量并勾勒出BBB的形状,切割出BBB大小的槽。然后对电池的槽重复这样的操作。
接着就可以将泡沫粘到翼板和地盘中。确保BBB在顶部而电池在机壳的后右位置。
3. 焊接原型板用于连接电源(需要一些电路知识以及焊接经验)
这个步骤可能是该项目最难的,因为它可能会很繁琐容易出错而且需要你掌握一定的电子技术。
Firstly get your protoboard and score it then snap it in half, then score and snap in half again the other way to get a quarter (scoring down the holes makes it easier to snap). This quarter is the bit we're going to use.
现在,按照电路图来认真焊接对应的所有组件。
电池需要串联方式连接。
在DC插孔的内引脚为正极, 而外部金属壳为地极。在焊接之前确保已正确连线,否则会损害BBB。另外还要确保电容和二极管是正确的。
插入电池是需要用电压表来检测电压, 电压不能查过5V。检查电压都正常后, 等待主板启动, 一旦启动成功便将器关闭。恭喜你,你已经拥有了一个通过电池工作的Beaglebone。
这个相当容易。启动BBB, 通过Ethernet或WIFI联网, 然后安装所需的软件包。如在终端中输入如下命令:
+ expand source view plain
- sudo apt-get update
- sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y --force-yes --fix-missing
- sudo pip install Adafruit_BBIO
- sudo apt-get install apache2 php5 libapache2-mod-php5 -y --force-install --fix-missing
- systemctl disable cloud9.service
- systemctl disable gateone.service
- systemctl disable bonescript.service
- systemctl disable bonescript.socket
- systemctl disable bonescript-autorun.service
- systemctl disableavahi-daemon.service
- systemctl disable gdm.service
- systemctl disable mpd.service
现在我们需要启动web服务。首先解压zip包并且放到U盘,将U盘插入BBBUSB槽然后重启。在终端中将文件从U盘拷贝到板上的某个目录。
+ expand source view plain
- sudo cp -R /media//www/* /var/www/
- sudo chmod -R www-data:www-data /var/www
启动Apache服务,并监听80端口。使用你喜欢的编辑器来编辑配置文件, 我用了对初学者更易用的nano。
+ expand source view plain
- sudo nano /etc/apache2/ports.conf
找到监听端口对应的行,修改成80. 保存退出时按ctrl+X, 然后选y。接着重启服务:
+ expand source view plain
- sudo service apache2 restart
现在我们需要将BBB连上wifi网络。
6. 运行python脚本
这里我们需要做的是确保脚本可执行, 并且用python可以良好运行。
在终端中输入:
+ expand source view plain
- sudo chmod a+x /var/www/*.py
- python2.7 /var/www/move_php.py
然后如果成功的话,你应该在你的屏幕中看到如下提示:
"Move_php script running..."
按Ctrl+C可以停止python进程。
7. 自启动需要运行的脚本
在这里将会用到crontab, 这是一个后台服务, 在指定时间来运行所需要的程序:
+ expand source view plain
- sudo crontab -e
在crontab窗口的底部加上如下命令:
+ expand source view plain
- @reboot sudo service apache2 start
- @reboot sudo python2.7 /var/www/move_php.py &
注意第二行末的符号"&"。这很重要,它指定了改python程序是在后台运行的。如果不这么做, 它将会在前台运行而造成堵塞, crontab后面的任务将不能正常按顺序执行。
现在当我们重启时, aoache2和python脚本会自动在后台运行。你可以这样在终端中检查重启后的进程状态:
+ expand source view plain
如果python进程有在运行, 该command将会输出对应的进程ID信息。
8. 编译Bob (很简单,也可能繁琐)
这个步骤很容易, 不过也很难做到完美。
将BBB放在翼板上的泡沫架上, 电池放在机壳背部, 把所有的线整理并绕好在顶部。
按照zip包中BeagleBot_connections.png文件的指示来连接部件到正确的pin脚(除了电源)
, 你可能需要用到跳线。如果你没有跳线,可以使用普通的电线,剪断,弄出一部分线头来直接接到pin脚上去。
当所有的部件都插拔好了之后, 整理好线路不至于太乱。一个好的方案是使用电工胶带它们捆起来, 要尽可能的防止短路。
9. 通电
一旦你的BeagleBot准备好运行, 插上电源并等待启动。如果你还没有设置当前局域网下的静态IP, 那你就需要在启动时通过ssh(??)或者通过串行线路来获得当前IP。(译者建议可以通过查看路由管理器的连接信息,或者显示屏接入HDMI, 或者广播方式ping可能的地址来获取IP)。
当你获得IP地址之后,并且主板已经完成启动, 也不再依靠有线连接时, 这个时候就可以准备开跑了。
10. 出发
打开同在局域网内的任何机器上的浏览器窗口, 在地址栏中输入http://<你的ip地址>/move.php
页面加载后,你就可以通过操作页面来控制小车了。
BeagleBot Files.zip