Hallo µC-Community, mein Kumpel und ich konzipieren grade einen experimentellen Quadrocopter, um zu sehen für wie wenig Geld man so ein Ding bauen kann, und sind bei der Motorsteuerung auf das Problem gestoßen, dass es natürlich nicht möglich ist, dass der Hauptprozessor, der ja schon mit Sensordatenauswertung beschäftigt ist, auch noch die 1-2ms-Pulse für die vier Brushless-Regler erzeugt. Wäre es schlau, wenn sich für jeden Regler ein ATtiny13 oder so die relevanten Daten per OneWire oder I²C bzw. TWI vom Hauptprozessor holt und dann die entsprechenden Pulse für die Regler erzeugt?
Ich denke ja, dass man das durchaus sehr gut noch mit dem Hauptprozessor erledigen kann. Mit einem geschickten Datenstruktur und Timerinterrupt habe ich genau das letze Woche mit einem ARM gemacht. Rechenleistung die dafür verbraucht wird ist verschwindend. Die Grundidee ist, die Servos/Regler nach der Zeit der fallenden Flanke zu sortieren und den Timer Interrupt so zu programmieren, dass er immer dann die ISR aufruft wenn das nächste Ereignis fällig ist. Die ISR programmiert den Timer Interrupt dann wieder für das nächste Ereignis. Macht pro Servo/Regler einen ISR Aufruf alle 20ms. Die ISR selbst ist auch nicht lang. Viele Grüße, Martin L.
Hendrik Köhler schrieb: > Hallo µC-Community, > > mein Kumpel und ich konzipieren grade einen experimentellen > Quadrocopter, um zu sehen für wie wenig Geld man so ein Ding bauen kann, > und sind bei der Motorsteuerung auf das Problem gestoßen, dass es > natürlich nicht möglich ist, dass der Hauptprozessor, der ja schon mit > Sensordatenauswertung beschäftigt ist, auch noch die 1-2ms-Pulse für die > vier Brushless-Regler erzeugt. Wieso sollte das nicht gehen? Welcher Prozessor, wie habt ihr das versucht? Hoffentlich ja nicht mit Verzögerungsschleifen ;)
Versucht haben wir wegen diesem Problem noch nichts. Wir können uns nicht entscheiden, ob wir jetzt billige Regler nehmen, die normalerweise an RC-Funkempfängern betrieben werden oder so sauteure mit I²C. Unsere MCU ist ein ATmega128.
Hallo Hendrik
Du schriebst:
>so sauteure mit I²C.
Was ist denn an I2C teurer, und warum??
Die Hardware ist doch die gleiche, nur die Software ist eine andere...
Klär uns doch bitte mal auf, wie du das meinst.
Wenn ich nicht schon etwas fertiges da hätte (den "Floh" Regler :-) )
würde ich mir so ein billiges China Set zulegen, wo der Motor gleich
dabei ist.
Als ich die auf der vorletzten Bastelmess in Leipzig sah, beschloß ich,
den "Floh" nicht weiter zu vermarkten, soo billlig waren die China
Regler.
Die Erzeugung der Impulse bekommst Du locker im Hauprprozessor hin.
schliesslich hast Du 20ms-(nKanäle x 2ms) Zeit zwischen jedem Impuls,
also im schlimmsten Fall 10ms bei 5 Kanälen und "normaler" RC
Fernsteuerung. In dieser Zeit sollte sich einiges mit einem 128er
erledigen lassen, denke ich mal.
Die Sensorik (Beschleunigung, Drehratengeber, GPS) ans SPI, die
Impulserzeugung läuft im Timer. Der Summenimpuls hängt am ICP.
Ich denke nicht, das es schwerwiegende Problem gibt. Ob man alles in
Bascom programmieren kann, wie hier oft im Forum üblich, glaube ich
diesmal allerdings nicht.
Man könnte auch einen Atmega1281 hernehmen und gleich die 3Phasensignale
für die 4 Motore erzeugen, genug PWM Engines sind dort vorhanden. Spart
man sich die China-Regler komplett.
Danke
Axelr.
Die allerersten Versuche der Quadrokopter mit einem normalen Modellbauregler und den 20ms Frame-Raten haben nicht so gut gefruchtet, soweit ich weiß. Alle 20ms sind zu grob für eine anständige Lageregelung. Der Mikrokopter verwendet I2C und der Armokopter verwendet UART. Beide mit einer Refreshrate von 1 oder 2 kHz (So in der Größenordnung). Ich benutze bei mir I2C, wobei das auch eigentlich nur, weil ich die UARTs am ATxmega schon für andere Zwecke verplant habe ;)
Wow, 1kHz... Dann dürfte der ganze Vorgang nur eine Millisekunde dauern, wobei herkömmliche Regler gar nicht in Frage kommen. Gibt es irgendwo Baupläne für einfache Regler mit AVR? Man braucht ja im Großen und Ganzen nur einen AVR mit 3 Timern und drei FETs oder?
Hendrik Köhler schrieb: > Wow, 1kHz... Dann dürfte der ganze Vorgang nur eine Millisekunde dauern, > wobei herkömmliche Regler gar nicht in Frage kommen. Gibt es irgendwo > Baupläne für einfache Regler mit AVR? Man braucht ja im Großen und > Ganzen nur einen AVR mit 3 Timern und drei FETs oder? Na den Floh eben z.B. ;) Einen aktuellen Link habe cih jetzt garnicht parat. Goolge nach "flea"+ "konze", sollte klappen. generell: BLMC, BLDC usw. sind gute Ansatzpunkte für eine google suche. edit http://home.versanet.de/~b-konze/blmc_bko/schematic.htm /edit
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.