Im Mediamarkt gab es von Hama einen "USB-LED-Text-Ventilator" für knapp 9 Euro. Da konnte ich nicht widerstehen und hab den als Bastelobjekt gekauft. Ich möchte über den PC eigene Texte an den Ventilator übertragen. Was der Ventilator selbst bietet, ist eine Text-Programmierung über diverse Tasten; das funktioniert auch recht gut. Die Innereien seht ihr auf den Bildern. Auf der Platine ist eine vergossener MCU und ein 24C02 EEprom zu erkennen. Die Übertragung von Daten an den Ventilatorkopf erfolgt über 2-Draht Leitung, wahrscheinlich I2C. Nun gibt es einige alte Threads über dies LED Ventilatoren, aber hilfreich waren die nicht so besonders. Die einfachste Möglichkeit der Textprogrammierung sehe ich zuerst mal darin einfach die vorhandenen Taster über einen z.B. ATMega 168 zu bedienen und diesem vom PC über USB-Seriell-Wander die Texte zu schicken. Der Nachteil wird wohl sein, das das Programm der Ventilator MCU mit Sicherheit Routinen zur Tastenentprellung hat und somit die Ansteuerung dadurch verlangsamt wird. Natürlich könnte ich auch schauen was so auf der I2C Leitung zum Ventilatorkopf passiert und das in meinem ATMega nachvollziehen. Hat einer von euch schon mal mit so einem Teil rumgebastelt? Wie habt ihr das gelöst? Wie geschieht die Energie- und Datenübertragung in den Ventilatorkopf - induktiv? Offensichtlich ist im Ventilatorkopf wohl noch ein zweiter Controller. ------------------------------ ADMIN > bitte letztes Foto löschen, wurde versehentlich mit 5 MB hochgeladen
Wenn man bei der Entrprellung zeit vertrödelt mit Delays is man selber Schuld. Eine Entrpellroutine darf die CPU nicht im Geringsten stören. Ingo
Ingo schrieb: > Wenn man bei der Entrprellung zeit vertrödelt mit Delays is man selber > Schuld. Eine Entrpellroutine darf die CPU nicht im Geringsten stören. ... und wer lesen kann ist im Vorteil: > Der Nachteil wird wohl sein, das das Programm der Ventilator > MCU mit Sicherheit Routinen zur Tastenentprellung hat und somit die > Ansteuerung dadurch verlangsamt wird. Wo steht denn da dass es von mir ist? Da wie oben beschrieben die MCU unbekannten Typs und vergossen ist, kann ich wohl kaum die Entprellroutinen verändern. Ist hier irgendwie immer das selbe: Beim Lesen des Textes wird der Verstand ausgeschaltet, sich auf irgend ein ins Auge fallendes Stichwort fokusiert und dann, insbesondere von "Gästen", ein hirnloser Text abgesondert.
Albert M. schrieb: > Ingo schrieb: >> Wenn man bei der Entrprellung zeit vertrödelt mit Delays is man selber >> Schuld. Eine Entrpellroutine darf die CPU nicht im Geringsten stören. > > ... und wer lesen kann ist im Vorteil: > >> Der Nachteil wird wohl sein, das das Programm der Ventilator >> MCU mit Sicherheit Routinen zur Tastenentprellung hat und somit die >> Ansteuerung dadurch verlangsamt wird. > > Wo steht denn da dass es von mir ist? > Da wie oben beschrieben die MCU unbekannten Typs und vergossen ist, kann > ich wohl kaum die Entprellroutinen verändern. Warum bist du der Meinung das jemand durch Entprellen "die Ansteuerung verlangsamt"? Offensichtlich weil Du es so machst? Lies meinen Text, da steht das eine Tastenentprellung genau das nicht machen soll / sollte. Ingo
Ingo, Du verstehst nicht was Albert gemeint hat. Er kann ja nicht beliebig schnell Impulsfolgen an die Taster anlegen, da der vergossene µC bestimmt eine Entprellung drin hat und, dann die Taster nicht mehr in dieser Zeit abfrägt.
Sorry, ich hab's falsch verstanden, ich hätte nicht gesehen das man über die Taster den Text programmieren kann. Mein Fehler, Sorry....
Meinst du nicht es wäre besser direkt auf den I2C Bus zu gehen, sofern es denn einer ist? Könnte ja auch SPI sein. Ich würd mal das Oszi, wenn verfügbar, anklemmen und gucken was sich da abspielt. Ingo
Genau, ich werde mal mit meinem Salea Logic Analyzer Clone den Bus anschauen. Die Texte werden wohl im 24C02 EEprom gespeichert. Die Frage ist was im Ventilator-Kopf passiert. Schieberegister, µC oder was? Und eine Triggerung muss ja auch noch drin sein damit der LED-Text immer an die selbe Stelle kommt. Wird der Triggerimpuls direkt oben im Kopf ausgewertet oder nach unten geschickt? Da hilft wohl nur den Bus auswerten oder sich mit der langsamen Ansteuerung über die Tastereingänge begnügen.
Ich hab jetzt mal die 2 Drähte (Bus) die zum Ventilatorkopf führen untersucht. Nur auf einer Leitung werden Daten übertragen und zwar nur einmalig beim Start oder bei Betätigung des Schalters für den nächten Text (es können 7 Texte gespeichert werden). Dann passiert da nichts mehr. D.h. alle weitere Verarbeitung passiert im Drehteil des Kopfes. Die Codierung der Daten konnte ich nicht herausfinden. 1-Wire ist es nicht, Manchester und async. Serial auch nicht. Offensichtlicht schliesst aber ein sehr kurzer Impuls von 10µs jeweils ein Zeichen ab (siehe Bild2 bei 11ms). Der kommt nach jeweils weiteren 11ms erneut. Bisheriges Fazit: Die ganze Mimik auf der Bodenplatine macht nichts anderes als einmalig den Text zum Ventilatorkopf schicken. Die müsste sich also leicht durch einen eigenen ATMega ersetzen lassen und die Texte hält man im PC vor. Eigentlicht braucht man garnicht wissen was im Ventilatorkopf vor sich geht. Wenn man denn die Textcodierung kennt ... hm.
und was genau has du bei Bild1 gemessen? sind Bild 1 und Bild 2 die selben Adern? Bild 1 hat ja ein sich wiederholendes Muser? wodurch wird das getriggert?
Auf Vent3 kann man erkennen dass im Lüfter ne rote LED ist. Vielleicht wird so das trigger Signal übertragen.
@Tom Z. Nein, da ist keine rote LED. Da hat sich ungünstiger Weise meine PC Soundbox mit ihrer LED ins bild geschlichen. Sehr merkwürdig: Egal was für ein Text gewählt wird, es wird immer nur gesendet was in Bild 1 zu sehen ist (Bild 2 ist nur ein Ausschnitt aus Bild1 um den kurzen 10µs puls besser zu sehen). Und es tatsächlich ein sich wiederholendes Muster, war mir gar nicht aufgefallen. Also der Text ist es wohl nicht. Aber mehr wird über diese Leitung bei Textänderung nicht übertragen. Vielleicht wird der eigetliche Text ja über die 2 Leitungen der Kopf-Versorgung (rot/schwarz auf der Platine mit M- und M+ bezeichnet) die auch zum Kopf gehen aufmoduliert. Mal sehen. Was Neues: Ich hatte ja bis jetzt immer im Betrieb gemessen. Hab jetzt mal den LA vor dem Einschalten des Ventilators gestartet. Und da wird beim Einschalten ein riesiger Datenschwall von 0,8s Dauer gesendet. Das sieht fast so aus als wenn alle 7 Texte vom EEprom zum Kopf geschickt werden und da vorgehalten werden. Was in Bild 1 zu sehen ist wird dann warscheinlich nur der Code zum Weiterschalten auf den nächsten Text sein?
also ich kann mir nicht vorsellen, dass über die Versorgungsspannung noch ein Signal gelegt wird, wenn es eine separae Signalleiung gib (bzw 2, was auch immer die 2. Leitung macht) komisch bei Bild2 ist, dass die Zeibasis auch ms ist? Das passt nicht so richtig in den kurzen Impuls rein. Auf der zweiten Leiung passiert wirklich gar nichs? was hast du als Referenzpotential genommen?
nach deinem Edit: Du kanns den ext doch ändern? Dann müsste beim Ändern auch dieser "Schwall" kommen. Vielleicht ist der "Schwall" beim Einschalen auch nur "Müll". Ist es immer das gleiche, was gesendet wird?
Hab mal gemessen und auf der Platine genau nachgesehen. Die 2. Signalleitung (weiss) liegt definitiv auf Masse. Die Kommunikation geht also nur über die 1. Leitung (blau).
auf dem Bild "Vent1" steht ja auch bei weiß GND. ;) Interessant, dass der Motor über "+" und "-" angesteuert wird. Hast du nicht zufällig ein Oszi zur Hand? Vll kannst du dann mal sehen, was auf "+" und "-" passiert. Dann kannst du vll. auch auf der Signalleitung mal mit einer kleineren Zeitbasis messen.
Beim Ändern eines Zeichens passiert auf dem Bus (Leitung1 blau) das was auf den Bildern in gleicher zeitlicher Reihenfolge zu sehen ist. Sehr merkwürdig dabei die sich dauernd wiederholenden Bitmuster. Es wird nicht der gleiche Datenschwall wie beim Einschalten übertragen.
ich verstehe noch nicht ganz, wie der ext geänder wird, aber wenn du schreibst "beim Ändern eines Zeichens" kommt einer dieser Bitmuster, dann würde ich mal raten, dass du ein zeichen nach dem andern änderst. Vielleicht wird dann bei jedem Ändern eine zeichens dieses übertragen. Und zur Sicherehi gelich mehrfach (es scheint immer die gleiche Anzahl an Perioden übertragen zu werden). Das würde aber bedeuten, dass die texte im "Kopf" gespeichert werden. Was passiert, wenn du einen anderen vorgespeicherten Text auswählst?
Das alle Texte beim Einschalten zum Kopf übertragen und dort gespeichert werden hatte ich ja schon vermutet. Das beim Betätigen des Schalters für den nächsten Text auch nur eine sehr kurze Sequenz übertragen wird, die niemals der ganze Text sein kann, deutet darauf hin. Es wäre ja kein Problem die ganzen Texte selber zum Kopf zu übertragen aber ohne Kenntnis der Text- und Befehls-Codierung komm ich da aber nicht weiter. Ich habe mal die ganze Einganzsequenz als csv-Datei beigefügt. Vieleicht will sich das ja einer antun und schaut da rein :) Ansonsten werde ich die langsame Version wählen und meinen ATMega an die Taster anschliessen. Dann lässt sich das Ganze ja ziemlich einfach codieren und an den PC anschliessen. Die Mimik will ich dann noch mit einer Temperatur- und Zeitanzeige aufpeppen.
wenn du noch schreibst was die einzelnen Texte enthalten, wird es etwas leichter und ich schaue es mir mal an ;)
also beim durchscrollen fällt mir auf: es ist immer 0 und 1 im Echsel (vll synch?) Aber die Zeiten sind komisch? die ersten 2,3 Sekudnen "fehlen" Dass er sich so nur anfangs synchronisiert ist wäre ungewöhlich. Aber das würde erklären, dass es nur eine Datenleitung gibt.
Beim Start werden der Reihe nach alle 7 Leds einmal angesteuert. Dann erst startet der Motor und kommt kommt der Text. Die Texte (die Leestellen kann man allerdings schlecht zählen): Text1: A TAKE IT EASY Text2: 1A HOT SUMMER Text3: 'einige Leerstellen' BE COOL usw.
Und hier die komplette Session der Startsequenz des Ventilators vom Salea Logic Analyzer falls einer den hat und interessiert ist. Einfach mit 'Open Session' die Daten laden.
Hallo, falls Euch die Lösung noch interessiert, dann lest mal hier nach: http://hackingwithgum.com/2009/10/06/hacking-the-cenzic-pov-fan/ oder http://hackingwithgum.com/2009/10/06/hacking-the-cenzic-pov-fan/ Hoffe, das hilft
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.