Jak wiadomo tanie kontrolery Nunchuck od konsoli Wii są wyposażone w Akcelerometr 3 osiowy,
Ponadto do dyspozycji dostajemy też Joystick i 2 przyciski
Sam akcelerometr w postaci modułu jest dosyć drogi , ale nunchacka można nabyć tanio
i wykorzystać go do własnych celów.
W przypadku płytek Duino mozemy w bardzo prosty sposób wykorzystać dostępna w Arduino IDE
bibliotekę Wire. Kontroler ten komunikuje się po magistrali TWI (I2C) więc odczytanie go
nie sprawi nam wiele problemów , a w związku z ładną obudową i gotowym okablowaniem
możemy użyć go do np obsługi robota, serva czy wielu innych celów:)
Kontroler ten używa własnego gniazda, ale możemy postąpić z nim na dwa sposoby:
1. Pozbywamy się gniazda :
w przewodzie są tylko 4 kable których znaczenie jest następujące:
-- biały ---> Masa (GND)
-- czerwony ---> +3.3V
-- zielony ---> DATA
-- zółty ---> CLK (zegar)
Jak więc widać nic skomplikowanego , podłączamy do naszej płytki xxxDuino następująco:
Biały na GND , czerwony do +5V --> Pozostałe 2 do I2C co opisze niżej.
UWAGA !!
Jak zauważyliście kontroler jest na 3,3V, a ja go podłączyłem do +5V Jak do tej pory pracuje dobrze,
ale zdaję sobie sprawę i ostrzegam iż zasilanie podwyższonym napięciem może negatywnie wpłynąć na
żywotność urządzenia:)
2. Przez adapter gniazda :
adapter taki jest bardzo łatwo wykonać na płytce z laminatu
Kiedy się już uporamy z naszym podłączeniem i wybierzemy odpowiedni sposób przystępujemy do
zabawy z biblioteką
Komunikacja z nunchackiem wygląda następująco :
Najpierw wysyłamy 2 bajty (0x40, 0x00), a następnie jeden bajt (0x00) za każdym razem
prosząc o dane z kontrolera, na co kontroler odpowiada 6 bajtowymi paczkami.
Znaczenie poszczególnych bajtów pokazuje tabelka
Napiszemy teraz prosty program , który będzie odczytywał dane z kontrolera nunchuck i wysyłał je
do komputera na terminal. Jako że ciężko będzie nadążyć z odczytem na TWI i wysyłaniem danych
na terminal w tym samym czasie będzie widoczne niewielkie opóźnienie i sporadycznie mogą się
pojawiać dziwne znaki na terminalu (przekłamania) . Wydaje mi się że powoduje to zakłócanie się
wzajemne transmisji szeregowej na UART i TWI.
Nasz program prezentuje się następująco:
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Jak widać sprawa jest prosta i można rzec banalna , a nunchucka można użyć do wielu niecnych celów
nap do sterowania servem modelarskim co może opiszę innym razem , ale jest sporo przykładów na sieci
np tutaj :
SERWO czy też inna zabawka:
ZabaweczkaJak więc widzicie możliwości na wykorzystanie kontrolera Wii są nieograniczone niczym , poza naszą wyobraźnią
Życzę miłej zabawy