Jak mogę kontrolować silniki Lego?

20

Chciałbym znaleźć sposób, aby mój Raspberry Pi sterował niektórymi silnikami Lego, a jako bonus chciałbym skorzystać z jednego lub więcej czujników optycznych.

Zwykle robotyka Lego korzysta z kontrolera „cegiełki” Mindstorms - wydaje się to drogie i głównie zbędne, jeśli masz Raspberry Pi do wydawania poleceń. Kontroler Mindstorms to procesor i sterownik silnika, który może działać bez połączenia z komputerem, ale nie ma Ethernetu i wielu funkcji współczesnych komputerów.

Czy jest jakaś alternatywna platforma, która pozwoli mi kontrolować i otrzymywać dane z kreacji Lego?

Do Twojej wiadomości, jest to prosta maszyna ostrzegająca o błędach. Urządzenie będzie monitorować status środowiska testowego Jenkins i wykona akcję w zależności od liczby przypadków testów jednostkowych, które zawiodły. Raspberry pi będzie sondować stronę internetową, która zawiera niektóre łatwe do analizy XML. Jeśli liczba błędów> 0, chcielibyśmy, aby Raspberry Pi zaczął prowadzić maszynę.

Salim Fadhley
źródło
Hej, czy raspberrypi.stackexchange.com/users/390/salim-fadhley i raspberrypi.stackexchange.com/users/286/salim-fadhley oba konta? Edytuj swoje profile na obu (jeśli to możliwe), prosząc o scalenie. Już wysłałem ping do członka zespołu społeczności, by uzyskać pomoc.
Manishearth
Chciałbym to zrobić ze starszymi silnikami Lego Mindstorms, które posiadam, które są prostymi silnikami prądu stałego. Połóż + 5v na jednej stronie, odwrócą się w jedną stronę, połóż + 5v na drugiej stronie, odwrócą się w drugą stronę. Zbyt duży prąd, aby RPi mogło jechać bezpośrednio, więc nadal potrzebowałbym obwodów interfejsu.

Odpowiedzi:

13

Standardowe czujniki Lego Mindstorms są analogowe (tj. Napięcie między 0-5? V) lub cyfrowe (I²C lub RS-485) ( źródło ).

Czujniki analogowe:

Nie sądzę, że Raspberry Pi ma wyłamany pin w GPIO dla ADC (przetwornik analogowo-cyfrowy), więc nie możemy połączyć się z czujnikami analogowymi (bez dodatkowego mikrokontrolera).

Cyfrowe czujniki:

Raspberry Pi ma dwa piny w GPIO dla I²C, co oznacza, że ​​jeśli podłączysz GND, + V, SDA i SCL do swoich czujników, powinieneś być w stanie skorzystać z biblioteki I²C, aby z nimi porozmawiać. Jest tu sterownik - jeśli postępujesz zgodnie z instrukcjami, powinieneś być w stanie wysyłać i odbierać sygnały I²C tak łatwo, jak to (rozmowa z 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)

Przykłady:

Istnieje kilka artykułów na jak podłączyć czujniki i silniki na tej stronie , takich jak podłączenie kontrolera cegły mindstorm do zewnętrznego mikrokontrolera:

Burza myśli z mikrokontrolerem

Alex L.
źródło
1

Mindstorms to jedyny sposób, w jaki LEGO całkowicie kontroluje więcej LEGO.

Obecny NXT 2.0 jest dość drogi, ale możesz kupić starszy zestaw RCX (to tylko przykład) za coś takiego jak 1/3 ceny NXT 2.0 w Internecie.

W przeciwnym razie będziesz musiał spojrzeć na inny zestaw silnik / czujnik, który możesz podłączyć do LEGO. Nie są one łatwe do znalezienia i mogą być dość drogie; warto spróbować znaleźć kogoś, kto wie o nich więcej, jeśli pójdziesz tą drogą.

Jeśli masz zamiar zdobyć starszy produkt LEGO w serwisie eBay, sugeruję przeglądanie brickpicker.com, aby uzyskać migawkę z rynku. (Odkryłem to miesiąc lub dwa lata temu. To świetne miejsce, aby znaleźć informacje na temat bieżącej wartości rynkowej zestawów LEGO w serwisie eBay.)

ACarter
źródło
2
Przepraszam za to. Powinienem zasugerować, że w jakiś sposób umieścisz RPi w swojej odpowiedzi, ponieważ jest to strona o RPi, a pytanie dotyczyło RPi. Jeśli edytujesz swoje pytanie, mogę usunąć moją opinię. Nawiasem mówiąc, www1.cbsd.org/sites/teachers/hs/MHAYDEN/Science%20Fair/... Wyszukaj „Larsson” w tym pliku PDF, a streszczenie mojego projektu z Międzynarodowych Targów Naukowych Intel kilka lat temu. Była to Lego Mindstorm, która nauczyła się wygrywać w Tic Tac Toe.
Andrew Larsson,
Nie martw się, ja też nie miałam idealnej postawy. Wiem o RPi, ale odpowiedź nie musi być bezpośrednio z nią związana - mamy mnóstwo pytań specyficznych dla Linux / Distro i jestem pewien, że możesz uruchomić RCX z Pi.
ACarter
@Andrew wit Usunąłem mój komentarz, abyśmy mogli zacząć od nowa. Brzmi naprawdę interesująco. Stworzyłem skrypt Pythona, który potrafi grać w kółko i krzyżyk, ale dzięki temu uczy się, jak grać, no cóż, brzmi świetnie.
ACarter
Wykorzystano zmodyfikowaną / zoptymalizowaną implementację maszyny MENACE Donalda Michie . Robot był kontrolowany przez program C ++, który wypychał / wyciągał polecenia / dane dla / z silników / czujników do / z NXT. Obliczenia zostały wykonane na komputerze, ale miałem wersję programu, która działała na samym NXT. Skończyłoby się to dość szybko, a tablice nie są obsługiwane przez standardowe oprogramowanie, więc musiałem go zastąpić zmodyfikowanym. Myślę, że mógłbym użyć mojego RPi do stworzenia nowej wersji programu. Bedzie fajnie!
Andrew Larsson,
Odkąd dostałem NXT, zastanawiałem się, jak możesz nim sterować za pomocą języka wyższego poziomu na komputerze. Są rzeczy takie jak leJOS i inne, ale z czego korzystałeś?
ACarter
1

Istnieje alternatywa dla tego wszystkiego, podłącz czujniki i silniki NXT do jednostki sterującej NXT, a następnie sparuj je za pomocą Bluetooth z Pi, możesz następnie wysyłać polecenia bezpośrednio do NXT w celu sterowania silnikami i odczytywania czujników. sprawdź zestaw deweloperów Bluetooth Mindstorms, dzięki czemu NXT może być całkowicie bezprzewodowy !!!!!

mikrofon
źródło