Programmierwettbewerb
zum ATtiny13
Oster-Contest 2013
Haben Sie um Ostern herum etwas Zeit zum Programmieren? Dann machen
Sie doch mit bei diesem kleinen Programmierwettbewerb!
Immer
wenn ich eine kleine überschaubare Aufgabe im Bereich Messen und
Steuern lösen will, schaue ich zuerst auf den kleinsten Controller
der AVR-Serie, den Tiny13. Ich finde das faszinierend, was der
alles kann, und das bei Kosten unter einem Euro. Und meistens
verwende ich Bascom, weil es damit einfach schneller geht. Bascom macht
Spaß! Aber auch Assembler sollte man kennen! Und auch C ist natürlich
nicht zu verachten.
Und
was die Hardware angeht, so kommt in den meisten Fällen meine
kleine Platine aus dem Lernpaket Mikrocontroller zum Einsatz, und zwar
meistens mit dem dort verwendeten Bootloader. Das Lernpaket selbst
verwendet zwar im Schwerpunkt Assembler, und Bascom und C
werden nur kurz
vorgestellt. Aber seitdem ist Bascom mehr und mehr zu meinem
wichtigsten Werkzeug geworden. Aber wenn es um höchste Effektivität
geht, kommt man nicht an Assembler oder C vorbei.
Der
Assembler-Kurs
Zurück zu den Wurzeln! Das ist die Devise für diesen zeitgleich
abgehaltenen Assembler-Kurs
von Heinz D.
Stellen Sie sich vor, Sie hätten zwar einen Tiny13, aber keinen PC,
oder es gibt einen kompletten Stromausfall, nichts geht mehr. Dann
können Sie nicht einmal mehr Ihren Tiny13 programmieren, dachten Sie?
Dachte ich auch. Aber dieser Kurs zeigt, wie es trotzdem geht! Am
besten ausdrucken und für Notfälle bereitlegen. Wer genau weiß
wie es
geht, der kann auf alle Hilfsmittel verzichten. Eine Steckplatine, zwei
Tastschalter, eine Batterie oder Solarzelle, und schon können Sie den
Controller Bit für Bit programmieren. Das ganze erinnert etwas an die
Tastenprogrammierbare Steuerung (TPS) und heißt deshalb auch
Tasten
programmierbarer AVR (TPA).
Eins muss man allerdings zugeben,
Maschinenprogramme mit zwei Tasten eintippen ist nur etwas für die ganz
harten Programmierer. Falls Sie sich nicht dazu zählen, bietet der Kurs
aber auch Alternativen an. Sie können die Platine aus dem Lernpaket
Mikrocontroller zusammen mit der Programmiersoftware verwenden. Und Sie
können sogar Bascom einsetzen und im Quelltext Assembler verwenden. Da
schließt sich der Kreis. Wer das im Griff hat kann sogar gemischte
Bascom/Assembler-Projekte entwickeln.
Jetzt habe ich mal nachgesehen,
welche Beispiele für den Tiny13 hier schon zu finden sind.
Es sind jetzt bereits mehr als 30 Projekte, teilweise sehr einfache und
teilweise sehr komplexe Anwendungen. Sie können als Basis für
die eigene Einarbeitung dienen und eine Quelle für
weitere Ideen werden:
Bascom-Beispielprojekte für den Tiny13
Sechs LEDs an drei
Ports
Fahrrad-Rücklicht mit
Reaktiv-Modus
Tiny13
Touch-Slider
Tiny13-Steuercomputer
für den SI4735
Programmierbarer Quarzgenerator
Milli-Lux messen
Tiny13-Morse-Uhr
Seriell-Morse-Wandler
Attiny13-Elbug
ATtiny13-Mutteruhr
Sailor's Clock
ATtiny13-IR-Fernsteuerung
Quarzpendler-Funkfernsteuerung
Tiny13 steuert
12-Bit-DA-Wandler
Zeitrelais mit dem ATtiny13
Gamma-Zufallszahlen-Generator
Radio-Stummschaltung
mit Tiny13
NF-Sinusoszillatoren mit Tiny13
Bewegter LED-Lauftext
Sammlung zehn kleiner
Tiny13-Projekte:
- LED-Blinker
- Zeitschalter
- Transistor-Prüfer
- Weicher LED-Blinker
- Spannungs-Monitor
- Dämmerungsschalter
- U/F-Wandler Ttiny13_U2f.bas
- NF-Millivoltmeter,
- Dreiphasen-Blinklicht
- AM-Generator
Assembler-Beispiele für den Tiny13
Kaffeemühlen-Timer
Funkschalter FS20
Lauflicht mit Attiny13
Melodiengenerator,
Herzfrequenz und Sirene
C-Projekte für den Tiny13
Ampelmodell und Lauflicht
Soft-UART
Der Wettbewerb
Es gibt hier zwar schon viele Projekte für den Tiny13, aber mit Ihrer
Hilfe könnten es noch mehr werden! Deshalb wird dieser
kleinen Programmierwettbewerb auszurufen. Wer schreibt das kleinste und
feinste Tiny13-Programm in Bascom, C oder Assembler? Oder vielleicht
haben Sie das passende Projekt ja schon in der Schublade...
Dies sind die Teilnahmebedingungen:
- Das
kompilierte Programm soll nicht mehr als 75% des Flash
belegen,
damit es zusammen mit dem Bootloader in den Tiny13 passt.
- Zur Einsendung des Beitrags
gehört der Quelltext, das Hex-File und ein kurzer
beschreibender Text.
- Schaltbild,
Fotos, Youtube-Film usw. sind möglich aber keine Pflicht, wenn das
Programm auch ohne verständlich ist.
- Einsendungen können ab sofort (22.3.13) an mich
gesandt werden. kainka@elektronik-labor.de
- Einsendeschluss ist der 30. April 2013.
- Jeder Teilnehmer darf bis zu drei Beiträge einsenden
- Die
eingegangenen Beiträge werden nach Möglichkeit zeitnah
veröffentlicht, damit andere sich inspirieren lassen
können.
Auf spezielle Nachfrage: Eine Beschränkung
zusätzlicher Hardware gibt es nicht, jeder darf dranbauen was er
möchte.
Mitglieder der Jury sind:
Burkhard Kainka als Herausgeber dieser Seite
Heinz D. (der seine eigenen Beiträge nicht selbst bewertet)
Ein erfahrener und zwei junge Leser des Elektronik-Labors, die anonym
arbeiten möchten
Die Entscheidung der Jury ist verbindlich, der Rechtsweg ist wie immer
ausgeschlossen.
Preise
Die fünf Einsender mit
den besten Beiträgen erhalten je einen USB/Seriell-Wandler mit dem
FT232R auf einer Experimentierplatine, die auch im Lernpaket
Elektronik-Start
mit USB verwendet wird.
Beiträge
TPA mit
LED-Anzeige zweier
Bytes von Hermann
Nieder
Bascom:
50Hz-Taktquelle
für den Attiny13-Timer von Ralf Beesner
Lux-Meter,
von DonElko
Porterweiterung mit
Portbaustein 82C43, von Michael Gaus
Helligkeitsempfindliche LED,
von Stefan Speckmann
Tiny
Candle, von Stefan Speckmann
Go-Slow-Servosteuerung,
von Volker S.
Multischalter
MS1, von Holger Fritzsch
Sondersignalanlage
für Modellfahrzeuge, von Martin Müller
Nimm(5),
von Volker S.
Doppelblitz-Controller
, von Paul Korn
DMX
Test-Sender, von Paul Korn
LeoBot1, von
Lukas(8)
und Heinz D.
Thermometer
mit AD22100, von Ludwig Schüler
Wordclock13,
von Heinz D. (24.4.13)
Ganganzeige,
von Heinz D. (24.4.13)
Assembler:
Servotester,
von Heinz D. (außer Konkurrenz)
Tiny-Fish,
von Thomas Baum
VU-Meter
oder Voltmeter, von Heinz D.
Temperaturmessung
ohne externe Hardware, von Thomas Baum
Würfeln
mit Tiny15/13, von Gerd Sinnung
Melodiengenerator,
von Alexander Fuchs
Automatischer
Klangregler, von Alexander Fuchs
Rauschgenerator,
von Gerd Sinning
Timer ATtiny15/13,
von Gerd Sinning
Audio-Player,
von Arne Rossius
Serielle
Schnittstelle für UT70A, von Arne Rossius
Solar
Charger, von Peter Krüger
Stroboskop,
von Gerd Sinning
Hex-Editor,
von Thomas Baum
C:
Teeuhr,
von Thomas Weihs
1.5.13:
Wettbewerb beendet
Ich
danke allen Teilnehmern für diese 30 spannenden
Beiträge! Die Beiträge zeigen eine
interessante Aufteilung auf die einzelnen Programmiersprachen. Bascom
wurde am
meisten verwendet und ist vor allem für kleine Projekte und den
schnellen
Einstig optimal. Sehr aufwendige Projekte kommen oft an Assembler nicht
vorbei,
denn damit holt man am meisten aus dem kleinen Controller heraus. C
dagegen
spielt seine Vorteile erst bei größeren Controllern aus und wird daher
nicht so
oft mit dem Tiny13 eingesetzt. Der Tiny ist hier eher das
Sprungbrett zu
größeren Systemen.
Nun beginnt die Arbeit der Jury. Es gibt drei Kriterien: Originalität
und
Nutzen für den Leser, technische Qualität und die Qualität der
Dokumentation. Es kann ein paar Tage dauern, bis alle Juroren ihre
Einschätzungen abgegeben haben. Die Bekanntgabe der Sieger
folgt dann an
dieser Stelle.
Nachtrag:
Die beiden letzten Bascom-Beiträge stammen vom 24.4.13, waren
aber
bis zum 1.5.13 in den Tiefen meiner Festplatte verschollen und werden
jetzt nachgereicht. Und noch zwei Assembler-Beiträge habe ich mit etwas
Verspätung bearbeitet. Jetzt sind insgesamt 30 Beiträge
zusammengekommen. Durch den Contest ist eine stattliche
Sammlung
zahlreicher Tiny13-Projekte entstanden, die auch in Zukunft noch
erweitert werden kann.
Die
Gewinner
Die
Entscheidung war schwierig, weil viele Beiträge jeweils auf
ihre
Art den ersten Platz verdient hätten. Deshalb hat die Jury
entschieden, nicht fünf Plätze
zu ermitteln, sondern fünf gleichwertige Gewinner, sozusagen fünfmal
den ersten
Platz. Und dies sind die Gewinner in alphabetischer Reihenfolge:
Thomas
Baum, Temperaturmessung
ohne externe
Hardware
Alexander
Fuchs, Melodiengenerator
Arne
Rossius, Serielle Schnittstelle für UT70A
Gerd
Sinning, Rauschgenerator
Volker
S., Go-Slow-Servosteuerung