Verkaufe einen nie benutzten Opympia Infoglobe. Das ist sowas wie eine rotierende Laufschrift wie man es von einer Propelleruhr kennt. Naja, jedenfalls wurde das mal (neu) gekauft um so eine Uhr daraus zu machen. Aus Zeitmangel wurde das Projekt jetzt verworfen. Bis jetzt ist es noch eine schnuckelige Telefonanrufanzeige mit 15 cm Durchmesser. Ob das am aktuellen Telefonnetz noch funktioniert kann ich nicht sagen. Das Ding hat intern einen Propeller mit blauen Leds, die durch die hohe Drehzahl statisch erscheinen. Im Moment wird eine schöne Animation abgespielt. Laufschrift rauf, runter, drehen,.... Wie gesagt war die Idee das Teil mechanisch so zu benutzen, da das Selberbauen doch eine hohe mechanische Herausforderung darstellt, lediglich neu programmiert sollte es werden um eine stylische Uhr daraus zu bauen. Weiß allerdings nicht was für ein Controller darin verbaut ist, hab das Ding noch nie geöffnet. Vielleicht hat ja jemand anders mehr Zeit dazu. Lieferung erfolgt in Originalverpackung mit Anleitung und Netzteil. Würde es für 25 Eur + 5 Eur Porto Päckchen, oder 7 Eur Porto Paket per Paypal oder Überweisung abgeben
Markus B. schrieb: > Vielleicht hat ja jemand anders mehr Zeit dazu. Als es das Teil vor etlichen Jahren bei Tchibo gab habe ich den auch zum Basteln mitgenommen. Anstatt der Innereien umzuprogrammieren speiße ich mit einem Tiny 25 über eine Leitung mein eigenes "Infrarot" Signal in den rotierenden Propeller.
Ist es dieses Ding? https://wilke.de/fileadmin/templates/Bilder/success/pdf_komplett/Applikationsbericht_071_WilkeTechnology.pdf
:
Bearbeitet durch User
Esmeralda P. schrieb: > Ist es dieses Ding? > https://wilke.de/fileadmin/templates/Bilder/success/pdf_komplett/Applikationsbericht_071_WilkeTechnology.pdf Genau dieses "Ding" ist es. Das Teil intern per infrarot anzusteuern finde ich genial. Super Idee!!
:
Bearbeitet durch User
Hallo han_swurst, schick mir mal eine eMail Adresse wo ich dich erreichen kann.
Markus B. schrieb: > Das Teil intern per infrarot anzusteuern finde ich genial. > Super Idee!! Zur Ansteuerung benutze ich die sowieso schon vorhandene IR-Datenübertragung. Mein Controller ist lediglich über drei Leitungen Verbunden (5V Gnd Daten). Im Sockel befindet sich eine IR-Diode für das Drehwinkeltiming die der Rotor mittels einer Fotodiode "sehen" kann sowie eine zweite, die die Daten auf den IR-Empfänger des Rotors überträgt. Meine Datenleitung moduliert den Sende-Transistor dieser IR-Datenstrecke. Im Bild sind die IR-Bauteile fürs Drehwinkeltiming rot und die für die Daten gelb markiert. Der grüne Draht ist meine Datenleitung. Den Datenverkehr an diesem Punkt habe ich damals per Salea Logic Analyzer analysiert und dann für eigene Texte emuliert.
Stoer p. schrieb: > Zur Ansteuerung benutze ich die sowieso schon vorhandene > IR-Datenübertragung. > Mein Controller ist lediglich über drei Leitungen Verbunden (5V Gnd > Daten). Würdest du den Code für den Attiny 25 veröffentlichen?
Die Idee, die interne Infrarotübertragung zu modifizieren habe ich von hier: https://hanixdiy.blogspot.com/2010/10/hacking-infoglobe-part-1.html ebenso die Info für die Steuerzeichen zur Textanimation: https://hanixdiy.blogspot.com/2010/10/hacking-infoglobe-part-3.html Ich bin dann aber den einfacheren Weg gegangen und habe die bereits vorhandene Sendediode benutzt und eine simplere Hardware gebaut.
1 | /*
|
2 | Infoglobe.c
|
3 | |
4 | ATTiny 25 Pinbelegung:
|
5 | PB0 frei
|
6 | PB1 TX Datenausgang
|
7 | PB2 frei
|
8 | PB3 Quarz 8MHz
|
9 | PB4 Quarz 8MHz
|
10 | PB5 Reset
|
11 | */
|
12 | |
13 | #include <avr/io.h> |
14 | #include <avr/interrupt.h> |
15 | |
16 | #define F_CPU 1000000UL // Prozessortakt 1MHz (Fuse CKDIV8 gesetzt)
|
17 | #include <util/delay.h> |
18 | |
19 | |
20 | void Lowbit (void); // erzeugt 1ms Burst aus 38 Pulsen (je 10µs high / 16µs low) |
21 | void Highbit (void); // erzeugt 1ms Pause |
22 | void Zeichen_senden (unsigned char z); // gibt ein Zeichen aus |
23 | void Text(char *zeiger); // gibt eine Zeichenkette plus Steuerzeichen aus |
24 | |
25 | unsigned char Timeout =1; // Merker für "1ms vorbei" (Low Aktiv) |
26 | |
27 | |
28 | // ISR für den Timer 0 Overflow Interrupt
|
29 | ISR (TIMER0_OVF_vect) |
30 | {
|
31 | Timeout = 0; // Merker für "1ms vorbei" setzen (Low Aktiv) |
32 | TCNT0 =133; // Preset für 1ms Overflowdauer |
33 | }
|
34 | |
35 | |
36 | |
37 | // main
|
38 | int main(void) |
39 | {
|
40 | // Initialisierung des Controllers
|
41 | DDRB |= (1 << DDB1); // Port B1 Ausgang |
42 | #define Tx PB1 // Datenausgang
|
43 | |
44 | // Timer 0
|
45 | TCCR0B |= (1 << CS01); // Timer 0 im "Normal Mode" Vorteiler 1:8 |
46 | TIMSK |= (1 << TOIE0); // Timer 0 Overflow Interrupt Enable setzen |
47 | |
48 | sei(); // Interrupts global freigeben |
49 | |
50 | |
51 | // preset
|
52 | _delay_ms(3000); // 3 Sekunden warten damit der Rotor anlaufen kann |
53 | |
54 | Text ("Das ist ein Test"); // Textausgabe |
55 | |
56 | // mainloop
|
57 | while(1) |
58 | {
|
59 | |
60 | }
|
61 | }
|
62 | |
63 | |
64 | |
65 | // Subroutinen
|
66 | |
67 | // Zeichenkette ausgeben
|
68 | void Text( char *zeiger) |
69 | {
|
70 | // zunächst den Beginn einer Millisekunden Periode abwarten
|
71 | Timeout = 1; // Merker für "1ms vorbei" zurücksetzen |
72 | Highbit(); // kein IR, bis eine neue Millisekunde beginnt |
73 | |
74 | // Start der Ausgabe
|
75 | Zeichen_senden (0x00); // Steuerzeichen |
76 | while(*zeiger != 0) {Zeichen_senden (*zeiger++);} // Zeichenkette Zeichenweise senden |
77 | Zeichen_senden (0x03); // Steuerzeichen 3 Fade out Fade in |
78 | Zeichen_senden (0x05); // Steuerzeichen |
79 | }
|
80 | |
81 | |
82 | void Zeichen_senden (unsigned char z) |
83 | {
|
84 | for (unsigned char i = 8; i > 0; i--) // 8 mal das MSB auf "0" oder "1" prüfen, ausgeben und einmal linksschieben |
85 | {
|
86 | if (z & (1 << 7)) |
87 | Highbit(); // MSB war eine "1" => 1ms lang kein IR Signal |
88 | else
|
89 | Lowbit(); // MSB war eine "0" => 1ms lang IR-Burst mit 38kHz |
90 | |
91 | z <<= 1; // Datenbyte einmal linksschieben und sich selbst zuweisen |
92 | }
|
93 | }
|
94 | |
95 | |
96 | void Lowbit (void) // solange IR-Pulse 10µs high / 16µs low bis T0 überläuft |
97 | {
|
98 | |
99 | // IR Pulse von 10µsPuls / 16µsPause ausgeben,
|
100 | while (Timeout) |
101 | {
|
102 | PORTB |= (1 << Tx); // Tx Pin high |
103 | asm volatile ("nop"); |
104 | asm volatile ("nop"); |
105 | asm volatile ("nop"); |
106 | asm volatile ("nop"); |
107 | asm volatile ("nop"); |
108 | asm volatile ("nop"); |
109 | asm volatile ("nop"); |
110 | asm volatile ("nop"); |
111 | PORTB &= ~(1 << Tx); // Tx Pin low |
112 | asm volatile ("nop"); |
113 | asm volatile ("nop"); |
114 | asm volatile ("nop"); |
115 | asm volatile ("nop"); |
116 | asm volatile ("nop"); |
117 | asm volatile ("nop"); |
118 | asm volatile ("nop"); |
119 | asm volatile ("nop"); |
120 | asm volatile ("nop"); |
121 | }
|
122 | Timeout = 1; // Merker für "1ms vorbei" zurücksetzen |
123 | }
|
124 | |
125 | |
126 | void Highbit (void) // 1ms kein IR Signal |
127 | {
|
128 | while (Timeout) // bis T0 überläuft |
129 | {
|
130 | PORTB &= ~(1 << Tx); // Tx Pin low |
131 | }
|
132 | |
133 | Timeout = 1; // Merker für "1ms vorbei" zurücksetzen |
134 | }
|
an meinem Controllerboard habe ich noch eine weitere dreiadrige Leitung für ein Funkmodul, damit ich dem Globe auch Texte schicken kann. Den Code dafür müsste ich aber erst noch schreiben.
Hallo Markus, hab Dir ne Nachricht geschickt. Mit freundlichen Grüßen Christian
Trotz daß ich dank Stoerpeak wieder "Blut geleckt" habe hat das Teil einen neuen Besitzer gefunden. Viel Spaß damit.
Markus B. schrieb: > Trotz daß ich dank Stoerpeak wieder "Blut geleckt" habe hat das Teil > einen neuen Besitzer gefunden. Hallo Markus, willst du meinen Infoglobe haben? :-) oder braucht ihn sonst jemand? Bei mir liegt er nur rum. Gruß Stoerpeak
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.