Dez
29
2009

Ein Weihnachtsgeschenk 2009

Ich hatte mir dieses Jahr eigentlich vorgenommen, zu Weihnachten als Geschenk eine selbstgebaute “Pulsanzeige” zu bauen, deren Schaltung dann noch in einem dekorativen Gehäuse verbaut werden sollte.  Das “Praktikum Elektrotechnik 2″, an dem ich dieses Semester  teilnehme, befasst sich im vierten Versuch mit Funktionsgeneratoren auf Basis von Operationsverstärkern und Grundschaltungen derselbigen. Jedenfalls brachte mich die letzte Aufgabenstellung der Versuchsdurchführung, nämlich das Verstärken des Pulssignals aus einer Fingerklammer, auf die Idee so etwas mal zuhause nachzubauen und es dann noch “Benutzerkompatibel” für die erwähnte Geschenkidee zu machen. Der Benutzer sollte dann einen Finger in eine Klammer stecken, die seinen Puls über das optische Verfahren abnimmt und die Operationsverstärkerschaltung betreibt dann eine dekorative Lampe die so synchron mit seinem Puls aufleuchtet.

Leider hat es mit der Zeit nicht mehr hingehauen, die Schaltung verschenkfertig zu machen. Es gab ein paar batteriespezifische Probleme und so weiter, von daher habe ich mich nach einem Alternativgeschenk umgesehen.

Bei der Suche bin ich auf eine Reihe Klein-Bastelprojekte gestoßen, die aufeinander aufbauen und sich auf interessantem Wege jeweils verbessern:

Phototransistorschaltung von www.evilmadscientist.com (Bild stammt von dort)

Zunächst ist auf www.evilmadscientist.com eine Bastelei aufgetaucht, die auf sehr minimalistischem Wege LEDs nur in dunkler Umgebung leuchten lässt (Link zum Artikel). Ein anderer Bastler hat auf www.instructables.com veröffentlicht, wie er eine kleine LED-Schaltung insofern mit einem Mikrocontroller erweitert hat, dass sie danach flackert wie eine Kerze (Link zur Anleitung).

Ein weiterer Hobbybastler hat dann auf www.hackaday.com veröffentlicht, wie er diese beiden Ideen kombiniert hat, um LEDs nur im Dunklen flackern zu lassen (Link zum Artikel). Die Schaltung bietet auf diesem Stand einen Mikrocontroller, der sich um das Flackern kümmert und einen Fototransistor, der den kompletten Mikrocontroller abschaltet, wenn das Umgebungslicht zu hell ist.

Fototransistor mit Mikrocontroller verschaltet auf www.spritesmod.com (Bild stammt von dort)

Diese Schaltung wiederum hat der Webmaster von www.spritesmods.com aufgegriffen (Link zum Artikel), weil ihm aufgefallen ist, dass die Schaltung auch mit viel weniger Bauteilen funktioniert, wenn man ein interessantes Detail von LEDs ausnutzt:

Wenn man Licht auf eine LED scheinen lässt, dann produziert sie eine Spannung an ihrer Sperrschicht, die in Sperrichtung abfällt. In diesem Moment kann man die LED wie eine kleine Stromquelle, parallel zu einem Kondensator geschaltet, betrachten.
Der Mikrocontroller nutzt diese Tatsache folgendermaßen aus: Er schaltet in gewissen Zeitintervallen die Beleuchtung ab, beschaltet eine LED hochohmig, damit sich eine Spannung anlegen kann, misst sie und entscheidet dann, ob die Lichter danach weiter leuchten sollen oder nicht. Ferner wird der Mikrocontroller nun nicht mehr ausgeschaltet, sondern legt sich einfach “schlafen” und wacht später für die nächste Messung wieder auf. Das ist immer noch extrem sparsam.

Schaltung, die ohne Phototransistor auskommt

Vereinfachte Schaltung von www.spritesmod.com (Bild stammt von dort)

Alex von www.tinkerlog.com hat diese Idee wiederum aufgegriffen und ihr mit einer künstlerisch anmutenden Freiform-Verlötung der Bauteile einen wundervollen Hauch von Eleganz und Ästhetik verpasst. (Link zum Artikel).

Weil mir die Idee so gut gefallen hat, habe ich mich schnell dazu entschieden, sie nachzubauen, zumal man sowas schön verschenken kann.

Allerdings bot die spritesmod.com-Version der Schaltung und Mikrocontroller-Software eine Möglichkeit, die Schwellhelligkeit, bei der die LEDs noch flackern sollen, einzustellen/zu kalibrieren. Die tinkerlog-Version hat darauf verzichtet, um Platz für ein anderes nettes Feature zu bieten: Wenn man den Mikrocontroller resettet, dann leuchtet jeweils eine andere Anzahl an LEDs, was wiederum sehr passend für die verschiedenen Adventswochen ist.

Die Version die ich nachgebaut habe, bot letzteres Feature nicht, zumal die Adventwochen sowieso schon vorbei waren und ich diese Kalibrierung nicht auslassen wollte, zumal der Benutzer meiner Ansicht nach entscheiden sollte, bei welcher Helligkeit er den Kranz schimmern sehen will.

Jedenfalls habe ich mich heute noch einmal hinter den Sourcecode geklemmt, um Helligkeitskalibrierung und Adventskerzenfunktion zu haben.

Das Flackern der Lichter wird  realisiert, indem einfach verschiedene LED-Helligkeiten die in einem Array gespeichert sind, schnell nacheinander auf den LEDs dargestellt werden. Die Werte sind allesamt möglichst zufällig gewählt, um sich dem praktisch zufälligen Flackern einer Kerzenflamme in den ebenso praktisch zufälligen Luftzügen, die man zuhause so hat, anzunähern.

Im Endeffekt lief es darauf hinaus, dass ich so viele Zufallszahlen aus dem Zufallszahlen-Array herausgelöscht habe, dass beide Features auf den Chip passen. Außerdem habe ich die im EEPROM gespeicherten Werte (Kerzen-Anzahl und gespeicherte Schwell-Helligkeit) in eine .eep Datei ausgelagert, die getrennt auf den Chip geflasht werden kann.

Ein Video zeigt ganz gut, dass es keinen deutlichen Unterschied macht, ob es ~150 oder ~250 Zufallswerte sind, die das Flackern erzeugen. Zwei Abschnitte des folgenden Videos sind mit zwei verschieden großen Zufallszahlen-Arrays gemacht. Um ehrlich zu sein, weiß ich selbst nicht mehr, welcher Abschnitt mit welcher Einstellung arbeitet:

Nun ja, besonders verwunderlich ist das nicht, zumal das Kerzenflackern ja schon mit zwei NE556-Bausteinen gut klappt.

Den Sourcecode inklusive dem angepassen Makefile gibt es hier: Download

Video vom fertigen Aufbau:

0 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , , , , , ,
Aug
28
2009

AVR-Programmierung unter OS X

atmelchipAtmel kümmert sich mit kostenloser Software zur komfortableren Entwicklung von Software für die hauseigenen Mikrocontroller ganz gut um seine Kunden. Wenn sie Windows benutzen.

AVR Studio (Homepage, für Windows) kann alles, was das Herz begehrt. Es ist eine Programmierumgebung für C- und Assembler-Programmierer, die zusätzlich das Hochladen und Debugging von Programmcode auf den Chip bietet. Außerdem ist ein Simulator mitgeliefert, der die Analyse des Chips mit dem man arbeitet, stark vereinfacht und veranschaulicht.

Abgesehen davon dass man, nach einer kurzen Phase der Enttäuschung darüber dass Kunden mit anderen Lieblingsbetriebssystemen nicht bedient werden, fast Neid empfindet, stellt sich nach etwas Recherche aber dann doch durchaus heraus, dass das kein Grund ist, auf Windows umzusatteln. Jeder Nicht-User von Windows hat schließlich seine guten Gründe.

Also um überhaupt erst einmal AVR-Mikrocontroller zu programmieren, braucht man Compiler, Bibliotheken, Header-Dateien, Assembler und das Tool zum Hochladen des Codes.

Toolchain

Fink-Nutzer mögen einfach die diversen AVR-Pakete installieren, das geht schnell und einfach. (Mit Paketnamen: avr-binutils, avr-gcc, avr-libc, avrdude). Ich gehe hier nicht weiter auf Fink ein, da diejenigen, die jetzt nicht wissen wie das geht oder was Fink überhaupt ist, sowieso ein paar mehr Seiten an Doku lesen müssten und da ich es selbst nicht so gemacht habe (Beispielsweise deswegen weil der Assembler den ich haben wollte meines Wissens nach nicht per Fink zu erhalten ist).

Objective Development hat ein sehr praktisches Paket herausgebracht: Das Crosspack bietet alle Tools die man braucht. Gleichermaßen für Intel-Macs wie PPC-Macs.

Jetzt steht man zwar noch ohne GUI-Tools da, aber per Konsole kann man schon losprogrammieren. Mit dem Lieblingstexteditor programmiert man drauf los, kompiliert mit “avr-gcc” oder assembliert mit “avra”, lädt das Kompilat mit “avrdude” hoch und mit selbigem Tool ändert man auch die FUSE-Werte. Das ist nicht unkomfortabel, wenn man sich mit Shellscripten und einem guten Texteditor ausrüstet. (Empfehlung: VIM – ist bereits vorinstalliert)

Allerdings fehlen noch Syntax-Highlightning, Code-Completion, Upload-Button, FUSE-Editor, Registerbrowser usw.:

Entwicklungsumgebung

Beim Crosspack sind bereits Xcode-Templates mitgeliefert, aber da ich jene nicht benutze, bleibt das nur nebenbei erwähnt.

Ich kann Eclipse wärmstens empfehlen: Es handelt sich um eine Entwicklungsumgebung, die – da Java-basiert – auf jedem Betriebssystem heimisch ist und Plugins für jede Programmiersprache und beinahe jedes Framework liefert. Sich an dieses sehr umfangreiche Programm zu gewöhnen ist eine gute Idee, da man sich damit nicht an ein Betriebssystem oder Framework oder ähnliches bindet. Die neueste Version für OS X hängt auch nicht mehr vom Carbon-Framework ab, sondern baut die Oberfläche endlich auf Cocoa auf, was viele Vorteile gebracht hat.

Um Eclipse den Umgang mit AVRs beizubringen, braucht man das entsprechende Plugin: AVR-Eclipse. Auf die Installation gehe ich nicht weiter ein, da sie nicht kompliziert ist und eine Anleitung bald ohnehin schnell veraltet sein kann. Das Wiki der Projektseite bietet eine gute Anleitung.

Der praktische Upload-Button!

Als nächstes bringt Eclipse allgemein natürlich den Syntax-Parser, die Code-Completion, Syntax-Highlightning, eine schöne Organisationsstruktur für Projekte, Debuggingmöglichkeiten, Symbolbrowser und so weiter.

AVR-Plugin-spezifischer sind der praktische Upload-Button, der AVR-Device-Explorer, in dem man alle Register, Ports und Interrupts chipspezifisch einsehen kann, die Programmer-Integration (über die man den Typ des Mikrocontrollers übrigens inklusive Taktung automatisch auslesen kann) und die Möglichkeit, alles projektspezifisch einzustellen.

Bilder sagen mehr als tausend Worte:

Der AVR Device ExplorerFUSE-Editorlockbit_editor

Wer die Arbeit mit Eclipse bereits gewohnt ist, der wird dieses Plugin sicher mögen.

Wenn allerdings schnell mal ohne großes Terminal-Bla FUSEs ausgelesen/geändert, Kompilat hochgeladen oder ähnliches getan werden soll, dann ist es übertrieben, extra ein Eclipse-Projekt aufzuziehen.

Das perfekte Tool hierfür heißt AVRFuses. avrfuses_about

Es ist in C#.NET programmiert, was wiederum bedeutet, dass es unter Windows, Linux (mit Mono) und OS X lauffähig ist.

Da es eine Vielzahl von AVR-Chips unterstützt und an sich recht spartanisch ausgestattet (Es kann das was man braucht und mehr nicht) ist, nutzt man es am besten um schnell mal ein paar Bits zu setzen, wenn man fremde Programme in den eigenen Mikrocontroller schicken will oder ähnliches.

Die eigentlichen Features:

  • Programme hochladen/auslesen
  • EEPROM hochladen/auslesen
  • Chip löschen
  • FUSE-Bits setzen/auslesen

Screenshots:

avrfuses_1avrfuses_2

3 Kommentare
Jan
22
2009

Dekorative Laufschrift

Dekoratives LauflichtSpätestens einen Monat vor Weihnachten war klar: Ich brauche ein Geschenk für meine Freundin.

Es lag sofort nahe, dass ich eins basteln könnte. Basteln ist günstig und macht Spaß. Abgesehen davon ist das Produkt dann ein sehr individuelles Geschenk.

Die eigentliche Idee habe ich zwar irgendwann in der Vergangenheit schon einmal im Internet gesehen, aber ich habe das alles trotzdem einfach mal ohne Pläne von anderen aufgebaut, weil es dann auch lehrreicher für mich war.

Nun, zur Idee: Ich plante, ihr eine Laufschrift, die von LED-Punktmatrix-Elementen dargestellt wird, zu schenken, die in ein leicht milchiges Gefäß von der Größe eines Teelichts eingebaut ist. Oben sollten dann dekorativ kleine Pflänzchen herausstehen.

Also bestellte ich mal los: Die Schaltung selbst würde eigentlich nur aus folgenden Teilen bestehen:

  • Europlatine
  • Mikrocontroller (AVR ATMEGA8 ist hier völlig ausreichen)
  • Zwei 5*7 Pixel LED-Matrizen
  • Verbindungsdraht zum Verlöten, da ich darauf verzichtete, die Platine zu ätzen
  • Entsprechende Vorwiderstände für die LED-Matrizen

Die Verdrahtung sollte dann recht simpel sein. Zwei nebeneinander gesetzte 5*7-Pixel-Matrizen ergeben eine 10*7-Pixel-Matrix. Wenn man sie “multiplext”, dann braucht man 10 +7 Pins am Mikrocontroller, um sie anzusteuern. Das sind dann also 10 Pins jeweils pro Spalte und 7 Pins jeweils pro Zeile. Laut Datenblatt brauchen die Matrizen (Bezeichnung: Kingbright TA07-11HWA) 2Volt Spannung und 25mA Strom pro LED-Einheit.

testschaltungDie Betriebsspannung des Mikrocontrollers war dann so ein Problem: Einerseits sollte alles schön klein sein, andererseits bräuchte ich alleine drei Mignon-Zellen für nur 4,5Volt. Das wäre nicht mehr so optimal dimensioniert für ein Teelicht-großes Geschenk. Tests mit einem kleinen Prototypen der Schaltung ergaben, dass der Mikrocontroller bei 3V Spannung noch problemlos arbeitet! Also habe ich mich dazu entschlossen, einfach mit zwei Mignonzellen zu arbeiten und fertig. Bei höheren Arbeitstakten des Mikroprozessors wäre das wohl problematisch, aber bei 1MHz ist das in Ordnung.

Da die Schaltung nicht wirklich kompliziert ist, habe ich sie direkt auf Platine gebannt, um die Software direkt los schreiben zu können, ohne das später noch Hardware-Änderungen aufgrund von Umständen, die ich vorher eventuell nicht bedacht habe, auftauchen. Software-Entwicklung macht viel mehr Spaß, wenn sich nicht ständig etwas ändert…

Der fertige Aufbau:

Fertige Platine von oben

Kein Inbegriff von Ordnung

Kein Inbegriff von Ordnung

Für die nächste Schaltung werde ich ganz sicher bunte Drähte benutzen.

ZeichensatzAls nächstes sollte die Software folgen. Da das Display 7 Pixel hoch ist, erdachte ich mir einen Zeichensatz (mit Alphabet und ein paar Sonderzeichen), in dem alle Buchstaben 7 Pixel hoch und vier Pixel breit sind, so dass man einfach ein C-Character-Array (8 Bit sind eins zu viel – egal, also verschenkt!) anlegt, das 4*Anzahl_der_Zeichen Felder lang ist.

In einem anderen Array sollten dann später die Buchstabenfolgen stehen, die auf dem Display tatsächlich angezeigt werden. {1, 2, 3} wäre demnach “ABC”.

 

Benutzt für Spalten und Zeilen die Notation von der Abbildung der Matrix-Verdrahtung

Notation folgt der Abbildung der Matrix-Verdrahtung

Die Anschlüsse des Displays auf der Platine sind fast wirr über die Ports auf dem Mikrocontroller verteilt, obwohl ich mich bemüht habe, sie an möglichst wenige Ports zu verbinden, um möglichst wenig Bitshifterei zu haben.

 

 

Verdrahtung der Matrix-Elemente

Die Spalten sollen HIGH-Pegel bekommen, die Zeilen LOW-Pegel. Das Programm schaltet zunächst alle Spalten auf LOW, steuert die Spalten bitmustergerecht an und gibt der entsprechenden Spalte dann HIGH-Pegel.

In festen Zeitintervallen wird die ganz rechte Spalte in die Spalte links daneben kopiert und aus dem Zeichensatz-Array das passende nächste Bitmuster wieder in die Spalte ganz rechts gesetzt, was prinzipiell wie ein Schieberegister funktioniert. Die Prozesse der Anzeige und der Zusammensetzung der darzustellenden Pixel finden getrennt statt, wodurch man Bildaufbaurate und die Geschwindigkeit der Laufschrift problemlos unabhängig voneinander einstellen kann.

Ab dem Punkt, ab dem alles funktionierte, konnte ja mit dem Einbau in den dekorativeren Teil des Geschenks begonnen werden, was eigentlich auch einfach nur mittels Heißkleber und Origami-Anleitungen geschah ;) :


Den C-Sourcecode gibt es hier zum Download.

0 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , , , , ,
Sep
19
2008

IKEA Spöka Hack

Ich hatte einfach Lust auf interessante Basteleien. Und als ich letztens mit meiner Freundin in Heerlen bei IKEA war, sah ich im Regal diese kleinen Spöka Leuchtgeister.

Sie werden mit einem 5V-Netzteil betrieben und haben blaue, rote, bzw. grüne LEDs eingebaut. Mein Geist hat blaue eingebaut. Bei den fünf Volt musste ich sofort an Mikrocontroller denken.

Wenn man beim Ausprobieren bei IKEA mit dem Geist herumspielt und aus Versehen das Stromkabel dabei herauszieht, dann stellt man allerdings fest, dass der Geist weiter leuchtet. Das bedeutet, dass da ein Akku eingebaut ist. Und das wiederum bedeutet, dass der wohl weniger als fünf Volt liefern wird. Und das wiederum könnte bedeuten, dass man damit keinen Mikrocontroller betreiben kann, wenn man nicht noch Zusatzschaltungen davor baut.

Die Idee mit dem Mikrocontroller habe ich erstmal wieder verworfen, seit ich das Gespenst mal auseinandergenommen habe und nachgemessen habe, dass 3,5 Volt bei den LEDs ankommen. Aber ich weiß ja noch, dass man NE555 Chips problemlos mit so einer niedrigen Spannung betreiben kann. Und von irgendwo wusste ich noch, dass man mit mehreren NE555 Chips in Kombination einen Flacker-Effekt in Verbindung mit Lichtern erzeugen kann. 

“Also wie macht man das nun?” – Man kann NE555 Chips dazu benutzen, um Rechteck-Spannungen zu erzeugen. An, aus, an, aus, an, aus, [...] und so weiter. Je nach dem mit welchen Widerständen und Kondensatoren man sie verbindet, verändert sich die Phasenlänge dieser Rechteckspannung. Wenn man jetzt aber mehrere Phasen von mehreren NE555s mit verschiedenen Phasenlängen übereinander lagert, dann bekommt man ein Signal, welches ziemlich chaotisch/zufällig für den menschlichen Betrachter aussieht, weil er die verschiedenen Phasenlängen nicht daraus ablesen kann. Vor allem dann nicht, wenn er nicht weiß, um wie viele verschiedene Signale es sich handelt. In einem Funktionsplotter kann das so aussehen:

Wenn man die LEDs, die in diesem Geist ständig leuchten, nun über einen PNP-Transistor versorgt, der dann also nur durchsteuert und leuchten lässt, wenn das Signal seine Basis auf Masse zieht und man das auch noch mit einem Kondensator glättet, dann kann das aussehen, wie das Flackern einer echten Kerze bei ein wenig Zugluft!

Okay, klingt gut. Ab in die Welt der Praxis. Beim Recherchieren im Internet habe ich von einem IC namens NE556 gelesen, welcher etwas größer ist, als ein NE555, dafür aber zwei NE555 beherbergt. Ich habe mich für zwei dieser NE556 entschieden, weil das die Schaltung kleiner macht.

Der fertige Schaltplan:

Die Pinbelegung des NE556 sieht folgendermaßen aus:

Im Prinzip lässt er sich anschließen, wie zwei NE555. Auf der linken Seite die Anschlüsse für den ersten Taktgeber, auf der rechten Seite die Anschlüsse für den zweiten. Die Versorgungsspannung muss man nur einmal anschließen. Beide arbeiten völlig autonom.

Die Konstruktion der Schaltung auf dem Steckbrett verlief schön unkompliziert. Da ich keine Ahnung hatte, wie groß ich die Ladewiderstände und die Kondensatoren wählen musste, konnte ich so schön herumexperimentieren.

Die Schaltung verbraucht so sogar weniger Strom, als sie es vorher tat. Aus den 6 Stunden Original-Akkulaufzeit könnten so durchaus ein wenig mehr werden.

Nach einigem an Testerei lieferten die Bausteine endlich das richtige Signal, so dass das Flackern hinreichend natürlich aussah.

Nun sollte also die Lötarbeit folgen. Problematisch ist der geringe Platz im Inneren des Plastikgehäuses. Die Haltestege habe ich innen einfach abgeschnitten, um mehr Platz zu haben. 

Die Begriffe “Lochraster” und “wenig Platz” versprechen fast schon per Definition ein kleines Chaos. Ich war sehr froh, dass alles nach dem Zusammenlöten sofort perfekt funktionierte – denn wenn jetzt noch etwas fehlerhaft wäre, dann hätte es ewig gedauert, wieder verstehen zu können, welches Bauteil was macht. Das Anordnungslayout der Bauteile war ehrlich gesagt ein bisschen gefreestyled.

 

 

 

Der Zusammenbau stellte sich dann als eine sehr enge Nummer heraus, aber die Schaltung ist schön robust geraten, so dass ein bisschen Gewalt der Funktion nicht schadete…

Da zwei Drittel der Haltestege nun fehlten, musste nun Tesafilm von außen herhalten. Diese Methode hält alles schön fest zusammen und man sieht davon nicht das Geringste.

 

 

Zusammengebaut ist das Ganze ja schon verschenk-fertig! Hier ein Video vom Endprodukt:

5 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , ,
Jun
17
2008

Pimp da Firmen-Kicker – Teil 2

Dies ist der Folgeartikel auf Pimp da Firmen-Kicker – Teil 1:

Nachdem ich die Batterien durch ein Netzteil ausgetauscht habe, stand ja nun einem Mikrocontroller-Projekt nichts mehr im Weg.

Wozu braucht man einen Mikrocontroller in einem Kicker? Nun, an jedem Kickertisch sind vorne und hinten jeweils hinter dem Tor einer Mannschaft kleine Stangen verschraubt, auf die zehn Kugeln/Würfel aufgefädelt sind, die Nummern tragen. Damit zählt man die Punkte, logisch. Tor – Punktzahl zurechtschieben – Weiterspielen.

Angenommen, man empfindet es als nervig, genau das zu tun. Dieses sich-um-die-Punktzahl-Kümmern. Dann hat man den idealen Vorwand für eine Automatik, die das erledigt!

Was braucht man dazu? 

• Tor-Trigger
• Anzeige für den Punktstand
• Mikrocontroller, der die Tore zählt und darstellt…

Die Tor-Trigger sind ja schon verbaut und durch den bereits eingebauten Schmitt-Trigger sind sie sogar in digitalen Schaltungen einsetzbar! Perfekt.

Während die Idee in meinem Kopf heranreifte, fielen mir noch folgende Features ein:

• Ansteuern des Soundmoduls (Schließlich war es mal der Kern der ganzen Aktion!)
• Zurücksetzen des letzten Tors (Falls es ein Unfall oder unfair war)
• Zurücksetzen des kompletten Spielstands

Die beiden Zurücksetz-Funktionen kann man problemlos an einen Druckknopf koppeln, der in den Tisch eingelassen sein kann. Ich hatte die Idee, dass der Mikrocontroller auf Knopfdruck das letzte Tor annulliert und wenn man den Druckknopf zwei, drei Sekunden gedrückt hält, das komplette Spiel auf Spielstand “0:0″ zurücksetzt. Das wäre total simpel zu bedienen. Vor allem soll der Mensch hier nicht viel interagieren, da Elektrogeräte viel schöner sind, wenn sie “einfach arbeiten”. Wie unpraktisch wäre ein Gerät, das dem Spieler die Arbeit, die Punktemarkierung ständig zu verschieben abnimmt, indem es ihm woanders neue Arbeit aufbürdet…

Okay, die Feature-Liste steht. Bevor die Phantasie erst richtig lossprudelt, sollte man sich darauf besinnen, die bestehenden Ideen erst einmal in die Tat umzusetzen. Doch womit fängt man nun an?

Die Tore zu zählen, bevor man sie überhaupt anzeigen kann, ist wenig sinnig. Damit fällt alles weg bis auf “Sound” und “Anzeige”. Ersteres läuft ja schon, also geht man am besten direkt zur Anzeige über. Die Anzeige der Punkte kann man nicht programmieren, wenn die Hardware, die die Leuchtzahlen trägt, noch nicht existiert.

Stundenlanges Durchforsten von Katalogen von CONRAD, Reichelt, ELV und so weiter hat nicht wirklich etwas gebracht. Ich wollte Digitalanzeigen verbauen, die Zahlen mit sieben Leuchtsegmenten darstellen. Sowas kennt schließlich jeder von überall her. Allerdings werden die nirgendwo in Größe “groß” zu erschwinglichen Preisen verkauft…

Planskizze für die Größe der ZahlenelementeKein Problem – Kann man schließlich selbst basteln. Hoffte ich. Und malte los, in welchem Format ich die Zahlen denn gerne hätte.

Eigentlich habe ich dabei nur die Größenverhältnisse meiner Digitaluhr dargestellt. Das Modell gibt es seit 30 Jahren und die Zahlen dürften so in ihrer Form demnach der Standard der Standards sein.

Ich entschied mich dazu, einfach mal eine Holzkiste mit Plexiglasfront drauf los zu bauen – die Elektronik wird da schon noch auch hineinpassen… Hauptsache es existiert erst einmal ein Display, dessen Ansteuerung man programmieren kann.

Also ab in den Baumarkt. Die Einkaufsliste:

• Ein viertel Quadratmeter (also 50×50cm) schwarze Bastelpappe
• Sekundenkleber
• Teppichmesser
• Folie mit Diffusionswirkung
• Holz für den Rahmen
• Plexiglas im Format 50×25 cm, 2 oder 3 mm dick 

Diffusionsfolie habe ich keine gefunden. Allerdings habe ich im Firmenmüll gewühlt und eine Folie gefunden, die fast perfekt durchsichtig ist, aber auch die gewünschte Diffusionswirkung hat. Es war mal ein Monitor darin eingepackt. Und da es sich um einen 24-Zoll-Monitor handelte, war sie sogar groß genug.

Ich konnte nur ahnen, wie unglaublich viel Arbeit mir alleine für diesen Handwerkslastigen Teil bevorsteht. Zunächst übertrug ich die Planzeichnung des Displays auf die Bastelpappe und schnitt mit dem Teppichmesser die Bleistiftstriche entlang.

Diese einfache Maske kann nun nicht einfach von hinten mit LEDs beleuchtet werden, da die Segmente ja nicht optisch voneinander getrennt sind. Also dachte ich mir eine Konstruktion für Trennwände aus. Das war auch der nervigste Teil der Arbeit, weil man hier auf engstem Raum Trennwändchen mit der Pinzette verklebt und ab und zu die eigenen Finger zusammenkleben. Wenn ein Finger an der Konstruktion klebt, kann man ihn natürlich nicht einfach so abreißen, denn sonst geht ja alles kaputt.

Es ist sogar stabil!

Witzig ist, dass man nach einigen Stunden Arbeit und Rückenschmerzen vom über die Tischplatte gebeugten und konzentrierten Arbeiten eine extrem dicke Hornhaut an den Fingern bekommt und nur die Fingerabdrücke offenbaren, dass es sich einfach nur um eine Plastikschicht aus Sekundenkleber handelt. Abwaschen ist nicht drin. Aber man gewöhnt sich dran. ;)

Nun ja, jetzt sind die Trennwände vorhanden und verbaut, also kann man in jede dieser nun entstandenen Kammern eine LED setzen und so müsste das Ganze als Display benutzbar sein. Aber halt: Es ist noch mehr Handwerk gefragt. Sichtglas, Holzrahmen, die Halterung der LEDs und die LEDs selbst!

Auf dem letzten Bild zu sehen: Es ist alles verschraubt, die Diffusionsfolie ist das erste Element hinter der Platte und danach folgt die Maske.

Leider war ich so naiv und habe (so genannte) Superflux-LEDs in Ein-Chip-Ausführung bestellt. Diese stellten sich als viel zu wenig leuchtstark heraus, weshalb ich in verzweifelter Hoffnung die LED-Kämmerchen mit Alufolie ausgekleidet habe (Auf dem letzten Bild zu sehen). Wer sich einen riesen Haufen Arbeit sparen will, kauft direkt LEDs in der nächst-teureren Ausführung – und tut sich damit einen riesigen Gefallen.

Wie baut man nun die LEDs ein? Ich entschied mich dafür, hinten eine Schaumstoff-Wand anzusetzen, durch die ich die LEDs durchstecke und von hinten verlöte. Vorteile: Das ist so schön einpassbar und der Schaumstoff passt sich der Maske an, so dass keine Luftspalte zwischen den einzelnen Kammern entstehen. Das Licht kann so nur und nur vorne heraus und das ein Segment beleuchtet seine Nachbarn nicht mit.

Das hat ganz gut geklappt. Nur sollte man mit dem Lötkolben den Schaumstoff nicht berühren, da es sonst erbärmlich stinkt.

Mit der Verdrahtung wird es in diesem Teil des Projekts endlich technischer. Zusammengezählt ergeben die vier Zahlen, die aus jeweils sieben Segmenten bestehen und die beiden Punkte des Doppelpunkts 30 Leuchtdioden.

Da diese LEDs getrennt angesteuert werden müssen (sonst könnte man logischerweise keine Zahlen darstellen), muss irgendeine Lösung her, da der Mikrocontroller nicht einmal 30 Beinchen insgesamt hat.

Ich habe mich schon früher gewundert, wieso die Digitalanzeige meines Satellitenempfängers gerade noch wahrnehmbar (im Augenwinkel, welcher sowieso bei relativ hohen Frequenzen sensibler ist). Bis mir dann einfiel, dass man wohl nicht für jede Lampe einen Pin des steuernden Mikrochips verschwendet…

Man kann jedes Segment einer Zahl mit den Positionsgleichen Segmenten der anderen Zahlen verbinden. Also verbindet man alle oberen Segmente miteinander, alle mittleren und so weiter.

Damit hat man bisher schon einmal sieben Pins am Mikrocontroller verbaut. Wenn man die Zahlen jetzt ansteuern will, dann funktioniert das zwar, aber da alle Zahlen dasselbe Signal abbekommen, steuert man sie alle gleichzeitig an. Das macht natürlich wenig Sinn.

Jetzt allerdings kommt das Flackern ins Spiel:

Während man zwar alle Zahlen gleichzeitig ansteuert, müssen nicht alle gleichzeitig geerdet sein.

So schließt man einfach alle Segmente einer Zahl an das gleiche Massekabel an. Und nun lässt man den Mikrocontroller steuern, wer wann Anschluss an Masse bekommt.

Da die Leuchtdioden insgesamt zu viel Strom verbrauchen, wäre der Mikrocontroller damit überfordert, die Masse selbst bereitzustellen. Also lässt man diesen Job einfach von Feldeffekt-Transistoren machen.

Auf der anderen Seite der Ansteuerung, die der Einzelsegmente, braucht man keine Transistoren oder ähnliches, da hier sowieso nur eine auf einmal leuchten kann, da ja die Masse nur für ein Segment auf einmal aktiv ist. Das Problem lässt sich also relativ elegant lösen.

Also braucht man nun sieben Pins für die Steuerung der einzelnen Segmente + fünf Pins für die Masse jeder Zahl. Der Doppelpunkt wird als eigenständige Zahl gezählt. Das macht bei der Ansteuerung sowieso keinen Unterschied. Man nennt dieses Prinzip auch “Multiplexing“.

Als nächstes muss natürlich ein Stecker an das Display, so dass man es benutzen kann. Und die Transistoren müssen verbaut werden.

Die Transistoren und den Stecker habe ich auf eine Platine gelötet, die ich zuvor schnell geätzt habe. Da es sich nicht um eine große, komplizierte Sache handelte, ging das mit Edding und Säure.

Um sich gute Ätzbedingungen zu schaffen, schleift man die Kupferseite der Platine am besten gut an, damit der Edding später gut haftet und putzt sie danach mit Benzin, Spiritus oder Aceton. Aceton ist eigentlich das Mittel der Wahl. Hatte ich aber nicht zuhause. Benzin ist billiger als Spiritus. Hatte ich aber auch gerade nicht griffbereit. Mutter hat’s nicht gesehen.

Nachdem die zukünftigen Leiterbahnen schön mit Edding aufgemalt sind, kann man die Platine so in die Säure werfen. Ich habe Eisen-III-Chlorid benutzt. Es ist günstig, ungefährlich, stinkt kaum, aber man sieht nicht, wie weit die Platine mit dem Ätzen ist und muss sie ab und zu herausholen. Außerdem dauert es relativ lang.

Um die Loch-Abstände genau hinzubekommen, nimmt man am besten eine Lochrasterplatine, legt sie auf die geätzte Platine und körnt kleine Löcher als Bohrermarkierung mit einem dünnen Nagel durch die Lochrasterplatine. Dann gibt es später auch keinen Ärger beim Einsetzen des Steckersockels.

Eingelötet und alles zusammengebaut sieht das Ganze dann wie auf den Bildern aus.

Ein kleiner Test durch Anlegen von Spannung an die entsprechenden Pins des Steckersockels zeigte, dass alles funktioniert, wie vorgesehen.

Nun konnte es mit dem Mikrocontroller-Part weitergehen:

Zunächst klappte überhaupt nichts, weil der Mikrocontroller sich bei den einfachsten Rechenoperationen “verrechnet” hat. Zwei Stunden später fand ich heraus, dass ich einen Kondensator vergessen habe, der Spannungsspitzen vor der Spannungsversorgung am Mikrocontroller glättet. Anfängerfehler.

Nach stundenlanger Spielerei klappte es dann endlich. Ich konnte Zahlen darstellen, die vom µC hochgezählt wurden.

Die Darstellung der Zahlen übertrifft sogar meinen Satelliten-Empfänger, denn man sieht es nicht einmal flimmern (Okay, im Youtube-Clip unten flimmert es doch ein bisschen. Aber in der Realität tut es das nicht). Der Kasten, der zuvor noch in Einzelteilen beim Baumarkt lag, zeigt jetzt tatsächlich Zahlen an! :D

 

Auf Dauer hat sich alles etwas angehäuft. Es ist praktisch, einen zweiten Schreibtisch nur zum Basteln zu haben.

Mittlerweile ist alles so angeschlossen, dass zur Zeit eigentlich nur weiter programmiert werden muss. Auf dem Mikrocontroller ist zu diesem Zeitpunkt nur ein Programm drauf, das einen Zähler hat, welcher die darzustellende Zahl diktiert. 

Als nächstes soll das Programm allerdings auf gedrückte Taster reagieren, welche die Lichtschranken in den Toren simulieren. Wenn ich diese zuhause liegen hätte, dann könnte in der Firma ja niemand vernünftig Tischfußball spielen.

Stunden später funktioniert es prinzipiell. Die einen beiden Taster auf dem Steckbrett simulieren auf Knopfdruck Torschüsse und ein dritter Taster macht den Job des Druckknopfes, der mal in den Kickertisch eingelassen wird.

Okay, wo die Displayansteuerung funktioniert, kann ja alles auf Platine gebannt werden, weil die Hardware ja nun gut genug durchdacht ist. Danach folgen dann noch Schliffe an der Software, wie die automatische Abschaltung.

Die beiden alten Schmitt-Trigger kamen auch auf die neue Platine, damit es eine zentrale Steuerungseinheit im Display gibt und nicht alles irgendwie verstreut ist.

Ein paar Tage nach Fertigstellung der Platinenversion bekam die Software noch den erwähnten Abschalttimer (Eigentlich wird nur das Display abgeschaltet und der Punktstand zurückgesetzt) und eine Aufwachfunktion, so dass ab dem ersten Tor sofort das laufende Spiel mitgezählt wird (Also muss der Mensch nichts tun, um einfach loszukickern). Außerdem gibt das Display blinkend ein “YEAH” aus, wenn ein Tor geschossen wird und der Sound gestartet wird. Beim Einschalten liest man zunächst zwei Sekunden lang “HELO”.

das Ganze macht ja schon fast einen professionellen Eindruck, denn es funktioniert einfach!

Als nächstes sollte die Testphase am Kicker folgen. Ein Laie könnte alles anschließen. Man hängt das Display an die Wand, schließt es an den Strom an und verbindet es über ein normales Netzwerkkabel mit dem Kickertisch. Alleine die Tatsache, dass der Kicker eine Netzwerkbuchse hat, musste noch mit einigem an Vorarbeit gesichert werden. Aber im Endeffekt mussten die Kabel der Lichtschranken und des Soundmoduls nur mit der vorgefertigten Buchse verbunden werden. Gaffa-Tape und Schraubenzieher, sowie Heißkleber haben’s getan.

Nun ja, dank der Tatsache, dass danach tatsächlich alles funktionierte, gibt es hier eigentlich nichts mehr zu sagen. :)
(Okay, doch: Beim nächsten mal teurere, hellere LEDs kaufen!!!)

Den Sourcecode zum Projekt gibt es hier: kicker_sourcecode.

4 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , , , , ,

Powered by WordPress. Theme: TheBuckmaker. Darlehen, Geld verdienen

3.14159