Sisukord:
- Samm: käivitage PWM -moodul
- Samm: seadistage plokkide kujundus
- Samm: kalibreerige IMU
- Samm: integreerige traadita transiiver
- Samm: programmeerige Zybo FPGA
Video: Quadcopter, kasutades Zybo Zynq-7000 plaati: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Enne alustamist on siin projekti jaoks mõned asjad: Osade nimekiri 1x Digilent Zybo Zynq-7000 tahvel 1x nelikopteri raam, millele saab paigaldada Zybo (lisatud Adobe Illustratori fail laserlõikamiseks) 4x Turnigy D3530/14 1100KV harjadeta mootorid 4x Turnigy ESC Basic -18A kiiruskontrolleri 4x propellerid (need peavad olema piisavalt suured, et nelikopterit üles tõsta) 2x nRF24L01+ transiiver 1x IMU BNO055 Nõuded tarkvarale Xilinx Vivado 2016.2. MÄRKUS. Ülaltoodud mootorid ei ole ainsad mootorid, mida saab kasutada. Neid on just selles projektis kasutatud. Sama kehtib ka ülejäänud osade ja tarkvara nõuete kohta. Loodetavasti on see juhendit lugedes sõnatu arusaam.
Samm: käivitage PWM -moodul
Programmeerige lihtne SystemVerilog (või muu HDL -programm) sisendlülitite abil HI- ja LO -gaasi registreerimiseks. Ühendage PWM ühe ESC ja Turnigy harjadeta mootoriga. Kontrollige järgmisi faile, et teada saada, kuidas ESC -d kalibreerida. Lõplik kood on lisatud PWM -mooduli 5. etapis. Selles etapis on lisatud PWM -käivitaja ESC -andmeleht: Turnigy ESC -i andmeleht PDF (Tasub pöörata tähelepanu erinevatele režiimidele, mida saate valida HI- ja LO -gaasi abil)
Samm: seadistage plokkide kujundus
Ploki kujunduse loomine Topeltklõpsake äsja loodud plokki Impordi XPS-i seaded, mis on alla laaditud siit: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Seadete muutmine PS-PL Configuration M AXI GP0 interface Peripheral I/ O Pins Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Configuration Timer 0 WatchdogClock Configuration FCLK_CLK0 and set sagedus 100 MHz Tee I2C ja SPI väline Connect FCLK_CLK0 väärtuseks M_AXI_GP0_ACLK Käivita ploki automatiseerimine "Loo port ja loo see"
Samm: kalibreerige IMU
BNO055 transiiver kasutab I2C sidet. (Algaja soovituslik lugemine: https://learn.sparkfun.com/tutorials/i2c) IMU käivitamise draiver asub siin: https://github.com/BoschSensortec/BNO055_driver Quadcopter ei nõua magnetomeetri kasutamist BNO055. Seetõttu on vajalik töörežiim IMU -režiim. Seda muudetakse, kirjutades OPR_MODE registrisse kahendnumbri xxxx1000, kus „x” on „ei hooli”. Seadke need bitid väärtuseks 0.
Samm: integreerige traadita transiiver
Traadita transiiver kasutab SPI -ühendust. Lisatud on nRF24L01+ spetsifikatsioonileht+ Hea õpetus nrf24l01+ kohta, kuid koos arduinoga:
Samm: programmeerige Zybo FPGA
Need moodulid on viimased moodulid, mida kasutatakse nelikopteri PWM -i juhtimiseks. motor_ctl_wrapper.sv Eesmärk: ümbris võtab arvesse Euleri nurki ja gaasihoovastiku protsenti. See väljastab kompenseeritud PWM, mis võimaldab nelikopteril stabiliseeruda. See plokk on olemas, kuna kvadrokopterid on õhuhäirete suhtes altid ja vajavad teatud tüüpi stabiliseerimist. Me kasutame Euleri nurki, kuna me ei plaani klappe ega raskeid nurki, mis võivad põhjustada käärluku. Sisend: 25-bitine andmesiin CTL_IN = {[24] GO, [23:16] Euler X, [15: 8] Euler Y, [7: 0] gaasihoovastiku protsent}, kell (clk), sünkroonne CLR (sclr) väljund: mootor 1 PWM, mootor 2 PWM, mootor 3 PWM, mootor 4 PWM, drosseli protsent PWM Gaasihoovastiku protsent on kasutatakse ESC initsialiseerimiseks, mis soovib puhast 30–70% PWM vahemikku, mitte mootori 1–4 PWM väärtusi. Täiustatud - Vivado Zynq IP -plokid: 8 lisab (LUT) 3 lahutab (LUT) 5 Kordajad (plokkmälu (BRAM)) clock_div.sv (AKA pwm_fsm.sv) Eesmärk: Juhtige riistvara, sealhulgas MUX -i, PWM -väljundit ja motor_ctl_wrapper -i sclr -d. Mis tahes lõpliku oleku masinat (FSM) kasutatakse ühe asja jaoks: muu riistvara juhtimiseks. Kõik suured kõrvalekalded sellest eesmärgist võivad põhjustada oletatava Mikroneesia eri tüüpi mooduli (loenduri, liituri jne) kujul. Pwm_fsm -l on 3 olekut: INIT, CLR ja FLYINIT: lubage kasutajal programmeerida ESC soovitud. Saadab valimissignaali mux_pwm -le, mis väljastab kõigile mootoritele otse PWM -i. Loopib end tagasi, kuni GO == '1'. CLR: Kustutage andmed motor_ctl_wrapperis ja pwm out moodulis. FLY: Loop igavesti, et stabiliseerida quadcopter (kui me pole lähtestatud). Saadab kompenseeritud PWM -i mux_pwm kaudu. Sisend: GO, RESET, clk Väljund: RST muude moodulite lähtestamiseks, FullFlight FLY -režiimi signaalimiseks, ajavahemik atmux_pwm.sv Eesmärk: Sisend: Väljund: PWM kõigi 4 mootorite jaoks:
Soovitan:
Kuidas teha oma Arduino plaati (xduino): 6 sammu
Kuidas teha oma Arduino plaati (xduino): vaadake videot
FM -raadio, kasutades Arduino ühilduvat plaati Inviot U1: 3 sammu
FM -raadio Arduino ühilduva plaadi Inviot U1 kasutamine: TEA5767 on arduinoga lihtne kasutada. Ma kasutan TEA5767 moodulit ja InvIoT U1 tahvlit saidilt InvIoT.com
Kuidas kasutada Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE ühilduvat plaati, kasutades Blynki: 10 sammu
Kuidas kasutada Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE ühilduvat plaati, kasutades Blynki: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE ühilduv plaat Kirjeldus: WiFi ESP8266 arendusplaat WEMOS D1. WEMOS D1 on WIFI arendusplaat, mis põhineb ESP8266 12E. Toimimine on sarnane NODEMCU toimimisega, välja arvatud see, et riistvara on ehitatud
WIDI - traadita HDMI Zybo abil (Zynq Development Board): 9 sammu (piltidega)
WIDI - traadita HDMI Zybo (Zynq Development Board) abil: kas olete kunagi soovinud, et saaksite teleri välise monitorina arvutiga või sülearvutiga ühendada, kuid ei soovinud, et kõik need tüütud juhtmed oleksid takistatud? Kui jah, siis see õpetus on just teile! Kuigi selle eesmärgi saavutamiseks on mõned tooted
Pisike häiresüsteem, kasutades ülipisikest Arduino ühilduvat plaati!: 10 sammu
Pisike häiresüsteem, mis kasutab ülipisikest Arduino ühilduvat plaati!: Tere, täna teeme väikese laheda projekti. Ehitame väikese häireseadme, mis mõõdab kaugust enda ja selle ees oleva objekti vahel. Ja kui objekt liigub määratud vahemaast kaugemale, teavitab seade teid