Spisu treści:
- Krok 1: Uruchom moduł PWM
- Krok 2: Skonfiguruj projekt bloku
- Krok 3: Kalibracja IMU
- Krok 4: Zintegruj bezprzewodowe urządzenie nadawczo-odbiorcze
- Krok 5: Zaprogramuj Zybo FPGA
Wideo: Quadkopter przy użyciu płyty Zybo Zynq-7000: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Zanim zaczniemy, oto kilka rzeczy, które chcesz do projektu: Lista części 1x płyta Digilent Zybo Zynq-7000 1x rama Quadcoptera z możliwością zamontowania Zybo (załączony plik Adobe Illustrator do cięcia laserowego) 4x silniki bezszczotkowe Turnigy D3530/14 1100KV 4x Turnigy ESC Basic -18A Kontroler prędkości 4x śmigła (muszą być wystarczająco duże, aby podnieść quadkopter) 2x transceiver nRF24L01+ 1x IMU BNO055Wymagania programoweXilinx Vivado 2016.2UWAGA: Powyższe silniki nie są jedynymi silnikami, których można użyć. To tylko te, które wykorzystano w tym projekcie. To samo dotyczy pozostałych części i wymagań oprogramowania. Mam nadzieję, że jest to niewypowiedziane zrozumienie podczas czytania tego Instruktażu.
Krok 1: Uruchom moduł PWM
Zaprogramuj prosty SystemVerilog (lub inny program HDL), aby zarejestrować przepustnicę HI i LO za pomocą przełączników wejściowych. Podłącz PWM do pojedynczego ESC i bezszczotkowego silnika Turnigy. Sprawdź poniższe pliki, aby dowiedzieć się, jak skalibrować ESC. Ostateczny kod dołączony jest w kroku 5 dla modułu PWM. Rozrusznik PWM jest dołączony w tym krokuArkusz danych ESC: Arkusz danych Turnigy ESC PDF (Należy zwrócić uwagę na różne tryby, które można wybrać za pomocą przepustnicy HI i LO)
Krok 2: Skonfiguruj projekt bloku
Utwórz projekt bloku Kliknij dwukrotnie nowo wygenerowany blok Importuj ustawienia XPS pobrane tutaj: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Zmień ustawienia Konfiguracja PS-PL Interfejs M AXI GP0 Peryferia I/ O Piny Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Configuration Timer 0 WatchdogClock Configuration FCLK_CLK0 i ustaw częstotliwość na 100 MHz Zrób zewnętrzne I2C i SPI Podłącz FCLK_CLK0 do M_AXI_GP0_ACLK Uruchom automatyzację bloku Utwórz port i nazwij go "gnd"
Krok 3: Kalibracja IMU
Transceiver BNO055 wykorzystuje komunikację I2C. (Sugerowana lektura dla początkujących: https://learn.sparkfun.com/tutorials/i2c)Sterownik do uruchomienia IMU znajduje się tutaj: https://github.com/BoschSensortec/BNO055_driverA quadkopter nie wymaga użycia magnetometru z BNO055. Z tego powodu niezbędnym trybem pracy jest tryb IMU. Zmienia się to poprzez zapisanie liczby binarnej xxxx1000 do rejestru OPR_MODE, gdzie 'x' to 'nie obchodzi'. Ustaw te bity na 0.
Krok 4: Zintegruj bezprzewodowe urządzenie nadawczo-odbiorcze
Bezprzewodowy nadajnik-odbiornik wykorzystuje komunikację SPI. W załączniku znajduje się specyfikacja nRF24L01+Dobry samouczek dotyczący nrf24l01+, ale z arduino:
Krok 5: Zaprogramuj Zybo FPGA
PrzeglądModuły te są ostatnimi modułami używanymi do sterowania PWM quadkoptera. motor_ctl_wrapper.svPurpose: Opakowanie przyjmuje kąty Eulera i procent przepustnicy. Wyprowadza skompensowany PWM, który pozwoli na stabilizację quadkoptera. Ta blokada istnieje, ponieważ quadkoptery są podatne na zakłócenia w powietrzu i wymagają pewnego rodzaju stabilizacji. Używamy kątów Eulera, ponieważ nie planujemy przewrotów lub dużych kątów, które mogą powodować blokadę gimbala. Wejście: 25-bitowa szyna danych CTL_IN = { [24] GO, [23:16] Euler X, [15: 8] Euler Y, [7:0] Procent przepustnicy }, Zegar (clk), Synchroniczne CLR (sclr) Wyjście: PWM silnika 1, PWM silnika 2, PWM silnika 3, PWM silnika 4, procent PWM przepustnicy Procent PWM przepustnicy wynosi służy do inicjalizacji ESC, która będzie potrzebować czystego zakresu 30% - 70% PWM, a nie tego z wartości PWM silnika 1-4. Zaawansowane - Bloki IP Vivado Zynq: 8 Dodaje (LUT) 3 Odejmij (LUT) 5 Mnożniki (pamięć bloku (BRAM))clock_div.sv (AKA pwm_fsm.sv) Cel: Kontrola sprzętu, w tym wyjścia MUX, PWM i sclr dla motor_ctl_wrapper. Każda maszyna skończona (FSM) służy do jednego: sterowania innym sprzętem. Każde duże odchylenie od tego celu może spowodować, że domniemany FSM przyjmie postać modułu innego typu (licznik, sumator itp.). pwm_fsm ma 3 stany: INIT, CLR i FLYINIT: Pozwala użytkownikowi zaprogramować ESC jako pożądany. Wysyła sygnał wyboru do mux_pwm, który wysyła prosty PWM do wszystkich silników. Zapętla się do siebie aż do GO == '1'. CLR: Wyczyść dane w motor_ctl_wrapper i module pwm out. FLY: Zapętl na zawsze w celu ustabilizowania quadkoptera (chyba że zostaniemy zresetowani). Wysyła skompensowany PWM przez mux_pwm. Input: GO, RESET, clkOutput: RST dla innych resetów modułu, FullFlight, aby zasygnalizować tryb FLY, Okres do uruchomienia atmux_pwm.svPurpose:Input:Output: PWM dla wszystkich 4 motorspwm.svPurpose:Input:Output:
Zalecana:
Kamera poklatkowa przy użyciu płyty ESP32-CAM: 6 kroków
Kamera poklatkowa wykorzystująca płytkę ESP32-CAM: Ten projekt opiera się na poprzednim projekcie kamery cyfrowej i budujemy kamerę poklatkową przy użyciu płyty ESP32-CAM. Wszystkie obrazy są kolejno zapisywane na karcie microSD, a po zrobieniu zdjęcia tablica przechodzi w stan uśpienia, aby pomóc zapisać po
Neopixel Ws2812 Rainbow LED Glow z M5stick-C - Uruchamianie Rainbow na Neopixel Ws2812 przy użyciu M5stack M5stick C przy użyciu Arduino IDE: 5 kroków
Neopixel Ws2812 Rainbow LED Glow z M5stick-C | Uruchamianie Rainbow na Neopixel Ws2812 Używając M5stack M5stick C Używając Arduino IDE: Cześć chłopaki, w tej instrukcji dowiemy się, jak używać neopikselowych ws2812 LED lub taśmy LED lub matrycy LED lub pierścienia LED z płytką rozwojową m5stack m5stick-C z Arduino IDE i zrobimy wzór tęczy z nim
WIDI - Bezprzewodowe HDMI przy użyciu Zybo (Zynq Development Board): 9 kroków (ze zdjęciami)
WIDI - Bezprzewodowe HDMI przy użyciu Zybo (Zynq Development Board): Czy kiedykolwiek marzyłeś, aby móc podłączyć telewizor do komputera PC lub laptopa jako monitor zewnętrzny, ale nie chciałeś mieć tych wszystkich nieznośnych kabli? Jeśli tak, ten samouczek jest właśnie dla Ciebie! Chociaż istnieje kilka produktów, które osiągają ten cel
LUTOWANIE SMD 101 - PRZY UŻYCIU PŁYTY GORĄCEJ, DMUCHAWY GORĄCEGO POWIETRZA, SZABLONU SMD I LUTOWANIA RĘCZNEGO: 5 kroków
LUTOWANIE SMD 101 | PRZY UŻYCIU PŁYTY GORĄCEJ, DMUCHAWY GORĄCEGO POWIETRZA, SZABLONU SMD I LUTOWANIA RĘCZNEGO: Witam! Lutowanie jest dość łatwe…. Nałóż trochę topnika, podgrzej powierzchnię i nałóż lut. Ale jeśli chodzi o lutowanie elementów SMD, wymaga to trochę wprawy i trochę narzędzi i akcesoriów. W tej instrukcji pokażę ci moje
Przetwarzanie wideo przy użyciu VHDL i Zybo: 10 kroków
Przetwarzanie wideo przy użyciu VHDL i Zybo: FPGA są szybsze niż procesory w przetwarzaniu, ponieważ mogą wykonywać wiele obliczeń równolegle Uwaga: Ten projekt jest wciąż w budowie i będzie ulepszany (jak tylko będę miał czas). W międzyczasie podróżuję po świecie