Projekt: PWM Computer (Mixe, Servo-Ornithopter-Steuerung uvm)

Hi,

für mein autonomes-Flugzeug-Projekt spiele ich gerade ein bisschen mit Microcontrollern und habe bereits erste Code-Schnipsel zum Einlesen und Ausgeben von PWM-Signalen fertig:


Im traditionellen Modellbau stellt man ja Mixes wie den Aileron-Rudder-Mix u.ä. für Nurflügler immer auf der Fernbedienung ein. Ich fand das etwas umständlich, insbesondere mit meiner etwas günstigeren (und trotzdem noch schweineteuren) Fernbedienung, wo man zum Wechsel der Settings jedes mal einen PC anschließen muss.

Meine Idee ist, dass man die Flugzeug-Einstellung auf einem 2€-teuren PWM-Computer zwischenspeichert und somit die Fernbedienung beliebig wechseln kann, ohne irgendetwas umkonfigurieren zu müssen.

Hier grob mein Plan:
  • 4 PWM-Input-Channel (von der Fernbedienung)
  • 5 PWM Output-Channel (Servos, Motoren)
  • Alternativ: 1 PPM-Input und 8 Output-Channel
  • 8 interne Mixes
  • 2 PWM-Oszillatorren für Ornithopter-Servos (man schaltet den Thrust als Input und bekommt eine Flügelschlagbewegung)
  • 16 frei einstellbare Werte (z.B. für Trim)
  • Alle Kanäle können wahlweise direkt verschalten werden oder über eine I²C-Schnittstelle an einen Computer übertragen werden (z.B. Raspberry Pi, der noch Gyro-Daten, sowie GPS-Navigationsbefehle in die frei einstellbaren Werte zurückschreibt)
  • Nette browserbasierte Konfigurationsoberfläche (man schließt z.B. einen Raspberrypi übers I²C an) für die ganzen Einstellungen
  • Gewicht: 3 Gramm ohne Gehäuse
den Prototyp werde ich von Hand löten. Ich kann mir aber auch vorstellen, den PWM Computer für ca. 10-15€/Stück von einem PCB-Hersteller in Kleinserie herstellen zu lassen. Interessensbekundungen diesbezüglich gern an mich, damit ich weiß, ob das Sinn macht.

Welche Funktionen denkt ihr, sollte so ein PWM Computer noch alles beherrschen?
 
Also sehr leistungsfähige Flightcontroller kosten 20 €. Deine Arbeitsstunde kostet n €.

Blos kaufen konnte ich mit 6 Jahren schon - da kann ich nichts bei lernen - du wahrscheinlich auch nicht.

Kurz, beim kaufen lernt man nix.

Der Tip ist eigentlich das die Firmware der FlightController OpenSource ist - und da kann man da richtig was lernen. Manchmal auch wie man es besser nicht macht ....

Gruß
 
Also sehr leistungsfähige Flightcontroller kosten 20 €. Deine Arbeitsstunde kostet n €.
Für den Hobby-Bereich gilt grundsätzlich: Man bezahlt doch eh dafür, dass man Zeit mit seinem Hobby verbringen darf. Je mehr Zeit man also mit Basteln verbringen kann geteilt durch das Geld, das man dafür ausgeben muss, ist doch die eigentliche Kennzahl hier. Mich in einen existierenden Flightcontroller reinzufuchsen kostet auch n€/Stunde, zumal ich sowieso vor habe, meinen eigenen zu bauen...
 

husi

User
Hallo antisteo,

ich finde dein Projekt spannend. Auch aus dem Grund, das ich so etwas auch gebrauchen könnte. Ich habe z.B. einen Empfänger mit eingebauten Stabi. Es können darin auch Mischer definiert werden, aber nicht so viele und auch nicht in der Art, wie ich sie gebrauchen könnte.
Darum wäre es für mich auch Interessant, einen nachgelagerten exteren Mischer nutzen zu können.

Was mir an deiner Auflistung noch fehlen würde:
- deutlich mehr output Kanäle (min. 9 oder mehr)
- mehr input Kanäle, die z.B. ein Expo- oder Dual-Rate Verhalten in dem jeweiligen Mischer während des Fluges (durch einen Geber am Sender) ändern können.

Viele Grüße
Mirko
 
Dann müsste ich technisch auf den ATMega umsteigen - der Attiny84 hat nur 9 für PWM nutzbare Pins.

Das Grundkonzept meines PWM Prozessors soll möglichst autonom funktionieren:
  • Der PWM Prozessor arbeitet autark, greift die Fernbedienung ab und sendet auch die Controls weiter, rechnet die Mixes selbst
  • Die Gyro, Accelerometer und GPS-basierten Steuerungskommandos speist man über die I²C-Schnittstelle ein (z.B. mit einem Raspberry Pi als I²C Master)
  • Das System funktioniert auch bei einem Ausfall des Raspis oder der Gyros autonom weiter - die Gyro-Daten kommen quasi nur digital übers I²C rein und werden "dazugemixt"
  • Ein ATMega kostet gleich mal 25-30€ - da kommt man günstiger, wenn man einfach zwei Tinys benutzt und einen Raspi die gemeinsam genutzten PWM-Kanäle hin- und herschaufeln lässt
  • Ich werde wohl eine variable Anzahl an Mixes und Ornithopter-Oszillatoren einbauen, sodass man dort komplett flexibel ist. In einer Registerbank von intern 16 PWM-Kanälen kann man diese dann beliebig verrechnen. Mit einer Art Byte-Code kann man die Komponenten dann flexibel programmieren
Hier der Aufbau:
  • Registerbank mit 16 PWM-Kanälen. Die ersten 4 sind Input von der Fernbedienung, die anderen 12 sind frei programmierbar
  • Per I²C kann man jederzeit jeden der 16 PWM-Kanäle auslesen (z.B. damit der Raspi Befehle über die Fernbedienung empfangen kann)
  • Per I²C kann man jederzeit jeden der 12 freien PWM-Kanäle beschreiben (z.B. Gyro-Daten, die in einen Mix einfließen)
  • Auf jedem der 12 freien PWM kann man eine Berechnung hinterlegen, hier die Möglichkeiten:
    • keine Berechnung (Wert wird von einem Raspi geliefert, z.B. Gyro)
    • 1er-Mix (Invertieren, Trimmen usw.)
    • 2er Mix (Elevon Mixing)
    • 3er Mix (Elevon+Gyro Mixing)
    • 4er Mix (noch wildere Sachen)
    • Oszillator (Flügelschlag)
    • Thrust-Curve
  • Die 5 PWM-Outputs kann man dann mit je einem der 16 PWM-Kanälen verknüpfen. Physisch habe ich aber 6 PWM-Köpfe verbaut, damit ich ein Y-Kabel für den Roll spare (da hat man schon den halben Kaufpreis des Controllers rein)
controller.jpg
 
Ansicht hell / dunkel umschalten
Oben Unten