Inhaltsverzeichnis:

Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte - Gunook
Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte - Gunook

Video: Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte - Gunook

Video: Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte - Gunook
Video: RC Benchy zieht dich im Schlauchboot | DIY 2024, November
Anonim
Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte
Die Anleitung, die ich mir zum Bau einer Arduino-Drohne gewünscht hätte

Dieses Dokument ist eine Art „Anleitung“-Slash-Dokumentation, die den Prozess durchläuft, in dem ich die Konzepte verstanden habe, um mein Ziel zu erreichen, einen einfachen Quadrocopter zu bauen, den ich von meinem Mobiltelefon aus steuern kann.

Um dieses Projekt durchzuführen, wollte ich eine Vorstellung davon bekommen, was eine Drohne eigentlich ist, in meinem Fall ein Quadcopter, also habe ich angefangen, zu recherchieren. Ich habe mir viele YouTube-Videos angesehen, eine Reihe von Artikeln und Insructible-Seiten gelesen und das habe ich bekommen.

Grundsätzlich können Sie eine Drohne in zwei Teile aufteilen. Ich nannte es „Physical“und „Controller“. Das Physische ist im Wesentlichen alles, was mit der Mechanik zu tun hat, die die Drohne fliegen lässt. Dies sind Dinge wie der Motor, der Rahmen, der Akku, Propeller und alles andere, was der Drohne physisch die Fähigkeit verleiht zu fliegen.

Der Controller ist im Wesentlichen der Flugcontroller. Was steuert das Physische, damit die Drohne als ganze Einheit fliegen kann, ohne zu fallen. Im Wesentlichen der Mikrocontroller, die darauf befindliche Software und die Sensoren, die ihm helfen, seine Peilungen zu triangulieren. Um eine Drohne zu haben, brauchte ich also insgesamt einen Controller und eine Reihe physischer Teile, damit der Controller "steuern" kann.

Lieferungen

Projektbudget: 250 $

Zeitrahmen: 2 Wochen

Dinge zu kaufen:

  • Physischer Rahmen $20
  • Klingen $0 (Kommt mit Rahmen)
  • Akkupack $25
  • ESC (Elektronische Geschwindigkeitsregler) $0 (Kommt mit Motoren)
  • Motoren $70

Flugkontrolleur

  • Arduino Nano $20
  • Arduino USB-Kabel 2
  • Bluetooth-Modul (HC-05) $8
  • 3mm LED und 330 Ohm Widerstände und Drähte $13
  • GY-87 (Beschleunigungsmesser, Gyroskop) $5
  • Prototypenplatine $10
  • Männliche und weibliche Header $5

Sonstiges

  • Lötkit $10
  • Multimeter $20

Ich wollte dieses Projekt als Ingenieur gerne bauen, also kaufte ich einige andere Sachen, die ich nicht musste.

Gesamt: $208

Schritt 1: Meine ersten Erfahrungen

Nachdem ich alle meine Komponenten gekauft hatte, habe ich alles zusammengebaut und dann versucht, die Drohne mit Multiwii zu starten (die Go-to-Software, die viele der DIY-Drohnen-Community verwenden), aber ich habe schnell gemerkt, dass ich nicht ganz verstanden habe, was ich tat, weil es viele Fehler gab und ich keine Ahnung hatte, wie ich sie beheben sollte.

Danach beschloss ich, die Drohne auseinander zu nehmen und jede Komponente Stück für Stück zu verstehen und so umzubauen, dass ich alles, was vor sich ging, vollständig verstehen würde.

In den folgenden Abschnitten gehe ich durch den Prozess des Zusammensetzens des Puzzles. Verschaffen wir uns vorher einen kurzen Überblick.

Physisch

Für das Physische sollten wir haben: den Rahmen, die Propeller, die Batterie und die Regler. Diese wären ziemlich einfach zusammenzufügen. Um diese Teile zu verstehen und welche Sie bekommen sollten, besuchen Sie diesen Link. Er erklärt, was Sie über den Kauf jedes der von mir aufgelisteten Teile wissen müssen. Sehen Sie sich auch dieses Youtube-Video an. Es wird Ihnen helfen, wenn Sie die Teile zusammensetzen.

Schritt 2: Tipps zum Zusammensetzen und Debuggen der physischen Teile

Tipps zum Zusammensetzen und Debuggen der physischen Teile
Tipps zum Zusammensetzen und Debuggen der physischen Teile

Propeller und Motoren

  • Um zu überprüfen, ob sich Ihre Propeller in der richtigen Ausrichtung befinden (umgedreht oder nicht), sollten Sie eine Brise unter den Propellern und nicht darüber spüren, wenn Sie sie in die von den Motoren angezeigte Richtung drehen (die meisten Motoren haben Pfeile, die zeigen, wie sie sich drehen sollen)..
  • Die Schrauben an gegenüberliegenden Propellern sollten die gleiche Farbe haben.
  • Die Farbe benachbarter Propeller sollte gleich sein.
  • Stellen Sie außerdem sicher, dass Sie die Motoren so angeordnet haben, dass sie sich wie im obigen Bild drehen.
  • Wenn Sie versuchen, die Richtung eines Motors umzukehren, tauschen Sie einfach die Drähte an den gegenüberliegenden Enden aus. Dadurch wird die Drehrichtung des Motors umgekehrt.

Batterie und Stromversorgung

  • Wenn aus irgendeinem Grund die Dinge funken und Sie nicht herausfinden können, warum, liegt es höchstwahrscheinlich daran, dass Sie positive und negative Aspekte vertauscht haben.
  • Wenn Sie sich nicht sicher sind, wann Sie Ihre Batterien aufladen sollen, können Sie die Spannung mit einem Voltmeter überprüfen. Wenn es niedriger ist als die Spezifikationen auf dem Akku sagen, muss es aufgeladen werden. Sehen Sie sich diesen Link zum Aufladen Ihrer Batterien an.
  • Die meisten LIPO-Akkus werden nicht mit Ladegeräten geliefert. Sie kaufen sie separat.

Schritt 3: Der Arduino-Controller

Der Arduino-Controller
Der Arduino-Controller

Dies ist zweifellos der schwierigste Teil dieses ganzen Projekts. Es ist sehr einfach, Komponenten zu sprengen, und das Debuggen kann extrem frustrierend sein, wenn Sie nicht wissen, was Sie tun. Auch in diesem Projekt habe ich meine Drohne mit Bluetooth und einer App gesteuert, deren Bau ich Ihnen zeige. Dies machte das Projekt besonders schwieriger, da 99% der Tutorials da draußen Funksteuerungen verwenden (das ist keine Tatsache lol), aber keine Sorge, ich habe die Frustration für Sie durchgemacht.

Tipps, bevor Sie diese Reise antreten

  • Verwenden Sie ein Steckbrett, bevor Sie Ihr Gerät auf einer Platine abschließen. So können Sie ganz einfach Änderungen vornehmen.
  • Wenn Sie eine Komponente ausgiebig getestet haben und sie nicht funktioniert, funktioniert sie wahrscheinlich nicht!
  • Schauen Sie sich die Spannungen an, die ein Gerät verarbeiten kann, bevor Sie es anschließen!

    • Arduino kann 6 bis 20 V verarbeiten, aber versuchen Sie, es auf 12 V zu begrenzen, damit Sie es nicht sprengen. Sie können hier mehr über die Spezifikationen lesen.
    • Der HC-05 kann bis zu 5 V verarbeiten, aber einige Pins arbeiten mit 3,3 V, also achten Sie darauf. Wir werden später darüber sprechen.
    • Die IMU (GY-521, MPU-6050) arbeitet auch mit 5 V.
  • Wir werden RemoteXY verwenden, um unsere App zu erstellen. Wenn Sie es auf einem iOS-Gerät erstellen möchten, müssen Sie ein anderes Bluetooth-Modul verwenden (das HM-10). Mehr dazu erfahren Sie auf der RemoteXY-Website.

Hoffentlich hast du die Tipps gelesen. Lassen Sie uns nun jede Komponente, die Teil des Controllers sein wird, separat testen.

Schritt 4: Die MPU-6050

Die MPU-6050
Die MPU-6050

Dieses Gerät verfügt über ein Gyroskop und einen Beschleunigungsmesser, so dass es Ihnen im Wesentlichen die Beschleunigung in eine Richtung (X, Y, Z) und die Winkelbeschleunigung entlang dieser Richtungen anzeigt.

Um dies zu testen, können wir das Tutorial dazu verwenden. Wir können dieses Tutorial auf der Arduino-Website verwenden. Wenn es funktioniert, sollten Sie einen Strom von Beschleunigungsmesser- und Gyroskopwerten erhalten, die sich beim Neigen, Drehen und Beschleunigen des Setups ändern. Versuchen Sie auch, den Code zu optimieren und zu manipulieren, damit Sie wissen, was vor sich geht.

Schritt 5: Das HC-05 Bluetooth-Modul

Das HC-05 Bluetooth-Modul
Das HC-05 Bluetooth-Modul
Das HC-05 Bluetooth-Modul
Das HC-05 Bluetooth-Modul
Das HC-05 Bluetooth-Modul
Das HC-05 Bluetooth-Modul

Sie müssen diesen Teil nicht ausführen, aber es ist wichtig, in den AT-Modus (Einstellungsmodus) wechseln zu können, da Sie höchstwahrscheinlich eine der Einstellungen des Moduls ändern müssen. Dies war einer der frustrierendsten Teile dieses Projekts. Ich habe so viel recherchiert, um herauszufinden, wie ich mein Modul in den AT-Modus versetzen kann, weil mein Gerät nicht auf meine Befehle reagierte. Ich brauchte 2 Tage, um zu dem Schluss zu kommen, dass mein Modul defekt war. Ich habe noch einen bestellt und es hat funktioniert. Sehen Sie sich dieses Tutorial an, um in den AT-Modus zu gelangen.

Das HC-05 gibt es in verschiedenen Ausführungen, es gibt einige mit Knöpfen und einige ohne und alle möglichen Designvariablen. Eine Konstante ist jedoch, dass sie alle einen "Pin 34" haben. Sehen Sie sich dieses Tutorial an.

Dinge, die Sie wissen sollten

  • Um in den AT-Modus zu wechseln, halten Sie einfach 5V an Pin 34 des Bluetooth-Moduls, bevor Sie es an die Stromversorgung anschließen.
  • Schließen Sie einen Potenzialteiler an den RX-Pin des Moduls an, da es mit 3,3 V arbeitet. Sie können es immer noch bei 5 V verwenden, aber es könnte diesen Stift braten, wenn etwas schief geht.
  • Wenn Sie Pin 34 verwenden (anstelle der Schaltfläche oder auf andere Weise, die Sie online gefunden haben), setzt das Modul die Baudrate des Bluetooth auf 38400. Deshalb gibt es im Link zum obigen Tutorial eine Zeile im Code, die besagt:

BTSerial.begin(38400); // HC-05 Standardgeschwindigkeit im AT-Befehl mehr

Wenn das Modul immer noch nicht mit "OK" antwortet, versuchen Sie, die tx- und rx-Pins zu vertauschen. Es sollte sein:

Bluetooth => Arduino

RXD =>TX1

TDX =>RX0

Wenn das immer noch nicht funktioniert, ändern Sie die Pins im Code in andere Arduino-Pins. Testen Sie, wenn es nicht funktioniert, tauschen Sie die tx- und rx-Pins aus und testen Sie es erneut

SoftwareSerial BTSerial(10, 11); // RX | TX

Ändern Sie die Zeile oben. Sie können RX = 2, TX = 3 oder andere gültige Kombinationen ausprobieren. Sie können sich die Arduino-Pin-Nummern im Bild oben ansehen.

Schritt 6: Anschließen der Teile

Anschließen der Teile
Anschließen der Teile

Jetzt, da wir sicher sind, dass alles funktioniert, ist es an der Zeit, sie zusammenzustellen. Sie können die Teile wie in der Schaltung gezeigt anschließen. Das habe ich von Electronoobs. Er hat mir bei diesem Projekt wirklich geholfen. Sehen Sie sich hier seine Version des Projekts an. Wenn Sie diesem Tutorial folgen, müssen Sie sich nicht um die Empfängerverbindungen kümmern: input_Yaw, input_Pitch usw. All das wird mit Bluetooth abgewickelt. Verbinden Sie auch das Bluetooth wie im vorherigen Abschnitt. Meine Tx- und Rx-Pins haben mir ein bisschen Probleme bereitet, also habe ich Arduinos verwendet:

RX als 2 und TX als 3 anstelle der normalen Pins. Als nächstes werden wir eine einfache App schreiben, die wir weiter verbessern werden, bis wir das Endprodukt haben.

Schritt 7: Die Schönheit von RemoteXY

Die Schönheit von RemoteXY
Die Schönheit von RemoteXY

Ich dachte lange über eine einfache Möglichkeit nach, eine brauchbare Remote-App zu bauen, mit der ich die Drohne steuern kann. Die meisten Leute verwenden MIT App Inventor, aber die Benutzeroberfläche ist nicht so schön, wie ich es gerne hätte, und ich bin auch kein Fan von bildlicher Programmierung. Ich hätte es mit Android Studio entwerfen können, aber das wäre einfach zu viel Arbeit. Ich war sehr begeistert, als ich ein Tutorial mit RemoteXY gefunden habe. Hier ist der Link zur Website. Es ist extrem einfach zu bedienen und die Dokumentation ist sehr gut. Wir werden eine einfache Benutzeroberfläche für unsere Drohne erstellen. Sie können Ihre nach Ihren Wünschen anpassen. Stellen Sie einfach sicher, dass Sie wissen, was Sie tun. Folgen Sie den Anweisungen hier.

Sobald Sie das getan haben, werden wir den Code bearbeiten, damit wir den Gashebel an unserem Copter ändern können. Fügen Sie die Zeilen mit dem /****-Zeug, das Sie tun sollten, und warum ***/ zu Ihrem Code hinzu.

Wenn es nicht kompiliert wird, stellen Sie sicher, dass Sie die Bibliothek heruntergeladen haben. Öffnen Sie auch eine Beispielskizze und vergleichen Sie, was sie enthält, was Ihre nicht hat.

///////////////////////////////////////////////RemoteXY enthalten Bücherei // /////////////////////////////////////////////

// RemoteXY Verbindungsmodus auswählen und Bibliothek einschließen

#define REMOTEXY_MODE_HC05_SOFTSERIAL

#einschließen #einschließen #einschließen

// RemoteXY-Verbindungseinstellungen

#define REMOTEXY_SERIAL_RX 2 #define REMOTEXY_SERIAL_TX 3 #define REMOTEXY_SERIAL_SPEED 9600

// Propeller

Servo L_F_prop; Servo L_B_prop; Servo-R_F_prop; Servo-R_B_prop;

// RemoteXY konfigurieren

#pragma pack(push, 1) uint8_t RemoteXY_CONF = { 255, 3, 0, 0, 0, 61, 0, 8, 13, 0, 5, 0, 49, 15, 43, 43, 2, 26, 31, 4, 0, 12, 11, 8, 47, 2, 26, 129, 0, 11, 8, 11, 3, 17, 84, 104, 114, 111, 116, 116, 108, 101, 0, 129, 0, 66, 10, 7, 3, 17, 80, 105, 116, 99, 104, 0, 129, 0, 41, 34, 6, 3, 17, 82, 111, 108, 108, 0 }; // diese Struktur definiert alle Variablen Ihrer Steuerschnittstelle struct {

// Eingabevariable

int8_t Joystick_x; // -100..100 x-Koordinate Joystickposition int8_t Joystick_y; // -100..100 y-Koordinate Joystickposition int8_t ThrottleSlider; // 0..100 Schiebereglerposition

// andere Variable

uint8_t connect_flag; // =1 wenn Draht angeschlossen, sonst =0

} RemoteXY;

#Pragma-Paket (Pop)

/////////////////////////////////////////////

// ENDE RemoteXY einschließen // ////////////////////////////////////////// /

/************Füge diese Zeile hinzu, um den Drosselwert zu halten **************/

int input_THROTTLE;

Leere Einrichtung () {

RemoteXY_Init();

/*********** Befestigen Sie die Motoren an den Pins Ändern Sie die Werte, damit sie zu Ihren passen **************/

L_F_prop.attach(4); // linker vorderer Motor

L_B_prop.attach(5); // Motor hinten links R_F_prop.attach (7); // rechter vorderer Motor R_B_prop.attach (6); // Motor hinten rechts

/**************** Esc daran hindern, in den Programmiermodus zu gelangen********************/

L_F_prop.writeMikrosekunden(1000); L_B_prop.writeMikrosekunden(1000); R_F_prop.writeMikrosekunden(1000); R_B_prop.writeMikrosekunden(1000); Verzögerung (1000);

}

Leere Schleife () {

RemoteXY_Handler ();

/******* Ordnen Sie den Drosselwert, den Sie von der App erhalten, auf 1000 und 2000 zu, dies sind die Werte, mit denen die meisten ESCs arbeiten *********/

input_THROTTLE = map(RemoteXY. ThrottleSlider, 0, 100, 1000, 2000);

L_F_prop.writeMicroseconds(input_THROTTLE);

L_B_prop.writeMicroseconds(input_THROTTLE); R_F_prop.writeMicroseconds(input_THROTTLE); R_B_prop.writeMicroseconds(input_THROTTLE); }

Schritt 8: Testen

Wenn Sie alles richtig gemacht haben, sollten Sie Ihren Copter testen können, indem Sie den Gashebel nach oben und unten schieben. Stellen Sie sicher, dass Sie dies draußen tun. Lassen Sie die Propeller auch nicht eingeschaltet, da der Copter dadurch springt. Wir haben noch keinen Code geschrieben, um das auszugleichen, daher wäre es eine schlechte Idee, dies mit den Propellern zu testen! Ich habe das nur gemacht, weil lmao.

Die Demonstration soll nur zeigen, dass wir in der Lage sein sollten, den Gashebel über die App zu steuern. Sie werden feststellen, dass die Motoren stottern. Dies liegt daran, dass die ESCs nicht kalibriert wurden. Sehen Sie sich dazu die Anleitung auf dieser Github-Seite an. Lesen Sie die Anweisungen, öffnen Sie die Datei ESC-Calibration.ino und folgen Sie diesen Anweisungen. Wenn Sie verstehen möchten, was vor sich geht, sehen Sie sich dieses Tutorial von Electronoobs an.

Während Sie das Programm ausführen, stellen Sie sicher, dass Sie die Drohne mit Fäden festbinden, da sie mit Vollgas geht. Stellen Sie außerdem sicher, dass die Propeller nicht eingeschaltet sind. Ich habe meine nur angelassen, weil ich halb verrückt bin. LASSEN SIE IHRE PROPELLER NICHT AN !!! Diese Demonstration wird im zweiten Video gezeigt.

Schritt 9: Ich arbeite am Code. Wird das Instructable in wenigen Tagen beenden

Ich wollte nur hinzufügen, dass ich immer noch daran arbeite, wenn Sie dieses Tutorial verwenden und auf mich warten. Es sind nur andere Dinge in meinem Leben entstanden, an denen ich auch arbeite, aber keine Sorge, ich werde es bald veröffentlichen. Sagen wir spätestens bis 10.08.2019.

Update vom 10. August: Wollte dich nicht hängen lassen. Leider hatte ich in der letzten Woche keine Zeit, an dem Projekt zu arbeiten. War sehr beschäftigt mit anderen Dingen. Ich will dich nicht weiterführen. Hoffentlich werde ich das instructable in naher Zukunft abschließen. Wenn Sie Fragen haben oder Hilfe benötigen, können Sie unten einen Kommentar hinzufügen und ich werde mich bei Ihnen melden.

Empfohlen: