Sonntag, 25. September 2011

AVR und USB


Ich wollte schon seit längerem mal einen AVR per USB an den PC anbinden um diese USB-RS232 Adapter zu umgehen. Von Objectiv Development (http://www.obdev.at) gibt es eine kleine Library, die genau das ermöglicht. Zunächst hab ich mir mal den Easylogger aus den Refernzprojekten aufgebaut, einfach mal um zu sehen, ob das überhaupt praktikabel ist. Da das ganz gut funktioniert hat, habe ich direkt noch einen ISP Programmieradapter mit USB-Anschluss gebaut.
Die Detailinfos sind auf http://www.simpleavr.com/avr/vusbtiny zu finden. Das Ergbnis ist auf den Bildern zu sehen. Der Datenlogger war nicht mehr kleiner aufzubauen. Bei dem ISP-Adapter hätte ich noch eine Lochreihe sparen können. Das mache ich dann beim nächsten.

Samstag, 17. September 2011

Platine mit RFM12 Funkmodul und Atmega8 für die Heizung

Mit dieser Platine werde ich versuchen, die Heizung in der Wohnung zu schalten. Das Raumgerät hat einen einfachen Eingang über den, man mit einem Relais zwischen Normal- und Absenkbetrieb umschalten kann. Da ich leider kein Kabel in der Wohnung legen kann, habe ich eine Platine mit einem Atmega8, Relais und einem RFM12 Funkmodul gebaut. Als Firmware habe ich Ethersex draufgepackt und kann das Relais jetzt mit einfachen UDP-Paketen von einem beliebigen Rechner, Smartphone, Webserver… ein- oder ausschalten. Der Status lässt sich ebenfalls abfragen.


Eine Idee, die ich gerne umsetzen würde, ist die Kopplung mit dem Wecker in meinem Android Telefon. So könnte die Heizung am Morgen immer schon automatisch 15 Minuten bevor der Wecker klingelt angehen und im Bad wäre es schon warm. Mal schauen was das SDK so hergibt. Des Weiteren würden sich relativ komplexe Zeitprogramme recht einfach realisieren lassen. Das Steuergerät alleine kann nur Tagesprogramme schalten und damit keinerlei Ausnahmen wie Wochenenden oder Feiertage.

Montag, 5. September 2011

LED-Uhr

Letztes Jahr haben mir meine Geschwister zu Weihnachten eine LED Uhr geschenkt (natürlich als Bausatz). Das ganze besteht aus 72 LEDs, einer runden Platine, 11x 74HC138 Decoder Bausteinen und einem Atmega AT90irgendwas Controller sowie etwas Kleinkram (2 Taster, Pufferkondenstaoren, 16Mhz Quartz …). Leider haben mir die Anzeigesequenzen, die in dem Controller programmiert waren, nicht besonders gut gefallen. Ich wollte beispielsweise eine Sekundenanzige haben. Da der AVR vorprogrammiert war, der Quellcode nicht verfügbar und die Lockbits gesetzt waren, konnte ich das Programm nicht so einfach ändern.  Irgendwann ist mir in meiner Bauteilsammlung dann ein Atmega8515 in die Hände gefallen und wie der Zufall es will, ist dieser Pinkompatibel mit dem AT90irgendwas.
Die Software war dann recht schnell geschrieben. Basis ist ein Timerinterrupt, der eine Variable hochzählt und bei einem bestimmten Wert (nach genau einer Sekunde) die Sekunden um eins erhöht. Die Ausgabe der Stunden, Minuten und Sekunden erfolgt in der main-Schleife.
Kalibriert habe ich das ganze mit meinem Logikanalyzer.

USB-Steckdosenleiste

Heute habe ich eine Steckdosenleiste mit einem USB-Anschluss und Relais versehen. Hintergrund des Ganzen: Wenn ich nun den PC einschalte, werden die ganzen zugehörigen Geräte wie Aktivlautsprecher, Monitore und Drucker mit eingeschaltet. Wenn der PC ausgeschaltet ist werden, damit alle Geräte vom Netz getrennt.

Die beiden hinteren Steckdosen auf dem Bild haben Dauerstrom, dort ist der PC angeschlossen, die 5 anderen sind geschaltet.
Es gibt momentan keinen Controller auf der Platine. Das Relais ist einfach an die Versorgungsspannung des USB-Ports angeschlossen. Den Transistor habe ich vorsorglich schonmal eingesetzt, falls ich doch noch einen Attiny 45 mit auf die Platine setzen will. Platz ist noch genug.