- Pojęcie:
- Wymagane materiały:
- Schematy i sprzęt:
- Program dla Arduino:
- Program do przetwarzania:
- Pracujący:
To bardzo ciekawy projekt, w którym dowiemy się, jak zaimplementować wirtualną rzeczywistość z wykorzystaniem Arduino i Processing. Dla większości z nas film Iron man Jona Favreau zawsze był inspiracją do tworzenia nowych rzeczy, które uczynią nasze życie łatwiejszym i przyjemniejszym. Osobiście podziwiałem technologie pokazane w filmie i zawsze chciałem zbudować coś podobnego do tego. Tak więc w tym projekcie próbowałem naśladować rzeczywistość wirtualną, która ma miejsce w filmie, tak jak możemy po prostu machnąć ręką przed komputerem i przesunąć wskaźnik w żądane miejsce i wykonać kilka zadań.
Tutaj pokażę ci, jak możesz po prostu machać ręką przed kamerką i narysować coś na komputerze. Pokażę ci również, jak możesz przełączać światła, wirtualnie poruszając ręką i wykonując kliknięcia palcami w powietrzu.
Pojęcie:
Aby tak się stało, musimy wykorzystać moc Arduino i przetwarzania w połączeniu. Większość z nich znałaby Arduino, ale przetwarzanie może być dla Ciebie nowe. Przetwarzanie jest aplikacją, podobnie jak Arduino, a także jest open source i można ją bezpłatnie pobrać. Za pomocą przetwarzania możesz tworzyć proste aplikacje systemowe, aplikacje na Androida i wiele więcej. Ma również możliwość przetwarzania obrazu i rozpoznawania głosu. Jest podobny do Arduino i jest bardzo łatwy do nauczenia, ale nie martw się, jeśli jesteś zupełnie nowy w przetwarzaniu, ponieważ napisałem ten samouczek dość prosty, aby każdy zainteresowany może sprawić, że zadziała w mgnieniu oka.
W tym samouczku używamy Przetwarzania, aby stworzyć prostą aplikację systemową, która zapewnia nam interfejs użytkownika i śledzi pozycję naszej dłoni za pomocą przetwarzania obrazu. Teraz musimy wykonać lewym i prawym kliknięciem palcami. Aby to się stało, użyłem dwóch czujników halla (jeden na moim palcu wskazującym, a drugi na środkowym), które będą odczytywane przez Arduino Nano. Arduino przesyła również status kliknięcia do komputera bezprzewodowo przez Bluetooth.
To może wydawać się skomplikowane, ale zaufaj mi; nie jest tak trudne, jak się wydaje. Przyjrzyjmy się więc materiałom potrzebnym do uruchomienia tego projektu.
Wymagane materiały:
- Arduino Nano
- Czujnik Halla (A3144) - 2
- Mały kawałek magnesu
- Moduł Bluetooth (HC-05 / HC-06)
- Bateria 9V
- Płytka łącząca przewody.
- Para rękawiczek
- Arduino IDE (oprogramowanie)
- Przetwarzanie IDE (oprogramowanie)
- Komputer z kamerą internetową i łącznością Bluetooth (można również użyć zewnętrznej łączności Bluetooth lub kamery internetowej do komputera)
Schematy i sprzęt:
Część sprzętowa tego projektu jest bardzo prosta i łatwa do zbudowania. Pełny schemat przedstawiono poniżej.
Arduino, rezystory i piny berg są przylutowane do płytki z kropkami, jak pokazano poniżej.
Czujnik halla i moduł Bluetooth są przylutowane do przewodu łączącego, jak pokazano poniżej.
Gdy te dwie sekcje są gotowe, można je założyć na rękawice, aby były łatwe w użyciu. Użyłem jednorazowych rękawiczek plastikowych, które można kupić w dowolnym sklepie medycznym w Twojej okolicy. Powinieneś upewnić się, że magnes znajduje się na kciuku, a czujnik Halla 1 i czujnik Halla 2 powinny znajdować się odpowiednio przed palcem wskazującym i środkowym. Użyłem taśm kaczych, aby zabezpieczyć komponenty na miejscu. Po zmontowaniu komponentów powinno to wyglądać mniej więcej tak.
Teraz otwórzmy Arduino IDE i zacznijmy programować.
Program dla Arduino:
Celem tego kodu Arduino jest odczyt stanu czujnika halla i nadawanie ich za pomocą modułu Bluetooth. Powinien również odbierać dane z Bluetooth i przełączać wbudowaną diodę LED na podstawie przychodzącej wartości. Kompletny program znajduje się na końcu tego samouczka; Poniżej wyjaśniłem również kilka wierszy.
if (Phs1! = HallState_1 - Phs2! = HallState_2) // Sprawdź, czy naciśnięto nowe klawisze {if (HallState_1 == LOW && HallState_2 == LOW) Aisha.write (1); if (HallState_1 == HIGH && HallState_2 == LOW) Aisha.write (2); if (HallState_1 == LOW && HallState_2 == HIGH) Aisha.write (3); if (HallState_1 == HIGH && HallState_2 == HIGH) Aisha.write (4); }
Jak pokazano w powyższych wierszach w oparciu o stan czujnika halla, Bluetooth zapisze określoną wartość. Na przykład, jeśli czujnik halla 1 jest wysoki, a czujnik halla 2 jest niski, wówczas będziemy nadawać wartość „2” przez moduł Bluetooth. Upewnij się, że zapisujesz wartości do modułu BT i nie drukujesz ich. Ponieważ będzie łatwy do odczytania tylko po stronie Przetwarzania tylko wtedy, gdy są napisane. Wartość zostanie wysłana tylko wtedy, gdy nie będzie taka sama jak poprzednia wartość.
if (BluetoothData == 'y') digitalWrite (ledpin, HIGH); if (BluetoothData == 'n') digitalWrite (ledpin, LOW);
Te linie służą do przełączania wbudowanej diody LED, która jest podłączona do Pin 13, w oparciu o wartość odebraną przez moduł BT. Na przykład, jeśli moduł otrzyma „y”, to dioda LED zostanie włączona, a jeśli otrzyma „n”, to zostanie wyłączona.
Program do przetwarzania:
Celem programu Processing jest stworzenie aplikacji systemowej, która może działać jako UI (interfejs użytkownika), a także wykonywać przetwarzanie obrazu w celu śledzenia określonego obiektu. W tym przypadku śledzimy niebieski obiekt, który przykleiliśmy powyżej do naszych rękawiczek. Program ma w zasadzie cztery ekrany.
- Ekran kalibracji
- Główny ekran
- Maluj ekran
- Ekran przełączania LED
Możemy przechodzić z jednego ekranu na drugi, po prostu machając rękami i przeciągając ekrany w powietrzu. Możemy również kliknąć wybrane miejsca, aby przełączyć diodę lub nawet narysować coś na ekranie.
Możesz skopiować, wkleić kompletny program do przetwarzania (podany na końcu) i zmodyfikować go w oparciu o swoją kreatywność lub po prostu pobrać pliki EXE z tego miejsca i wykonać następujące kroki, aby uruchomić aplikację.
- Zainstaluj JAVĘ na swoim komputerze, jeśli wcześniej jej nie instalowałeś
- Zainstaluj You Cam perfect na swoim komputerze
- Włącz Arduino i sparuj komputer z modułem Bluetooth
- Uruchom plik aplikacji
Jeśli wszystko pójdzie dobrze, powinieneś być w stanie zauważyć, że dioda LED na module Bluetooth staje się stabilna, a kamera internetowa świeci. Jeśli masz jakiekolwiek problemy, skontaktuj się ze mną przez sekcję komentarzy, a ja Ci pomogę.
Obejrzyj film na końcu, aby dowiedzieć się, jak skalibrować aplikację i jak z niej korzystać.
Jeśli chcesz zmodyfikować kod i wbudować w niego więcej funkcji, możesz skorzystać z następujących spostrzeżeń programu
Przetwarzanie IDE można pobrać stąd. Jeśli chcesz dowiedzieć się więcej o przetwarzaniu i tworzyć ciekawsze projekty, możesz odwiedzić tutoriale tutaj.
Przetwarzanie posiada możliwość odczytu danych szeregowych, w tym programie dane szeregowe pochodzą z portu COM Bluetooth. Musisz wybrać port COM, z którym łączy się twój Bluetooth, korzystając z poniższej linii
port = nowy Serial (this, Serial.list (), 9600);
Tutaj wybrałem mój pierwszy port COM, który w moim przypadku jest COM5 (patrz obrazek poniżej) i wspomniałem, że moduł Bluetooth działa z szybkością 9600 bodów.
Jak wspomniano wcześniej, przetwarzanie ma również możliwość przetwarzania obrazu, w tym samouczku obrazy są przesyłane wewnątrz szkicu za pomocą kamery internetowej. Na każdym obrazie śledzimy określony obiekt. Aby dowiedzieć się więcej na ten temat, odwiedź ten samouczek.
Starałem się jak najlepiej wyjaśnić program (podany na końcu) za pomocą komentarzy. Możesz pobrać pliki tutaj.
Jeśli chcesz dowiedzieć się więcej o szkicu, możesz skontaktować się ze mną w sekcji komentarzy, a ja ci pomogę.
Pracujący:
Gdy sprzęt i oprogramowanie będą gotowe, załóż rękawiczki i przygotuj się na akcję. Teraz wystarczy zasilić Arduino, a następnie uruchomić aplikację. Dioda na module Bluetooth powinna świecić stabilnie. Teraz oznacza to, że aplikacja systemowa ustanowiła połączenie Bluetooth z Arduino.
Pojawi się następujący ekran, na którym musisz wybrać obiekt do śledzenia. To śledzenie można po prostu wykonać, klikając obiekt. W tym przypadku obiektem jest niebieski dysk. Teraz możesz przesunąć obiekt i zauważyć, że wskaźnik podąża za nim. Aby uzyskać najlepsze rezultaty, użyj obiektu o unikalnym kolorze i jasnego pomieszczenia.
Teraz dotknij kciuka palcem wskazującym. Powinien pojawić się komunikat „Wciśnięty klawisz 1”, a po naciśnięciu kciuka środkowym palcem powinien pojawić się komunikat „Wciśnięty klawisz 2”, co oznacza, że wszystko działa prawidłowo i kalibracja jest zakończona. Teraz kliknij przycisk Gotowe.
Po naciśnięciu przycisku Gotowe zostaniesz przekierowany do ekranu głównego, na którym możesz malować na powietrzu lub przełączać diodę LED na płycie Arduino, jak pokazano na poniższym filmie.