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.
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.
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.
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.