PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Signale aus empfänger ohne Summensignal lesen...



DanielSan
27.05.2010, 09:54
Hi,

ich möchte mir für meine Fernsteuerung (Aurora9) eine wireless Lösung zum Simulator fliegen bauen.

Ich möchte dafür einen Empfänger verwenden und die Signale dann als PPM in mein bereits vorhandenes und funktionierendes USB-Interface einspeisen.
Es soll also die "normale" Funkstrecke, wie beim realen fliegen auch, verwendet werden.

Da die Signale vom Empfänger für alle Kanäle gleichzeitig kommen oder kommen können, reicht ja ein einziger Atmega32 dafür nicht aus. Also habe ich mir folgendes Konzept überlegt.

https://www.roboternetz.de/phpBB2/files/konzept.png

Mein Problem ist jetzt eigentlich "nur", wie kriege ich die Kommunikation zwischen den Controllern hin? RS232? I2C? ganz anders?

Hoffe ihr versteht was ich vorhabe.

Danke schonmal für die Hilfe!
Gruß Daniel

JoeBlack
27.05.2010, 11:17
Bist Du sicher, dass Du das so machen willst?
Die Atinys müssten jeder für sich bereits nen Kanal einlesen können und dann kannst Du die Werte der Reihe nach abfragen.
Allerdings gibts auch andere Controler die mehrere gleichzeitig lesen können.

Zum anderen kommen die Signale soviel ich weiss nacheinander und nicht alle auf einmal.

Schau Dich mal mittels Sufu im Forum um, derartiges wurde erst vor ein paar Tagen wieder diskutiert.

MfG JoeBlack

DanielSan
27.05.2010, 12:53
Nein ich bin nicht sicher das ich das so machen will. Das war nur erstmal eine idee.

Bei den 35 Mhz und einigen 2,4 Ghz Empfängern kommen die Signale nacheinander. Bei meinem 2,4 Ghz Empfänger kommen alle Signale gleichzeitig. Das hat bei Hubschraubern zum Beispiel den Vorteil, das die Taumelscheibe absolut paralel angesteuert wird.
Ein dickerer Prozessor der 6 Kanäle gleichzeitig einlesen kann wäre auch in Ordnung. Vorrausgesetzt, es wird nicht deutlich teuerer.

Gruß Daniel

DanielSan
27.05.2010, 18:28
Hi,

also ich habe jetzt nochmal nach dem von dir angesprochenen Beitrag gesucht. Leider habe ich nur Themen gefunden, die sich mit dem auswerten eines Summesignals bzw. von nur einem Kanal beschäftigen.
Kannst du mir da evtl. mit einem Link auf die Sprünge helfen?

Ansonsten bin ich für alternative Lösungen bzw. für Kommentare zu meinem Ansatz sehr dankbar.

Danke
Gruß Daniel

JoeBlack
27.05.2010, 18:42
Zitat: "Summesignals bzw. von nur einem Kanal beschäftigen. "

Das Thema mit dem einen Kanal ist das was Du suchst.
Du musst das ganze eben nur sechs mal machen um alle sechs Kanäle einzulesen.

MfG JoeBlack

DanielSan
27.05.2010, 18:55
Ja aber gleichzeitig! Nicht nacheinander!

Und da liegt meiner Meinung nach die Schwierigkeit.

Danke
Gruß Daniel

wkrug
27.05.2010, 20:49
Mit einem Controller tatsächlich gleichzeitig 6 Servosignale einlesen geht tatsächlich nicht.
Wenn man ein paar ungenauigkeiten in Kauf nimmt gehen aber schon mal 4..5 pro Controller.

Bei meinen PPM Auswertungen lass ich einen mit 8MHz getakteten ATMEGAxx Controller den TIMER1 mit Prescaler 8 frei laufen.
Das hat den Vorteil, das man die Werte direkt in Mikrosekunden kriegt.

Du kannst die Interrupts ICP1, INT0, INT1 und INT2 eines MEGAS verwenden.
In der entsprechenden Interruptroutine wird das Sensing zuerst auf steigende Flanke gesetzt.
Kommt dann diese Flanke wird der Zählerstand des TCNT1 Registers zwischengespeichert und das Sensing auf fallende Flanke umgestellt.

Kommt diese nun, wird das TCNT1 Register erneut ausgelesen und der vorher abgespeicherte Wert abgezogen. Das Sensing wird für den nächsten Impuls wieder auf steigende Flanke umgestellt.

Es ist natürlich klar, das diese Interruptroutinen so kurz wie nur irgend möglich sein müssen.
INLINE Assembler wäre da eine gute Möglichkeit.
Es sind ja nur Speicheroperationen und Subtraktionen nötig.

Die Summensignalausgabe klappt super über einen Output Comparematch Interrupt, der auch gleichzeitig vom Timer 1 aus gesteuert wird - Aber das ist ein anderes Thema.

Da Du vermutlich doch mehr als einen Controller brauchst, wär eventuell SPI eine gute Möglichkeit.

JoeBlack
27.05.2010, 22:20
Falls die Signale wirklich gleichzeitig kommen, was ich sehr unwahrscheinlich finde, dann würde ich zu sechs Controlern raten, die ihre Daten der Reihe nach über I²C An den Host übergeben.

MfG JoeBlack