Spisu treści:
- Krok 1: Sprzęt
- Krok 2: Konfiguracja Raspberry Pi
- Krok 3: Obsługa ruchów (serwer Bluetooth)
- Krok 4: Aplikacja na Androida (klient Bluetooth)
- Krok 5: Podłączanie sprzętu
- Krok 6: Transmisja strumieniowa
- Krok 7: Jedź
Wideo: Raspberry Pi, Android, IoT i dron zasilany przez Bluetooth: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Używając Raspberry Pi do wbudowanej logiki, ten kompaktowy, mobilny komputer utworzy lokalny port, który przesyła strumieniowo wideo w czasie rzeczywistym, jednocześnie tworząc gniazda Bluetooth do odczytu wartości wysyłanych przez niestandardową aplikację na Androida. Aplikacja synchronizuje się z dronem i wykorzystuje dane wejściowe użytkownika do natychmiastowego wysyłania instrukcji do drona.
Ten projekt jest dość trudny do wykonania od podstaw. Mamy nadzieję, że poniższe informacje zapewnią wgląd w wiele zastosowań dronów. Dostarczane jest całe oprogramowanie i projekty obwodów dotyczące tego projektu. Zapraszam do modyfikowania i udostępniania kodu według własnych upodobań. Prosimy o odpowiedzialne korzystanie z podanych informacji i pozostawienie komentarza poniżej.
Krok 1: Sprzęt
Poniżej znajduje się lista sprzętu, z którego korzystałem.
- Raspberry Pi 3 Model B
- Moduł kamery Raspberry PI
- Sterownik silnika L298N
- 2, silniki prądu stałego
- Klawiatura, dowolny monitor, mysz, kabel Ethernet i kabel HDMI (dla pi)
- Karta microSD o pojemności 8 GB
- Śruby, taśma itp.
- 2 koła
- Urządzenie Bluetooth z Androidem (Mój telefon)
- 2, 18650 komórek
- Regulator 5 V
- Komputer do programowania aplikacji
Raspberry Pi: W przypadku wyższych rozdzielczości strumienia (lub dla początkujących) polecam najnowszą wersję modelu B, podczas gdy bardziej kompaktowe wersje mogą korzystać z najnowszego Modelu A+ lub Pi Zero (wersja z kamerą). Pamiętaj, że jeśli używasz raspberry pi zero, będziesz potrzebować do niego klucza Bluetooth i/lub WiFi. W tym samouczku założymy, że używasz Raspberry Pi 3 B.
Sterownik silnika: Użyłem L298N, chociaż każdy sterownik silnika powinien działać. Po prostu upewnij się, że poradzi sobie z napięciem i prądem silników.
2 silniki prądu stałego: upewnij się, że wytrzymają ciężar twojego drona.
Korpus: Używany również do przechowywania wszystkich elementów. Zwykle twardy plastik lub aluminium jest trwałym, lekkim materiałem w użyciu. Aby uzyskać optymalne wyniki, można użyć nawet drukarki 3D.
Źródło zasilania: to prawie zawsze najtrudniejsza decyzja przy wyborze części. Wymagana bateria zależy od poboru prądu. W przypadku zastosowań o niskim poborze mocy (takich jak 1 lub 2 ampery) powinna wystarczyć bateria 9V. W przypadku wyższego natężenia polecam albo ogniwo litowo-jonowe 18650, albo akumulator litowo-polimerowy, ponieważ są one lekkie, mogą pomieścić dużo energii jak na swój rozmiar i można je ładować.
2 koła: po prostu upewnij się, że koła mają ten sam rozmiar otworu, co wał silnika. Upewnij się również, że średnice kół są wystarczająco duże dla twojego drona. Ponieważ istnieje wiele możliwych odmian i projektów dla tego projektu, istnieje wiele różnych typów i rozmiarów kół do użycia.
Regulatory napięcia: do zasilania pi za pomocą baterii wymagany jest regulator 5 V. Użyłem konwertera buck LM2596 DC-DC.
Większość produktów w linkach została wykorzystana w tym projekcie i były to najlepsze oferty, jakie mogłem znaleźć w tamtym czasie.
Teraz, gdy masz już wszystko, czego potrzebujesz, skonfigurujmy pi.
Krok 2: Konfiguracja Raspberry Pi
Ten krok pokaże Ci, jak skonfigurować Raspberry Pi, aby móc rozpocząć kodowanie. Jeśli masz już konfigurację pi z Raspbian, możesz przejść do następnego kroku.
Najpierw musisz pobrać system operacyjny dla maliny. Zdobądź NOOBS, jeśli jesteś początkującym. Jeśli masz już godne uwagi doświadczenie z raspberry pi, być może zainteresuje Cię Raspbian. Zakładam, że w tym samouczku używasz NOOBS.
Podczas pobierania sformatuj kartę SD za pomocą SD Formatter.
Teraz wyodrębnij i skopiuj zawartość pobrania do katalogu głównego karty SD. Root oznacza po prostu, że nie znajduje się w żadnych folderach. Jeśli utworzono nowy folder do przechowywania wszystkich wyodrębnionych plików, skopiuj ten plik.
Następnie podłącz kartę SD do pi. Podczas wkładania powinien albo „wcisnąć” lub po prostu siedzieć w dolnej części pi.
Podłącz mysz i klawiaturę do pi. Następnie podłącz kabel HDMI do pi z monitora. Na koniec podłącz 3-amperowy adapter gniazdka ściennego micro USB do pi. Chociaż zalecane jest gniazdko ścienne, używałem laptopa jako źródła zasilania (USB z mojego laptopa na Micro USB w pi).
Niech pi zrobi swoje. Jeśli pojawi się monit, wybierz Raspbian i pozwól mu zainstalować. Postępuj zgodnie z instrukcjami instalatora. Może to trochę potrwać. Jeśli wszystko pójdzie dobrze, powinieneś zobaczyć ekran pulpitu podobny do powyższego.
Podłącz kabel Ethernet z routera do pi. Następnie otwórz wiersz poleceń (ikona czarnego „pudełka” na górze ekranu). Będziesz musiał zaktualizować pi za pośrednictwem sieci przewodowej, aby połączyć go z siecią bezprzewodową.
Następnie kliknij ikonę Kabel u góry ekranu. Po wyświetleniu monitu wpisz szczegóły swojej sieci.
Wpisz tekst w następnej linii dokładnie tak, jak pokazano i naciśnij Enter. To zaktualizuje pi. To może chwilę potrwać. Po prostu pozwól mu robić swoje.
aktualizacja sudo apt-get
Następnie wpisz kod w następnej linii. Zajmie to również trochę czasu. Nie rób nic, dopóki nie skończysz.
sudo apt-get dist-upgrade
Teraz powinieneś być w stanie odłączyć kabel Ethernet, kliknąć ikonę sieci bezprzewodowej u góry ekranu, wprowadzić informacje o swojej sieci i wreszcie połączyć się z siecią bezprzewodowo.
Teraz zakodujmy część drona, która obsługuje ruchy.
Krok 3: Obsługa ruchów (serwer Bluetooth)
Do obsługi ruchów używany jest język programowania „Python 3”. Wiadomości informujące robota o ruchu będą wysyłane przez Bluetooth z aplikacji.
Najpierw musisz zainstalować bibliotekę Bluetooth. Wpisz następujące polecenia, aby to zrobić.
aktualizacja sudo apt-get
sudo apt-get zainstaluj bluetooth
sudo apt-get zainstaluj bluez
sudo apt-get zainstaluj python-bluez
Teraz na pulpicie kliknij ikonę menu Start, następnie Programowanie, a następnie Python 3. Następnie na pasku narzędzi kliknij Plik, nowy. Powinno pojawić się nowe okno.
Skopiuj zawartość załącznika „bluetoothpi.rtf” do okna.
Na pasku narzędzi kliknij Plik, Zapisz jako. Zapisz go w katalogu /home/pi/Desktop/ jako movement.py.
Teraz, aby przetestować kod, kliknij ikonę Bluetooth w prawym górnym rogu ekranu. Sparuj Raspberry Pi z urządzeniem z Androidem. Pobierz aplikację o nazwie BlueTerm na swoje urządzenie z Androidem. Następnie w wierszu poleceń wpisz następujący kod pogrubiony. Spowoduje to wykonanie kodu Pythona.
sudo python /home/pi/Desktop/movements.py
Na pi powinien pojawić się tekst „Oczekiwanie na połączenia”.
Uruchom BlueTerm i kliknij ikonę opcji, a następnie przycisk „szukaj połączeń”.
W aplikacji powinna pojawić się nazwa twojego Raspberry Pi. Kliknij przycisk z nazwą pi. Tekst „Akcepted connection from” powinien pojawić się na pi, a następnie jego adres. Teraz cokolwiek wpiszesz w telefonie, powinno być wyświetlane w pi.
Udało Ci się zakodować własne gniazdo serwera Bluetooth!
Krok 4: Aplikacja na Androida (klient Bluetooth)
Pobierz Android Studio tutaj. Zainstaluj go i postępuj zgodnie z instrukcjami podanymi w instalatorze.
Rozpocznij nowy projekt. Utwórz puste działanie o nazwie MainActivity.
Skopiuj zawartość załącznika „Logic.txt” do pliku „MainActivity.java” (zakładka). Zawiera całą logikę aplikacji. Może być konieczna zmiana nazwy urządzenia na dole pliku.
Następnie skopiuj zawartość pliku „GUI” do pliku „activity_main.xml” (zakładka). Zawiera bardzo prosty GUI dla aplikacji.
Teraz musisz zaimportować przyciski strzałek (zdjęcia) do aplikacji. Rozpakuj załącznik Arrows.zip. Po lewej stronie Android Studio otwórz strukturę plików, aby zobaczyć aplikację, res, minimapę. Skopiuj zdjęcia strzałek (pliki PNG), kliknij prawym przyciskiem myszy na minimapie pliku i wklej zdjęcia do pliku, zachowując nazwy strzałek bez zmian. Po zakończeniu powinno wyglądać jak na zdjęciu.
Na koniec skopiuj zawartość pliku „Manifest” do pliku „AndroidManifest.xml” (karta).
Aby przetestować aplikację, musisz ją uruchomić na swoim urządzeniu. Aby to zrobić, musisz ustawić urządzenie w trybie programisty i włączyć debugowanie USB. W przypadku większości urządzeń musisz przejść do „Ustawienia”, „Informacje o telefonie”, przewiń w dół i kliknij „Numer kompilacji” siedem razy, aż zobaczysz komunikat „Jesteś teraz programistą!” Wróć i powinieneś teraz zobaczyć zakładkę „Opcje programisty”. Kliknij i włącz debugowanie USB.
Podłącz urządzenie z systemem Android do komputera przez USB, kliknij ikonę uruchamiania w Android Studio i wybierz swoje urządzenie.
Na pi uruchom kod Pythona utworzony w kroku 3, wpisując polecenie pogrubioną czcionką:
sudo python /home/pi/Desktop/movements.py
Następnie kliknij przycisk połączenia w aplikacji. Po połączeniu w aplikacji powinny pojawić się strzałki. Za każdym razem, gdy klikniesz na jeden, zaktualizuje stan „ruchu” pi.
W porządku, jeśli tło aplikacji wyświetla błąd. Zostanie to naprawione później.
Właśnie stworzyłeś własną aplikację i klienta Bluetooth.
Krok 5: Podłączanie sprzętu
Przylutuj połączenia na powyższym schemacie. Dołącz moduł kamery do pi.
Uruchom aplikację i uruchom plik movement.py. Jeśli silniki poruszają się prawidłowo podczas korzystania z aplikacji, możesz umieścić wszystkie elementy w gotowej powłoce drona. Może być konieczne zmodyfikowanie wartości kodów „HIGH” i „LOW”, aby działał poprawnie.
W następnym kroku dodamy funkcję przesyłania strumieniowego drona.
Krok 6: Transmisja strumieniowa
Istnieje wiele sposobów na strumieniowe przesyłanie wideo za pomocą Pi, ale korzystanie z uv4l jest zdecydowanie najłatwiejszym sposobem, praktycznie bez opóźnień.
Na marginesie, jeśli już złożyłeś drona i nie możesz go podłączyć do monitora i klawiatury, będziesz musiał połączyć się z dronem. Aby to zrobić, pobierz Putty na swój komputer. Otwórz go i wpisz adres IP maliny (znajdź adres IP, wpisując polecenie ifconfig). Poprosi Cię o nazwę użytkownika i hasło. Domyślna nazwa użytkownika i hasło to odpowiednio pi i raspberry. Teraz cokolwiek wpiszesz w polu poleceń, będzie jak wprowadzanie poleceń bezpośrednio do drona.
konfiguracja uv4l
Wpisz to polecenie:
sudo nano /etc/apt/sources.list
Dodaj następujący wiersz w ostatnim wierszu pliku.
deb https://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main
Wyjdź i zapisz plik, naciskając Ctrl-X, a następnie wpisując Tak.
Następnie wpisz następującą linię i naciśnij enter.
aktualizacja sudo apt-get
wtedy to:
sudo apt-get zainstaluj uv4l uv4l-raspicam
Wpisz następujące polecenia wiersz po wierszu. Poczekaj, aż zakończy to, co robi, zanim wpiszesz następną linię.
sudo apt-get zainstaluj uv4l-raspicam-extras
usługa sudo restart uv4l_raspicam
sudo rpi-aktualizacja
sudo apt-get zainstaluj serwer uv4l uv4l-uvc uv4l-xscreen uv4l-mjpegstream uv4l-dummy uv4l-raspidisp
sudo apt-get zainstaluj uv4l-webrtc
sudo apt-get zainstaluj uv4l-xmpp-bridge
sudo apt-get zainstaluj uv4l-raspidisp-extras
Następnie wystarczy wpisać następujące polecenie, aby rozpocząć przesyłanie strumieniowe (zamień „raspberrypi” na adres IP/nazwę hosta maliny w swojej sieci)
cvlc
Spowoduje to rozpoczęcie przesyłania strumieniowego wideo w czasie rzeczywistym na porcie 8080. Strumień powinien być teraz widoczny w tle Twojej aplikacji. Aby wyświetlić strumień w dowolnej przeglądarce, wpisz ten adres URL (gdzie „raspberrypi” to adres IP twojego drona).
https://raspberrypi:8080/stream/video.mjpeg
Gratulacje, ukończyłeś swój dron szpiegowski.
Krok 7: Jedź
Włącz przełącznik zasilania i zacznij eksplorować.
Jeśli chcesz wiedzieć, jak zrobić coś innego, zapytaj mnie, a zobaczę, co da się zrobić.
Jeśli masz jakieś pytania, skomentuj poniżej, a postaram się na nie odpowiedzieć.
Dziękuje za przeczytanie!
Zalecana:
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: Ten projekt obejmuje wyświetlacz LED oparty na 20x10 pikseli WS2812 o wymiarach 78x35 cm, który można łatwo zainstalować w salonie, aby grać w gry retro. Pierwsza wersja tej matrycy została zbudowana w 2016 roku i przebudowana przez wiele innych osób. Ten exp
Płaski panel Mini IMac G4 - zasilany przez NUC: 9 kroków (ze zdjęciami)
Płaski panel Mini IMac G4 - Powered by NUC: Wprowadzenie Natknąłem się na kilka projektów, które były inspiracją do stworzenia tej wersji. Jeden twierdzi, że jest najmniejszym na świecie działającym iMac, ale w rzeczywistości jest to Raspberry Pi z dystrybucją Linuksa z motywem MacOS i nie może uruchomić prawdziwego M
Zasilacz stołowy zasilany przez USB-C: 10 kroków (ze zdjęciami)
Zasilacz stołowy zasilany przez USB-C: Zasilacz stołowy jest niezbędnym narzędziem podczas pracy z elektroniką, umożliwiającym ustawienie dokładnego napięcia potrzebnego do projektu, a także umożliwiającym ograniczenie prądu, gdy wszystko pójdzie zgodnie z planem naprawdę przydatne. To jest mój przenośny zasilacz USB-C
Apple zasilany przez USB: 10 kroków (ze zdjęciami)
Apple zasilane przez USB: Cóż, sezon świąteczny szybko wkracza w nasze spokojne i przyjemne życie. Wkrótce większość z nas będzie musiała przesiedzieć wiele długich posiłków z naszą rodziną (lub czyjąś inną osobą) i starać się zachować zdrowie psychiczne. Nie wiem jak ty, b
Modułowy, zasilany przez USB system głośników Bluetooth: 7 kroków (ze zdjęciami)
Modułowy system głośników Bluetooth zasilany przez USB: Dowiadujemy się, jak zbudować prosty, ale bardzo przydatny system głośników Bluetooth zasilany przez USB, który wykorzystuje obudowę modułową. Możesz to zwiększyć i dodać wiele głośników, aby stworzyć soundbar. Jest nawet miejsce na dodanie baterii do systemu, aby stworzyć t