1646387

Spielerisch C-Programmierung von AVR-Mikrocontrollern erlernen

06.12.2012 | 08:24 Uhr |

Bastel-Spaß und Coden mit einer professionellen Programmiersprache – das verspricht das „Franzis Lernpaket AVR-Mikrocontroller in C-Programmierung“. Die Hardwarebasis liefert das bewährte Arduino. Wir haben uns das spannende Lernpaket angeschaut – und waren erst einmal verblüfft.

Das lange Zeit tot gesagte und für veraltet erklärte C erlebt einen zweiten Frühling. Dank der zunehmenden Verbreitung von Mikroprozessoren in allen nur denkbaren Gegenständen des Alltagslebens und der damit verbundene umfassenden Automation. Die Nachfrage nach Programmierern, die C beherrschen, ist mindestens konstant, wenn nicht sogar steigend. Zudem müssen Unmengen von bereits existierenden C-Installation gepflegt werden. Es macht also durchaus Sinn, diese nicht ganz einfache, aber extrem leistungsfähige Programmiersprache auch noch im Jahre 2012/13 zu lernen. Am besten in Zusammenhang mit der Programmierung eines Mikroprozessores – sozusagen die ureigenste Domäne von C. Einen leichten, fast schon spielerischen Einstieg verspricht hierbei ein Lernpaket aus Hardware, Software und Lehrbuch, das ELV verkauft.

Bewährte Hardware: Arduino

Das „Franzis Lernpaket AVR-Mikrocontroller in C-Programmierung“ ist bei ELV für 129 Euro erhältlich. Es umfasst eine Grundausstattung an Hardware-Komponenten, wie unter anderem LEDs, Drucktaster, Widerstände, Dioden, Kondensatoren, Potenziometer, Fototransistoren, Zifferndisplays und natürlich zwei Steckbretter, mit denen man nicht nur einfache, sondern einige auch durchaus verblüffende Experimente rund um die beiden mitgelieferten Mikroprozessoren umsetzen kann. Einer der beiden Prozessoren kommt nicht „nackt“, sondern sitzt auf einem Freeduino-Board, was nichts anderes als eine geringfügig modifizierte Variante des bekannten Arduino-Boardes ist, das sich unter Elektronikbastlern seit Jahren großer Beliebtheit erfreut (wesentlicher Unterschied zum originalen Arduino-Board ist der fehlende Stromanschluss; das Freeduino-Board wird also vollständig über den USB-Anschluss mit Strom versorgt. In den Experimenten kommen außerdem Batterien als Stromquelle zum Einsatz). Das für die Verbindung des Mikrocontrollers mit dem PC erforderliche USB-Kabel (A-B) muss man sich noch separat besorgen, beziehungsweise man verwendet ein eventuell bereits vorhandenes USB-Druckerkabel dafür.

Der Arduino Uno dient als Basis für das Freeduino-Board aus dem Lernpaket. Wesentlicher Unterschied: Der Arduino Uno hat noch zusätzlich einen separaten Stromanschluss (auf dem Foto in der nach unten ausgerichteten Ecke) - dieser fehlt beim Freeduino. Links in der Mitte befindet sich der USB-Anschluss, dessen Signal für den Prozessor in ein serielles Signal umgewandelt wird. Oben befinden sich die digitalen PINs, unten rechts die analogen. An diese PINs wird die Peripherie angeschlossen, also beispielsweise LEDs.
Vergrößern Der Arduino Uno dient als Basis für das Freeduino-Board aus dem Lernpaket. Wesentlicher Unterschied: Der Arduino Uno hat noch zusätzlich einen separaten Stromanschluss (auf dem Foto in der nach unten ausgerichteten Ecke) - dieser fehlt beim Freeduino. Links in der Mitte befindet sich der USB-Anschluss, dessen Signal für den Prozessor in ein serielles Signal umgewandelt wird. Oben befinden sich die digitalen PINs, unten rechts die analogen. An diese PINs wird die Peripherie angeschlossen, also beispielsweise LEDs.
© Arduino

Software und Lehrbücher – verblüffender Einstieg

Die Anleitung zum Lernpaket besteht aus zwei Teilen: Aus einem gedruckten 217 Seiten dicken Handbuch und aus einem weiteren 188 Seiten starken Handbuch, das nur in digitaler Form vorliegt und sich zusammen mit diverser Software wie beispielsweise einer Entwicklungsumgebung für die C-Programmierung auf der mitgelieferten CD befindet. Diese eBook „AVR-Mikrocontroller in C programmieren: Über 30 Selbstbauprojekte mit ATtiny13, ATmega8, ATmega32 (das Buch ist auch einzeln erhältlich) ist kurioserweise das eigentliche Lehrbuch zur C-Programmierung von AVR-Mikrocontrollern. Denn in dem gedruckten Buch mit dem Titel „AVR-Mikrocontroller in C programmieren“ geht es bis Seite 130, also bis zu mehr als der Hälfte des Buches, um Arduino und Processing – letzteres ist die Programmiersprache, mit der Arduino gesteuert wird. Dieser relativ große erste Abschnitt hat also mit dem eigentlichen Thema des Lernpaketes – nämlich mit der C-Programmierung - nichts zu tun, sondern ist eine durchaus gut gemachte Einführung in das Experimentieren mit Arduino.

Sie können mit den sofort mit dem Basteln loslegen, die benötigte Hardware finden Sie in dem Paket. Das auf dem Foto links abgebildete Buch liegt aber nur als PDF auf CD bei.
Vergrößern Sie können mit den sofort mit dem Basteln loslegen, die benötigte Hardware finden Sie in dem Paket. Das auf dem Foto links abgebildete Buch liegt aber nur als PDF auf CD bei.
© ELV/Franzis

Gut gefällt uns, wie viel man auf vergleichsweise wenigen Seiten über die Hardware lernt. Der Autor stellt die Freeduino-Plattform vor, erklärt die grundlegende Funktionsweise des Mikrocontrollers und die Unterschiede zu einem Mikroprozessor und erläutert die mitgelieferte Hardware steckbriefartig. Anschließend erklärt der Autor, wie man die Entwicklungsumgebung installiert, in der man anschließend mit der relativ einfachen Programmiersprache Processing den Code für den Prozessor schreibt. Das fertige Programm wird dann via USB auf das Freeduino-Board übertragen. Mit der grafischen Entwicklungsumgebung (man muss also keinen Code auf der Kommandozeile eintippen) schreibt man recht schnell die ersten Programme, mit denen man beispielsweise LEDs auf dem Freeduino-Board zum Blinken bringt.

Der Autor erklärt durchwegs leicht verständlich die Funktionsweise von USB- und serieller Verbindung. Man erfährt wie Interrupts funktionieren. Und Sie wissen nach der Lektüre, was ein Timer ist und wie er funktioniert. Das Basteln kommt nie zu kurz, weil ständig neue Peripherie mit dem Prozessor verbunden und über die selbst geschriebenen Programme gesteuert wird. So arbeiten Sie mit Tastern, lassen Ziffern auf Displays anzeigen und Töne erzeugen. Die Experimente sind erstaunlich vielfältig. Man erstellt zum Beispiel eine Digitaluhr, ein Voltmeter und ein Thermometer und improvisiert einen kleinen Laser-Schießstand.

Das Buch ist durchwegs anschaulich illustriert, mit vielen Schaltplänen, Listings und Fotos. Programmiereinsteiger sollten damit keine Probleme haben. Wichtig ist in diesem Zusammenhang, dass nichts gelötet werden muss, sondern alle Komponenten auf die Steckbretter/Breadboards gesteckt werden.

Verschiedene Sprachen für die Hardware-nahe Programmierung

Die Unterschiede zwischen den Programmiersprachen Assembler (damit hat der Nutzer in diesem Lernpaket keinen Kontakt), C und Processing erklärt der Autor anschaulich anhand dreier Code-Beispiele. Spätestens an dieser Stelle dürfte dem experimentierfreudigen Bastler klar werden, weshalb er mit zunächst mit Processing und nicht gleich mit C loslegen soll. Trotzdem passt der lange Arduino-/Processingabschnitt nicht so ganz zum Titel des Lernpakets. Fairerweise muss aber gesagt werden, dass der Verlag in der Produktbeschreibung zum Lernpaket durchaus auf diese Zweiteilung zwischen Processing und C hinweist.

Erst auf Seite 131 kommt der Autor dann endlich zum eigentlichen Thema das Lernpaketes: C-Programmierung von AVR-Mikrocontrollern. Das auf den folgenden rund 80 Seiten vermittelte Know-How bildet die Basis für die Experimente, die in dem digital als PDF auf der CD mitgelieferten Buch zur C-Programmierung von AVR-Mikrocontrollern beschrieben werden. Teilweise gibt es am Anfang des zweiten Buches kleinere Überschneidungen mit dem Inhalt des ersten Buches, was aber nicht tragisch ist. Der Inhalt dieses zweiten Buches ist ein fundierter Leckerbissen für Chip- und Programmierfans. Die verwendete Sprache ist nun ausschließlich C. Man installiert dann auch eine für C geeignete Entwicklungsumgebung.

Im Zusammenhang mit der C-Programmierung wird der Prozessor des Freeduino nur noch allein und ohne das Board benutzt, der Anwender muss sich seine Ersatzplatine nun also erst basteln, was aber genau erklärt wird. Die dafür nötigen Teile liegen dem Paket ohnehin bei.

Windows-lastig, obwohl es mit Linux auch geht

Etwas ärgerlich: Einige Beispielprogramme, die man als Inputgeber für das Freeduino-Board benötigt, liegen auf der CD nur als EXE-Dateien für Windows vor. Linux- und MacOS-Anwender können diese Beispiele also nicht nachvollziehen. Generell verwendet der Autor nur Windows als Plattform, was bei den Systemvoraussetzungen des Lernpaketes auf der Verpackungsbeschreibung aber auch ausdrücklich gesagt wird. Trotzdem ist das etwas bedauerlich, weil die Entwicklungsumgebung für Arduino und natürlich erst recht die C-Compiler problemlos auch auf Linux laufen und es für Linux auch gute Entwicklungsumgebungen für die Programmierung von Mikroprozessoren gibt. Unter Ubuntu Linux beispielsweise steht die Arduino-IDE als Paket zur Installation direkt bereit. Sofort nach der Installation der Arduino-Software aus der Paketverwaltung von Ubuntu heraus konnten wir die IDE starten und mit dem per USB-Kabel angeschlossenen Arduino-Board verbinden. Das Hochladen der von uns geschriebenen Sketche, wie die mit Processing geschriebenen Programme für Arduino heißen, von unserem Ubuntu-Rechner auf das Arduino-Board klappte auf Anhieb reibungslos, Arduino gehorchte sofort aufs Wort.

Fazit: Ein gelungenes Weihnachtgeschenk

ELV verkauft mit dem Franzis Lernpaket AVR-Mikrocontroller in C-Programmierung das ideale Weihnachtsgeschenk für jeden Technik-Fan, der nicht nur basteln, sondern auch programmieren will. Das Paket eignet sich ideal für Einsteiger in die Prozessorprogrammierung, weil es eben nicht sofort mit C loslegt, sondern die Programmiergrundlagen erst einmal anhand des einfacheren Processing vorstellt. Warum das nicht bereits aus dem Titel des Lernpaketes hervorgeht, bleibt das Geheimnis des Produktverantwortlichen bei Franzis. Bei der Lektüre des Buches fielen uns weder Vertipper, noch Syntaxfehler im Quellcode, noch sachliche Fehler auf - das ist in Zeiten des steten Kostendruckes bei Verlagen keineswegs selbstverständlich.

Wer dagegen bereits etwas Erfahrung im Umgang mit Prozessoren und deren Programmierung hat und/oder schon mit Arduino experimentiert hat, dürfte sich für den langen Arduino- und Processingteil kaum noch interessieren. Für diese fortgeschrittene Zielgruppe eignet sich ein anderes Lernpaket oder nur das Buch AVR-Mikrocontroller in C programmieren: Über 30 Selbstbauprojekte mit ATtiny13, ATmega8, ATmega32 besser.

0 Kommentare zu diesem Artikel
1646387