Kurs Django Robot – #3 – Obsługa Orange Pi 3 LTS
Posted on: August 7, 2024
Kurs Django Robot – #3 – Obsługa Orange Pi 3 LTS
Przygotowanie przed wielkim omówieniem programu
Przed głębszym zanurzeniem się w architekturę naszego kodu, chcielibyśmy przedstawić kilka kluczowych informacji, które pomogą Ci zrozumieć działanie naszego projektu oraz proces instalacji i konfiguracji na Orange Pi.
Nasz projekt został zaprojektowany tak, aby z niewielkimi modyfikacjami działał również na Raspberry Pi. Jednak w tym poradniku skupimy się przede wszystkim na platformie Orange Pi i pokażemy krok po kroku, jak przygotować się do uruchomienia naszej aplikacji.
Jeśli jesteś gotowy, upewnij się, że masz przy sobie:
- Mikrokomputer Orange Pi 3 LTS.
- Kartę microSD, na którą będziemy wgrywać system operacyjny.
Pierwszym krokiem jest pobranie odpowiedniego systemu operacyjnego dla Orange Pi. Oficjalne obrazy systemów można znaleźć pod poniższym linkiem:
Oficjalne obrazy systemów dla Orange Pi
Z oficjalnej strony polecamy wersję Ubuntu Focal, a dokładniej:
Poniżej opisaliśmy instalację na tej wersji, na innych możliwe, że trzeba będzie coś zmienić.
Po pobraniu odpowiedniego obrazu systemu, możemy przystąpić do instalacji i konfiguracji naszego kodu na Orange Pi 3 LTS. W kolejnych krokach tego kursu opiszemy dokładnie, jak to zrobić. Mamy nadzieję, że ten wstęp pozwoli Ci lepiej zrozumieć nasz projekt i przygotować się do dalszej pracy. Zapraszamy do dalszej lektury!
Przed przystąpieniem do głównych kroków konfiguracji, ważne jest, aby odpowiednio przygotować kartę microSD, na której będzie działać nasz system. Jeśli nie jesteś pewien, jak to zrobić, w sieci znajdziesz mnóstwo poradników na ten temat. My osobiście polecamy darmowy program balenaEtcher do tego zadania.
Po prawidłowym zbootowaniu karty, proces instalacji jest już niemal zakończony. Wystarczy włożyć kartę do Orange Pi, włączyć urządzenie i poczekać, aż system się uruchomi. Jeśli korzystasz z monitora, klawiatury i myszki (choć nie jest to konieczne, można korzystać np. przez SSH), powinieneś bez problemu przejść przez początkową konfigurację, wybierając język i kilka innych opcji.
Gratulacje! Masz już działający system na Orange Pi. Teraz możemy przejść do instalacji Django. Szczegółowy opis tego procesu znajdziesz w naszym kursie "Kurs Django Podstawa", ale poniżej przedstawiamy skrót, otwórz terminal, a następnie wpisz poniższe komendy:
Mamy nadzieję, że powyższe instrukcje pomogą Ci w łatwy sposób skonfigurować naszą aplikację na Orange Pi. Jeśli napotkasz jakiekolwiek problemy, skontaktuj się z nami, a chętnie Ci pomożemy!
Kontynuując nasze kroki, chcielibyśmy zapewnić, że wszystko działa płynnie i bez problemów. W przyszłości planujemy stworzenie instalatora, który uprości cały proces, ale na razie postępuj zgodnie z poniższymi instrukcjami:
biblioteka GPIO:
Aby zwiększyć szybkość działania naszej aplikacji, zdecydowaliśmy się na wykorzystanie biblioteki do sterowania pinami w języku C. Szczegółowy opis, jak to zrobić, znajdziesz pod tym linkiem:
Aby zainstalować bibliotekę, otwórz terminal i wpisz następujące komendy:
Następnie pobierz nasze pliki
Kliknij, aby pobrać plik KursDjangoRobot
Korzystamy również z dostępu do pinów w języku Python. W tej konfiguracji częstotliwość wywołania kodu nie jest zbyt duża, więc PWM zostanie w języku C, ale dla opcji "włącz/wyłącz" pin sprawdza się świetnie, wykonaj następujące kroki:
Teraz wklej zawartość pobranego pliku ustaw_pin.sh
do otwartego pliku w edytorze nano. Po wklejeniu zawartości, zapisz plik i wyjdź z edytora.
Następnie nadaj odpowiednie uprawnienia dla stworzonego pliku:
Stworzony przez Ciebie plik ustaw_pin.sh
służy jako odwołanie do pliku bot_motion/sterowanie_pinem.py
i funkcji setpin
. Więcej szczegółów na ten temat znajdziesz w następnym rozdziale naszego kursu.
Jeśli chcesz, aby aplikacja uruchamiała się automatycznie po włączeniu zasilania Orange Pi, możesz skorzystać z poniższych instrukcji. Szczegółowe informacje na ten temat znajdziesz w następnym rozdziale naszego kursu.
Automatyczne uruchamianie aplikacji po starcie systemu:
Przygotowanie skryptu startowego:
Umieść plik start_project.sh
na pulpicie Orange Pi. Ten skrypt będzie odpowiedzialny za uruchomienie Twojej aplikacji.
Nadanie uprawnień skryptowi:
Aby skrypt mógł być uruchamiany, musisz nadać mu odpowiednie uprawnienia. W tym celu otwórz terminal i wpisz:
W terminalu wpisz:
Wybierz edytor nano
poprzez wciśnięcie klawisza 1
. Następnie, na końcu pliku, dodaj następującą linię:
Zapisz plik i wyjdź z edytora.
Dostęp do zmiany uprawnień dla wybranych funkcji:
Aby niektóre funkcje mogły działać bez konieczności podawania hasła, możesz dodać je do pliku sudoers. Wpisz w terminalu:
Na końcu pliku dodaj następujące linie:
Ponownie zapisz i wyjdź z edytora.
Dzięki powyższym krokom aplikacja będzie uruchamiana automatycznie po włączeniu Orange Pi, a zapis z terminala (zapis, że serwer się uruchomił albo pojawiły się jakieś błędy) będzie zapisywany do pliku tekstowego cronlog
na pulpicie, a wybrane funkcje będą miały dostęp do wyższych uprawnień bez konieczności podawania hasła dla sudo.
Zostało już skopiowanie pobranych plików. Postępuj dalej zgodnie z poniższymi wskazówkami:
Przenoszenie plików:
Przejdź do folderu, w którym przechowujesz pobrane od nas pliki. Skopiuj je, a następnie wklej do odpowiednich folderów: bot_motion
oraz bot_ruch
na Orange Pi. Pamiętaj, aby nie usuwać istniejących plików. Jeśli napotkasz pliki o tych samych nazwach, wybierz opcję "podmień".
Ostrzeżenie dotyczące pinów:
Jeśli nie masz podłączonych odpowiednich kabli do pinów, zachowaj ostrożność. Unikaj dotykania jakichkolwiek elementów przewodzących podczas działania systemu, aby uniknąć zwarcia (nie dotykaj ręką!). Jeśli chcesz przetestować działanie bez oddziaływania na piny, skorzystaj z wersji testowej. W tym celu przejdź do folderu bot_motion/do_testu
i podmień odpowiednie pliki. Wersja testowa nie wpływa na piny, ale wypisuje odpowiednie komunikaty w konsoli.
Kompilacja plików w języku C:
Aby skompilować pliki w języku C, otwórz terminal i przejdź do folderu z plikami Django:
Następnie wpisz:
Konfiguracja połączenia Wi-Fi:
Włącz hotspot na swoim telefonie i połącz Orange Pi z siecią Wi-Fi telefonu. Upewnij się, że wszystkie inne połączenia internetowe na Orange Pi są wyłączone, tak aby urządzenie zapamiętało tylko połączenie z Twoim telefonem.
Teraz wszystko jest gotowe! Możesz uruchomić aplikację i cieszyć się jej działaniem. Możesz włączyć aplikację, wpisując 0.0.0.0:8000 w wyszukiwarce (oczywiście gdy serwer jest włączony) na samym Orange Pi. Możesz też połączyć się przy pomocy smartfona, wcześniej uzyskaj IP Orange Pi przez komendę w terminalu:
Gdy znasz IP, wpisz w wyszukiwarce na smartfonie wraz z portem, czyli przykładowo: 100.100.10.250:8000
Pamiętaj, jeśli masz jakiekolwiek pytania lub wątpliwości, daj nam znać. Chętnie Ci pomożemy!
Podstawowe komendy do obsługi Orange Pi 3 LTS i naszej aplikacji:
- Sterowanie GPIO w terminalu:
-
Sprawdzanie statusu pinów GPIO:
gpio readallTa komenda pokaże Ci aktualny status wszystkich pinów GPIO
-
Ustawianie trybu pracy dla pinu:
gpio mode 11 in/out/pwm/clock/up/down/triDzięki tej komendzie możesz ustawić tryb pracy dla wybranego pinu (w tym przypadku pin 11). Możliwe tryby to: wejście (
in
), wyjście (out
), modulacja szerokości impulsu (pwm
), zegar (clock
), rezystor podciągający (up
), rezystor opornika (down
) oraz stan trzeci (tri
). -
Przykładowe ustawianie wartości dla pinu:
gpio write 9 0Ta komenda ustawia wartość
0
dla pinu 9. Pamiętaj, aby wcześniej ustawić ten pin jako wyjście (output
).
-
Modyfikacje w plikach:
-
Plik
bot_motion/jazda.c
:
W tym pliku możesz dostosować ustawienia pinów oraz czas pulsacji dla silników krokowych, czyli w zasadzie szybkość obrotu w tym przypadku. -
Plik
bot_motion/hc_sensor.c
:
Tutaj masz możliwość zmiany częstotliwości, z jaką system będzie sprawdzał obecność przeszkody. Gdy przeszkoda zostanie wykryta, odpowiedni PIN zostanie ustawiony na wartość1
. -
Plik
bot_motion/alertPIN.py
:
W tym pliku możesz zmienić częstotliwość sprawdzania stanu wybranego PINu. -
Plik
bot_motion/views.py
:
Jeśli chcesz zmienić kamerę, z której korzysta aplikacja, możesz to zrobić w linii:cap = cv2.VideoCapture(1)Np. wartość
1
oznacza kamerę zewnętrzną. W zależności od portu USB jaki wybrałeś, my podłączyliśmy do tego pionowego pojedynczego portu.
Logi i autostart:
-
Czytanie logów z autostartu:
Jeśli chcesz monitorować, co dzieje się podczas autostartu aplikacji, możesz skorzystać z informacji widocznych w pliku tekstowymcronlog
:Jeśli nie chcesz zapisywać logów, wpisz w terminalu:
crontab -e, a potem zmień:
@reboot /home/orangepi/Desktop/start_project.sh >> /home/orangepi/Desktop/cronlog.txt 2>&1na
@reboot /home/orangepi/Desktop/start_project.shJeśli nie chcesz funkcji autostartu aplikacji, usuń powyższą linie kodu.
-
Zakończenie wątku autostartu Django:
Aby zakończyć działanie aplikacji Django uruchomionej podczas autostartu, wpisz:ps aux | grep "runserver"Znajdź odpowiednie procesy (na 99% dwa pierwsze) i zakończ, używając komendy:
kill -9 PIDgdzie
PID
to numer procesu. Czyli dla przykładowego procesu o numerze 1435:kill -9 1435 - Potem ponowne uruchomienie to standardowe komendy:
Mamy nadzieję, że ten przewodnik pomoże Ci w pełni wykorzystać możliwości naszej aplikacji na Orange Pi. Jeśli masz jakiekolwiek pytania, śmiało pytaj!
Category: Kurs Django Robot