【EmbeddedDev】搭建你的BeagleBot遥控车

源连接:  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.

现在,按照电路图来认真焊接对应的所有组件。 
【EmbeddedDev】搭建你的BeagleBot遥控车_第1张图片
电池需要串联方式连接。
在DC插孔的内引脚为正极, 而外部金属壳为地极。在焊接之前确保已正确连线,否则会损害BBB。另外还要确保电容和二极管是正确的。
插入电池是需要用电压表来检测电压, 电压不能查过5V。检查电压都正常后, 等待主板启动, 一旦启动成功便将器关闭。恭喜你,你已经拥有了一个通过电池工作的Beaglebone。
 

 

4. 在BBB上安装相应的开发包

这个相当容易。启动BBB, 通过Ethernet或WIFI联网, 然后安装所需的软件包。如在终端中输入如下命令:
+ expand source view plain
  1. sudo apt-get update  
  2. sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus -y --force-yes --fix-missing  
  3. sudo pip install Adafruit_BBIO  
  4. sudo apt-get install apache2 php5 libapache2-mod-php5 -y --force-install --fix-missing  
  5. systemctl disable cloud9.service  
  6. systemctl disable gateone.service  
  7. systemctl disable bonescript.service  
  8. systemctl disable bonescript.socket  
  9. systemctl disable bonescript-autorun.service  
  10. systemctl disableavahi-daemon.service  
  11. systemctl disable gdm.service  
  12. systemctl disable mpd.service  

 

 

5. 运行web服务
现在我们需要启动web服务。首先解压zip包并且放到U盘,将U盘插入BBBUSB槽然后重启。在终端中将文件从U盘拷贝到板上的某个目录。
+ expand source view plain
  1. sudo cp -R /media//www/* /var/www/  
  2. sudo chmod -R www-data:www-data /var/www  
启动Apache服务,并监听80端口。使用你喜欢的编辑器来编辑配置文件, 我用了对初学者更易用的nano。
+ expand source view plain
  1. sudo nano /etc/apache2/ports.conf  
找到监听端口对应的行,修改成80. 保存退出时按ctrl+X, 然后选y。接着重启服务:
+ expand source view plain
  1. sudo service apache2 restart  
现在我们需要将BBB连上wifi网络。

 

 

6. 运行python脚本
这里我们需要做的是确保脚本可执行, 并且用python可以良好运行。

在终端中输入:

+ expand source view plain
  1. sudo chmod a+x /var/www/*.py  
  2. python2.7 /var/www/move_php.py  
然后如果成功的话,你应该在你的屏幕中看到如下提示:
"Move_php script running..."
按Ctrl+C可以停止python进程。

 

 

7. 自启动需要运行的脚本
在这里将会用到crontab, 这是一个后台服务, 在指定时间来运行所需要的程序:
+ expand source view plain
  1. sudo crontab -e  

在crontab窗口的底部加上如下命令:

+ expand source view plain
  1. @reboot sudo service apache2 start  
  2. @reboot sudo python2.7 /var/www/move_php.py &  
注意第二行末的符号"&"。这很重要,它指定了改python程序是在后台运行的。如果不这么做, 它将会在前台运行而造成堵塞, crontab后面的任务将不能正常按顺序执行。
现在当我们重启时, aoache2和python脚本会自动在后台运行。你可以这样在终端中检查重启后的进程状态:
+ expand source view plain
  1. ps -e | grep python  
如果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

你可能感兴趣的:(嵌入式开发,智能硬件开发入门与进阶)