Hallo MC.net Community, ich habe einen Indoor-Heli mit GControl Modul fürs Handy und würde gerne zwei Protokolle/Schnittstellen wissen: - Wie ist das IR-Protokoll zwischen Heli und GControl-Modul aufgebaut - Wie ist das Protokoll zwischen Handy und GControl-Modul, welches über die Audio-Schnittstelle läuft, aufgebaut. Mein Modul läuft nur über die Audioschnittstelle an einem Android und ist NICHT das Steckmodul für die Unterseite der Apple Geräte! Für alle die nicht wissen was gemeint ist, finden hier eine Demo (http://www.graupner.de/de/pressdetail/6d20ac55-968a-4300-911b-3f8305267d62) Bitte nur posten, wenn jemand sich schon die Mühe gemacht hat das zu ergründen. Das WIE ich das selbst rauskriege, weiß ich (Oszi, IR-Diode, PC-Wave-Editor), aber vielleicht muss ich das Rad ja nicht neu erfinden. Warum das ganze? Weil es mich interessiert und sollte es simpel genug sein, würde ich ein IR-Sendemodul für meine große Funke über die Lehrer/Schüler Buchse designen und umgekehrt einen IR-Empänger der übers Handy läuft. Einfach nur weils geht und Spaß macht halt...
Hat keiner mal nachgeschaut? Dann muss ich wohl selbst ran. Mit Hilfe des Oszis und einer IR-Diode+Widerstand moduliert das IR-Signal wohl auf 36kHz. Da ich werder am Hubschrauber im eingeschalteten Zustand messen möchten, noch das verschweißte Gehäuse des Senders öffnen, besorg ich mir mal einen dieser zwei fertig integrierten IR-Empfänger: - TSOP31236 (reichelt) - TSOP4836 (conrad) Die sind fertig abgestimmt auf 36kHz und haben den Bandpass und Demodulator fertig eingebaut. So etwas ähnliches verwendet der Heli auch, denn auf der Rückseite steht so ein Dreibein in Miniaturbauform. Vielleicht/hoffentlich ist es ja nur ein RC-5 basiertes Protokoll: http://de.wikipedia.org/wiki/RC-5
René B. schrieb: > besorg ich mir mal einen > dieser zwei fertig integrierten IR-Empfänger: > - TSOP31236 (reichelt) > - TSOP4836 (conrad) Wenn du das selbst dekodieren möchtest, besorg dir lieber das "USB Infrared Toy". http://dangerousprototypes.com/docs/USB_Infrared_Toy @Mods: Ich habe wirklich nichts mit dangerousprototypes.com oder deren Produkten zu tun. ;)
René B. schrieb: > Vielleicht/hoffentlich ist es ja nur ein RC-5 basiertes Protokoll: > http://de.wikipedia.org/wiki/RC-5 Die Wahrscheinlichkeit ist relativ gering, da RC5 total veraltet ist. Probiere es mal mit IRMP. IRMP kennt 30 Protokolle. Sollte es trotzdem nicht erkannt werden, kannst Du mit IRMP sogenannte "Scans" erstellen - siehe Artikel. Diese Scans kannst Du mir zuschicken. Sollte das Protokoll nicht allzu exotisch sein, baue ich es in IRMP ein. Gruß, Frank
Das "Protokoll" scheint doch etwas exotisch zu sein. Anscheinend sind dort 4 Kanäle mit 6 oder 7 Bits aufkodiert. Den Start des Frames markieren je ein 1ms langer Lo und Hi-Pegel. Dann folgt eine Reihe von 330ms langen Impulsen. Der Abstand zwischen diesen Impulsen scheint dann 660ms für eine 1 und 330ms für ein 0 zu sein. Ich fummel damit mal ein 4-Kanal Protokoll zusammen. Die Kanalcodierung für A/B hab ich noch nicht untersucht. Das ist aber kein mir bekanntes IR-Protokoll. Im Anhang findet sich ein demodulierter Frame, den ich mit einem LA aufgenommen habe. Falls sich sowas in IRMP findet, weiß ich nicht unter welchem Namen.
René B. schrieb: > Den Start des Frames markieren je ein 1ms langer Lo und Hi-Pegel. Benutze IRMP, sende mir die LOG-Dateien von ein paar Tasten zu und ich baue das Protokoll ein, wenn es von IRMP noch nicht abgedeckt wird. Wie man LOG-Dateien erstellt, steht im Artikel von IRMP.
Habs gerade ergründet und kann den Heli per AVR fliegen (IR-LED und einen Port als 36kHz-Quelle). Codebeispiel und Erklärung folgt. Es ist ein Puls-Distance-Protokoll, zumindest was die Daten angeht. 4Bytes mit 0 (300ms Puls, 300ms Pause) und 1 (300ms Puls, 600ms Pause). Davon aber nur 3 Bytes "Nutzlast" und da auch nur 7LSBs, das achte ist immer 0. Allerdings wird der Start eines Frames durch einen 2ms Puls mit 2ms Pause eingeleitet. Abgesehen von dem blöden Startimpuls wäre in IRMP dafür das Grundgerüst enthalten. Aber wie gesagt, Rest folgt...
René B. schrieb: > Abgesehen von dem blöden Startimpuls wäre in IRMP dafür das Grundgerüst > enthalten. Aber wie gesagt, Rest folgt... Fast alle Fernbedienungen benutzen einen Startimpuls. Das ist also überhaupt kein Problem für IRMP :-)
René B. schrieb: > Es ist ein Puls-Distance-Protokoll, zumindest was die Daten angeht. > 4Bytes mit 0 (300ms Puls, 300ms Pause) und 1 (300ms Puls, 600ms Pause). Kommt mir lang vor, meinst Du Mikrosekunden?
> Kommt mir lang vor, meinst Du Mikrosekunden?
Natürlich µS(300 und 600), aber 2mS zu Beginn
So, das Protokoll ist entschlüsselt und der Nachbau ist sogar besser als das Original (siehe Byte 3). Ein AVR entschlüsselt das DSC-Signal (Schülersignal) meiner Spektrum Handfunke und übersetzt es in das Infrarot-Protokoll. Die Steuerung ist extrem präzise und der kleine Heli ist mit dieser Steuerung echt ne Wucht. Anbei einmal das dekodierte Signal, also ohne die 36kHz Modulationsfrequenz. Im Bild ist ein Hi-Pegel eine Sendepause und ein Lo-Pegel ein 36kHz IR-Burst. Die Pausen von 60-90ms zwischen den Frames müssen eingehalten werden, sonst muckt der Heli. IRMP beherrscht das Protokoll auch, mann muss nur die Puls/Pause-Verhältnisse anpassen. Start 2ms/2ms, 4Bytes wobei "0" 300µs/300µs und "1" 300µs/600µs sind. Byte 0: Linksdrehung (0=maximal rechts, 63=neutral, 127=maximal links) Byte 1: Rückwärts/Vorwärts (0=maximal vorwärts, 63=neutral, 127=maximal rückwärts) Byte 2: Hoch/Runter und Kanalwahl (A, B). Bei Kanal A ist das MSB=0 (0=aus, 127=max), bei Kanal B ist das MSB=1 (128+0=aus, 128+127=max) Byte 3: Immer 0 (evtl. bei Geräten mit Schussfunktion in Gebrauch?) Beim letzten Byte ist eigentlich das letzte LSB nicht Teil der Übertragung. Wahrscheinlich handelt es sich aber um einen Programmierfehler der iPhone/Android App. Beim Nachbau wird auch das LSB als "0" übertragen und der Heli kommt damit klar. Ich hab mir mit einem stark unterforderten mega8 mal einen Adapter zusammengefummelt. Dieser läuft aber mit einem 7,3732MHz-Quarz (nicht wie im Schaltplan mit den internen 8MHz). Wer die internen 8MHz benutzen möchte, muss die Flags für den Timer anpassen. Schaltplan und main.c liegen bei. Ist ne quick'n'dirty-Implementation, aber mehr wollte ich ja auch nicht. Versorgung erfolgt durch 4 leicht entladenen Akkus mit Schottky in Reihe. Natürlich kann man auch ne ordentliche stabilisierte Versorgung mit 7805/LF50CV oder Schaltreglern bauen. Die Software für iPhone und Android kommt von UPRTek. Witzigerweise funktionieren fast alle Apps aus dem Android Store mit dem Heli, also auch die für den "iFly" oder "iCopter". Die jeweils zugehörigen Produkte sehen sich dann auch verdammt ähnlich. Ich habe zwar iPhone-IR-Adapter mit 4, statt 3 Abgriffen am 3,5mm-Klinkenstecker gefunden. Aber die Produkte, bei denen auf der Abbildung die Variante mit 3 Abgriffen abgebildet ist, wird meist auch mit Android beworben, während bei den anderen nur iPhone/iPad/iPod dabei stehen. Hier mal eine Liste der zugehörigen Kandidaten: Helikopter (wahrscheinlich) kompatibel: Graupner Nano Star 3 und 3A Gyro (amazon, zusätzlich für Android ausgewiesen) iFly RC-Helikopter (arktis) i-Helicopter (akshopping, chilitec) Syma I-Copter S111G (rcmaster, zusätzlich für Android ausgewiesen, nur 26€) RC-Helicopter McTrack I-Fly IPhone Edition (electrobi, ts-audio) Helikopter mit Schussfunktion: Lujex U810A iHelicopter 3.5CH Mini RC Hubschrauber Gyro Launching Missile (amazon) Vielleicht hat ja jemand noch ein paar Ideen, was man mit einem µC-kontrollierten Heli so alles anstellen kann. Ich finds ganz praktisch, weil einfach keine Billigfunke und keine Touchscreen oder auf Lagesensor basierte Fernbedienung an die Präzision und Ergonomie einer ordentlichen Funke herankommt.
Hallo René B., ist zwar schon ne Weile her aber ich interessiere mich für Deinen Beitrag und die Umsetzung davon. Ich habe einen iDroid-Heli der mit einer Android App per Infrarot gesteuert wird und möchte diesen mit meiner alten Graupner MC-15 steuern wenn möglich. Weißt Du ob das möglich auch wäre und was ich da eventuell ändern müsste? Gruß Angel
Es wird wohl nicht von vornherein laufen, ein bissl Nacharbeit ist schon notwendig. Evtl. sogar beim Einlesen des Schülersignals, da ich nicht die Ausgangscharakteristik deiner Funke kenne. Prinzipiell ist das von mir eine ziemlich dreckige Umsetzung. Aber du kannst im Code sehen, wie die Impulse der Funkfernsteuerung ausgewertet werden. Halt nicht per Funk, sondern eben die Signale, die aus der Schülerbuchse kommen, Dann wird daraus das Signal für den Heli generiert. Allerdings eben für das Graupner Protokoll. Wahrscheinlich wird es bei deinem wieder anders aussehen. Aber wenn du es analysierst, kannst du ja den Zusammenbau des Ausgangssignals anpassen. Der Signalverlauf mit Funke an der Schülerbuchse ist ja: Knüppel -> Schülerbuchse -> Atmega -> IR-Ausgabe -> Heli
:
Bearbeitet durch User
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.