我该如何控制乐高电机?


20

我想找到一种方法来使我的Raspberry Pi控制一些Lego电机,作为奖励,我想使用一个或多个光学传感器。

通常,乐高机器人会使用Mindstorms“砖”控制器-这似乎很昂贵,而且如果您有Raspberry Pi可以发出命令,那么这似乎很多余。Mindstorms控制器是处理器和电动机控制器,可以在不连接PC的情况下运行,但缺少以太网和现代计算机的许多功能。

是否有其他平台可以让我控制和接收来自乐高玩具的数据?

仅供参考,这是一个简单的错误警报机器。设备将监视Jenkins测试框架的状态,并根据失败的单元测试用例的数量执行操作。树莓派将轮询包含一些易于解析的XML的网页。如果错误数> 0,那么我们想让Raspberry Pi开始驱动机器。


嗨,raspberrypi.stackexchange.com / users/ 390 / salim- fadhleyraspberrypi.stackexchange.com/users/286/salim-fadhley都是您的帐户吗?在两个文件上都编辑您的个人资料(如果可能),要求合并。我已经对社区团队成员执行了ping操作。
Manishearth 2012年

我想使用我拥有的较旧的乐高Mindstorms电机(简单的直流齿轮电机)来做到这一点。将+ 5v放在一侧,他们将转向另一侧,将+ 5v放在另一侧,他们将转向另一侧。但是,RPI的电流太大,无法直接驱动,因此我仍然需要一些接口电路。

Answers:


13

标准的Lego Mindstorms传感器是模拟(即0-5?V之间的电压)或数字(I²C或RS-485)(信号源)。

模拟传感器:

我认为Raspberry Pi在GPIO的ADC(模拟到数字转换器)的GPIO引脚上没有断开,因此我们无法与模拟传感器(没有额外的微控制器)对接。

数字传感器:

Raspberry Pi在I²C的GPIO中确实有两个引脚,这意味着如果将GND,+ V,SDA和SCL连接到传感器,则应该能够使用I²C库与它们进行通信。有一个司机在这里 -如果你按照指示,你应该能够发送和接收信号的I²C一样容易,因为这(同一家TI TMP102):

raspberrypi bootc # echo tmp102 0x48 > /sys/class/i2c-adapter/i2c-0/new_device
raspberrypi bootc # sensors
tmp102-i2c-0-48
Adapter: bcm2708_i2c.0
temp1:        +21.6°C  (high = +160.0°C, hyst = +150.0°C)

例子:

本页上有几篇有关如何连接传感器和电动机的文章,例如将Mindstorm砖控制器连接到外部微控制器:

使用微控制器的Mindstorm



1

头脑风暴是控制更多乐高的唯一完全乐高方式。

当前的NXT 2.0相当昂贵,但是您可以以NXT 2.0在网上价格的1/3的价格购买较旧的RCX工具包(仅是示例)。

否则,您将不得不寻找可能可以连接到LEGO的其他电动机/传感器套件。这些并不是很容易找到,而且可能很昂贵。如果您沿着这条路走下去,可能值得尝试找到一个对他们了解更多的人。

如果您打算从eBay上购买旧的乐高产品,建议您浏览brickpicker.com以获得市场概况。(我在一两个月前发现了它。这是在eBay上查找乐高玩具当前市场价值信息的好地方。)


2
对于那个很抱歉。我应该建议您以某种方式将RPi包含在您的答案中,因为这是有关RPi的站点,而问题是有关RPi的。如果您编辑问题,我可以删除我的反对意见。顺便说一下,www1.cbsd.org / sites / teachers / hs / MHAYDEN / Science%20Fair /…在该PDF中搜索“ Larsson” ,几年前,您将在Intel International Science Fair上找到我的项目摘要。这是一个乐高机器人是学会在井字取胜。
Andrew Larsson 2012年

不用担心,我也没有采取完美的态度。我知道RPi,但是答案不必直接与之相关-我们有大量针对Linux /发行版的问题,我敢肯定您可以在Pi上运行RCX。
ACarter 2012年

@Andrew wel,我删除了我的评论,所以我们可以重新开始。听起来真的很有趣。我制作了一个可以播放tic tac toe的python脚本,但是制作它使它学会了如何播放它,听起来不错。
ACarter 2012年

它使用了Donald Michie的MENACE机器的修改/优化实现。机器人由C ++程序控制,该程序将电动机/传感器的命令/数据/从电动机/传感器向NXT推/拉。计算是在计算机上执行的,但是我有一个在NXT本身上运行的程序版本。但是,它将很快耗尽内存,并且标准固件不支持阵列,因此我不得不用修改后的阵列替换它。我想我可能会使用我的RPi制作该程序的新版本。会很有趣的!
安德鲁·拉尔森

自从获得NXT之后,我一直想知道如何使用计算机上的高级语言来控制它。有诸如leJOS之类的东西,但是您使用了什么?
ACarter 2012年

1

除此之外,还有其他选择,将NXT传感器和电动机连接到NXT控制单元,然后通过蓝牙与Pi配对,然后可以直接向NXT发送命令以控制其电动机并读取其传感器。看看Mindstorms蓝牙开发者套件,它可以使NXT完全无线!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.