Come posso controllare i motori Lego?


20

Vorrei trovare un modo per fare in modo che il mio Raspberry Pi controlli alcuni motori Lego e, come bonus, vorrei utilizzare uno o più sensori ottici.

Normalmente, la robotica Lego utilizza il controller "brick" di Mindstorms - questo sembra essere costoso e soprattutto ridondante se si dispone di un Raspberry Pi per inviare comandi. Il controller Mindstorms è un processore e un controller motore che può funzionare senza connessione a un PC ma manca di Ethernet e di molte funzionalità dei computer moderni.

Esiste una piattaforma alternativa che mi permetterà di controllare e ricevere dati dalle creazioni Lego?

Cordiali saluti, questo è per una semplice macchina di avviso bug. Il dispositivo monitorerà lo stato di un framework di test Jenkins ed eseguirà un'azione in base al numero di casi di unit test che non riescono. Raspberry Pi eseguirà il polling di una pagina Web che contiene alcuni XML facilmente analizzabili. Se il numero di bug> 0, vorremmo che Raspberry Pi iniziasse a guidare la macchina.


Ehi, sono raspberrypi.stackexchange.com/users/390/salim-fadhley e raspberrypi.stackexchange.com/users/286/salim-fadhley entrambi i tuoi account? Modifica i tuoi profili su entrambi (se possibile), chiedendo una fusione. Ho già chiamato un membro del team della community per chiedere aiuto.
Manishearth,

Mi piacerebbe farlo con i più vecchi motori Lego Mindstorms che ho, che sono semplici motoriduttori a corrente continua. Mettono + 5v da un lato, girano in una direzione, mettono + 5v dall'altro lato, girano nell'altra direzione. Tuttavia, la corrente troppo elevata per l'RPi può guidare direttamente, quindi avrei ancora bisogno di alcuni circuiti di interfaccia.

Risposte:


13

I sensori Lego Mindstorms standard sono analogici (ovvero una tensione tra 0-5? V) o digitali (I²C o RS-485) ( sorgente ).

Sensori analogici:

Non credo che Raspberry Pi abbia un pin rotto nel GPIO per un ADC (convertitore da analogico a digitale), quindi non possiamo interfacciarci con sensori analogici (senza un microcontrollore aggiuntivo).

Sensori digitali:

Il Raspberry Pi ha due pin nel GPIO per I²C, il che significa che se colleghi GND, + V, SDA e SCL ai tuoi sensori, dovresti essere in grado di usare una libreria I²C per parlare con loro. C'è un driver qui - se segui le istruzioni dovresti essere in grado di inviare e ricevere segnali I²C con la stessa facilità (parlando con un 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)

Esempi:

Ci sono alcuni articoli su come collegare sensori e motori in questa pagina , come il collegamento di un controller mattone Mindstorm a un microcontrollore esterno:

Mindstorm con microcontrollore



1

Mindstorms è l'unico modo totalmente LEGO di controllare più LEGO.

L'attuale NXT 2.0 è piuttosto costoso, ma potresti prendere un vecchio kit RCX (che è solo un esempio) per qualcosa come 1/3 del prezzo dell'NXT 2.0 sul web.

Altrimenti, dovrai cercare un kit motore / sensore diverso che potresti collegare a LEGO. Questi non sono esattamente facili da trovare e possono essere piuttosto costosi; potrebbe valere la pena cercare qualcuno che ne sappia di più se segui questa strada.

Se hai intenzione di ottenere un vecchio prodotto LEGO da ebay, ti suggerirei di sfogliare brickpicker.com per ottenere un'istantanea del mercato. (L'ho scoperto un mese o due fa. È un ottimo posto per trovare informazioni sull'attuale valore di mercato dei set LEGO su eBay.)


2
Mi dispiace per quello. Avrei dovuto suggerire di includere in qualche modo l'RPi nella tua risposta, perché questo è un sito sull'RPi e la domanda era sull'RPi. Se modifichi la tua domanda, posso rimuovere il mio voto negativo. A proposito, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/… Cerca "Larsson" in quel PDF e troverai il mio estratto del progetto dalla Intel International Science Fair qualche anno fa. È stato un Mindstorm Lego che ha imparato a vincere al Tic Tac Toe.
Andrew Larsson,

Non preoccuparti, non ho nemmeno preso un atteggiamento perfetto. Conosco la cosa RPi, ma una risposta non deve essere direttamente correlata ad essa - abbiamo un sacco di domande specifiche su Linux / distro e sono sicuro che potresti eseguire RCX con il Pi.
ACarter,

@Andrew wel ho eliminato il mio commento, così possiamo ricominciare da capo. Sembra davvero interessante. Ho realizzato una sceneggiatura in pitone in grado di riprodurre tic tac toe, ma facendola in modo che impari a riprodurla, beh, suona brillante.
ACarter,

Ha usato un'implementazione modificata / ottimizzata della macchina MENACE di Donald Michie . Il robot era controllato da un programma C ++ che spingeva / estraeva comandi / dati per / dai motori / sensori verso / dall'NXT. I calcoli venivano eseguiti sul computer, ma avevo una versione del programma che funzionava sull'NXT stesso. La memoria si esaurirebbe abbastanza rapidamente, tuttavia, e gli array non sono supportati dal firmware standard, quindi ho dovuto sostituirlo con uno modificato. Sto pensando che potrei usare il mio RPi per creare una nuova versione del programma. Sarebbe divertente!
Andrew Larsson,

Da quando ho ricevuto il mio NXT, mi chiedevo come puoi controllarlo usando un linguaggio di livello superiore su un computer. Ci sono cose come leJOS e cose simili , ma cosa hai usato?
ACarter,

1

Esiste un'alternativa a tutto ciò, collega i sensori e i motori NXT all'unità di controllo NXT e quindi accoppialo via Bluetooth con il Pi, puoi quindi inviare comandi direttamente all'NXT per controllare i suoi motori e leggere i suoi sensori. controlla il kit di sviluppo bluetooth Mindstorms, questo consente a NXT di essere completamente wireless !!!!!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.