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

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

是否有任何替代平台可以让我控制和接收乐高创作中的数据吗?

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

评论

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

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

#1 楼

标准的Lego Mindstorms传感器是模拟(即0-5V之间的电压)或数字(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砖控制器连接到外部微控制器:



#2 楼

BrickPi +可以帮助您将LEGO传感器和电机连接到Raspberry Pi并取代MINDSTORMS Brick。

http://www.dexterindustries.com/brickpi/

#3 楼

Mindstorms是控制更多LEGO的唯一完全LEGO方式。

当前的NXT 2.0相当昂贵,但是您可以以1/3之类的价格购买较旧的RCX套件(仅是示例)网络上NXT 2.0的价格。

否则,您将不得不寻找可能可以与LEGO相连的其他电动机/传感器套件。这些并不是很容易找到,而且可能非常昂贵。如果您沿着这条路走,那么可能最好找一个对他们了解更多的人。

如果您打算从ebay上购买一个较旧的LEGO产品,我建议浏览brickpicker.com以获得市场快照。 (我在一两个月前发现了它。在eBay上可以找到有关乐高玩具当前市场价值的信息的好地方。)

评论


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

–安德鲁·拉尔森(Andrew Larsson)
2012年6月27日17:48



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

– ACarter
2012年6月27日19:57

@Andrew wel,我删除了我的评论,所以我们可以重新开始。听起来真的很有趣。我制作了一个可以播放井字游戏的python脚本,但是制作它使它学会了如何播放它,这听起来很棒。

– ACarter
2012年6月28日上午10:08

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

–安德鲁·拉尔森(Andrew Larsson)
2012年6月28日在16:44



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

– ACarter
2012年6月28日在16:47

#4 楼

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