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ę.


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



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.)


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 !!!!!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.