Spisu treści:

Samochód RC sterowany wirtualną rzeczywistością: 9 kroków
Samochód RC sterowany wirtualną rzeczywistością: 9 kroków

Wideo: Samochód RC sterowany wirtualną rzeczywistością: 9 kroków

Wideo: Samochód RC sterowany wirtualną rzeczywistością: 9 kroków
Wideo: 20 Szalonych Sterowanych Radiowo Zabawek -ALLEGRO -AliExpress -Chiny 2024, Listopad
Anonim
Image
Image

Czy kiedykolwiek chciałeś zostać zmniejszony i pilotować statek taki jak Innerspace lub Fantastic Voyage? Cóż, myślę, że to jest tak blisko, jak to możliwe w krótkim czasie!

Oto prezentacja:

Samochód zdalnie sterowany Real-Life, pilotowany z konsoli poleceń wirtualnej rzeczywistości. Oznacza to, że zakładasz zestaw słuchawkowy VR, przestawiasz przełącznik w samochodzie RC, a następnie możesz pilotować z VR z obrazem wideo na żywo prosto na twarz.

Zaimplementowałem trzy rzeczy, którymi możesz sterować w samochodzie VR.

  1. Koła
  2. klakson
  3. Światła

Wszystkie z nich mają jakiś przycisk lub dźwignię w VR, które można obrócić lub przełączyć, aby prowadzić samochód.

Aby uzyskać pełne repozytorium i więcej informacji, sprawdź mój Github i moją stronę internetową!

Krok 1: Materiały i narzędzia

Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia
Materiały i narzędzia

Mechaniczny:

Zestaw podwozia z napędem na 4 koła

Elektryczny:

  • Koder koła
  • Bateria 3S 1300 mAh
  • Arduino Uno
  • Osłona silnika Arduino
  • Piezoelektryczny brzęczyk
  • Mała dioda LED
  • Złącza XT60
  • Konwerter doładowania/zwrotki

Komputer:

  • Dowolny wbudowany system komputerowy: Raspberry Pi, Jetson Nano itp.
  • Kamera USB (preferowana kamera 180 stopni)

Narzędzia / Dodatkowe:

  • Lutownica
  • Niektóre ustawienia VR - mam Oculus Rift
  • Multimetr

Krok 2: Zbuduj samochód

Zbuduj samochód
Zbuduj samochód
Zbuduj samochód
Zbuduj samochód
Zbuduj samochód
Zbuduj samochód

Podwozie samochodu jest bardzo łatwe do zbudowania. Wystarczy przymocować silniki do płyty głównej za pomocą zakładek, które ci dają. Po przymocowaniu kół i silników będziesz także potrzebować czegoś do zamocowania kamery z przodu samochodu.

Do zamontowania użyłem kartonowego pudełka, w którym wszedł aparat. Wyciąłem duży kształt litery L i wyciąłem otwór, aby kamera mogła się dokładnie przebić. Następnie możesz po prostu przełożyć kamerę i przykleić taśmę z tyłu, aby utrzymać ją na miejscu. Jeśli chcesz, możesz teraz również zrobić otwory na reflektory lub zrobić to później, mierząc długość drutu.

Będziesz także musiał przymocować enkoder do jednego z kół. Nieważne które, położyłem go na tylnym lewym kole. Dysk magnetyczny należy umieścić na właściwym wale koła, a enkoder należy przymocować do samochodu obok. Jest dość chłonny, więc nie musi być na nim od razu, ale tak blisko, jak to możliwe. Zabezpieczyłem koder taśmą i opaską na suwak. Enkoder jest tym, czego użyjemy do pomiaru prędkości naszego samochodu.

Krok 3: Obwody lutowane

Obwody lutowane
Obwody lutowane
Obwody lutowane
Obwody lutowane

Ta część jest dość żmudna, ale nie skomplikowana. Jeśli podążysz za obrazem i zmierzysz wszystko przed przecięciem przewodu, nie jest tak źle.

Kiedy to robisz, powinieneś również skalibrować konwerter buck, aby wyprowadzał prawidłowe napięcie. Raspberry Pi i Jetson Nano pobierają 5 V, ale nasza bateria ma 11,1 V. Dlatego musimy się upewnić, że nie usmażymy naszej elektroniki. Aby to zrobić, podłącz baterię do wejścia konwertera buck. Gdy bateria jest podłączona, użyj multimetru, aby zmierzyć stronę wyjściową konwertera buck. Użyj małego płaskiego śrubokręta, aby obrócić potencjometr na konwerterze buck, aż napięcie wyjściowe osiągnie 5V. Gdy wyjście będzie prawidłowe, nie będziesz już musiał obracać potencjometru.

Krok 4: Zainstaluj zależności w systemie wbudowanym

Zainstaluj zależności w systemie wbudowanym
Zainstaluj zależności w systemie wbudowanym

Nie za dużo do zrobienia, ale nadal niezwykle ważne.

Najpierw upewnij się, że łączysz się z routerem, którego będziesz używać, aby od teraz mógł łączyć się automatycznie.

Następnie otwórz terminal i wpisz:

aktualizacja sudo apt

sudo apt install openssh-server

sudo apt zainstaluj python-pip pip zainstaluj numpy pip zainstaluj opencv-python pip zainstaluj pyzmq

Po zainstalowaniu tych rzeczy musimy się upewnić, że bez względu na port, do którego jest podłączone arduino, jest on zawsze rozpoznawany. Tak więc piszemy tak zwane zasady UDEV. Są to reguły dla twojego systemu operacyjnego, które regulują to, co dzieje się po podłączeniu rzeczy. Chcemy zidentyfikować arduino, kiedy jest podłączone, i nadać mu nazwę, aby uzyskać do niego dostęp. Będzie to nazwa „arduino_0”. Aby to zrobić, użyjemy wewnętrznego numeru seryjnego arduino, aby go zidentyfikować.

udewadm info -a -n /dev/ttyUSB1 | grep '{serial}' | głowa -n1

Spowoduje to wyplucie wartości numeru seryjnego, kontynuuj i skopiuj tę wartość.

Następnie musimy edytować (lub utworzyć, jeśli nie istnieje) plik o nazwie „99-usb-serial.rules”. Ten plik znajduje się w następującej ścieżce pliku "/etc/udev/rules.d/99-usb-serial.rules". Jak wspomniałem, jeśli ten plik nie istnieje, po prostu go utwórz i wklej w następującym wierszu z wartością VALUE_FROM_ABOVE zamienioną na twoją wartość z wcześniej.

SUBSYSTEM=="tty", ATTRS{serial}=="VALUE_FROM_ABOVE", SYMLINK+="arduino_0"

To mówi systemowi operacyjnemu, że ilekroć zobaczy ten konkretny numer seryjny, nazwać go arduino_0.

Ostatnią rzeczą do zrobienia jest pobranie pliku pushArucoVideoPullCommands.py i umieszczenie go w łatwo dostępnym miejscu. Polecam katalog domowy dla twojego użytkownika, ponieważ to tam skończymy, gdy później SSH do systemu wbudowanego.

Krok 5: Ustaw statyczny adres IP

Ustaw statyczny adres IP
Ustaw statyczny adres IP

Teraz jest to część, którą wszyscy kochają, adresowanie IP. Aby ten projekt działał, kod musi wiedzieć, dokąd wysyłać obrazy i polecenia sterujące, a to oznacza, że nasze urządzenia potrzebują statycznego adresu IP.

Istnieje wiele sposobów na przypisanie Twojemu urządzeniu statycznego adresu IP, ale ponieważ mamy router łączący naszą stację naziemną i system wbudowany, możemy go użyć, aby bardzo łatwo nadać nam określone adresy IP.

Przejdź do sekcji administratora routera, zwykle (w przypadku większości routerów) odbywa się to poprzez otwarcie przeglądarki internetowej i przejście do „192.168.1.1”. Zostaniesz poproszony o zalogowanie się, a typowa standardowa nazwa użytkownika i hasło dla większości routerów to „admin”.

Tam przejdź do czegoś, co wspomina „Serwer DHCP”. Jest to proces, który działa na routerze i śledzi, jakie urządzenia są z nim połączone za pomocą ich adresu MAC, który jest zawsze stały. Chcemy wybrać urządzenia, na których nam zależy komputera stacji naziemnej i systemu wbudowanego, a następnie dodaj je do zarezerwowanej sekcji klienta. Dzięki temu uzyskają statyczne adresy IP za każdym razem, gdy będą podłączone do tego routera.

Upewnij się, że ustawiłeś adres IP systemu wbudowanego na 192.168.1.122IP stacji naziemnej można ustawić na dowolną wartość.

Krok 6: Prześlij kod do Arduino

Prześlij kod do Arduino
Prześlij kod do Arduino

Aby wgrać kod arduino, musimy najpierw zainstalować bibliotekę do pracy z osłoną silnika.

W swoim Arduino IDE przejdź do Sketch->Include Library->Manage Libraries… Następnie wyszukaj Adafruit Motor Shield Library. Zainstaluj tę bibliotekę, a następnie prześlij kod do swojego arduino, nic więcej nie powinno być wymagane.

Krok 7: Podłącz obwody i komputer do samochodu

Podłącz obwody i komputer do samochodu
Podłącz obwody i komputer do samochodu

Teraz, gdy tor jest już zbudowany, nadszedł czas, aby umieścić to wszystko w samochodzie. Nie będę kłamać, wiele z tych rzeczy jest po prostu utrzymywanych na taśmie, ponieważ to było dla mnie najłatwiejsze do zrobienia, naprawdę szybko. To powiedziawszy, ma dopasowane otwory montażowe, jak widać na powyższym obrazku.

Większość rzeczy można po prostu zostawić gdzieś na dachu samochodu, więc nie martw się, jeśli nie ma dużo miejsca.

Krok 8: Skonfiguruj środowisko VR

Skonfiguruj środowisko VR
Skonfiguruj środowisko VR

Ta sekcja będzie wyglądać trochę inaczej w zależności od tego, jaką masz konfigurację VR. W każdym razie użyłem SteamVR do opracowania tego oprogramowania, więc może być konieczne jego zainstalowanie.

Tak długo, jak korzystasz ze SteamVR, elementy sterujące powinny dostosowywać się do różnych kontrolerów. Zmapowałem kontrolki do "Akcji", niekoniecznie przycisków, więc teoretycznie dostosuje się do wszystkich.

Wystarczy pobrać i rozpakować plik ze światem kompilacji Unity i być gotowym do uruchomienia VR_Bot.exe.

Krok 9: Uruchom to wszystko razem

Uruchom to wszystko razem
Uruchom to wszystko razem
Uruchom to wszystko razem
Uruchom to wszystko razem

Więc teraz, kiedy mamy już konfigurację samochodu i stację naziemną, wszystko podłączone i gotowe do pracy, jak właściwie mamy prowadzić tego złego chłopca? Cóż, z punktu widzenia stacji naziemnej, wystarczy uruchomić plik VR_Bot.exe, który widzieliśmy wcześniej.

W tym samym czasie będziesz musiał podłączyć baterię do systemu wbudowanego i automatycznie uruchomić go i połączyć z routerem. Po uruchomieniu uruchom SSH. Aby uzyskać do tego dostęp, potrzebujesz jakiegoś terminala na stacji naziemnej, polecam GitBash.

SSH oznacza Secure Shell i jest to protokół bezpiecznego dostępu do systemów zdalnych. W naszym przypadku da nam to dostęp do systemu wbudowanego ze stacji naziemnej. Kliknij tutaj, aby dowiedzieć się więcej.

Musisz znać nazwę użytkownika, za pomocą której skonfigurowałeś system wbudowany. W przypadku raspberry pi domyślna nazwa użytkownika to „pi”, a hasło „raspberry”.

Po zainstalowaniu otwórz terminal i wpisz:

ssh {nazwa użytkownika systemu wbudowanego}@192.168.1.122

Spowoduje to otwarcie terminala w systemie wbudowanym.

Tam wystarczy wykonać skrypt Pythona, który skopiowaliśmy wcześniej.

python /ścieżka/do/pushArucoVideoPullCommands.py

Po wykonaniu tej czynności system wbudowany zacznie pompować obrazy i odbierać polecenia do i ze stacji naziemnej.

Możesz wtedy zacząć jeździć i dobrze się bawić!

Zalecana: