Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

In diesem Tutorial zeige ich, wie ich ein Arduino-basiertes RC-Flugzeug baue und es mit dem selbstgebauten Arduino-Sender (aus einem früheren Video) steuere.

Video ansehen oder schriftliche Anleitung unten lesen.

Überblick

Flugzeug komplett aus Styropor (EPS/XPS). Formen per Arduino CNC-Schaumschneidemaschine (DIY, früheres Video) – also 100 % DIY, da auch die CNC-Maschine Eigenbau ist.

Steuerung: 100 % DIY, Arduino + NRF24L01 Funkmodul.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Rechter Joystick: Querruder (Ailerons) & Höhenruder (Elevator). Linker Joystick: Seitenruder (Rudder) & Gas (Throttle).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Rechtes Potentiometer: Steuerempfindlichkeit / Servoweg reduzieren. Linkes Potentiometer: Seitenruder-Subtrim / Nullpunktkorrektur.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Hauptfeature: Es fliegt.

RC-Flugzeug designen – 3D-Modell

Design in Fusion 360. Orientierung an kommerziellen RC-Modellen & Faustformeln für Modellflug-Parameter.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Start: Spannweite = 80 cm. Rumpflänge ≈ 75 % Spannweite. Profil: CLARK Y (beliebt bei RC).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Profil von airfoiltools.com als SVG → Fusion 360 importieren. Größe anpassen: Flügeltiefe (Chord) ≈ 1/5 Spannweite.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Höhen- & Seitenleitwerk nach Faustformeln dimensioniert:

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Rumpf: 2× 10 mm Seiten + 50 mm Kern (hohl für Elektronik).

3D-Modell Download (2 Versionen: v1 wie hier, v2 kleinere Nase, Motor weiter vorn für besseren Luftstrom).

G-Code für DIY CNC-Schaumschneider erzeugen

CNC-Arbeitsbereich 45 cm, Rumpf 60 cm → Rumpf in 2 Teile.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Schnitt bei 34 cm ab Nase. Neuer Sketch: Form projizieren + Punkt in Nähe. Fusion 360 Manufacture-Tab → G-Code generieren.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Neues Setup: Sketch als Modell, gesetzter Punkt als Ursprung, X/Y-Achsen justieren. 2D-Kontur-Operation, Werkzeug Ø 3 mm (ca. Heißdraht-Kerf). Vorschub: 150 mm/min (abhängig von Draht & Styropor-Härte).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Geometrie: Kontur wählen. Höhen: alle 1 mm (keine Z-Bewegung). Linking: Eintrittsposition = Kante bei Ursprung.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Simulation: Geschlossener Einzelpass → Post-Process: GRBL, Ordner, Dateiname → G-Code erzeugen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Datei speichern, G-Code in WordPad o.ä. ansehen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

G-Code in Universal G-Code Sender laden → an CNC senden.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Prozess nicht professionell, aber funktional für DIY-CNC. Details zur CNC-Maschine in deren Tutorial (Link in Video-Beschreibung).

G-Code-Dateien Download:

Seiten: 10 mm Styropor. Kern: 50 mm Styropor.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Flügel: 100 mm Styropor, ~30 cm breit (max. Spannweite Heißdraht). 2 Profile in 1 G-Code, mehrere geschnitten.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

80 cm Spannweite: 3× 27 cm Stücke kleben. Enden manuell rechtwinklig schneiden für geraden Stoß.

RC-Flugzeug zusammenbauen

Alle CNC-Teile: 3 Front, 3 Heck, 3 Flügel. Montage starten.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Vorderteil: Heißklebepistole. Heißklebe schmilzt Styropor leicht, aber machbar. Alternative: 5-Minuten-Epoxid.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Vor rechtem Seitenkleben: Motorhalter bauen. 30-mm-Alu-Profil (leicht), ~18 cm, Motorbohrungen (3 mm), 90° gebogen. Motor per M3 befestigen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Montagebohrung durch Styropor, per Cuttermesser auf 30 mm (Motordurchmesser) erweitern.

Motorhalter Rückseite: 4 Bohrungen (Befestigung + Fahrwerk). Positionen auf Rumpf übertragen, 4 mm bohren. 2. Alu-Stück (~7 cm, gleiche Bohrungen) als Gegenplatte.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

M4-Schrauben: Motorhalter festziehen ohne Styropor-Schaden. Vorerst raus, rechtes Rumpfteil kleben. Heck analog.

Rumpf verbinden: Grillspieße zwischen Front & Heck für Festigkeit.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Bessere: dickere Stäbe (Bruchgefahr bei Absturz). Viel Heißklebe, zusammenpressen. Rumpf fertig, sieht cool aus.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Leitwerke: 2× 10 mm Styropor (Höhen- & Seitenruder). Kanten anfasen (Optik & Aerodynamik). Direkt am Heck ankleben, aber erst Ruder bauen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Ruder = ~1/3 Länge. Scharnier: Kontaktflächen anfasen (Cuttermesser, scharf!).

Leitwerke aerodynamischer: Schleifpapier → Vorderkanten runden, Hinterkanten leicht anschleifen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Gesamten Leitwerksbereich mit Paketklebeband umwickeln: stabiler + glatter = besser aerodynamisch.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Seitenruder unten 45° anschneiden (Platz für Höhenruder). Scharnier: Klebeband verbindet beide Teile → stabiles Scharnier.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf
Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Beidseitig Band für extra Festigkeit. Seiten & Kanten bekleben. Leitwerke fertig.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Höhenruder: Heißklebe an Rumpf. Seitenruder: 3 Grillspieße durch Höhenruder & Rumpf → Kleben & festdrücken.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Flügel: 3 Teile (CNC-Limit). Grillspieße für Festigkeit. Gerade Ausrichtung: Holzleiste als Führung.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Flügel lang & dünn → brüchig. Verstärkung: Holzstab in Tasche (Cuttermesser, vorsichtig). Heißklebe in Tasche, Stab einsetzen ohne Profil zu stören.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Gesamten Flügel mit Paketband umwickeln (Hinterkante → Vorderkante: Luftstrom löst Band nicht ab). Etwas Geduld nötig. Ergebnis: stabiler, aerodynamischer, gut aussehend.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Querruder (Ailerons): 22 cm breit, ~1/4 Flügeltiefe. 0,5 cm Freiraum schneiden. Alle Schnittkanten bekleben. Unterseite 45° anfasen, Scharnier per Klebeband (wie Leitwerke).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Mitte Flügel: Aussparung für Rumpfeinpassung.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Querruder-Servos (9g Micro): Position markieren, Cuttermesser → Aussparung. Servo-Haltebügel ab (einfachere Form). Servo einkleben. Kabelrinne zum Flügelzentrum schneiden, mit Tape abdecken. Andere Seite analog.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Ruderhörner: Alu-Profil (wie Motorhalter). Form per Hand (Servohorn-Höhe, über Scharnier). Metallsäge zuschneiden.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

2-mm-Stahldraht als Rudergestänge → 2,5-mm-Bohrung im Horn. Kerbe in Querruder, Horn einkleben. Gestänge-Länge messen (Servo in Neutralstellung!), per Zange biegen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Neutralstellung: manuell Mitte, oder Servo-Tester/Arduino. Andere Seite gleich. Flügel fertig.

Seiten- & Höhenruder-Servos (9g Micro): Gleicher Einbau. Position markieren, Aussparung, 2 Servos nebeneinander (Wellen entgegengesetzt).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Kabelrinne im Rumpf, Tape abdecken, Horn-Aussparungen. Ruderhörner & Gestänge wie zuvor.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Flügelbefestigung: 2× 8-mm-Holzstäbe. 6-mm-Bohrungen manuell. ~1 cm Überstand beidseitig. Am Rumpf per Heißklebe fixieren.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Gummiringe spannen Flügel auf Rumpf: abnehmbar, bei Absturz dämpfen Gummiringe Aufprall, trotzdem fest.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Fahrwerk: Alu-Profil + Styropor-Räder (CNC-geschnitten). Nuten im Profil zum Biegen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Räder: M5-Schrauben + 6-mm-Alurohr. Rohr per M5 an Halter, Scheiben beidseitig → freies Drehen. Heckrad analog.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Alle Teile ready – jetzt Elektronik.

Arduino RC-Flugzeug Elektronik – Schaltplan

Sender & Empfänger: Eigenbau auf Arduino Pro Mini Basis.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Detaillierte Sender/Empfänger-Tutorials existieren – hier Schaltplan & Funktionsweise.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Komponenten:

  • NRF24L01 + PA + LNA …………..…..…….
  • Arduino Pro Mini………………..……….…..
  • Servomotor ……………………………………
  • Brushless-Motor ………………………..……
  • ESC 30A ……………………………….…………
  • LiPo-Akku ……………………..……………

Funk: NRF24L01. Sender: Joysticks, Potis, Buttons → sendet kontinuierlich Daten. Empfänger: NRF24L01 empfängt → steuert Servos & Brushless-Motor.

Servo/Brushless-Ansteuerung per Arduino simpel → Gesamtkonzept verständlich. Brushless: 1000 KV, 30A ESC. ESC treibt Motor & versorgt Arduino + Servos via BEC (5 V). Strom: 3S LiPo.

Zusatzfeature: LED für Leer-Akku-Anzeige. Spannungsteiler: 12 V (LiPo) → ~5 V an Arduino Analog-In. Bei < 11 V → LED an. Empfänger hat freie Kanäle → erweiterbar (Stroboskop, Klappen, Abwurfmechanismen...).

Montage abschließen

Verdrahtung laut Schaltplan. CH1: Ruder, CH2: Höhenruder, CH3/4: Querruder, CH6: LED. LED & Netzschalter an gegenüberliegenden Seiten.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Fahrwerk: über 2 Schrauben am Motorhalter (von oben einsetzen, verschrauben, Fahrwerk dran). Gummibänder im Elektronikfach halten Akku.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Akku an ESC → alles verstauen. Verlängerungskabel: Querruder-Servos an Empfänger → Flügel per Gummiringe befestigen.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Propeller an Motor. Schwerpunkt (CG) prüfen – kritischster Faktor für Flugverhalten.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf
Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Initial hecklastig → Akku nach vorne + Gewichte (Schrauben/Muttern) → ausbalanciert.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Arduino-RC-Flugzeug fertig – Testflug!

Arduino RC-Flugzeug testen

Jungfernflug: nicht cool, Absturz-Ergebnis ernüchternd.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Analyse: Noch hecklastig, Motor zu schwach. Kein anderer Motor/Propeller → Nase kleiner, Motor weiter vorn (besserer Luftstrom), Kanten runden. Strukturverstärkung: Holzstäbe & Alu-Profile innen im Rumpf.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Elektronikfach Boden: 2 Löcher (Luftablass vorn, NRF24L01-Antenne raus für Reichweite).

Versuch 2: Besserer Luftstrom/Leistung, aber Rumpf brach wieder → Styropor zu schwach.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Neuer Rumpf + etwas Ducktape zur Verstärkung.

Versuch 3: Vielversprechend, aber schlechtes Startgelände (Straßenrand) → rechts abgedriftet, Kante touchiert, Bruch.

Reparatur: Fast gesamten Rumpf mit Duck- & Paketband umwickeln. **Das hätte man früher machen sollen** – richtige Festigkeit, brach auch nach weiteren Abstürzen nicht mehr.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Problem: Alle 4 Propeller kaputt → geklebter Propeller. Riss beim Start.

Zweiter geklebter Propeller (aus 2 Bruchstücken) → **Endlich erfolgreicher Start!**

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Glück kurz: Propeller brach in der Luft.

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Als erstes RC-Flugzeug-Erlebnis: Projekt erfolgreich – Konzept „vollständig Arduino-basiertes RC-System“ bewiesen.

Aus Flug: Sender-Steuerung zu hart (Joysticks: kleiner Weg, schlechtes Ansprechen).

Komplettes Arduino-RC-Flugzeug selbst bauen – von Grund auf

Software-Fix: Rechtes Poti → Steuerempfindlichkeit (Servoweg reduzieren). Linkes Poti → Seitenruder-Trimmung.

Arduino RC-Flugzeug Code

Code = vorheriges Tutorial (Servo/Brushless per NRF24L01). Kompletter Code:

/* Arduino RC Airplane == Receiver Code = by Dejan, www.HowToMechatronics.com Library: TMRh20/RF24, https://github.com/tmrh20/RF24/ */ #include  #include  #include  #include  #define led 9 RF24 radio(3, 2); // nRF24L01 (CE, CSN) const byte address[6] = "00001"; unsigned long lastReceiveTime = 0; unsigned long currentTime = 0; Servo throttle; // create servo object to control the ESC Servo rudderServo; Servo elevatorServo; Servo aileron1Servo; Servo aileron2Servo; int throttleValue, rudderValue, elevatorValue, aileron1Value, aileron2Value, travelAdjust; // Max size of this struct is 32 bytes - NRF24L01 buffer limit struct Data_Package { byte j1PotX; byte j1PotY; byte j1Button; byte j2PotX; byte j2PotY; byte j2Button; byte pot1; byte pot2; byte tSwitch1; byte tSwitch2; byte button1; byte button2; byte button3; byte button4; }; Data_Package data; //Create a variable with the above structure void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(0, address); radio.setAutoAck(false); radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); radio.startListening(); // Set the module as receiver resetData(); throttle.attach(10); rudderServo.attach(4); // CH1 elevatorServo.attach(5); // CH2 aileron1Servo.attach(6); // CH3 aileron2Servo.attach(7); // CH4 pinMode(led, OUTPUT); // CH6 } void loop() { // Check whether we keep receving data, or we have a connection between the two modules currentTime = millis(); if ( currentTime - lastReceiveTime > 1000 ) { // If current time is more then 1 second since we have recived the last data, that means we have lost connection resetData(); // If connection is lost, reset the data. It prevents unwanted behavior, for example if a drone jas a throttle up, if we lose connection it can keep flying away if we dont reset the function } // Check whether there is data to be received if (radio.available()) { radio.read(&data, sizeof(Data_Package)); // Read the whole data and store it into the 'data' structure lastReceiveTime = millis(); // At this moment we have received the data } // Controlling throttle - brushless motor with ESC throttleValue = constrain(data.j1PotY, 80, 255); // Joysticks stays in middle. So we only need values the upper values from 130 to 255 throttleValue = map(throttleValue, 80, 255, 1000, 2000); throttle.writeMicroseconds(throttleValue); // Adjusting the servos responsiveness travelAdjust = map(data.pot2, 0, 255, 0, 25); // Elevator control elevatorValue = map(data.j2PotY, 0, 255, (85 - travelAdjust), (35 + travelAdjust)); elevatorServo.write(elevatorValue); // Ailerons control aileron1Value = map(data.j2PotX, 0, 255, (10 + travelAdjust), (80 - travelAdjust)); aileron1Servo.write(aileron1Value); aileron2Servo.write(aileron1Value); // Rudder trimming function if (data.j1PotX > 127) { rudderValue = data.pot1 + (data.j1PotX - 127); } if (data.j1PotX < 127) { rudderValue = data.pot1 - (127 - data.j1PotX); } // Rudder control rudderValue = map(rudderValue, 0, 255, (10 + travelAdjust), (90 - travelAdjust)); rudderServo.write(rudderValue); // Monitor the battery voltage int sensorValue = analogRead(A3); float voltage = sensorValue * (5.00 / 1023.00) * 3; // Convert the reading values from 5v to suitable 12V i // If voltage is below 11V turn on the LED if (voltage < 11) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } void resetData() { // Reset the values when there is no radio connection - Set initial default values data.j1PotX = 127; data.j1PotY = 80; // Motors stops // the central point of the joystick is not starting point for the throttle, its at value of 80 instead of 127 data.j2PotX = 127; data.j2PotY = 127; data.j1Button = 1; data.j2Button = 1; data.pot1 = 1; data.pot2 = 1; data.tSwitch1 = 1; data.tSwitch2 = 1; data.button1 = 1; data.button2 = 1; data.button3 = 1; data.button4 = 1; }

Erklärung: Kurz die Hauptfunktionen, Details im verlinkten Tutorial.

  • Nach Empfang: Joystick1 Y → Gas. Werte 80–255 → 1000–2000 µs (ESC/Brushless).
  • Höhenruder: Joystick2 Y → 85–35° (Servowinkel). travelAdjust (rechtes Poti) verringert Servoweg trotz vollem Joystick-Ausschlag.
  • Querruder & Seitenruder: gleiches Prinzip. Linkes Poti (pot1) justiert Seitenruder-Nullpunkt.
  • Akku-LED: analogRead(A3) + Spannungsteiler-Rechnung → bei < 11 V LED an.

Das war's. Gedanken in Kommentaren – besonders von RC-Erfahrenen. Einsteiger: FliteTest YouTube-Kanal (Top-Ressource für RC-Welt, Link in Beschreibung).

Hoffe, Projekt hat gefallen & was Neues vermittelt. Fragen in Kommentaren, Arduino-Projekte-Sammlung anschauen.


Herstellungsprozess

  1. Eigenen LUMAZOID bauen: DIY Arduino Musik-Visualisierer
  2. DIY Hausaufgaben-Schreibmaschine zu Hause bauen
  3. DIY Photoshop-Steuerkonsole mit Arduino Nano RP2040 bauen
  4. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  5. DIY VR-Skateboard mit Arduino, Google Cardboard und Bluetooth bauen
  6. DIY-Oszilloskop mit Arduino Nano (10 Hz–50 kHz) und 128×64-LCD
  7. DIY Radionik EMR-Behandlungsgerät mit Arduino Nano – Kritische Betrachtung
  8. DIY 2D-Motion-Rennsimulator mit Arduino Nano & SG90 Servos
  9. Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth
  10. Portables RFID-Türschloss mit Arduino bauen – Schritt-für-Schritt-Anleitung