喜欢LEGO 积木的朋友,一定想让自己用积木搭的造型动起来,虽然LEGO有提供这样的科技组件NXT,EV3等,但是价格往往不便宜。“LEGO 乐高 乐高科技组MINDSTORMS 第三代机器人 31313(亚马逊价格2940)”虽然心中一直对此长草,但价格太高也就只能把这份冲动深深的埋在心里。
直到有一天无聊看论坛,看到了“乐高与树莓的结合:BrickPi,能从小玩到大的玩具”,开源硬件项目BrickPi就可以将树莓派安装到乐高积木中,再利用乐高提供的 Mindstorms 传感器和马达等部件让积木“变身”成为机器人。
Brick Pi 相当于 LEGO NXT 的9841控制器,此NXT可编程模块是乐高机器人的大脑。拥有强大的32位微处理器系统及闪存,支持蓝牙无线通讯及USB2.0。包括1个USB2.0端口,4个输入、3个输出端口。可编程LCD,64 x 100象素(文本、图像、数字),允许使用者直接在NXT控制器上编写简单程序。9841模块通过6节5号电池供电。
[商品:BrickPi Advanced]
BrickPi 的发起者 Dexter Industries 是一家专门生产教育机器人以及周边设备的厂家,他们拥有丰富的乐高机器人配件研发经验。
BrickPi 系统内包两部分:第一部分含树莓派主板、连接线、控制器、Mindstorms 马达、传感器和电池等,控制器上的固件是团队使用 Arduino 开发的,完全开源,相关的硬件设计方案和软件代码均可自由下载;第二部分为一个机械盒子,可以将树莓派和乐高积木连接起来,同时还可以起到保护 BrickPi 内部部件的作用。购买 BrickPi 套件后,用户可直接将其连接到乐高积木上,然后就可以使用 Python/C/Scratch等多种语言进行编程了。
官方的规格表:
Connect up to 4 NXT or EV3 motors.
Connect up to 5 NXT sensors, both digital and analog.
Powers the Raspberry Pi. Free your Raspberry Pi from the wall with the power supply of the BrickPi.
Attach your LEGO® Technic bricks to the BrickPi case and make an awesome robot!
心里的那份冲动有冒出来了,当时该项目BrickPi: LEGO® Bricks with a Raspberry Pi Brain,刚刚在筹资立项,于是便在众筹网站kickstarter 上参与了此项目。
选择的是
Pledge $100 or more
READY-TO-GO-PACKAGE: You want to waste no time in getting started and your other Raspberry Pi's are currently busy. You'll get the BrickPi, the case, a Raspberry Pi, an SD card with the operating system ready to go.
2013-05-20付完钱填好转运的地址之后,就是天天刷网站,希望尽快达到筹资的目标,项目启动,在等到2013-06-17项目启动之后,有天天刷网站等着早点发货。
2013-08 才陆续发货。
转运公司收到货发回国内已经是2013-10-25 了, 大半年过去了。好不容易收到了,就开始学习使用Raspberry Pi。
这是BrickPi 和Raspberry Pi 组装好之后的样子,上面是BrickPi,下面是raspberry Pi,中间通过GPIO 连接。
为了方便,自己贴了标签来区分不同的Sensor 和 motor 接口,由于刚开始接触Linux 和 Python,所以暂时按照官方提供的几个Sample 来学习,不同的Sample所使用的Sensor/Motor接口不同,所以经常出现插错了口导致无反应的情况。
Sensor 和Motor 接口的线缆类似于电话线的接头:
首先要解决的就是电源问题,虽然Raspberry Pi 可以通过Micro-USb 来供电,但总觉得不方便,所以想到了BrickPi 提供了9V 的电源输入接口。就自己弄了个电池盒(儿子的玩具车上用的,电池暂时没装上),装上8节干电池组成了9V电源盒。
Raspberry 有100M的有线网络接口,但是既然都是拿来做机器人小车等,电源解决了,总不能还被网线牵绊着,所以就淘了一个迷你无线网卡,据说还被某宝给坑了,话了45块,谁知同事在某讯购买的才27还免邮。
由于公司和家里的路由器都是DHCP动态分配IP 地址的,这样就导致Raspberry Pi每次连接的IP 都不同,无法通过Putty/VNC/Remote Desktop 远程操控。所以网络上找了个教程,让Raspberry Pi 每次连上网路之后,自动向我的邮箱中发送IP 地址信息。
Raspberry Pi折腾了一两个礼拜之后,就开始在某宝上购买Mindstorms 配件了,由于不同的机器人需要的配件型号数量都不同,相同的组件不同颜色编号也不同,例如同样的一个Belt Wheel Ø24 就用多达15个编号,没办法只能通过BrickSet 和BrickerInfo 来搜索。
而且每个卖家也不是所有的型号都有,只能这家淘点,那家淘点,有时运费都比配件贵,到最后还是没能全部淘齐。以下是部分某宝的购买记录。
配件型号和数量实在是太多了,所以必须弄个Excel 文档了管理了。
实际购买的数量和几个Sample所需要的数量,还差3个。
最主要的零件还缺了一个53787 Tacho Motor(¥155),导致Arm 机械手臂无法组装。
现以组装的一个“Robot Arm”为例。
拍几张图片,组装过程就不一一拍了。
这是组装好的Shooter 模块,通过一个L型 BEAM 将Motor 的转动能转换为CROSS AXLE 直杆的前后动能。
以下看到的大转盘是将下面的Motor 转动带动上面的Shooter 来做360度转动的。
常见于各种起重机套件中:
Shooter和 TURNTABLE 合体:
BrickPi 和Shooter 合体:
接上电源自动Raspberry Pi自动开机
由于手边没有干电池,暂时用手机充电器做电源。
通过Micro-USB 连接Raspberry Pi 。此Micro-USB 只有供电的作用,没有USB 传输的功能。
状态指示灯,和无线网卡的灯。
开机之后就是通过远程连接来操控BrickPi 了,我选择的是Remote Desktop,最简单的每台Windows 电脑都自带,不需要而外装其他工具软件。
运行Python 程序之后,左右移动鼠标,Shooter就跟着左右转动,单击鼠标左键,就是Shoot 动作。
懒得登录视频网站上传,可是不放视频编辑不让过,只好借用BrickPi官网的视频了。