Alumnifeier 2018
Hallo liebe Alumnis!
Hoffentlich hattet ihr einen schönen Abend und wies aussieht beschäftigt ihr euch mit eurem Mitbringsel 🙂
Was hab ich denn da eigentlich bekommen????
Wir haben für euch eine kleine Herzplatine gebaut! Vom Plan über die hardware bis, leider nur bei manchen :(, zur Software.
Das Design stammt von unserem „FK 04“ Logo das man an einigen Ecken wiederfinden wird.
Die Story zum Board
Aus einer kleinen Idee eines Abends in der Fachschaft wurde innerhalb von 6 Wochen eine fertige Platine mit Software.
Zuerst sollte es nur ein kleines Mitbringsel werden. Die Art das in Form einer Platine zu machen bot sich einfach viel zu gut an 🙂
Nachdem es sich anbietet das Board auch mit elektronischen Komponenten auszustatten haben wir das prompt umgesetzt.
Und da wir ETechniker sind, ist die Story eher der knappere Teil 😉
Bauteile auf der Platine.
- 1 ATtiny84A als Microcontroller zur Steuerung der LEDs.
- 1 Batteriehalter für CR20XX knopfzellen mit 3 Volt.
- 10 Rote LEDs
- 10 Vorwiderstände 259 Ohm
Bedienung der Platine.
Die Herzplatine bietet mit seinen 9 an den Rand gelegenen und der einen mittigeren LED die jeweils unabhängig voneinander gesteuert werden können viele Möglichkeiten für Bastler.
In der aktuellen Version werden die Rand-LEDs für Muster genutzt während die innere neben den Tastflächen den Zustand anzeigen.
Die zwei großen Kontaktflächen die mit z.b. einem feuchten Finger, einer Münze, oder ähnlichem verbunden werden können dienen als Taster.
So kann der Controller aufgeweckt werden oder die Sequenz weiter geschaltet werden.
Die Software kann generell eine nur durch den verfügbaren Speicher begrenzte Anzahl an Sequenzen aufnehmen. In der aktuellen Form sind es 10 verschiedene Sequenzen.
Wenn die gleiche Sequenz 10 mal durchgespielt wurde geht der Controller in einen Ruhezustand über.
Technische Details
Nachdem wir nun doch alle Elektrotechnik studiert haben (oder noch weiter machen) sind sicher auch einige technische Details der Softwareumsetzung interessant.
Das Board basiert auf einem 8-bit AVR Microcontroller ATtiny84.
Er übernimmt die Steuerung aller LEDs, das entgegennehmen der Steuerbefehle über die Touchfläche und den Sleepmode.
Eine Herausforderung der Software war das generieren der Daten für die Blinksequenzen.
Für diesen Zweck haben wir eine kleine Applikation in Python geschrieben in der man graphisch die Sequenzen anlegen kann und am PC abspielen kann bevor man sie auf der Board lädt. Ist der Controller nämlich einmal auf das Board gelötet kann man ihn nichtmehr programmieren.
Die zweite Herausforderung war für die technische Abteilung ebenso eine schwere da es um das Design der Sequenzen ging.
Als nächstes ging es an die eigentliche Software auf dem Controller.
Die Daten werden als kompaktes Bytearray auf den Programmspeicher des Controllers gespielt damit Speicher gespart wird.
Die Größen und Startadressen der jeweiligen Bytearrays werden in zwei weiteren Arrays gespeichert.
Die Anzahl der Sequenzen wird beim Starten des Controllers in den RAM geschrieben und dort gehalten.
Diese Art der Speicherung erlaubt es Speicher im RAM frei zu halten und trotzdem jederzeit in der Lage zu sein jedes Frame innerhalb einer gewollten Sequenz anzusteuern.
Beim Aufrufen einer Sequenz werden über diese Struktur die nötigen LED Zustände gelesen und an die Ausgänge geschalten.
Nachdem der Controller die Ausgänge geschalten hat geht der Controller in einen Idle Mode über um Strom zu sparen.
Wenn der Controller 10 mal die gleiche Sequenz abgespielt hat geht er in einen Deep Sleep Mode über in welchem er quasi keinen Strom mehr braucht, aber über einen externen Interrupt (den Taster) wieder aufgeweckt werden kann.
Somit muss die Batterie nicht entfernt werden da sich Standby Zeiten von tausenden Stunden ergeben.
Solltet ihr noch Fragen haben könnt ihr gerne einfach eine Mail schreiben.
Wenn ihr euer nicht bestücktes Board noch bestücken möchtet schreibt einfach, dann finden wir schon eine Möglichkeit 🙂
faigner@fs04.ee.hm.edu