Spisu treści:

WiBot: 10 kroków (ze zdjęciami)
WiBot: 10 kroków (ze zdjęciami)

Wideo: WiBot: 10 kroków (ze zdjęciami)

Wideo: WiBot: 10 kroków (ze zdjęciami)
Wideo: Słowniczek finansowy - Czym jest WIBOR 2024, Wrzesień
Anonim
WiBot
WiBot

Ta instrukcja szczegółowo opisuje proces budowania robota Wi-Fi na platformie ZYBO. Ten projekt wykorzystuje system operacyjny czasu rzeczywistego do wykrywania obiektów, pomiaru odległości i szybkiego sterowania. Ten przewodnik obejmuje łączenie ZYBO z urządzeniami peryferyjnymi, uruchamianie niestandardowego oprogramowania układowego i komunikację za pośrednictwem aplikacji Java. Poniżej znajduje się lista wszystkich kluczowych komponentów wymaganych do tego projektu:

  • 1 tablica rozwojowa ZYBO
  • 1 router bezprzewodowy TL-WR802N
  • 1 obudowa cienia
  • 2 koła 65 mm
  • 2 motoreduktory 140 obr./min
  • 2 enkodery kołowe
  • 1 czujnik ultradźwiękowy HC-SR04
  • 1 konwerter poziomów logicznych BSS138
  • 1 sterownik silnika mostka H L293
  • 1 konwerter 12 V na 5 V DC/DC
  • 1 akumulator LiPo 2200 mAh;
  • 1 kabel Ethernet
  • 1 kabel USB Micro-B
  • 1 żeńskie złącze XT60
  • 2 przewody połączeniowe męskie-żeńskie
  • 30 przewodów połączeniowych męsko-męskich
  • 2 rezystory 10kΩ
  • 1 deska do krojenia chleba

Ponadto na komputerze docelowym musi być zainstalowane następujące oprogramowanie:

  • Xilinx Vivado Design Suite 2018.2
  • Pracowity adept 2.19.2
  • FreeRTOS 10.1.1
  • Zestaw rozwojowy Java SE 8.191

Krok 1: Złóż podwozie robota

Montaż obudowy robota
Montaż obudowy robota
Montaż obudowy robota
Montaż obudowy robota
Montaż obudowy robota
Montaż obudowy robota

Zamontuj podwozie w cieniu i przymocuj motoreduktory i enkodery do dolnej ramy. ZYBO, płytkę stykową i czujnik ultradźwiękowy można zamontować za pomocą dostarczonych części, które można wydrukować w 3D i przymocować do obudowy za pomocą dystansów i taśmy dwustronnej. Akumulator należy zamontować w pobliżu tyłu robota, najlepiej między górą a dolne ramy. Zamontuj router blisko ZYBO, a konwerter DC/DC blisko płytki stykowej. Na samym końcu przymocuj koła do motoreduktorów.

Krok 2: Elektronika przewodowa

Elektronika przewodowa
Elektronika przewodowa
Elektronika przewodowa
Elektronika przewodowa
Elektronika przewodowa
Elektronika przewodowa

Podłącz wejście i wyjście konwertera DC/DC odpowiednio do dwóch szyn zasilających na płytce stykowej. Będą one służyć jako zasilacze 12 V i 5 V dla systemu. Podłącz ZYBO do szyny 5V, jak pokazano na rysunku. Użyj kabla zasilającego USB Micro-B, aby podłączyć router również do szyny 5V. Kabel XT60 należy podłączyć do szyny 12V. Nie podłączaj akumulatora, dopóki reszta elektroniki nie zostanie prawidłowo okablowana. Czujnik ultradźwiękowy należy podłączyć do szyny 5V. Utwórz szynę 3,3 V na płytce stykowej za pomocą pinu 6 portu Pmod JC na ZYBO. Wejście wysokiego napięcia konwertera logicznego powinno być podłączone do szyny 5V, natomiast wejście niskiego napięcia konwertera logicznego powinno być podłączone do szyny 3.3V. Podłącz enkodery silnika do szyny 3.3V. Podłącz VCC1 sterownika silnika do szyny 5V i podłącz VCC2 do szyny 12V. Przywiąż wszystkie piny EN do 5 V i uziemi wszystkie piny GND.

Podłącz piny TRIG i ECHO czujnika ultradźwiękowego odpowiednio do HV1 i HV2 konwertera logicznego. LV1 należy podłączyć do JC4, a LV2 do JC3. Zapoznaj się z tabelą pinoutów Pmod. Podłącz silniki do sterownika silnika. Y1 należy podłączyć do dodatniego zacisku prawego silnika, a Y2 do ujemnego zacisku prawego silnika. Podobnie Y3 należy podłączyć do dodatniego zacisku lewego silnika, a Y4 do ujemnego zacisku lewego silnika. A1, A2, A3 i A4 powinny być mapowane odpowiednio na JB2, JB1, JB4 i JB3. Zapoznaj się ze schematem dla numerów pinów. Podłącz JC2 do prawego enkodera i JC1 do lewego enkodera. Upewnij się, że rezystory podciągające są używane do połączenia tych sygnałów z szyną 3,3V. Na koniec użyj kabla Ethernet, aby podłączyć ZYBO do routera.

Krok 3: Utwórz diagram blokowy w Vivado

Utwórz diagram blokowy w Vivado
Utwórz diagram blokowy w Vivado

Utwórz nowy projekt RTL w Vivado. Upewnij się, że w tej chwili nie podajesz żadnych źródeł. Wyszukaj „xc7z010clg400-1” i naciśnij „Zakończ”. Pobierz koder_driver.sv i ultradźwiękowy_driver.sv. Umieść je we własnych folderach. Otwórz program IP Packager w sekcji „Narzędzia” i wybierz spakowanie określonego katalogu. Wklej ścieżkę do folderu zawierającego sterownik kodera i naciśnij „Dalej”. Kliknij „pakiet IP” i powtórz procesy dla sterownika czujnika ultradźwiękowego. Następnie przejdź do menedżera repozytorium w podsekcji IP w menu ustawień. Dodaj ścieżki do folderów sterowników i naciśnij Zastosuj, aby uwzględnić je w bibliotece IP.

Utwórz nowy schemat blokowy i dodaj „System przetwarzania ZYNQ7”. Kliknij dwukrotnie blok i zaimportuj dostarczony plik ZYBO_zynq_def.xml. W sekcji „Konfiguracja MIO” włącz Timer 0 i GPIO MIO. naciśnij "OK", aby zapisać konfigurację. Dodaj 3 bloki „AXI GPIO” i 4 bloki „AXI Timer”. Uruchom automatyzację bloku, a następnie automatyzację połączeń dla S_AXI. Kliknij dwukrotnie bloki GPIO, aby je skonfigurować. Jeden blok powinien być dwukanałowy z 4-bitowym wejściem i 4-bitowym wyjściem. Podłącz te połączenia na zewnątrz i oznacz je jako SW dla wejścia i LED dla wyjścia. Drugi blok również powinien być dwukanałowy z 2 wejściami 32-bitowymi. Ostatni blok GPIO będzie pojedynczym wejściem 32-bitowym. Spraw, aby wyjście pwm0 z każdego bloku czasowego było zewnętrzne. Oznacz je PWM0, PWM1, PWM2 i PWM3.

Dodaj sterownik enkodera do schematu blokowego i podłącz CLK do FCLK_CLK0. Podłącz OD0 i OD1 do kanałów wejściowych drugiego bloku GPIO. Ustaw ENC jako zewnętrzny i zmień nazwę ENC_0 na ENC. Dodaj blok czujnika ultradźwiękowego i podłącz CLK do FCLK_CLK0. Ustaw TRIG i ECHO jako zewnętrzne i zmień nazwę TRIG_0 na TRIG i ECHO_0 na ECHO. Podłącz RF do trzeciego bloku GPIO. W celach informacyjnych zapoznaj się z dostarczonym schematem blokowym.

Kliknij prawym przyciskiem myszy plik schematu blokowego w panelu Źródła i utwórz opakowanie HDL. Pamiętaj, aby zezwolić na edycję użytkownika. Dodaj dostarczony plik ZYBO_Master.xdc jako ograniczenie. Kliknij „Generuj strumień bitów” i zrób sobie przerwę na kawę.

Krok 4: Skonfiguruj środowisko programistyczne

Przejdź do „Plik”, aby wyeksportować sprzęt do Vivado SDK. Upewnij się, że zawierasz strumień bitów. Zaimportuj projekt RTOSDemo wewnątrz „CORTEX_A9_Zynq_ZC702”. Będzie on zlokalizowany w katalogu instalacyjnym FreeRTOS. Utwórz nowy pakiet wsparcia płyty wybierz bibliotekę lwip202. Zmień BSP, do którego odwołuje się BSP w projekcie RTOSDemo, na BSP, który właśnie utworzyłeś*.

*W momencie pisania tej instrukcji, FreeRTOS wydaje się mieć błąd w odwoływaniu się do prawidłowego BSP. Aby temu zaradzić, utwórz nowy BSP z takimi samymi ustawieniami jak pierwszy. Zmień BSP, do którego się odwołuje, na nowy, a następnie zmień go z powrotem na stary, gdy nie uda się go skompilować. FreeRTOS powinien się teraz kompilować bez błędów. Zapraszam do usunięcia nieużywanego BSP.

Krok 5: Zmodyfikuj program demonstracyjny

Utwórz nowy folder o nazwie „drivers” w katalogu „src” programu RTOSDemo. Skopiuj dostarczony plik gpio.h. gpio.c, pwm.h, pwm.c, odometer.h, odometer.c, rangefinder.c, rangefinder.h, motor.h i motor.c do katalogu „drivers”.

Otwórz main.c i ustaw mainSELECTED_APPLICATION na 2. Zastąp main_lwIP.c w "lwIP_Demo" zaktualizowaną wersją. BasicSocketCommandServer.c w „lwIP_Demo/apps/BasicSocketCommandServer” również musi zostać zaktualizowany o nową wersję. Na koniec przejdź do „FreeRTOSv10.1.1/FreeRTOS-Plus/Demo/Common/FreeRTOS_Plus_CLI_Demos” i zastąp Sample-CLI-commands.c dostarczoną wersją. Zbuduj projekt i upewnij się, że wszystko się pomyślnie kompiluje.

Krok 6: Flash Firmware do QSPI

Flash Firmware do QSPI
Flash Firmware do QSPI
Flash Firmware do QSPI
Flash Firmware do QSPI
Flash Firmware do QSPI
Flash Firmware do QSPI

Utwórz nowy projekt aplikacji o nazwie „FSBL” przy użyciu szablonu „Zynq FSBL”. Po skompilowaniu projektu FSBL utwórz obraz rozruchowy projektu RTOSDemo. Upewnij się, że "FSBL/Debug/FSBL.elf" jest wybrany jako bootloader w "Boot image partitions". Ręcznie dodaj ścieżkę do tego pliku, jeśli nie ma go na liście.

Przesuń zworkę JP5 na ZYBO na "JTAG". Użyj kabla USB Micro-B, aby podłączyć komputer do ZYBO. Podłącz baterię i włącz ZYBO. Uruchom Adepta, aby upewnić się, że ZYBO jest poprawnie identyfikowany przez komputer. Kliknij „Program Flash” w Vivado SDK i podaj ścieżki do pliku BOOT.bin w RTOSDemo i pliku FSBL.elf w FSBL. Upewnij się, że wybrałeś "Weryfikuj po flashu" przed naciśnięciem "Program". Obserwuj konsolę, aby upewnić się, że operacja flashowania zakończyła się pomyślnie. Następnie wyłącz ZYBO i odłącz kabel USB. Przesuń zworkę JP5 na „QSPI”.

Krok 7: Skonfiguruj bezprzewodowy punkt dostępowy

Gdy akumulator jest nadal podłączony, połącz się z siecią Wi-Fi routera. Domyślny identyfikator SSID i hasło powinny znajdować się na spodzie routera. Następnie przejdź do https://tplinkwifi.net i zaloguj się za pomocą „admin” jako nazwy użytkownika i hasła. Uruchom kreatora szybkiej konfiguracji, aby skonfigurować router w trybie punktu dostępowego z włączonym DHCP. Pamiętaj, aby zaktualizować również domyślną nazwę użytkownika i hasło dla urządzenia. Po zakończeniu router powinien automatycznie uruchomić się ponownie w trybie punktu dostępu.

Włącz ZYBO i połącz się z routerem za pomocą przypisanego identyfikatora SSID. Router najprawdopodobniej pojawi się na adresie IP 192.168.0.100 lub 192.160.0.101. ZYBO zostanie przypisany niezależnie od adresu, którego nie posiada router. Aby szybko określić adres IP routera, możesz uruchomić „ipconfig” z wiersza poleceń w systemie Windows lub „ifconfig” z terminala w systemie Linux lub MacOS. Jeśli nadal jesteś podłączony do routera, zobaczysz jego adres IP obok interfejsu bezprzewodowego. Użyj tych informacji, aby określić adres IP ZYBO. Aby potwierdzić adres IP ZYBO, możesz albo pingować go z wiersza poleceń, albo połączyć się z nim przez telnet.

Krok 8: Uruchom program Java

Uruchom program Java
Uruchom program Java

Pobierz RobotClient.java i skompiluj plik za pomocą polecenia „javac RobotClient.java” z wiersza poleceń. Uruchom polecenie „java RobotClient”, gdzie „adres_ip” to adres IP ZYBO. Kontrolny GUI pojawi się, jeśli uda się nawiązać połączenie między komputerem a ZYBO. Po zogniskowaniu okna robotem należy sterować za pomocą klawiszy strzałek na klawiaturze. Naciśnij przycisk Escape, aby zakończyć sesję i rozłączyć się z robotem.

GUI podświetli wciśnięte klawisze i pokaże moc silnika w prawym górnym rogu. Miernik odległości po lewej stronie wypełnia pasek co 2 metry, maksymalnie do 10 metrów.

Krok 9: Kalibracja dalmierza

Przełączniki na pokładzie ZYBO mogą być użyte do konfiguracji pokładowego dalmierza. Minimalna odległość wykrywania d jest podawana jako funkcja wejścia przełącznika i:

d = 50i + 250

Wejście może zmieniać się od 0 do 15 w krokach całkowitych. Przekłada się to na zasięg od 0,25 metra do 1 metra. Przy minimalnej odległości pierwsza dioda LED zacznie migać. Liczba diod LED, które są aktywne, jest proporcjonalna do bliskości obiektu.

Krok 10: Dostępność

Ten robot jest bardzo łatwo dostępny. Ze względu na prostotę sterowania można nim w pełni sterować jednym palcem. Aby poprawić dostępność, można dodać obsługę dodatkowych urządzeń wejściowych. Może to umożliwić niepełnosprawnym użytkownikom kontrolowanie robota inną częścią ciała.

Zalecana: