Inhaltsverzeichnis:
- Schritt 1: Materialien sammeln
- Schritt 2: Montieren Sie den Rahmen
- Schritt 3: Motoren montieren und Escs anschließen
- Schritt 4: Arduino und Shield vorbereiten
- Schritt 5: Komponenten verdrahten und Batterie platzieren (Uno)
- Schritt 6: Komponenten verdrahten und Batterie platzieren (Mega)
- Schritt 7: Empfänger binden
- Schritt 8: (Optional) Verdrahten Sie das FPV-Kamerasystem und montieren Sie es
- Schritt 9: GPS-Datenempfang einrichten
- Schritt 10: Setup-Code ausführen (Uno)
- Schritt 11: Setup-Code ausführen (Mega)
- Schritt 12: Kalibrieren Sie die ESCs (Uno)
- Schritt 13: ESCs kalibrieren (Mega)
- Schritt 14: Holen Sie sich in die Luft !! (Uno)
- Schritt 15: Holen Sie sich in die Luft !! (Mega)
- Schritt 16: Wie wir mit dem Mega-Design dahin gekommen sind, wo wir derzeit sind
Video: Arduino-Drohne mit GPS - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Wir machten uns daran, eine Arduino-gesteuerte und stabilisierte, GPS-fähige First-Person-View (FPV) Quadcopter-Drohne mit Return to Home, Go to Koordinaten und GPS Hold-Funktionen zu bauen. Wir gingen naiv davon aus, dass es relativ einfach wäre, bestehende Arduino-Programme und die Verkabelung eines Quadcopters ohne GPS mit denen eines GPS-Übertragungssystems zu kombinieren und wir schnell zu komplexeren Programmieraufgaben übergehen könnten. Es musste jedoch überraschend viel geändert werden, um diese beiden Projekte zu verbinden, und so haben wir letztendlich einen GPS-fähigen FPV-Quadcopter ohne zusätzliche Funktionen entwickelt.
Wir haben Anweisungen zur Replikation unseres Produkts beigefügt, wenn Sie mit dem eingeschränkteren Quadrocopter zufrieden sind.
Wir haben auch alle Schritte aufgenommen, die wir auf dem Weg zu einem autonomeren Quadrocopter unternommen haben. Wenn Sie sich wohl fühlen, tief in Arduino zu graben oder bereits viel Arduino-Erfahrung haben und unseren Haltepunkt als Ausgangspunkt für Ihre eigene Erkundung nehmen möchten, dann ist dieses Instructable auch für Sie.
Dies ist ein großartiges Projekt, um etwas über das Erstellen und Programmieren von Arduino zu lernen, egal wie viel Erfahrung Sie haben. Außerdem wirst du hoffentlich mit einer Drohne weggehen.
Die Einrichtung ist wie folgt:
In der Materialliste werden für beide Ziele Teile ohne Stern benötigt.
Teile mit einem Sternchen werden nur für das unvollendete Projekt eines autonomeren Quadcopters benötigt.
Teile mit zwei Sternchen werden nur für den eingeschränkteren Quadcopter benötigt.
Schritte, die beiden Projekten gemeinsam sind, haben keine Markierung nach dem Titel
Schritte, die nur für den eingeschränkteren nicht-autonomen Quadrocopter erforderlich sind, haben "(Uno)" nach dem Titel.
Schritte, die nur für den laufenden autonomen Quadrocopter erforderlich sind, haben "(Mega)" nach dem Titel.
Um das Uno-basierte Quad zu erstellen, befolgen Sie die Schritte der Reihe nach und überspringen Sie alle Schritte mit "(Mega)" nach dem Titel.
Um an dem Mega-basierten Quad zu arbeiten, befolgen Sie die Schritte der Reihe nach und überspringen Sie alle Schritte mit "(Uno)" nach dem Titel.
Schritt 1: Materialien sammeln
Komponenten:
1) Ein Quadcopter-Frame (der genaue Frame spielt wahrscheinlich keine Rolle) (15 $)
2) Vier bürstenlose Motoren 2830, 900 kV (oder ähnlich) und vier Montagezubehörpakete (4 x 6 $ + 4 x 4 $ = 40 $ insgesamt)
3) Vier 20A UBEC ESCs (4x 10 $ = 40 $ insgesamt)
4) Eine Stromverteilungsplatine (mit XT-60-Anschluss) (20 USD)
5) Ein 3s, 3000-5000mAh LiPo Akku mit XT-60 Anschluss (3000mAh entspricht ca. 20 min Flugzeit) (25$)
6) Viele Propeller (diese brechen viel) ($10)
7) Ein Arduino Mega 2560* ($40)
8) Ein Arduino Uno R3 (20 $)
9) Ein zweiter Arduino Uno R3** (20 $)
10) Ein Arduino Ultimate GPS-Schild (Sie benötigen das Schild nicht, aber die Verwendung eines anderen GPS erfordert eine andere Verkabelung) ($ 45)
11) Zwei drahtlose HC-12-Transceiver (2x5 $ = 10 $)
12) Ein MPU-6050, 6DOF (Freiheitsgrad) Gyro/Beschleunigungsmesser ($5)
13) Ein Turnigy 9x 2,4 GHz, 9-Kanal Sender/Empfänger-Paar ($70)
14) Arduino-Buchsen (stapelbar) (20 $)
15) LiPo-Akku-Balance-Ladegerät (und 12-V-DC-Adapter, nicht im Lieferumfang enthalten) (20 $)
17) USB A auf B Stecker auf Stecker Adapterkabel ($5)
17) Klebeband
18) Schrumpfschlauch
Ausrüstung:
1) Ein Lötkolben
2) Löten
3) Kunststoff-Epoxid
4) Feuerzeug
5) Abisolierzange
6) Ein Satz Inbusschlüssel
Optionale Komponenten für die Echtzeit-FPV-Videoübertragung (First Person View):
1) Eine kleine FPV-Kamera (diese verlinkt auf die ziemlich billige und schlechte Qualität, die wir verwendet haben, Sie können eine bessere ersetzen) (20 $)
2) 5,6 GHz Video-Sender/Empfänger-Paar (832 Modelle verwendet) (30 $)
3) 500mAh, 3s (11,1V) LiPo-Akku ($7) (wir haben es mit einem Bananenstecker verwendet, aber wir empfehlen im Nachhinein, dass Sie den verbundenen Akku verwenden, da er einen mit dem TS832-Sender kompatibelen Anschluss hat und somit nicht kein Löten erforderlich).
4) 2 1000mAh 2s (7,4 V) LiPo-Akku oder ähnlich (5 $). Die Anzahl der mAh ist nicht kritisch, solange sie mehr als 1000 mAh beträgt. Für den Steckertyp einer der beiden Batterien gilt die gleiche Aussage wie oben. Der andere wird verwendet, um den Monitor mit Strom zu versorgen, sodass Sie auf jeden Fall löten müssen. Wahrscheinlich am besten, dafür einen mit einem XT-60-Stecker zu bekommen (das haben wir gemacht). Ein Link für diesen Typ ist hier: 1000mAh 2s (7,4V) LiPo mit XT-60 Stecker
5) LCD-Monitor (optional) (15 $). Sie können auch einen AV-USB-Adapter und eine DVD-Kopiersoftware verwenden, um direkt auf einem Laptop anzuzeigen. Dies bietet auch die Möglichkeit, Videos und Fotos aufzunehmen, anstatt sie nur in Echtzeit anzuzeigen.
6) Wenn Sie Batterien mit anderen Steckern als den verlinkten gekauft haben, benötigen Sie möglicherweise entsprechende Adapter. Besorgen Sie sich auf jeden Fall einen Adapter, der dem Stecker für die Batterie entspricht, die den Monitor mit Strom versorgt. Hier finden Sie XT-60-Adapter
* = nur für fortgeschrittene Projekte
** = nur für einfacheres Projekt
Kosten:
Wenn Sie bei Null anfangen (aber mit einem Lötkolben usw.), kein FPV-System: ~ 370 $
Wenn Sie bereits einen RC-Sender/Empfänger, ein LiPo-Ladegerät und einen LiPo-Akku haben: ~260 $
Kosten des FPV-Systems: $80
Schritt 2: Montieren Sie den Rahmen
Dieser Schritt ist ziemlich einfach, insbesondere wenn Sie den gleichen vorgefertigten Rahmen verwenden, den wir verwendet haben. Verwenden Sie einfach die mitgelieferten Schrauben und bauen Sie den Rahmen wie abgebildet mit einem passenden Inbusschlüssel oder Schraubendreher für Ihren Rahmen zusammen. Achten Sie darauf, dass gleichfarbige Arme nebeneinander liegen (wie in diesem Bild), damit die Drohne eine klare Vorder- und Rückseite hat. Achten Sie außerdem darauf, dass der lange Teil der Bodenplatte zwischen den gegenüberliegenden Armen herausragt. Dies wird später wichtig.
Schritt 3: Motoren montieren und Escs anschließen
Nachdem der Rahmen zusammengebaut ist, nehmen Sie die vier Motoren und vier Montagezubehörteile heraus. Sie können entweder die in den Montagesets enthaltenen Schrauben oder die vom Quadcopter-Rahmen übrig gebliebenen Schrauben verwenden, um die Motoren und Halterungen zu befestigen. Wenn Sie die von uns verlinkten Halterungen kaufen, erhalten Sie zwei zusätzliche Komponenten, wie oben abgebildet. Wir hatten eine gute Motorleistung ohne diese Teile, also haben wir sie weggelassen, um das Gewicht zu reduzieren.
Sobald die Motoren festgeschraubt sind, kleben Sie die Stromverteilungsplatine (PDB) auf die obere Platte des Quadcopter-Rahmens. Achten Sie darauf, dass Sie ihn so ausrichten, dass der Akkuanschluss zwischen verschiedenfarbigen Armen (parallel zu einem der langen Abschnitte der Bodenplatte) zeigt, wie im Bild oben.
Sie sollten auch vier Propellerkonen mit Innengewinde haben. Legen Sie diese vorerst beiseite.
Nehmen Sie nun Ihre ESCs heraus. Auf einer Seite kommen zwei Drähte heraus, ein roter und ein schwarzer. Stecken Sie für jeden der vier ESCs den roten Draht in den positiven Anschluss am PDB und den schwarzen in den negativen. Beachten Sie, dass dieser Schritt möglicherweise ein Löten erfordert, wenn Sie eine andere PDB verwenden. Verbinden Sie nun jeden der drei Drähte, die aus jedem Motor kommen. An dieser Stelle spielt es keine Rolle, welches ESC-Kabel Sie mit welchem Motorkabel verbinden (solange Sie alle Drähte eines ESC mit dem gleichen Motor verbinden!) Sie werden später die umgekehrte Polarität korrigieren. Es ist ungefährlich, wenn die Drähte vertauscht sind; es führt nur dazu, dass der Motor rückwärts dreht.
Schritt 4: Arduino und Shield vorbereiten
Eine Anmerkung, bevor Sie beginnen
Zuerst können Sie alle Drähte direkt zusammenlöten. Wir fanden es jedoch von unschätzbarem Wert, Stiftleisten zu verwenden, da sie viel Flexibilität bei der Fehlersuche und Anpassung des Projekts bieten. Was folgt, ist eine Beschreibung dessen, was wir getan haben (und anderen empfehlen).
Arduino und Schild vorbereiten
Nehmen Sie Ihren Arduino Mega (oder einen Uno, wenn Sie das nicht autonome Quad machen), den GPS-Schild und die stapelbaren Header heraus. Löten Sie das männliche Ende der stapelbaren Stiftleisten auf der GPS-Abschirmung in den Stiftreihen parallel zu den vorgelöteten Stiften, wie in der obigen Abbildung gezeigt. Auch stapelbare Stiftleisten an der Stiftleiste mit der Bezeichnung 3V, CD, … RX einlöten. Verwenden Sie einen Drahtschneider, um überschüssige Länge an den Stiften abzuschneiden, die unten herausragen. Platzieren Sie Stiftleisten mit gebogenen Spitzen in all diesen stapelbaren Stiftleisten. An diese werden Sie die Drähte für die restlichen Komponenten anlöten.
Befestigen Sie das GPS-Schild an der Oberseite und stellen Sie sicher, dass die Pins mit denen auf dem Arduino (Mega oder Uno) übereinstimmen. Beachten Sie, dass bei Verwendung des Mega noch viel Arduino freiliegt, nachdem Sie das Schild angebracht haben.
Legen Sie ein elektrisches Klebeband auf die Unterseite des Arduino, das alle freiliegenden Stiftlöte bedeckt, um einen Kurzschluss zu vermeiden, während das Arduino auf dem PDB ruht.
Schritt 5: Komponenten verdrahten und Batterie platzieren (Uno)
Das obige Schema ist fast identisch mit dem von Joop Brooking, da wir unser Design stark an seinem orientierten.
*Beachten Sie, dass dieses Schema von einem ordnungsgemäß montierten GPS-Schild ausgeht und das GPS daher in diesem Schema nicht erscheint.
Der obige Schaltplan wurde mit der Fritzing-Software erstellt, die insbesondere für Schaltpläne mit Arduino dringend empfohlen wird. Wir haben hauptsächlich generische Teile verwendet, die flexibel bearbeitet werden können, da unsere Teile in der Regel nicht in der mitgelieferten Teilebibliothek von Fritzing enthalten waren.
-Stellen Sie sicher, dass der Schalter am GPS-Schild auf "Direct Write" gestellt ist.
-Verdrahten Sie nun alle Komponenten gemäß obigem Schema (außer Batterie!) (Wichtiger Hinweis zu GPS-Datenkabeln unten).
-Beachten Sie, dass Sie die ESCs bereits mit den Motoren und PDB verdrahtet haben, sodass dieser Teil des Schaltplans fertig ist.
-Beachten Sie außerdem, dass GPS-Daten (gelbe Drähte) aus den Pins 0 und 1 des Arduino kommen (nicht die separaten Tx- und Rx-Pins des GPS). Das liegt daran, dass die GPS-Ausgabe auf "Direct Write" (siehe unten) direkt an die seriellen Hardware-Ports des Uno (Pins 0 und 1) konfiguriert ist. Dies ist am deutlichsten auf dem zweiten Bild oben der kompletten Verkabelung zu sehen.
-Beachten Sie beim Verdrahten des RC-Empfängers das Bild oben. Beachten Sie, dass die Datenleitungen in die oberste Reihe gehen, während sich Vin und Gnd in der zweiten bzw. dritten Reihe (und in der zweit- bis weitesten Spalte von Pins) befinden.
-Um die Verkabelung für den HC-12-Transceiver, RC-Empfänger und 5Vout von der PDB zu Vin des Arduino zu machen, haben wir stapelbare Header verwendet, während wir für den Gyro die Drähte direkt an die Platine gelötet und mit Schrumpfschläuchen um die Lot. Sie können sich für jede der Komponenten entscheiden, es wird jedoch empfohlen, direkt an den Kreisel zu löten, da dies Platz spart und das kleine Teil einfacher zu montieren ist. Die Verwendung von Headern ist im Vorfeld etwas aufwendiger, bietet aber mehr Flexibilität. Das direkte Löten von Drähten ist langfristig eine sicherere Verbindung, bedeutet jedoch, dass die Verwendung dieser Komponente in einem anderen Projekt schwieriger ist. Beachten Sie, dass Sie, wenn Sie Header auf dem GPS-Schild verwendet haben, immer noch eine angemessene Flexibilität haben, unabhängig davon, was Sie tun. Stellen Sie vor allem sicher, dass die GPS-Datenkabel in den Pins 0 und 1 am GPS leicht zu entfernen und zu ersetzen sind.
Am Ende unseres Projekts konnten wir keine gute Methode entwickeln, um alle unsere Komponenten am Rahmen zu befestigen. Aufgrund des Zeitdrucks unserer Klasse drehten sich unsere Lösungen im Allgemeinen um doppelseitiges Schaumstoffband, Klebeband, Isolierband und Kabelbinder. Wir empfehlen Ihnen dringend, mehr Zeit mit der Gestaltung stabiler Montagestrukturen zu verbringen, wenn Sie dies als längerfristiges Projekt planen. Wenn Sie jedoch nur einen schnellen Prototyp erstellen möchten, können Sie unserem Prozess folgen. Achten Sie jedoch darauf, dass der Kreisel sicher montiert ist. Nur so weiß der Arduino, was der Quadrocopter tut. Wenn er sich also im Flug bewegt, haben Sie Probleme.
Wenn alles verkabelt und an seinem Platz ist, nehmen Sie Ihren LiPo-Akku und schieben Sie ihn zwischen die obere und untere Platte des Rahmens. Stellen Sie sicher, dass der Anschluss in die gleiche Richtung zeigt wie der Anschluss der PDB und dass sie tatsächlich verbunden werden können. Wir haben Klebeband verwendet, um den Akku an Ort und Stelle zu halten (Klettband funktioniert auch, ist aber nerviger als Klebeband). Klebeband funktioniert gut, weil man den Akku leicht austauschen oder zum Laden entfernen kann. Sie müssen jedoch darauf achten, dass Sie den Akku DICHT festkleben, da sich der Akku während des Flugs bewegen könnte, was das Gleichgewicht der Drohne ernsthaft stören könnte. Verbinden Sie die Batterie noch NICHT mit dem PDB.
Schritt 6: Komponenten verdrahten und Batterie platzieren (Mega)
Der obige Schaltplan wurde mit der Fritzing-Software erstellt, die insbesondere für Schaltpläne mit Arduino dringend empfohlen wird. Wir haben hauptsächlich generische Teile verwendet, da unsere Teile im Allgemeinen nicht in der mitgelieferten Teilebibliothek von Fritzing enthalten waren.
-Beachten Sie, dass dieses Schema von einem ordnungsgemäß montierten GPS-Schild ausgeht und daher das GPS in diesem Schema nicht erscheint.
-Stellen Sie den Schalter Ihres Mega 2560 auf "Soft Serial".
-Verdrahten Sie nun alle Komponenten gemäß obigem Schema (außer der Batterie!)
-Beachten Sie, dass Sie die ESCs bereits mit den Motoren und PDB verdrahtet haben, sodass dieser Teil des Schaltplans fertig ist.
-Die Überbrückungskabel von Pin 8 zu Rx und Pin 7 zu Tx sind da, weil (im Gegensatz zum Uno, für den diese Abschirmung gemacht wurde) dem Mega ein universeller asynchroner Empfänger-Sender (UART) auf den Pins 7 und 8 fehlt und somit Wir müssen Hardware-Serial-Pins verwenden. Es gibt noch weitere Gründe, warum wir serielle Hardware-Pins benötigen, die später erörtert werden.
-Beachten Sie beim Verdrahten des RC-Empfängers das Bild oben. Beachten Sie, dass die Datenleitungen in die oberste Reihe gehen, während sich Vin und Gnd in der zweiten bzw. dritten Reihe (und in der zweit- bis weitesten Spalte von Pins) befinden.
- Um die Verkabelung für den HC-12-Transceiver, RC-Empfänger und 5Vout von der PDB zu Vin des Arduino zu machen, haben wir stapelbare Header verwendet, während wir für den Gyro die Drähte direkt gelötet und mit Schrumpfschläuchen um das Lötmittel herum verwendet haben. Sie können für jede der Komponenten eine der beiden Optionen auswählen. Die Verwendung von Headern ist im Vorfeld etwas aufwendiger, bietet aber mehr Flexibilität. Das direkte Löten von Drähten ist langfristig eine sicherere Verbindung, bedeutet jedoch, dass die Verwendung dieser Komponente in einem anderen Projekt schwieriger ist. Beachten Sie, dass Sie, wenn Sie Header auf dem GPS-Schild verwendet haben, immer noch eine angemessene Flexibilität haben, unabhängig davon, was Sie tun.
Am Ende unseres Projekts konnten wir keine gute Methode entwickeln, um alle unsere Komponenten am Rahmen zu befestigen. Aufgrund des Zeitdrucks unserer Klasse drehten sich unsere Lösungen im Allgemeinen um doppelseitiges Schaumstoffband, Klebeband, Isolierband und Kabelbinder. Wir empfehlen Ihnen dringend, mehr Zeit mit der Gestaltung stabiler Montagestrukturen zu verbringen, wenn Sie dies als längerfristiges Projekt planen. Wenn Sie jedoch nur einen schnellen Prototyp erstellen möchten, können Sie unserem Prozess folgen. Achten Sie jedoch darauf, dass der Kreisel sicher montiert ist. Nur so weiß der Arduino, was der Quadrocopter tut. Wenn er sich also im Flug bewegt, haben Sie Probleme.
Wenn alles verkabelt und an seinem Platz ist, nehmen Sie Ihren LiPo-Akku und schieben Sie ihn zwischen die obere und untere Platte des Rahmens. Stellen Sie sicher, dass der Anschluss in die gleiche Richtung zeigt wie der Anschluss der PDB und dass sie tatsächlich verbunden werden können. Wir haben Klebeband verwendet, um den Akku an Ort und Stelle zu halten (Klettband funktioniert auch, ist aber nerviger als Klebeband). Klebeband funktioniert gut, weil man den Akku leicht austauschen oder zum Laden entfernen kann. Sie müssen jedoch darauf achten, dass Sie den Akku DICHT festkleben, da sich der Akku während des Fluges bewegen könnte, was das Gleichgewicht der Drohne ernsthaft stören könnte. Verbinden Sie die Batterie noch NICHT mit dem PDB.
Schritt 7: Empfänger binden
Nehmen Sie den RC-Empfänger und schließen Sie ihn vorübergehend an eine 5V-Stromversorgung an (entweder durch Einschalten des Arduino mit USB- oder 9V-Strom oder mit einem separaten Netzteil. Verbinden Sie den LiPo noch nicht mit dem Arduino). Nehmen Sie den mit dem RC-Empfänger gelieferten Binding-Pin und setzen Sie ihn auf die BIND-Pins des Empfängers. Schließen Sie alternativ die oberen und unteren Stifte in der BIND-Spalte kurz, wie auf dem Foto oben gezeigt. Am Empfänger sollte ein rotes Licht schnell blinken. Nehmen Sie nun den Controller und drücken Sie im ausgeschalteten Zustand die Taste auf der Rückseite, wie oben gezeigt. Schalten Sie bei gedrückter Taste den Controller ein. Jetzt sollte das Blinklicht am Empfänger durchgehend leuchten. Der Empfänger ist gebunden. Entfernen Sie das Bindungskabel. Wenn Sie ein anderes Netzteil verwendet haben, schließen Sie den Empfänger wieder an die 5V des Arduino an.
Schritt 8: (Optional) Verdrahten Sie das FPV-Kamerasystem und montieren Sie es
Löten Sie zuerst den XT-60-Adapter mit den Strom- und Massekabeln am Monitor zusammen. Diese können von Monitor zu Monitor variieren, aber die Stromversorgung ist fast immer rot, die Masse fast immer schwarz. Stecken Sie nun den Adapter mit angelöteten Drähten in Ihren 1000mAh LiPo mit dem XT-60 Stecker. Der Monitor sollte sich mit (normalerweise) blauem Hintergrund einschalten. Das ist der schwierigste Schritt!
Schrauben Sie nun die Antennen an Ihrem Empfänger und Sender an.
Schließen Sie Ihren kleinen 500mAh Lipo an den Sender an. Der ganz rechte Pin (rechts unter der Antenne) ist Masse (V_) der Batterie, der nächste Pin links ist V+. Sie kommen die drei Drähte, die zur Kamera gehen. Ihre Kamera sollte mit einem Drei-in-Eins-Stecker geliefert werden, der in den Sender passt. Stellen Sie sicher, dass Sie das gelbe Datenkabel in der Mitte haben. Wenn Sie die von uns verlinkten Batterien mit dafür vorgesehenen Steckern verwendet haben, sollte dieser Schritt kein Löten erfordern.
Schließlich verdrahten Sie Ihren anderen 1000-mAh-Akku mit dem DC-Ausgangskabel, das mit Ihrem Empfänger geliefert wurde, und stecken Sie dieses wiederum in den DC-Eingang Ihres Empfängers. Schließen Sie schließlich das schwarze Ende des AVin-Kabels, das mit Ihrem Receiver geliefert wurde, an den AVin-Anschluss Ihres Receivers und das andere (gelbe, weibliche) Ende an das gelbe männliche Ende des AVin-Kabels Ihres Monitors an.
An dieser Stelle sollten Sie eine Kameraansicht auf dem Monitor sehen können. Wenn dies nicht möglich ist, stellen Sie sicher, dass sowohl der Empfänger als auch der Sender eingeschaltet sind (Sie sollten Zahlen auf ihren kleinen Bildschirmen sehen) und dass sie sich auf demselben Kanal befinden (wir haben Kanal 11 für beide verwendet und hatten guten Erfolg). Außerdem müssen Sie möglicherweise den Kanal auf dem Monitor ändern.
Montieren Sie die Komponenten am Rahmen.
Sobald das Setup funktioniert, ziehen Sie die Batterien ab, bis Sie flugbereit sind.
Schritt 9: GPS-Datenempfang einrichten
Verdrahten Sie Ihren zweiten Arduino mit Ihrem zweiten HC-12-Transceiver wie im obigen Schema gezeigt. Beachten Sie, dass das Setup nur wie angezeigt mit Strom versorgt wird, wenn es an einen Computer angeschlossen ist. Laden Sie den mitgelieferten Transceiver-Code herunter, öffnen Sie Ihren seriellen Monitor auf 9600 Baud.
Wenn Sie das einfachere Setup verwenden, sollten Sie beginnen, GPS-Sätze zu empfangen, wenn Ihr GPS-Schild mit Strom versorgt und ordnungsgemäß mit dem anderen HC-12-Transceiver verkabelt ist (und wenn der Schalter am Schild auf "Direct Write" steht).
Stellen Sie beim Mega sicher, dass der Schalter auf "Soft Serial" steht.
Schritt 10: Setup-Code ausführen (Uno)
Dieser Code ist identisch mit dem, den Joop Brokking in seinem Arduino-Quadcopter-Tutorial verwendet, und er verdient alle Anerkennung für sein Schreiben.
Verwenden Sie bei abgeklemmter Batterie das USB-Kabel, um Ihren Computer mit dem Arduino zu verbinden, und laden Sie den beigefügten Setup-Code hoch. Schalten Sie Ihren RC-Sender ein. Öffnen Sie Ihren seriellen Monitor auf 57600 Baud und folgen Sie den Anweisungen.
Häufige Fehler:
Wenn der Code nicht hochgeladen werden kann, stellen Sie sicher, dass die Pins 0 und 1 am UNO / GPS-Schild abgezogen sind. Dies ist der gleiche Hardware-Port, den das Gerät verwendet, um mit dem Computer zu kommunizieren, daher muss er frei sein.
Wenn der Code eine Reihe von Schritten auf einmal überspringt, überprüfen Sie, ob Ihr GPS-Schalter auf "Direct Write" steht.
Wenn kein Empfänger erkannt wird, vergewissern Sie sich, dass an Ihrem Empfänger ein durchgehendes (aber schwaches) rotes Licht leuchtet, wenn der Sender eingeschaltet ist. Wenn ja, überprüfen Sie die Verkabelung.
Wenn kein Kreisel erkannt wird, kann dies daran liegen, dass der Kreisel beschädigt ist oder Sie einen anderen Kreiseltyp haben als der, auf den der Code schreiben soll.
Schritt 11: Setup-Code ausführen (Mega)
Dieser Code ist identisch mit dem, den Joop Brokking in seinem Arduino-Quadcopter-Tutorial verwendet, und er verdient alle Anerkennung für sein Schreiben. Wir haben die Verkabelung für den Mega einfach so angepasst, dass die Empfängereingänge den richtigen Pin Change Interrupt-Pins entsprachen.
Verwenden Sie bei abgeklemmter Batterie das USB-Kabel, um Ihren Computer mit dem Arduino zu verbinden, und laden Sie den beigefügten Setup-Code hoch. Öffnen Sie Ihren seriellen Monitor auf 57600 Baud und folgen Sie den Anweisungen.
Schritt 12: Kalibrieren Sie die ESCs (Uno)
Auch dieser Code ist identisch mit dem Code von Joop Brokking. Alle Modifikationen wurden vorgenommen, um GPS und Arduino zu integrieren und sind später in der Konstruktionsbeschreibung des fortgeschritteneren Quadcopters zu finden.
Laden Sie den beigefügten ESC-Kalibrierungscode hoch. Schreiben Sie auf dem seriellen Monitor den Buchstaben 'r' und drücken Sie die Eingabetaste. Sie sollten beginnen, Echtzeit-RC-Controller-Werte aufgelistet zu sehen. Stellen Sie sicher, dass sie bei den Extremwerten von Gas, Rollen, Nicken und Gieren zwischen 1000 und 2000 liegen. Schreiben Sie dann 'a' und drücken Sie die Eingabetaste. Lassen Sie die Kreiselkalibrierung los und überprüfen Sie dann, ob der Kreisel die Bewegung des Quads registriert. Schließen Sie nun das Arduino vom Computer an, drücken Sie den Gashebel am Controller ganz nach oben und schließen Sie den Akku an. Die ESCs sollten unterschiedliche Pieptöne durchlaufen (dies kann jedoch je nach ESC und seiner Firmware unterschiedlich sein). Drücken Sie den Gashebel ganz nach unten. Die ESCs sollten niedrigere Pieptöne ausgeben und dann verstummen. Trennen Sie den Akku.
Optional können Sie an dieser Stelle die Konen, die mit Ihren Motormontage-Zubehörpaketen geliefert wurden, verwenden, um Propeller fest anzuschrauben. Geben Sie dann die Zahlen 1 - 4 auf dem seriellen Monitor ein, um die Motoren 1 - 4 jeweils mit der niedrigsten Leistung zu starten. Das Programm registriert das Zittern aufgrund des Ungleichgewichts der Requisiten. Sie können versuchen, dies zu beheben, indem Sie kleine Mengen Tesafilm auf die eine oder andere Seite der Requisiten kleben. Wir stellten fest, dass wir ohne diesen Schritt einen guten Flug erzielen konnten, aber vielleicht etwas weniger effizient und lauter, als wenn wir die Propeller ausbalanciert hätten.
Schritt 13: ESCs kalibrieren (Mega)
Dieser Code ist dem von Brokking sehr ähnlich, jedoch haben wir ihn (und die entsprechende Verdrahtung) an die Arbeit mit dem Mega angepasst.
Laden Sie den beigefügten ESC-Kalibrierungscode hoch. Schreiben Sie auf dem seriellen Monitor den Buchstaben 'r' und drücken Sie die Eingabetaste. Sie sollten beginnen, Echtzeit-RC-Controller-Werte aufgelistet zu sehen. Stellen Sie sicher, dass sie bei den Extremwerten von Gas, Rollen, Nicken und Gieren zwischen 1000 und 2000 liegen.
Schreiben Sie dann 'a' und drücken Sie die Eingabetaste. Lassen Sie die Kreiselkalibrierung los und überprüfen Sie dann, ob der Kreisel die Bewegung des Quads registriert.
Schließen Sie nun das Arduino vom Computer an, drücken Sie den Gashebel am Controller ganz nach oben und schließen Sie den Akku an. Die ESCs sollten drei tiefe Pieptöne ausgeben, gefolgt von einem hohen Piepton (dies kann jedoch je nach Regler und Firmware unterschiedlich sein). Drücken Sie den Gashebel ganz nach unten. Trennen Sie den Akku.
Die Änderungen, die wir an diesem Code vorgenommen haben, bestanden darin, von der Verwendung von PORTD für die ESC-Pins auf die Verwendung von PORTA umzuschalten und dann die an diese Ports geschriebenen Bytes zu ändern, damit wir die richtigen Pins aktivieren, wie im Schaltplan gezeigt. Diese Änderung ist darauf zurückzuführen, dass sich die PORTD-Registerpins nicht an der gleichen Stelle auf dem Mega befinden wie auf dem Uno. Wir waren nicht in der Lage, diesen Code vollständig zu testen, da wir mit einem alten Mega-Abweichler arbeiteten, den der Laden unserer Schule hatte. Dies bedeutete, dass aus irgendeinem Grund nicht alle PORTA-Registerpins die ESCs richtig aktivieren konnten. Wir hatten auch Probleme mit der Verwendung des oder gleich Operators (|=) in einigen unserer Testcodes. Wir sind uns nicht sicher, warum dies beim Schreiben der Bytes zum Einstellen der ESC-Pin-Spannungen Probleme verursachte, daher haben wir Brookings Code so wenig wie möglich modifiziert. Wir denken, dass dieser Code fast funktionsfähig ist, aber Ihre Laufleistung kann variieren.
Schritt 14: Holen Sie sich in die Luft !! (Uno)
Und wieder ist dieser dritte geniale Code das Werk von Joop Brokking. Änderungen an all diesen drei Codestücken sind nur bei unserer versuchten Integration der GPS-Daten in das Arduino vorhanden.
Wenn Ihre Propeller fest am Rahmen montiert sind und alle Komponenten festgeschnallt, mit Klebeband oder anderweitig befestigt sind, laden Sie den Flugcontroller-Code auf Ihren Arduino und ziehen Sie dann den Arduino von Ihrem Computer ab.
Nehmen Sie Ihren Quadcopter mit nach draußen, stecken Sie den Akku ein und schalten Sie Ihren Sender ein. Bringen Sie optional einen Laptop mit, der an Ihre GPS-Empfangseinrichtung sowie an Ihre Videoempfangseinrichtung und Ihren Monitor angeschlossen ist. Laden Sie den Transceiver-Code auf Ihr terrestrisches Arduino, öffnen Sie Ihren seriellen Monitor auf 9600 Baud und beobachten Sie, wie die GPS-Daten einlaufen.
Jetzt sind Sie bereit zu fliegen. Drücken Sie Gas nach unten und gieren Sie nach links, um den Quadcopter zu aktivieren, und bringen Sie dann das Gas vorsichtig zum Schweben. Beginnen Sie damit, tief über den Boden und über weiche Oberflächen wie Gras zu fliegen, bis Sie sich wohl fühlen.
Sehen Sie sich das eingebettete Video an, in dem wir aufgeregt die Drohne fliegen, als wir zum ersten Mal die Drohne und das GPS gleichzeitig zum Laufen bringen konnten.
Schritt 15: Holen Sie sich in die Luft !! (Mega)
Aufgrund unseres Hängenbleibens mit dem ESC-Kalibrierungscode für das Mega konnten wir keinen Flugreglercode für dieses Board erstellen. Wenn Sie an diesem Punkt angelangt sind, dann stelle ich mir vor, dass Sie zumindest am ESC-Kalibrierungscode herumgefummelt haben, damit er für den Mega funktioniert. Daher müssen Sie wahrscheinlich ähnliche Änderungen am Flugreglercode wie im letzten Schritt vornehmen. Wenn unser ESC-Kalibrierungscode für den Mega ohne weitere Änderungen auf magische Weise funktioniert, müssen Sie nur wenige Dinge am Lagercode tun, damit er für diesen Schritt funktioniert. Sie müssen zuerst alle Instanzen von PORTD durch PORTA durchgehen und ersetzen. Vergessen Sie auch nicht, DDRD in DDRA zu ändern. Dann müssen Sie alle Bytes ändern, die in das PORTA-Register geschrieben werden, damit sie die richtigen Pins aktivieren. Verwenden Sie dazu das Byte B11000011 zum Setzen der Pins auf High und B00111100 zum Setzen der Pins auf Low. Viel Glück und lassen Sie es uns wissen, wenn Sie erfolgreich mit einem Mega fliegen!
Schritt 16: Wie wir mit dem Mega-Design dahin gekommen sind, wo wir derzeit sind
Dieses Projekt war für uns als Arduino- und Elektronik-Hobby-Anfänger eine immense Lernerfahrung. Daher dachten wir, wir würden die Saga von allem einschließen, das uns begegnet ist, als wir versuchten, den Code von Joop Brokking mit GPS zu aktivieren. Da der Code von Brokking so gründlich und viel komplizierter ist als alles, was wir geschrieben haben, haben wir uns entschieden, ihn so wenig wie möglich zu ändern. Wir haben versucht, das GPS-Schild dazu zu bringen, Daten an das Arduino zu senden, und dann das Arduino diese Informationen über den HC12-Transceiver an uns senden lassen, ohne den Flugcode oder die Verkabelung in irgendeiner Weise zu ändern. Nachdem wir uns die Schaltpläne und die Verkabelung unseres Arduino Uno angesehen hatten, um herauszufinden, welche Pins verfügbar waren, änderten wir den GPS-Transceiver-Code, den wir verwendeten, um das vorhandene Design zu umgehen. Dann haben wir es getestet, um sicherzustellen, dass alles funktioniert. Zu diesem Zeitpunkt schienen die Dinge vielversprechend.
Der nächste Schritt bestand darin, den Code, den wir gerade modifiziert und getestet hatten, mit der Flugsteuerung von Brokking zu integrieren. Das war nicht allzu schwierig, aber wir sind schnell auf einen Fehler gestoßen. Die Flugsteuerung von Brokking basiert auf den Bibliotheken Arduino Wire und EEPROM, während unser GPS-Code sowohl die serielle Softwarebibliothek als auch die Arduino GPS-Bibliothek verwendet. Da die Wire Library auf die Software Serial Library verweist, ist ein Fehler aufgetreten, bei dem der Code nicht kompiliert werden konnte, weil es "mehrere Definitionen für _vector 3_" gab, was auch immer das bedeutet. Nachdem wir bei Google nachgesehen und in den Bibliotheken herumgestöbert hatten, stellten wir schließlich fest, dass dieser Bibliothekskonflikt es unmöglich machte, diese Codeteile zusammen zu verwenden. Also machten wir uns auf die Suche nach Alternativen.
Was wir herausgefunden haben ist, dass die einzige Kombination von Bibliotheken, die keinen Fehler verursachte, darin bestand, die Standard-GPS-Bibliothek auf neoGPS umzustellen und dann AltSoftSerial anstelle von Software Serial zu verwenden. Diese Kombination funktionierte, AltSoftSerial kann jedoch nur mit bestimmten Pins arbeiten, die in unserem Design nicht verfügbar waren. Dies hat uns dazu gebracht, den Mega zu verwenden. Arduino Megas haben mehrere serielle Hardware-Ports, was bedeutete, dass wir diesen Bibliothekskonflikt umgehen konnten, indem wir überhaupt keine seriellen Software-Ports öffnen mussten.
Als wir jedoch anfingen, den Mega zu verwenden, stellten wir schnell fest, dass die Pin-Konfiguration anders war. Pins auf dem Uno, die Interrupts haben, sind auf dem Mega anders. Ebenso befanden sich die SDA- und SCL-Pins an verschiedenen Stellen. Nachdem wir die Pin-Diagramme für jeden Arduino-Typ studiert und die im Code aufgerufenen Register referenziert hatten, konnten wir den Flug-Setup-Code mit nur minimaler Neuverdrahtung und ohne Softwareänderungen ausführen.
Der ESC-Kalibrierungscode ist der Punkt, an dem wir auf Probleme gestoßen sind. Wir haben dies zuvor kurz angesprochen, aber im Grunde verwendet der Code Pin-Register, um die Pins zu regulieren, die zur Steuerung der ESCs verwendet werden. Dadurch ist der Code schwerer zu lesen als mit der Standardfunktion pinMode(); Allerdings wird der Code dadurch schneller ausgeführt und die Pins werden gleichzeitig aktiviert. Dies ist wichtig, da der Flugcode in einer sorgfältig getimten Schleife ausgeführt wird. Aufgrund der Pin-Unterschiede zwischen den Arduinos haben wir uns entschieden, das Portregister A auf dem Mega zu verwenden. In unseren Tests gaben uns jedoch nicht alle Pins die gleiche Ausgangsspannung, wenn wir High laufen sollten. Einige der Pins hatten einen Ausgang von etwa 4,90 V und andere gaben uns näher an 4,95 V. Anscheinend sind die ESCs, die wir haben, etwas pingelig und würden daher nur dann richtig funktionieren, wenn wir die Pins mit der höheren Spannung verwenden. Dies zwang uns dann, die Bytes, die wir in Register A geschrieben hatten, so zu ändern, dass wir mit den richtigen Pins sprachen. Weitere Informationen dazu finden Sie im Abschnitt ESC-Kalibrierung.
Dies ist ungefähr so weit, wie wir in diesem Teil des Projekts gekommen sind. Als wir diesen modifizierten ESC-Kalibrierungscode testen wollten, wurde etwas kurzgeschlossen und wir verloren die Kommunikation mit unserem Arduino. Wir waren darüber sehr verwirrt, da wir nichts an der Verkabelung geändert hatten. Dies zwang uns, einen Schritt zurückzutreten und zu erkennen, dass wir nach wochenlangen Versuchen, unsere inkompatiblen Teile zusammenzufügen, nur ein paar Tage hatten, um eine fliegende Drohne zu bekommen. Aus diesem Grund haben wir zurückverfolgt und das einfachere Projekt mit dem Uno erstellt. Wir sind jedoch immer noch der Meinung, dass unser Ansatz mit etwas mehr Zeit kurz davor ist, mit dem Mega zu arbeiten.
Unser Ziel ist es, dass diese Erläuterung der aufgetretenen Hürden für Sie hilfreich ist, wenn Sie daran arbeiten, den Code von Brokking zu ändern. Wir hatten auch nie die Gelegenheit, autonome Steuerungsfunktionen basierend auf dem GPS zu codieren. Dies ist etwas, das Sie herausfinden müssen, nachdem Sie eine funktionierende Drohne mit einem Mega erstellt haben. Aus einigen vorläufigen Google-Recherchen geht jedoch hervor, dass die Implementierung eines Kalman-Filters die stabilste und genaueste Methode zur Positionsbestimmung im Flug sein könnte. Wir empfehlen Ihnen, ein wenig darüber zu recherchieren, wie dieser Algorithmus die Zustandsschätzungen optimiert. Ansonsten viel Glück und lass es uns wissen, wenn du weiter kommst als wir konnten!
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Verbinden eines GPS-Moduls mit dem Raspberry Pi: Dashcam Teil 2: 3 Schritte
Anbindung eines GPS-Moduls an den Raspberry Pi: Dashcam Teil 2: Dies ist Teil 2 des Dashcam-Projekts und in diesem Beitrag erfahren Sie, wie Sie ein GPS-Modul an den Raspberry Pi anschließen. Wir verwenden dann die GPS-Daten und fügen sie dem Video als Textüberlagerung hinzu. Bitte lesen Sie Teil 1 über den untenstehenden Link, bevor Sie
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E