Sommario:
- Passaggio 1: avvia il modulo PWM
- Passaggio 2: imposta il design del blocco
- Passaggio 3: calibrare l'IMU
- Passaggio 4: integra il ricetrasmettitore wireless
- Passaggio 5: programma l'FPGA Zybo
Video: Quadricottero che utilizza la scheda Zybo Zynq-7000: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Prima di iniziare, ecco alcune cose che desideri per il progetto:Elenco parti 1x scheda Digilent Zybo Zynq-7000 1x telaio quadricottero in grado di montare Zybo (file Adobe Illustrator per il taglio laser allegato) 4x Turnigy D3530/14 1100KV Brushless Motors 4x Turnigy ESC Basic -18A Speed Controller 4x eliche (queste devono essere abbastanza grandi per sollevare il tuo quadricottero) 2x ricetrasmettitore nRF24L01+ 1x IMU BNO055Requisiti softwareXilinx Vivado 2016.2NOTA: I motori sopra non sono gli unici motori che possono essere utilizzati. Sono solo quelli utilizzati in questo progetto. Lo stesso vale per il resto delle parti e dei requisiti software. Si spera che questa sia una comprensione non detta durante la lettura di questo Instructable.
Passaggio 1: avvia il modulo PWM
Programmare un semplice SystemVerilog (o un altro programma HDL) per registrare l'acceleratore HI e l'acceleratore LO utilizzando gli interruttori di ingresso. Aggancia il PWM con un singolo ESC e Turnigy Brushless Motor. Controllare i seguenti file per scoprire come calibrare l'ESC. Il codice finale è allegato al passaggio 5 per il modulo PWM. Un avviatore PWM è allegato in questo passaggio Foglio dati ESC: Turnigy Foglio dati ESC PDF (Le cose a cui prestare attenzione sono le diverse modalità che è possibile selezionare utilizzando l'acceleratore HI e LO)
Passaggio 2: imposta il design del blocco
Crea disegno blocco Fare doppio clic sul blocco appena generato Importa impostazioni XPS scaricate qui: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Modifica impostazioni Configurazione PS-PL M Interfaccia AXI GP0 Peripheral I/ O Pin Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Configurazione Timer 0 Configurazione WatchdogClock FCLK_CLK0 e imposta la frequenza a 100 MHz Crea I2C e SPI esterni Connetti FCLK_CLK0 a M_AXI_GP0_ACLK Esegui blocco automazione Crea porta e chiamalo "gnd"
Passaggio 3: calibrare l'IMU
Il ricetrasmettitore BNO055 utilizza la comunicazione I2C. (Lettura consigliata per principianti: https://learn.sparkfun.com/tutorials/i2c) Il driver per eseguire l'IMU si trova qui: https://github.com/BoschSensortec/BNO055_driverUn quadricottero non richiede l'uso del magnetometro dal BNO055. Per questo motivo, la modalità operativa necessaria è la modalità IMU. Questo viene modificato scrivendo un numero binario xxxx1000 nel registro OPR_MODE, dove 'x' è un 'non mi interessa'. Imposta quei bit a 0.
Passaggio 4: integra il ricetrasmettitore wireless
Il ricetrasmettitore wireless utilizza la comunicazione SPI. In allegato è il foglio delle specifiche per nRF24L01+Un buon tutorial sul nrf24l01+ ma con arduino:
Passaggio 5: programma l'FPGA Zybo
PanoramicaQuesti moduli sono i moduli finali utilizzati per il controllo del PWM del quadricottero. motor_ctl_wrapper.svPurpose: il wrapper prende gli angoli di Eulero e una percentuale di accelerazione. Emette un PWM compensato che consentirà al quadricottero di stabilizzarsi. Questo blocco esiste, perché i quadricotteri sono soggetti a disturbi nell'aria e richiedono una sorta di stabilizzazione. Stiamo usando gli angoli di Eulero, poiché non prevediamo capovolgimenti o angoli pesanti che potrebbero causare il blocco del giunto cardanico. Input: bus di dati a 25 bit CTL_IN = { [24] GO, [23:16] Euler X, [15: 8] Eulero Y, [7:0] Percentuale farfalla }, Orologio (clk), CLR sincrono (sclr) Uscita: PWM motore 1, PWM motore 2, PWM motore 3, PWM motore 4, PWM percentuale farfalla La percentuale PWM farfalla è utilizzato per l'inizializzazione dell'ESC, che richiederà un intervallo puro del 30% - 70% di PWM, non quello dei valori PWM del motore 1-4. Avanzato - Blocchi IP Vivado Zynq: 8 Somma (LUT) 3 Sottrazione (LUT) 5 Moltiplicatori (Block Memory (BRAM))clock_div.sv (AKA pwm_fsm.sv) Scopo: controlla l'hardware, incluso il MUX, l'uscita PWM e sclr per motor_ctl_wrapper. Qualsiasi macchina a stati finiti (FSM) viene utilizzata per una cosa: controllare altro hardware. Qualsiasi grande deviazione da questo obiettivo può far sì che il presunto FSM assuma la forma di un diverso tipo di modulo (contatore, sommatore, ecc.). pwm_fsm ha 3 stati: INIT, CLR e FLYINIT: consente all'utente di programmare l'ESC come desiderato. Invia un segnale di selezione a mux_pwm che emette PWM diretto a tutti i motori. Torna su se stesso finché GO == '1'. CLR: Cancella i dati in motor_ctl_wrapper e nel modulo pwm out. FLY: Loop per sempre per stabilizzare il quadricottero (a meno che non venga ripristinato). Invia il PWM compensato attraverso il mux_pwm. Input: GO, RESET, clkOutput: RST per altri reset del modulo, FullFlight per segnalare la modalità FLY, Period to run atmux_pwm.svPurpose:Input:Output: PWM per tutti e 4 i motorspwm.svPurpose:Input:Output:
Consigliato:
Robot per evitare gli ostacoli che utilizza il sensore a ultrasuoni (Proteus): 12 passaggi
Robot per evitare gli ostacoli che utilizza il sensore a ultrasuoni (Proteus): generalmente ci imbattiamo in robot per evitare gli ostacoli ovunque. La simulazione hardware di questo robot fa parte della competizione in molti college e in molti eventi. Ma la simulazione software del robot ostacolo è rara. Anche se riusciamo a trovarlo da qualche parte
Una macchina da paura per Halloween che utilizza un PIR, una zucca stampata in 3D e il troll Arduino audio compatibile/scheda scherzo pratica.: 5 passaggi
Una macchina da paura di Halloween che utilizza un PIR, una zucca stampata in 3D e il Troll Arduino compatibile Audio Pranker/pratica scheda scherzo.: La scheda Troll creata da Patrick Thomas Mitchell di EngineeringShock Electronics, ed è stata interamente finanziata su Kickstarter non molto tempo fa. Ho ricevuto la mia ricompensa con qualche settimana di anticipo per aiutare a scrivere alcuni esempi di utilizzo e costruire una libreria Arduino in un tentativo
WIDI - HDMI wireless con Zybo (scheda di sviluppo Zynq): 9 passaggi (con immagini)
WIDI - HDMI wireless con Zybo (scheda di sviluppo Zynq): hai mai desiderato poter collegare la tua TV a un PC o laptop come monitor esterno, ma non volevi avere tutti quei fastidiosi cavi? Se è così, questo tutorial è solo per te! Mentre ci sono alcuni prodotti che raggiungono questo obiettivo, un
Come programmare una scheda AVR utilizzando una scheda Arduino: 6 passaggi
Come programmare una scheda AVR utilizzando una scheda Arduino: hai una scheda microcontrollore AVR in giro? È complicato programmarlo? Bene, sei nel posto giusto. Qui, ti mostrerò come programmare una scheda microcontrollore Atmega8a utilizzando una scheda Arduino Uno come programmatore. Quindi senza ulteriori
Un minuscolo sistema di allarme che utilizza una super piccola scheda compatibile con Arduino!: 10 passaggi
Un minuscolo sistema di allarme che utilizza una super piccola scheda compatibile con Arduino!: Ciao, oggi realizzeremo un piccolo progetto interessante. Costruiremo un minuscolo dispositivo di allarme che misuri la distanza tra se stesso e un oggetto di fronte ad esso. E quando l'oggetto si sposta oltre una distanza prestabilita, il dispositivo ti avviserà con un