KR-500
10.07.2011, 01:48
Hallo zusammen,
wie der Titel vielleicht schon sagt will ich euch meinen selbstgebauten Funkwecker vorstellen. Der Funkwecker besitzt ein Graphic LCD und eine SD-Card von der aus Musikabgespielt werden kann. Als besonderes Gimmick habe ich dem Funkwecker zum Bedienen ein Click Wheel verpasst (http://en.wikipedia.org/wiki/IPod_click_wheel). Dadurch kann man den Wecker recht komfortabel bedienen. Hier: http://www.youtube.com/watch?v=mM28b5A9JFM ist ein kleines Video von dem Wecker, leider ist meine Kamera nicht so doll desewegen kann man eventuell nicht alles erkennen was auf dem Display ist. Ich werde den Wecker einfach mal alle Module des Weckers beschreiben, dazu gibt es erst mal zwei Bilder zur Übersicht.
19295 19296
SD-Card
Die SD-Card wird über ein Widerstandsnetzwerk an den Mikrokontroller angeschlossen, so wie es auf der Seite von Ulrich Radig beschrieben ist. Im Programm habe ich die Low-Level Routinen zur Ansteuerung der SD-Card benutzt. Dann habe ich mir noch eine Funktion geschrieben, die nach einer Datei sucht und deren Adresse und Größe zurück gibt. Später werden dann die Daten von der SD-Card direkt zur Ausgabe weitergegeben, deswegen braucht man auch keine 512 Byte großen Arrays.
Sound
Zur Soundausgabe verwende ich zwei Timer, einer der eine sehr schnelle 8-Bit PWM erzeugt, dieser wird als DA-Wandler benutzt und dann noch einen zweiten Timer, der 16000mal in der Sekunde einen Interrupt auslöst. Damit kommt man dann auf eine Samplerate von 16kHz mit der Bittiefe 8. Da der kleine Mikrokontroller keine MP3s dekodieren kann und mir hardware decoder zu teuer waren bin ich auf .wave files ausgewichen, wenn diese im PCM-Format formatiert sind, kann man die Sounddaten direkt ausgeben.
Graphic LCD
Das Graphic LCD ist ein DG-12232 von Pollin, das ist eigentlich sehr Komfortabel anzusteuern mit einem AVR, einziger Nachteil ist das das LCD eine negative Kontrastspannung braucht, diese erzeuge ich indem ich einen MAX232 ein wenig zweckentfremde. Eigentlich wollte ich eine Ladungspumpe realisieren aber das wollte nicht so richtig klappen.
Um Bitmaps auf das GLCD zu bekommen habe ich ein Excel-File gemacht mit dem man jeden Pixel setzten und löschen kann. Gleichzeitig wird dann in einer Tabelle das ganze als Array für den AVR ausgegebn, so dass man einfach mit Copy & Paste die Bitmap ins Projekt aufnehmen kann. Wer intresse an dem Excel Dokument hat kann sich bei mir melden.
Wetterstation
Die Wetterstation beinhaltet einen Regensensor und zwei Temperatursensoren, einen für Innen und einen für Außen. Die Temperatursensoren sind einfache PTCs, die in Reihe zu einem Widerstand geschaltet sind, mit anderen Worten gesagt habe ich also einen Spannungsteiler aufgebaut. Der Regensensor ist eine einfache Darlingtonschaltung, die den Strom zwischen zwei Messfühlern verstärkt, dies wird dann von dem µc eingelesen.
DCF77
Zum Empfang des Zeitsignals habe ich Anfangs das Pollin DCF77 Modul verwendet, das hat eigentlich ganz gut geklappt allerdings war mir das Ganze zu instabil, da schon bei der kleinsten Berührung der Empfang weg war. Deswegen habe ich mir das DCF77 Modul von Conrad zugelegt. Hier muss ich dann mal sagen, dass wenn jemand das selbe vorhat wie ich derjenige auf jeden Fall die 5Euro mehr für das Conrad Modul ausgeben sollte, weil man damit einfach mehr Freude hat.
Zur Software kann man Sagen, dass ich einen Externen Interrupt verwende und einen Timer. Der Timer löst einmal in der Sekunde einen Interrupt aus und detektiert so das Synchronisationsbit, während der Externe Interrupt benutzt wird um jeweils die steigende und fallende Flanke zu detektieren und so die Länge eines Impulses zu messen.
Click Wheel
Das Click Wheel habe ich für 8 Euro bei Ebay erstanden und ist von dem Ipod Nano der 3.Generation. Da Apple leider keine Datenblätter zur Verfügung stellt musste ich einen kleinen Logic Analyser bauen, der das Protokoll analysiert, der LA ist sehr einfach gehalten, er fängt einfach mit dem ersten Impuls auf der Clock Leitung an aufzuzeichnen und alles in einem großen Array zu Speichern, später sendet er dann die Daten per RS232 an den PC. Am PC empfange ich die Daten mit HTerm und kopiere sie dann in Excel wo ich das ganze schön darstellen kann. Das sieht dann in etwa so aus:
19297
Letzendlich braucht man nur einen Externen Interrupt, der bei der steigenden Flanke auf der Clock-Leitung auslöst und dann die Datenleitung einlist. Das Click Wheel sendet immer 32-Bit lange Datensätze, wobei das erste und letzte Byte immer gleich sind. Im zweiten Byte steht die aktuelle Position des Fingers auf dem Rad und im dritten stehen die Buttons die gdrückt bzw. losgelassen wurden. Das schöne an dem Click Wheel ist, dass es kapzitiv Funktioniert und deswegen auch durch 1mm Sperrholz funktioniert (siehe Video).Wenn besonderes Interesse an dem Click Wheel besteht mache ich gerne noch einen neuen Thread auf, indem ich noch ein bisschen mehr darüber erzähle.
So das wars jetzt erst mal von mir, hoffe ich habe nichts vergessen (ist ja auch schon spät ;)), würde mich über Fragen, Kritik und Anregungen freuen.
KR-500
wie der Titel vielleicht schon sagt will ich euch meinen selbstgebauten Funkwecker vorstellen. Der Funkwecker besitzt ein Graphic LCD und eine SD-Card von der aus Musikabgespielt werden kann. Als besonderes Gimmick habe ich dem Funkwecker zum Bedienen ein Click Wheel verpasst (http://en.wikipedia.org/wiki/IPod_click_wheel). Dadurch kann man den Wecker recht komfortabel bedienen. Hier: http://www.youtube.com/watch?v=mM28b5A9JFM ist ein kleines Video von dem Wecker, leider ist meine Kamera nicht so doll desewegen kann man eventuell nicht alles erkennen was auf dem Display ist. Ich werde den Wecker einfach mal alle Module des Weckers beschreiben, dazu gibt es erst mal zwei Bilder zur Übersicht.
19295 19296
SD-Card
Die SD-Card wird über ein Widerstandsnetzwerk an den Mikrokontroller angeschlossen, so wie es auf der Seite von Ulrich Radig beschrieben ist. Im Programm habe ich die Low-Level Routinen zur Ansteuerung der SD-Card benutzt. Dann habe ich mir noch eine Funktion geschrieben, die nach einer Datei sucht und deren Adresse und Größe zurück gibt. Später werden dann die Daten von der SD-Card direkt zur Ausgabe weitergegeben, deswegen braucht man auch keine 512 Byte großen Arrays.
Sound
Zur Soundausgabe verwende ich zwei Timer, einer der eine sehr schnelle 8-Bit PWM erzeugt, dieser wird als DA-Wandler benutzt und dann noch einen zweiten Timer, der 16000mal in der Sekunde einen Interrupt auslöst. Damit kommt man dann auf eine Samplerate von 16kHz mit der Bittiefe 8. Da der kleine Mikrokontroller keine MP3s dekodieren kann und mir hardware decoder zu teuer waren bin ich auf .wave files ausgewichen, wenn diese im PCM-Format formatiert sind, kann man die Sounddaten direkt ausgeben.
Graphic LCD
Das Graphic LCD ist ein DG-12232 von Pollin, das ist eigentlich sehr Komfortabel anzusteuern mit einem AVR, einziger Nachteil ist das das LCD eine negative Kontrastspannung braucht, diese erzeuge ich indem ich einen MAX232 ein wenig zweckentfremde. Eigentlich wollte ich eine Ladungspumpe realisieren aber das wollte nicht so richtig klappen.
Um Bitmaps auf das GLCD zu bekommen habe ich ein Excel-File gemacht mit dem man jeden Pixel setzten und löschen kann. Gleichzeitig wird dann in einer Tabelle das ganze als Array für den AVR ausgegebn, so dass man einfach mit Copy & Paste die Bitmap ins Projekt aufnehmen kann. Wer intresse an dem Excel Dokument hat kann sich bei mir melden.
Wetterstation
Die Wetterstation beinhaltet einen Regensensor und zwei Temperatursensoren, einen für Innen und einen für Außen. Die Temperatursensoren sind einfache PTCs, die in Reihe zu einem Widerstand geschaltet sind, mit anderen Worten gesagt habe ich also einen Spannungsteiler aufgebaut. Der Regensensor ist eine einfache Darlingtonschaltung, die den Strom zwischen zwei Messfühlern verstärkt, dies wird dann von dem µc eingelesen.
DCF77
Zum Empfang des Zeitsignals habe ich Anfangs das Pollin DCF77 Modul verwendet, das hat eigentlich ganz gut geklappt allerdings war mir das Ganze zu instabil, da schon bei der kleinsten Berührung der Empfang weg war. Deswegen habe ich mir das DCF77 Modul von Conrad zugelegt. Hier muss ich dann mal sagen, dass wenn jemand das selbe vorhat wie ich derjenige auf jeden Fall die 5Euro mehr für das Conrad Modul ausgeben sollte, weil man damit einfach mehr Freude hat.
Zur Software kann man Sagen, dass ich einen Externen Interrupt verwende und einen Timer. Der Timer löst einmal in der Sekunde einen Interrupt aus und detektiert so das Synchronisationsbit, während der Externe Interrupt benutzt wird um jeweils die steigende und fallende Flanke zu detektieren und so die Länge eines Impulses zu messen.
Click Wheel
Das Click Wheel habe ich für 8 Euro bei Ebay erstanden und ist von dem Ipod Nano der 3.Generation. Da Apple leider keine Datenblätter zur Verfügung stellt musste ich einen kleinen Logic Analyser bauen, der das Protokoll analysiert, der LA ist sehr einfach gehalten, er fängt einfach mit dem ersten Impuls auf der Clock Leitung an aufzuzeichnen und alles in einem großen Array zu Speichern, später sendet er dann die Daten per RS232 an den PC. Am PC empfange ich die Daten mit HTerm und kopiere sie dann in Excel wo ich das ganze schön darstellen kann. Das sieht dann in etwa so aus:
19297
Letzendlich braucht man nur einen Externen Interrupt, der bei der steigenden Flanke auf der Clock-Leitung auslöst und dann die Datenleitung einlist. Das Click Wheel sendet immer 32-Bit lange Datensätze, wobei das erste und letzte Byte immer gleich sind. Im zweiten Byte steht die aktuelle Position des Fingers auf dem Rad und im dritten stehen die Buttons die gdrückt bzw. losgelassen wurden. Das schöne an dem Click Wheel ist, dass es kapzitiv Funktioniert und deswegen auch durch 1mm Sperrholz funktioniert (siehe Video).Wenn besonderes Interesse an dem Click Wheel besteht mache ich gerne noch einen neuen Thread auf, indem ich noch ein bisschen mehr darüber erzähle.
So das wars jetzt erst mal von mir, hoffe ich habe nichts vergessen (ist ja auch schon spät ;)), würde mich über Fragen, Kritik und Anregungen freuen.
KR-500