Wie kann ich Lego-Motoren steuern?


20

Ich möchte einen Weg finden, wie mein Raspberry Pi einige Lego-Motoren steuern kann, und als Bonus möchte ich einen oder mehrere optische Sensoren verwenden.

Normalerweise wird in der Lego-Robotik der Mindstorms- Controller "brick" verwendet. Dies scheint teuer und zumeist überflüssig zu sein, wenn Sie einen Raspberry Pi haben, der Befehle ausgibt. Der Mindstorms-Controller ist ein Prozessor und ein Motorcontroller, der ohne Verbindung zu einem PC ausgeführt werden kann, dem jedoch Ethernet und viele Funktionen moderner Computer fehlen.

Gibt es eine alternative Plattform, mit der ich Daten von Lego-Kreationen steuern und empfangen kann?

Zu Ihrer Information, dies ist für eine einfache Fehlerwarnmaschine. Das Gerät überwacht den Status eines Jenkins-Test-Frameworks und führt abhängig von der Anzahl der fehlgeschlagenen Einzeltestfälle eine Aktion aus. Das Himbeer-Pi ruft eine Webseite ab, die leicht zu analysierendes XML enthält. Wenn die Anzahl der Bugs> 0 ist, möchten wir den Raspberry Pi dazu bringen, die Maschine anzutreiben.


Hey, sind raspberrypi.stackexchange.com/users/390/salim-fadhley und raspberrypi.stackexchange.com/users/286/salim-fadhley beide Ihre Konten? Bearbeiten Sie Ihre Profile auf beiden (falls möglich), und fordern Sie eine Zusammenführung an. Ich habe bereits ein Mitglied des Community-Teams um Hilfe gebeten.
Manishearth

Ich würde dies gerne mit den älteren Lego Mindstorms-Motoren machen, die ich habe, die einfache Gleichstrom-Getriebemotoren sind. Lege + 5v auf die eine Seite, sie drehen sich in die eine Richtung, lege + 5v auf die andere Seite, sie drehen sich in die andere Richtung. Allerdings ist der Strom zu hoch, um das RPi direkt anzusteuern, sodass ich immer noch eine Schnittstellenschaltung benötige.

Antworten:


13

Die Standard-Sensoren von Lego Mindstorms sind analog (dh eine Spannung zwischen 0 und 5 V) oder digital (I²C oder RS-485) ( Quelle ).

Analoge Sensoren:

Ich glaube nicht, dass der Raspberry Pi einen defekten Pin im GPIO für einen ADC (Analog-Digital-Wandler) hat, daher können wir keine Schnittstelle zu analogen Sensoren herstellen (ohne einen zusätzlichen Mikrocontroller).

Digitale Sensoren:

Der Raspberry Pi verfügt über zwei Pins im GPIO für I²C. Wenn Sie also GND, + V, SDA und SCL an Ihre Sensoren anschließen, sollten Sie in der Lage sein, über eine I²C-Bibliothek mit diesen zu kommunizieren. Es gibt einen Fahrer hier - wenn Sie die Anweisungen folgen sollten Sie in der Lage sein , I²C zu senden und empfangen Signale so einfach wie diese ( im Gespräch mit einem 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)

Beispiele:

Auf dieser Seite finden Sie einige Artikel zum Anschließen von Sensoren und Motoren , z. B. zum Anschließen eines Mindstorm-Baustein-Controllers an einen externen Mikrocontroller:

Mindstorming mit Mikrocontroller



1

Mindstorms ist die einzige LEGO-Möglichkeit, mehr LEGO zu steuern.

Der aktuelle NXT 2.0 ist ziemlich teuer, aber Sie könnten ein älteres RCX-Kit (das ist nur ein Beispiel) zum Preis von etwa 1/3 des NXT 2.0 im Internet kaufen.

Andernfalls müssen Sie sich nach einem anderen Motor- / Sensor-Kit umsehen, das Sie möglicherweise an LEGO anbringen können. Diese sind nicht gerade leicht zu finden und können recht teuer sein. Es könnte sich lohnen, jemanden zu finden, der mehr über sie weiß, wenn Sie diesen Weg gehen.

Wenn Sie ein älteres LEGO-Produkt bei ebay kaufen möchten, empfehle ich Ihnen , brickpicker.com zu besuchen , um sich einen Überblick über den Markt zu verschaffen . (Ich habe es vor ein oder zwei Monaten entdeckt. Es ist ein großartiger Ort, um Informationen über den aktuellen Marktwert von LEGO Sets bei ebay zu finden.)


2
Das tut mir leid. Ich hätte vorschlagen sollen, dass Sie das RPi in Ihre Antwort einbeziehen, da dies eine Website über das RPi ist und die Frage sich auf das RPi bezieht. Wenn Sie Ihre Frage bearbeiten, kann ich meine Ablehnung entfernen. Übrigens, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Suchen Sie in diesem PDF nach "Larsson", und Sie werden mein Projekt-Abstract von der Intel International Science Fair vor einigen Jahren finden. Es war ein Lego Mindstorm, der gelernt hat , bei Tic Tac Toe zu gewinnen.
Andrew Larsson

Keine Sorge, ich habe auch keine perfekte Einstellung eingenommen. Ich kenne die RPi-Sache, aber eine Antwort muss nicht direkt damit zusammenhängen - wir haben jede Menge linux- / distro-spezifischer Fragen, und ich bin sicher, Sie könnten RCX mit dem Pi ausführen.
27.

@ Andrew wel Ich habe meinen Kommentar gelöscht, damit wir einen neuen beginnen können. Das hört sich wirklich interessant an. Ich habe ein Python-Skript erstellt, das Tic Tac Toe spielen kann, aber es so zu gestalten, dass es lernt, wie man es spielt. Nun, das klingt brillant.
28.

Es wurde eine modifizierte / optimierte Implementierung von Donald Michies MENACE-Maschine verwendet. Der Roboter wurde von einem C ++ - Programm gesteuert, das Befehle / Daten für / von den Motoren / Sensoren zum / vom NXT schob / zog. Die Berechnungen wurden auf dem Computer durchgeführt, aber ich hatte eine Version des Programms, die auf dem NXT selbst lief. Der Speicher würde jedoch ziemlich schnell ausgehen, und Arrays werden von der Standard-Firmware nicht unterstützt, sodass ich sie durch eine geänderte ersetzen musste. Ich denke, ich könnte mein RPi verwenden, um eine neue Version des Programms zu erstellen. Es würde Spaß machen!
Andrew Larsson

Seit ich meinen NXT habe, habe ich mich gefragt, wie Sie ihn mit einer höheren Sprache auf einem Computer steuern können. Es gibt Dinge wie leJOS und so, aber was hast du benutzt?
28.

1

Es gibt eine Alternative zu all dem: Schließen Sie die NXT-Sensoren und -Motoren an die NXT-Steuereinheit an und koppeln Sie sie über Bluetooth mit dem Pi. Sie können dann Befehle direkt an den NXT senden, um dessen Motoren zu steuern und dessen Sensoren zu lesen. Schauen Sie sich das Mindstorms-Bluetooth-Entwickler-Kit an, damit der NXT vollständig drahtlos ist !!!!!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.