Inhaltsverzeichnis:
- Schritt 1: Bringen Sie das PWM-Modul zum Laufen
- Schritt 2: Einrichten des Blockdesigns
- Schritt 3: Kalibrieren Sie die IMU
- Schritt 4: Integrieren Sie den drahtlosen Transceiver
- Schritt 5: Programmieren Sie das Zybo FPGA
Video: Quadcopter mit Zybo Zynq-7000 Board - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Bevor wir beginnen, sind hier einige Dinge, die Sie für das Projekt benötigen: Teileliste1x Digilent Zybo Zynq-7000-Board 1x Quadcopter-Rahmen, der Zybo montieren kann (Adobe Illustrator-Datei zum Laserschneiden angehängt) 4x Turnigy D3530/14 1100KV Brushless-Motoren 4x Turnigy ESC Basic -18A Geschwindigkeitsregler 4x Propeller (diese müssen groß genug sein, um Ihren Quadcopter anzuheben) 2x nRF24L01+ Transceiver 1x IMU BNO055SoftwareanforderungenXilinx Vivado 2016.2HINWEIS: Die oben genannten Motoren sind nicht die einzigen Motoren, die verwendet werden können. Sie sind nur die, die in diesem Projekt verwendet werden. Gleiches gilt für den Rest der Teile und Softwareanforderungen. Hoffentlich ist das ein unausgesprochenes Verständnis beim Lesen dieses Instructable.
Schritt 1: Bringen Sie das PWM-Modul zum Laufen
Programmieren Sie ein einfaches SystemVerilog (oder ein anderes HDL-Programm), um HI-Gas und LO-Gas mit Eingangsschaltern zu registrieren. Schließen Sie das PWM mit einem einzigen ESC und einem bürstenlosen Turnigy-Motor an. Überprüfen Sie die folgenden Dateien, um herauszufinden, wie Sie den Regler kalibrieren. Der endgültige Code ist in Schritt 5 für das PWM-Modul beigefügt. Ein PWM-Starter ist in diesem Schritt beigefügtESC-Datenblatt: Turnigy ESC-Datenblatt PDF (Zu beachten sind die verschiedenen Modi, die Sie mit HI- und LO-Gas auswählen können)
Schritt 2: Einrichten des Blockdesigns
Blockdesign erstellen Doppelklicken Sie auf den neu generierten Block Importieren Sie hier heruntergeladene XPS-Einstellungen: https://github.com/ucb-bar/fpga-zynq/tree/master/z… Einstellungen ändern PS-PL-Konfiguration M AXI GP0-Schnittstelle Peripheral I/ O Pins Ethernet 0 USB 0 SD 0 SPI 1 UART 1 I2C 0 TTC0 SWDT GPI MIOMIO Konfiguration Timer 0 WatchdogClock Konfiguration FCLK_CLK0 und Frequenz auf 100 MHz setzen I2C und SPI extern herstellen FCLK_CLK0 mit M_AXI_GP0_ACLK verbinden Blockautomatisierung ausführen Port erstellen und "gnd" nennen
Schritt 3: Kalibrieren Sie die IMU
Der Transceiver BNO055 verwendet die I2C-Kommunikation. (Empfohlene Lektüre für Anfänger: https://learn.sparkfun.com/tutorials/i2c) Der Treiber zum Ausführen der IMU befindet sich hier: https://github.com/BoschSensortec/BNO055_driverEin Quadcopter erfordert keine Verwendung des Magnetometers von der BNO055. Aus diesem Grund ist der erforderliche Betriebsmodus der IMU-Modus. Dies wird geändert, indem eine Binärzahl xxxx1000 in das OPR_MODE-Register geschrieben wird, wobei 'x' für 'egal' steht. Setzen Sie diese Bits auf 0.
Schritt 4: Integrieren Sie den drahtlosen Transceiver
Der drahtlose Transceiver verwendet SPI-Kommunikation. Anbei das Spezifikationsblatt für den nRF24L01+ Ein gutes Tutorial zum nrf24l01+ aber mit Arduino:
Schritt 5: Programmieren Sie das Zybo FPGA
ÜbersichtDiese Module sind die letzten Module, die für die Steuerung der PWM des Quadcopters verwendet werden. motor_ctl_wrapper.svPurpose: Der Wrapper nimmt Euler-Winkel und einen Drosselungsprozentsatz auf. Es gibt eine kompensierte PWM aus, die es dem Quadrocopter ermöglicht, sich zu stabilisieren. Dieser Block existiert, weil Quadrocopter anfällig für Störungen in der Luft sind und eine Art Stabilisierung benötigen. Wir verwenden Euler-Winkel, da wir keine Flips oder starke Winkel planen, die Gimbal Lock verursachen könnten. Input: 25-Bit-Datenbus CTL_IN = { [24] GO, [23:16] Euler X, [15: 8] Euler Y, [7:0] Throttle Percentage }, Clock (clk), Synchronous CLR (sclr)Output: Motor 1 PWM, Motor 2 PWM, Motor 3 PWM, Motor 4 PWM, Throttle Percentage PWM Der Throttle Percentage PWM ist Wird zum Initialisieren des ESC verwendet, der einen reinen PWM-Bereich von 30% - 70% benötigt, nicht den von den PWM-Werten des Motors 1-4. Erweitert - Vivado Zynq IP-Blöcke:8 Addiert (LUTs)3 Subtrahiert (LUTs)5 Multiplikatoren (Blockspeicher (BRAM))clock_div.sv (AKA pwm_fsm.sv) Zweck: Steuern der Hardware, einschließlich MUX, PWM-Ausgang und sclr für motor_ctl_wrapper. Jede Finite State Machine (FSM) wird für eine Sache verwendet: andere Hardware zu steuern. Jede große Abweichung von diesem Ziel kann dazu führen, dass das vermeintliche FSM in Form eines anderen Modultyps (Zähler, Addierer usw.) gewünscht. Sendet ein Auswahlsignal an mux_pwm, das direkte PWM an alle Motoren ausgibt. Schleift zu sich selbst zurück, bis GO == '1'. CLR: Löschen Sie die Daten in motor_ctl_wrapper und dem PWM-Ausgangsmodul. FLY: Schleife für immer, um den Quadcopter zu stabilisieren (es sei denn, wir werden zurückgesetzt). Sendet die kompensierte PWM über den mux_pwm. Input: GO, RESET, clkOutput: RST für andere Modul-Resets, FullFlight, um den FLY-Modus zu signalisieren, Period to run atmux_pwm.svPurpose:Input:Output: PWM für alle 4 motorspwm.svPurpose:Input:Output:
Empfohlen:
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
So erstellen Sie eine funktionierende Ampel mit einem Auduino-Board – wikiHow
So erstellen Sie eine funktionierende Ampel mit einem Auduino-Board: Ampeln sind Signalgeräte, die häufig an Straßenkreuzungen, Fußgängerüberwegen und anderen Orten verwendet werden, um den Verkehrsfluss zu steuern. Eine handbetätigte Gasampel war die erste ihrer Art und die Technologie hat die Si
So erstellen Sie eine Message Board-Website mit PHP und MYSQL – wikiHow
So erstellen Sie eine Message Board-Website mit PHP und MYSQL: Diese Anleitung zeigt Ihnen, wie Sie eine Message Board-Website mit PHP, MySQL, HTML und CSS erstellen. Wenn Sie neu in der Webentwicklung sind, machen Sie sich keine Sorgen, es gibt detaillierte Erklärungen und Analogien, damit Sie die Konzepte besser verstehen. Matte
DJi F450 Quadcopter Wie baue ich? Eigenbau.: 7 Schritte (mit Bildern)
DJi F450 Quadcopter Wie baue ich? Eigenbau.: Dies war eine selbstgebaute Drohne, die von Hobby King 6-Kanal-Sender und -Empfänger und Kk2.1.5-Flugcontroller gesteuert wurde. Normalerweise werden dafür bürstenlose Motoren im 1000-KV-Bereich verwendet, aber für mein Projekt habe ich 1400-KV-Motoren für die beste Leistung verwendet
Multisensor-Board Arduino! (Teil1): 11 Schritte (mit Bildern)
Multisensor-Board Arduino! (Teil1): Dieses Board ist eine vollständige Arbeit, die Ihnen hilft, die Messwerte von verschiedenen Sensoren zu erhalten! Bitte besuchen Sie meinen Kanal, Abonnieren: www.youtube.com/user/josexers