To i ja dorzucę swoje dwa grosze :) Z racji że zbudowałem trialówkę na NXT, to zacząłem szukać sposobów na sterowanie nią przez pada. Wszystkie poniższe sposoby używają 'Direct Commands' (chociaż sposobu używającego RobotC nie jestem pewien), więc nie wymagają programowania kostki.
Jest kilka opcji:
1. NXT/EV3, komputer z Win8 wzwyż i Bluetoothem, pad kompatybilny z systemami Windows, aplikacja Mindstorms Remote
Najprostsza opcja. Wchodzimy na Microsoft Store, ściągamy darmową aplikację
Mindstorms Remote. Wystarczy sparować kostkę z komputerem, podłączyć pada, włączyć aplikację. Całość działa dość przyjemnie, niestety na stałe ustawione jest sterowanie: L1/R1 sterują silnikiem A, lewy analog steruje silnikami B i C przód tył, prawy analog steruje różnicą prędkości silników B i C (sterowanie czołgowe). Od biedy można używać tylko lewego analoga i L1/R1, wtedy da się trialówką jakoś sterować.
2. NXT/EV3, telefon z Androidem, opcjonalnie trochę doświadczenia w kodowaniu
Mobilna opcja. Wiem że na iOSie i Androidzie da się napisać aplikację, która będzie czytać pada i sterować kostką, ale mam za mało doświadczenia z tymi systemami żeby się na to porwać. Może w przyszłości. Jednak są sposoby, żeby pisać aplikacje na Androida dużo prościej, niż ucząc się systemu i Javy. Mowa o MIT AppInventor i jego pochodnych.
Jeżeli ktoś programował w Scratchu, to powinien się łatwo odnaleźć. AppInventor ma wbudowane 'klocki' do sterowania NXT i EV3. Nie trzeba bawić się z Bluetoothem na niskim poziomie.
Sam 'napisałem' aplikację do sterowania NXT ekranowymi joystickami w jednym z klonów AppInventora - AppyBuilder. Ma on ten plus, że obsługuje wielodotyk.
Plik instalatora dla ciekawych można znaleźć tutaj:
.APK
A tutaj jest plik do otwarcia w AppyBuilder, jeśli chcecie coś zmienić:
.AIA
3. NXT, komputer z Bluetoothem, doświadczenie w programowaniu, pad Logitech, licencja RobotC
Ciut cięższa opcja, ale warta rozważenia. Język programowania i środowisko RobotC wspiera sterowanie robotem przez pady Logitech. W bibliotekach są już gotowe przykłady i zmienne, czytanie pada i przesyłanie informacji jest dość proste. Albo co najmniej takie się wydaje, z racji że RobotC jest płatne i tego że nie wiem czy metoda działa z innymi padami, nie przyglądałem jej się bliżej.
4. NXT/EV3, komputer z Bluetoothem, pad kompatybilny z Windows, darmowe środowisko Bricx Command Center.
Znów opcja bez programowania, ale bez możliwości konfiguracji. Środowisko Bricx Command Center służy głównie do programowania w NXC, ale posiada wbudowaną opcję sterowania joystickiem. Są dwie możliwości sterowania: czołgowe, i samochodowe. W tym drugim, jedna gałka analogowa steruje silnikiem do skrętu (z tego co pamiętam to prawa), a druga silnikiem napędowym. Minusy są dwa: nic tu nie można zmienić, i silnik napędowy możemy zaznaczyć... tylko jeden. Szkoda, bo gdyby minimalnie zmienić środowisko, stałoby się naprawdę dobrym sposobem na sterowanie trialówkami.
5. NXT/EV3, komputer z Bluetoothem, kompatybilny pad, doświadczenie w programowaniu
Jeśli żadna poprzednia opcja ci nie odpowiada, zawsze można samemu napisać program do sterowania. Jako że nikt nie chce się bawić z komunikacją Bluetooth, poszukałem gotowych bibliotek do komunikacji z NXT/EV3. Najbardziej rozwiniętą jest bazą jest według mnie
MonoBrick: dostępną mamy bibliotekę do C++ i C#. Ja używałem tej drugiej, i wszystko działało jak powinno. Jak doszlifuję program, to go tutaj udostępnię. Z bibliotekami do innych języków jest trochę gorzej, nic pod Pythona nie znalazłem.
6. NXT/EV3, Arduino + HC05 lub ESP32, doświadczenie w programowaniu, lutowaniu
Opcja dla elektroników. Z mojego doświadczenia wiem, że taniutki moduł HC05 może łączyć się z NXT jako master. Jeżeli podepniemy go do Arduino, to możemy czytać najróżniejsze sygnały, np: pady ze starych konsol (PS2, Wii), aparatury RC, joysticki-samoróbki itd. Opcji jest tyle ile pomysłów.
ja sam zrobiłem 'przejściówkę' pomiędzy aparaturą RC a NXT. Działa to szybko, nie ma opóźnień. Całość jest dużo wygodniejsza od jakiegokolwiek Legowego systemu sterowania czy pada.
Tutaj są
zdjęcia, a tutaj
film.