|
Projekte
Die Lego-Ampel
Es regnet ununterbrochen, was kann man mit einem Atmel Tiny15 anfangen....
Das sind alles Überlegungen, die direkt zur Antwort führen: "Kinderspielzeug bauen".
Die Firmware der Ampel schaltet nach dem Einschalten von Rot über Rot-Gelb nach Grün.
Die folgenden Phasen (wieder nach Rot bzw. dann zurück nach Grün) werden erst nach Betätigen des IRQ-Tasters durchlaufen.
Weil die Kids gerne mal vergessen das Spielzeug auszuschalten, wird die Ampel ca. 5 Minuten nach dem Einschalten,
bzw. der letzten Betätigung der Taste, in den Stromsparmodus versetzt. Die Stromaufnahme liegt dann bei ca. 2 µA.
Die Ampel kann dann durch Betätigen des Tasters wieder zum Leben erweckt werden.
Die fertige Ampel von vorne
Die Rückseite der fertigen Ampel
WARNUNG: wer seine Legosteine zerschneidet, tut dies auf seine eigene Veranwortung hin,
nicht zuletzt auch wegen der Verletzungsgefahr beim Bearbeiten (nur da mit das klar ist).
Zum eigentlichen Aufbau:
1. vorbereiten der Legosteine:
Benotigt werden 4 Steine (2x2). Beim obersten Stein wird nur der Mittelpfosten (das Runde innendrin) entfernt.
Ich habe den groben Teil zuerst mit einem kleinen Teppich-Messer entfernt und den Rest mit einem Dremel bei nidriger Drehzahl weggefräst.
die darunterliegenden 3 Steine habe ich total entkernt, so dass nur die Aussenwände stehen bleiben.
2. Kleben Teil 1 und Bohren
Die obersten 3 Steine werden jetzt mit Modellbau-Kleber zusammengeklebt (am besten nicht alle auf einmal, sonder der Reihe nach, und zwischendurch aushärten lassen).
Wenn alle 3 Steine schön fest verklebt sind, werden auf der Vorderseite 3 5mm Löcher für die LEDs gebohrt.
Bohren geht bei den Plastiksteinen sehr gut mit der Hand (ohne Maschine), da der Kunststoff sehr weich ist.
Maschinelle Bearbeitung ist da eher problematisch, weil durch die Reibungswärme der Kunststoff leicht verschmiert.
3. Löten
Die Leuchtdioden werden möglichst so kurz abgeschnitten, dass man so eben noch Draht und Widerstand daran löten kann.
Was dann auch schon der nächste Schritt ist: Widerstände und Draht an LEDs anlöten. Als Draht habe ich sehr dünnen, lackieren
Kupferdraht genommen, dann kann man die Drähte etwas länger lassen und hat hinterher dennoch keine Probleme alles in
den Legosteinen unterzubringen.
Die geräumige Legosteinsäule bietet ausreichend Platz, um dem Atmel sogar noch einen IC-Sockel zu spendieren.
Am Sockel werden die Enden der LED-Drähte und der Pull-Up-Widerstand für die Reset-Leitung angelötet.
Man muß das alles möglichst dicht am IC-Sockel anlöten, sonst passt der "Würfel" hinterher doch nicht in die Ampel.
Jetzt wäre auch ein guter Zeitpnkt, die Litze für die Spannungs-Versorgung anzulöten.
4. IRQ-Taster
Für den Taster habe ich 2 kleine Löcher entsprechend der Anschluß-Pins in die Rückseite des 3. Steins gebohrt.
Den Taster mit Drähten versehen, durchstecken (noch nicht festkleben) und mit dem IC-Sockel verlöten.
5. Alles zusammenkleben
Tip: Vor dem entgültigen verkleben aller Teile sollte man alles erst einmal provisorisch zusammenbauen.
Die LEDs können relativ einfach mit einer Pinzette in ihre entgültige Position eingesetzt werden. Ich habe mich dann für Heißkleber entschieden, um die LEDs nach dem
Einbau von innen zu fixieren. Der Taster kann auch von AUßen mit heißkleber befestigt werden.
Jetzt kann auch der unterste Stein (oder was davon übrig ist) angeklebt werden. Wenn der ausgehärtet ist,
kann man den IC-Sockel samt Atmel dort einkleben (vielleicht doch noch ein letzter Test?).
Der Atmel muß relativ weit nach "oben" geschoben werden, damit man ggf. noch darunter platz hat, um z.B. einen ausgeschnittenen Fuß
aus den geschändeten Steinchen darunter zu kleben (so wie bei meiner Version). Man kann das untere Ende auch offen lassen, braucht dann aber noch
Platz für die Noppen der Steine, auf denen die Ampel später zu stehen kommt.
... und schon ist man fertig. Als Spannungsquelle kann man eine Batterie-Dose (3x AAA) verwenden,
die Schaltung braucht ca. 20 mA im Betrieb, je nach dem, welceh LEDs man verwendet, und welchen Vorwiderstand.
Hier noch ein Schaltplan: schema.png
und die fertige Firmware: Lego_Ampel.hex
oder die Firmware as Quellcode: Lego_Ampel.asm
Bitte schreibt mir eine Mail (mit Bild?) von euren Nachbauten, bzw. Änderungen.
Ich hatte schon mal darüber nachgedacht, die Ampel mit einer IR-Reflex-Lichtschranke zu triggern,
so dass man nicht mehr auf die Taste drücken muß. Leider sind Induktions-Schleifen nicht wirklich praktikabel.
Version 2 wäre z.B. ein zentrales Modul für 4 Ampeln mit Fußgänger-Ampel ....
Viel Spaß beim selber bauen.
Zurück zum Anfang der Seite
4x16-Zeichen LCD an USB
Im wesentlichen beruht die Firmware auf dem Source von ObDEV und
den LCD-Quellen von Peter Fleury (Danke dafür).
Zentrales Bauteil ist ein dezent übertakteter Atmel AT90S2313 (davon hatte ich noch so viele übrig).
Man findet bei ObDEV zwar ein Projekt für den AT Mega8, aber der Code passt nicht in einen AT90S2313.
Das andere Projekt bei ObDEV für einen 2313 habe ich einfach nicht richtig kompiliert bekommen... also selber machen.
Der Code ist lt. WinAVR (GCC) hinterher genau 2048 Bytes groß/klein, der Atmel ist damit ziemlich gut gefüllt.
Damit sind dann Funktionserweiterungen in der Firmware nicht wirklich möglich. Ansonsten kann ich nur den Einsatz eines größeren Atmels anraten.
Eine Platine dazu habe ich dann selber geätzt, wie man etwas weiter unten genauer sehen kann.
Hier das Bild der fertigen Platine:
Hinweis: die Hardware wird nur erkannt, falls man das LCD auch angeschlossen hat...
Hier gibt es die Firmware mit Eagle-Schema als download
Und hier ein kleines Delphi-Programm zum Ansteuern der Anzeigedownload
Noch ein Hinweis zur Firmware: man kann mehrere Anzeigen gleichzeitig betreiben, sofern man allen Geräten eine
andere Serien-Nummer mitgibt, dann sind 256 Devices mit dieser Firmware möglich. Das Delphi-Programm zeigt, wie
man dann auf unterschiedliche LCDs zugreifen kann.
Als LCD habe ich ein Gerät gefunden, das von einem KS0066F00 als Controller angetrieben wird. Die Pin-Belegung am Pfostenstecker
kann der Datei lcd.h entnommen werden. Die Anzeige wird im 4-Bit-Moduls angesteuert (für mehr fehlten mir irgendwie die erforderliche
Anzahl Pins am Atmel).
Das Layout ist absolut minimalistisch, weniger Bauteile geht einfach nicht (abgesehen vom Pull-Up für den Reset).
Wer es "besser" haben will, muß sich an die üblichen Schaltungen halten, die mit 3.3V arbeiten und Regler, oder Zehner-Dioden verbauen und zusätzliche 68Ohm Widerstände
an die Busleitungen klemmen. Bei mir geht es auch problemlos ohne diese Bauteile.
Zurück zum Anfang der Seite
Platinen ätzen leicht gemacht
... oder: gedruckte Schaltung wörtlichen Sinne.
Für den USB-LCD-Adapter mit dem AT90S2313 habe ich mir die Mühe gemacht, eine Platine zu Ätzen.
So fing es an: hier ist ein guter Start, bzw. der Link, wie ich darauf gekommen bin.
Wenn man googelt, wird man noch einiges mehr zu diesem Thema finden. Hier ist beschrieben, wie ich es geschafft habe, und was nicht funktioniert hat.
Erster Test (classic Methode): Platine + Reichelt-Katalogseite+Bügeleisen
Im Prinzip war schon zu erkennen, das wird funktionieren.
Anstelle Aceton empfehle ich aber ein Teppich-Messer zum entfernen des Toners von der Platine, bzw. 1000er Schleif-Papier.
Das ist irgendwie gesünder.... so auf Dauer
Zweiter Test (Hochglanz-Katalog Methode): Platine + Hochglanz-Katalogseite(Equip) + Bügeleisen
Im wesentlichen ist das Papier sehr viel fester (ca. 180g/m²) und dadurch für den Drucker etwas zuverlässiger
zu verarbeiten. Die Reichelt-Seiten werden von meinem Kyocera FS1200 zwar richtig eingezogen, aber zerknittern leicht.
Problem bei den Equip-Katalog-Seiten ist das Problem aber dennoch: je nach dem die lange/warm man bügelt, wird auch der
Katalog-Hintergrund mit auf der Platine verewigt --> also wieder abschleifen/polieren.
Dritter Versuch (Foto-Lammi): Laser-Fotopapier + Laminator (Rexel LS240
Beide Zutaten gab es bei Staples im Angebot (Lammi für ca. 25 Euro).
WARNUNG: wer das nachbaut, tut dies auf eigene Verwantwortung. NIEMALS DEN LAMINATOR UNBEAUFSICHTIGT STEHEN LASSEN(!)
(Man sollte schon wissen ., was man da eigentlich macht ... 230V sind im Spiel !!)
Nachdem das klar ist, habe ich den Temperatur-Schalter mit einem Druckschalter überbrückt und die Temperatursicherung(152°C)
einfach abgeschraubt (aber Kabel nicht abkneifen) und in eine kühlere Zone verlegt.
Obacht (!): man kann am Temperaturschlater nichts anlöten, weil die Heizung hinterher ca. 200°C heiß werden soll.
Wer sich traut, kann das Gerät dann nach dem Umbau wieder zusammensetzen, das obere Gehäuse-Teil wird jedoch über Kurz oder Lang schmelzen (!)
auf den beheizten Metall-Teil tropfen und womöglich entzünden. Also: VORSICHT!
Man kann den Lammi nun einschalten (sofern man sich noch traut), nach etwa 10 Minuten sind die originalen 110°C erreicht, wenn die Grüne LED anfängt zu leuchten hat man den Temperaturschalter nicht
überbrückt...
Nach ca. 20 Minuten ist der Lammi zum Platinen-Büglen heiß genug.
In der Zwischenzeit sollte man seine Schaltung auf ein Laser-Foto-Papier ausgedruckt haben (mit Eagle braucht man den Ausdruck nicht spielgen!).
Die Kupfer-Seite der Platine reinigen, mit 800er/1000er Schleif-Papier ging es ganz gut.
Dann Platine und Papier mit der Pinzette (Kupfer wird schnell heiß >200°C) von jeder Seite 2x durch den Lamitator
laufenlassen.
Dieses Gerät hat beim Einziehen von dickeren Platinen seine Probleme, da muß man schon mal etwas nachhelfen.
Laminator ausschalten nicht vergessen und das Papier unter heißem Wasser einweichen und direkt abziehen.
Wer will kann auch gerne Spüli und andere chemische Keulen zu Hilfe herbeizaubern ist aber eigentlich nicht nötig,
wenn der Toner richtíg fest auf der Platine haftet. Wenn die Leiterbahnen hinterher beim Trocknen etwas heller sind (vom Papier) ist das
meiner Erfahrung nach nicht weiter tragisch. Nach dem Ätzen sah das Ergebnis super aus!.
Danach einfach mit dem Lieblings-Ätz-Verfahren Ätzen und anschließend den Rest-Toner auf den Leiterbahnen mit Schmirgel-Papier vorsichtig entfernen.
... fertig, ohne Belichten und Entwickeln...
Die Bestückungsseite kann man auf die gleiche Weise bedrucken (Ausdruck natürlich vorher spiegeln). Das hält vielleicht nicht für die Ewigkeit, aber zum Bestücken reicht das allemal.
Zum Aufbüglen der Leiterbahnen eignet sich auf keinen Fall Laser-Folie, der Toner weigert sich einfach beim Büglen/Laminieren die Folie wieder zu verlassen.
Auf jeden Fall wünsche ich allen viel Erfolg beim "Platinen-Selber-Büglen"
Zurück zum Anfang der Seite
DeVis: WinAmp5-Plugin mit USB-Anschluss
Das Plugin steuert 2x8 LEDs der Hardware an. Zur Installation muss die DLL aus dem Delphi-Ordner
einfach in das Winamp-Plugin-Verzeichnis kopiert werden (wahrscheinlich funktioniert das nur mit WinAmp 5). Im WinAmp
wählt man zuerst das Plugin aus (DeVis-Plugin), man findet das unter "Visualisierungen->Plugin auswählen".
Dort wählt man das Plugin "DeVis" aus und startet den Konfigurations-Dialog.
Sofern man nicht vergessen hat die Hardware mit den USB-Bus zu verbinden, kann man dort alle USB-Geräte erkennen
und dort eines Geräte auswählen, die mit dem Plugin zusammenarbeiten.
Die Parameter ändern die Schwellwerte und Frequenzen die für die Ansteuerung der LEDs ausgewertet werden.
Wenn man damit fertig ist, kann das Plugin gestartet werden. Bereits beim Verbinden mit dem USB-Bus fängt die Hardware an zu arbeiten.
Sofern ca. 1 Sekunde lang kein Signal vom Plugin gekommen ist, wird der Atmel Prozessor vor Langeweile seine eigene Show beginnen.
Was dort ausgegeben wird, ist im EEProm des Atmel hinterlegt.
Sobald im WinAmp die Mucke wieder loslegt, leuchten die LEDs der Prozessorplatine im Takt des Frequenz-Spektrums und die LEDs der Shuttle-Platine
im "Bubble-Mode" auf (sorry, mir fällt nix bessers ein).
Obacht!: je nachdem welche vorwiderstände man für die LEDs verwendet und welche LEDs zum Einsatz kommen, muss ich dringend empfehlen,
die Hardware über ein eigenes Netzteil zu versorgen. Ansonsten läuft man Gefahr, seinen Rechner vollends zu zerstören.!
Aus eigener Erfahrung rate ich dringend dazu, die Schaltung zuerst an einem "self powered" USB-Hub zu testen, ohne den Rechner anzuschließen.
Dabei zerstört man maximal seinen USB-Hub! Die Schaltung verbraucht ca. 400mA, sofern alle LEDS gleichzeitig leuchten (Ein USB-Port schafft normalerweise(!) 500mA.
Falls man das Gerät (versehentlich) mal vom Rechner trennen sollte,
wird das Plugin die Hardware automatisch nach der eingestellten Hardware suchen. Und den Betrieb wieder aufnehmen.
Hier ist alles zum Download.
Zurück zum Anfang der Seite
|