Archive: Day 21, Month 6, Year 2013

Vom Arduino zur Standalone-Hardware

21.06.2013 yahe arduino hardware legacy

Wenn man das erste Mal mit Arduinos in Kontakt kommt, wundert man sich, wie klein und günstig die Plattform doch ist. Nach und nach merkt man dann allerdings, dass das Arduino doch sehr überladen und teuer ist. Für die Entwicklung ist es großartig, für den späteren produktiven Einsatz jedoch nicht. Früher oder später guckt man, wie man das ganze ein wenig verschlanken kann.

Für kleinere Projekte bieten sich hierfür die ATtiny-Microcontroller von ATMEL an. Ein kleiner ATtiny 85 ist bereits ab 0,99€ zu haben und hat mit 8MHz und 8KiB EEPROM doch schon einiges zu bieten. Für 1,65€ kriegt man auch einen ATtiny 84, der einem noch mehr Eingabe- und Ausgabe-Pins bietet.

Jedoch ist es mit dem Chip allein noch nicht getan, denn irgendwie muss man dort ja sein Programm drauf bekommen. Hier hat das MIT einiges an Vorarbeit geleistet und leicht verständliche Anleitungen online gestellt. Zudem verweisen sie auf die Hardwaredefinitionen, die die Arduino-Software benötigt, um ordentlich mit solch einem Chip kommunizieren zu können. Auch auf der Arduino-Webseite und bei Youtube erfährt man viel darüber, was man tun muss, um Microcontroller mit Software zu füttern.

Auch ich habe das ganze nach und nach ausprobiert. Angefangen hatte ich mit einem wirklich simplen Projekt: einer kleinen Ampelanlage. Diese schaltet einfach zwischen den Ampelphasen rot, rot-gelb, grün und gelb hin und her. Der kleine Chip auf dem Breadboard ist der Microcontroller.

ATMEL ATtiny 85 Ampel

Das ganze kann natürlich auch ein bisschen komplizierter sein, als eine einfache Ampel. Mit Hilfe eines 12-Bit-Counters, eines NAND-Gatters, eines NOR-Gatters und drei Multiplexern habe ich zum Beispiel das LED-Beispiel vom letzten Mal von 16 auf 24 LEDs erweitern können.

ATMEL ATtiny 85 Lichtershow ATMEL ATtiny 85 Lichtershow

Die Logik ist auch bei 24 LEDs recht einfach. Der 12-Bit-Counter zählt hoch. Solange nur die niedrigsten 3 Bits gesetzt sind, ist der erste Multiplexer aktiv. Ist das vierte Bit gesetzt, so ist der zweite Multiplexer aktiv und ist das fünfte Bit aktiv, dann wird der dritte Multiplexer aktiv geschaltet. Sobald das vierte UND fünfte Bit gesetzt sind, wird das als Reset für den Zähler genutzt und alles fängt von vorne an.

Mit gar nicht allzu viel Aufwand ist es übrigens möglich, ein kleines Arduino-Shield zu basteln, das in Kombination mit dem ArduinoISP-Quelltext aus dem Arduino einen kleinen ATtiny-Programmierer macht. Hierbei sollte man übrigens die Pin-Belegungen entsprechend der jeweiligen Datasheets im Auge behalten (ATtiny 85 Datasheet, ATtiny 84 Datasheet).

ArduinoISP-Lochraster-Prototyp

Dank meines selbstgebauten ISP-Shields kann ich einfach einen ATtiny Microcontroller in den Testsockel einspannen und über die Arduino-Software mühelos neue Programme auf ihn aufspielen. Danach muss ich den Microcontroller nur noch in das Projekt einsetzen, in dem ich ihn verwenden möchte. Einfacher geht es wirklich nicht mehr.

ArduinoISP-Proto-Shield

Und auf Basis eines Arduino Proto-Shield sieht der ArduinoISP sogar richtig gut aus.


Search

Links

RSS feed

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)