Gierachsenregelung für Modellhelikopter

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Marvin Kureliuk

Ziel ist die Entwiklung einer Regelung des Heckrotors für Modellbauhelikopter, oft auch als "Kreisel" bezeichnet. Dieses Projekt wurde 2014 als Studienarbeit begonnen. Die Weiterführung des Projektes soll auf dieser Seite erfolgen. Aus diesem Grund ist der aktuelle Artikel eine Ergänzung der schriftlichen Ausarbeitung.

Einleitung

Bei diesem Projekt wurde eine Platine entworfen, welche die im Modellbau verwendetetn PWM-Signale messen kann. Diese werden dann von einem Mikrocontroller verarbeitet und weiter an die Servos gesendet. Die Drehraten werden mit dem Sensor MPU-6000 gemessen.

Hardware

Platine

In Version 1.0 der Platine ist ein Fehler unterlaufen. Dabei wurden die Pins am ADUM 7441 vertauscht. Korrigiert wurde dieser Fehler, indem diese mit 0,1 mm Kupferlackdraht entsprechen gebrückt wurden. In Version 1.1 ist dieser Fehler korrigiert.

Verwendetet ICs

  • MPU-6000
  • ATmega 2560
  • ADUM 7441
  • PCA 9685
  • MAX 882 CSA
  • TMR3-1211
  • optional DS 1085 (wird nicht benötigt)

MPU-6000

Nachfolgend sind einige Erfahrungen und Beobachtungen vermerkt. Diese sollen eine Hilfestellungen geben. Erheben jedoch keinen Anspruch auf einwandfrei nachgewiesenes Verhalten des Sensors:

Ist die Spannung am "Charge-Pump"-Kondensator kleiner 20 Volt (typ.24 Volt) so befindet sich der Sensor im Sleep-Mode.

Es hat sich als Vorteilhaft erwiesen die MPU-6000 nach dem einschalten der Spannung, zunächste per Register zu reseten und erst danach zu Konfigurieren. (Verzögerungszeiten beachten, die die MPU-6000 nach dem Einschalten bzw. dem Reset benötigt.)

Wird die MPU-6000 via SPI ausgelesen, so ist zu beachten, dass das MSB enscheidet ob das Register gelesen oder beschrieben wird. ist das MSB 0 wird geschrieben, soll gelesen werden muss das MSB 1 sein. Alle Register können mit einer Maximalen Taktrate von 1MHZ gelesen werden, nur einige können schneller gelesen werden ! Sollen mehrere Register direkt in Folge gelesen werden, genügt es 0x00 an die MPU-6000 zu senden, es werden automatisch die Daten des nächsten Registers gesendet. Aber ob das für alle Register gilt, ist mir noch nicht bekannt. Werden mehrere einzelene Register nacheinander ausgewählt und gelesen, so ist zu prüfen ob die ausgelesen Daten auch Plausibel sind. Eventuelle ist nach dem setzen der Registeradresse eine Verzögerungzeit einzufügen. Gelegenlicht erschienen die Daten einen Lesezyklus später.

Leadless ICs löten

Der Sensor MPU-6000 wurde mit dem Heißluftverfahren aufgelötet. Der Quarz wurde mit dem gleichen Prinzip aufgelötet. [Video] auf Youtube zeigt, wie der Quarz gelöltet wurde. Auf diesem Kanal werden in Zukunft weitere Videos folgen.

Software

TODO

Siehe auch