Über dieses Buch
Dies ist ein Buch für Personen jeden Alters, die sich mit den Grundlagen der Programmierung von Microcontrollern der AVR Familie des Herstellers Atmel in der Programmiersprache C vertraut machen wollen.
Das Buch wurde explizit für Einsteiger in die Welt der Microntroller entworfen. Es werden keine Erfahrungen im Umgang mit Microcontrollern benötigt.
Als einzige Voraussetzung ist ein gewisses Grundwissen über die Programmiersprache C gefordert. Im Vergleich zu gewöhnlichen in der Programmiersprache C geschriebenen Projekten, stellt die Programmierung von AVR Microcontrollern einen Sonderfall dar. Der Einsatz komplexer Datenstrukturen und Algorithmen ist hier in der Regel nicht nur nicht erforderlich. In den meisten Fällen verbietet er sich zudem schon allein aufgrund extrem begrenzter Ressourcen. Es genügen also in der Tat bereits minimale Grundkenntnisse der Programmiersprache C.
Benötige Materialien
[Bearbeiten]Benötigte Hardware
[Bearbeiten]Programme für den Microcontroller werden am PC bearbeitet und übersetzt. Das fertige Programm wird dann auf den Microcontroller übertragen. Neben einem funktionierenden PC benötigst Du daher sowohl einen Microcontroller der AVR Familie, als auch eine Möglichkeit auf dem PC erstellte Programme auf den Microcontroller zu übertragen. Zu diesem Zweck stehen mehrere Möglichkeiten zur Verfügung.
Die einfachste Möglichkeit besteht in einem fertigen Arduino Experimentier-Board mit USB Schnittstelle. Boards dieser Sorte enthalten neben dem Microcontroller auch einen USB zu RS-232 Konverter. Microcontroller, die mit diesen Boards ausgeliefert werden, sind mit einem speziellen Bootloader vorprogrammiert, der es ermöglicht Programme über die serielle Schnittstelle auf den Microcontroller zu übertragen. Alles, was Du bei dieser Variante tun musst, ist, das Board mit USB Kabel mit dem PC zu verbinden. Ein Programm, dass die Übertragung übernimmt, ist in den Werkzeugen enthalten.
Diese Möglichkeit ist zugleich die in diesem Buch empfohlene, wenn Du das erste Mal mit einem Microcontroller arbeitest. Alle Beschreibungen und Beispiele des Buchs beziehen sich auf diese Möglichkeit. Sie wurden auf einem Arduino Duemillanove Board mit AtMega328p getestet.
Wenn Du bereits ein wenig Erfahrung im Umgang mit Microcontrollern gesammelt hast, kannst Du überlegen, ob Du eine der anderen Alternativen wählst.
Mit dem beschriebenen Bootloader vorprogrammierte Microcontroller sind im Handel erhältlich. Bereits mit minimaler Beschaltung können sie in Betrieb und über die seriellen Schnittstelle programmiert werden. Mit einem USB zu RS-232 Konverter Kabel kann das Programm auf dem gleichen Weg auf den Microcontroller übertragen werden.
Die aufwändigste Möglichkeit besteht in der Benutzung spezieller Hardware, mit der das Programm über die SPI Programmierschnittstelle aufgespielt werden kann. Mit dieser Methode bist Du nicht mehr darauf angewiesen einen Microcontroller mit vorinstalliertem Bootloader zu verwenden.
Für einige in diesem Buch vorgeschlagenen Projekte benötigst Du neben den in der Anleitung aufgeführten elektronischen Bauteilen auch eine Steckplatine oder einen Lötkolben samt Zubehör.
Benötigte Software
[Bearbeiten]Um C-Programme für AVR Microcontroller zu übersetzen werden ein C-Compiler und eine Implementierung der C-Standardbibliothek benötigt. Sowohl die in diesem Buch verwendete Compiler Suite avr-gcc, als auch die C Bibliothek AVR Libc kommen aus dem GNU Projekt. Informationen darüber, wie Du die genannte Software auf dem PC installieren kannst, findest Du im nächsten Kapitel.
Wikibook
[Bearbeiten]Dieses Buch ist kein gewöhnliches Buch, sondern ein Wikibook. Anders als bei einem klassischen Buch sind Verbesserungen und Erweiterungen eines Wikibooks nicht nur jederzeit sondern zugleich auch durch jede Nutzerin und jeden Nutzer möglich. Auch Du bist herzlich dazu eingeladen Dich jederzeit an der Verbesserung und Erweiterung dieses Buchs zu beteiligen.
Auch wenn Du Dich nicht dazu entschließen solltest selbst als Autorin oder Autor tätig zu werden, kannst Du zur Verbesserung dieses Buches beitragen. Für kleinere Korrekturen von Rechtschreibung und Grammatik, die Dir beim Lesen auffallen, sind Dir nicht nur Autoren, sondern auch nach Dir kommende Leser dankbar.
Hinweise zu Stellen die unverständlich, unklar oder missverständlich formuliert sind, kannst Du auf der zugehörigen Diskussionsseite hinterlassen. Auch Fragen zu Themen, die im Buch bisher viel zu knapp oder gar nicht beschrieben werden, kannst Du auf der Diskussionsseite stellen. Anregungen und Wünsche für die Ergänzung bestehender Kapitel oder für das hinzufügen weiterer Kapitel werden dort ebenfalls gern in Empfang genommen.
Je genauer Du dabei Deine Hinweise formulierst, umso höher ist die Chance, dass sie schon bei der nächsten Überarbeitung berücksichtigt werden können. Auf Rückmeldungen wie ‚das Buch ist hässlich‘ oder ‚der Autor ist doof‘ solltest Du deshalb nach Möglichkeit verzichten. Auch wenn der zweite Punkt sicher richtig ist, liefern Hinweise wie diese kaum genug Anhaltspunkte um den bestehenden Mangel zu beheben.
Rechtschreibung und Form der Anrede
[Bearbeiten]Das Buch ist darum bemüht, sich an die aktuellen Regeln zur Rechtschreibung zu halten.
Eine (mögliche) Ausnahme hiervon ist die in diesem Buch verwendete Form der Anrede. Wie Dir vermutlich bereits aufgefallen ist, wird der Leser in diesem Buch durchgehend mit der Anrede ‚Du‘ angesprochen. Sowohl Nähe, als auch Respekt vor dem Leser sollen durch diese Schreibweise zum Ausdruck gebracht werden. Nach Ansicht des Verfassers können weder die Verwendung eines respektvoll distanzierten ‚Sie‘, noch die Verwendung eines respektlos nahen ‚du‘ beide Aspekte in gleichem Maße transportieren.
Das gute an diesem Buch ist, dass Du es ganz einfach zur Seite legen kannst. Wenn Du Dich ganz und gar nicht mit der gewählten Anredeform anfreunden kannst, bleibt Dir diese Option stets offen. Niemand zwingt Dich dieses Buch zu lesen.
Falls es doch jemanden gibt, der Dich zum Lesen dieses Buchs zwingt, dann solltest Du diesen Umstand nicht nur kritisch hinterfragen, sondern auch nach allen Regeln der Kunst Widerstand dagegen leisten.
Typographische Konventionen
[Bearbeiten]Um Dir das Lesen des Buchs und das Auffinden von Informationen zu erleichtern, bemüht sich dieses Buch darum sich an eine Reihe typographischer Konventionen zu halten. Für den Fall, dass Du Dich selbst als Autor betätigen möchtest, findest Du im Anschluss an die jeweilige Erklärung sowohl den Wikitext, der für die jeweilige Formatierung nötig ist, als auch den generierten HTML Code.
Definition
Fachbegriffe und Begriffe, die im Rahmen des jeweiligen Kontexts eine besondere Bedeutung haben, sind an der Stelle, an der sich erstmalig auftreten und näher definiert werden in fetter Schrift gesetzt. Solltest Du beim Lesen feststellen, dass Dir die Bedeutung eines Fachbegriffs entfallen ist, oder Du ein Detail noch einmal nachlesen wollen, so kannst Du die betreffende Stelle auf diesem Weg schnell finden.
Wiki Markup: '''fetter Text'''
HTML Code: <b>fetter Text</b>
Fachbegriff
Nach ihrer Definition im Text auftretende Fachbegriffe und Begriffe, die mit einander besonderen Bedeutung belegt sind, sind in kursiver Schrift gesetzt. Auf diese Weise kannst Du schnell erkennen, ob ein bestimmtes Wort in seiner alltäglichen Bedeutung verwendet wird, oder in einer für den aktuellen Kontext besonderen Bedeutung auftritt. Auch an Stellen, an den Missverständnisse vermieden werden sollen, wird das betonte Wort in kursiv gesetzt.
Wiki Markup: ''kursiver Text''
HTML Code: <em>kursiver Text</em>
Eingabe
Text, den Du selbst eingibst.
Wiki Markup: <kbd>text</kbd>
HTML Code: <kbd>text</kbd>
Programmausgabe
Die Augabe von Programmen
Wiki Markup: <samp>text</samp>
HTML Code: <samp>text</samp>
Parameter
Variable Parameter in Befehlen, die Du selbst eingibst und variable Parameter in der Ausgabe von Programmen.
Wiki Markup: <var>text</var>
HTML Code: <var>text</var>
Zum Quellcode
[Bearbeiten]Bei der Formulierung des Quellcodes in diesem Buch wurde besondere Aufmerksamkeit auf gute Lesbarkeit gelegt. Auch an Stellen, an denen es wegen Rangfolge und Assoziativität der Operatoren nicht zwingend erforderlich ist, wurde versucht die Reihenfolge der Auswertung durch setzten zusätzlicher Klammern explizit deutlich zu machen. Im Zweifelsfall im Interesse besserer Lesbarkeit zudem auf effizientere Formulierungsmöglichkeiten verzichtet.
Die Programmbeispiele in diesem Buch sind zwar vollständig in dem Sinne, dass sie die einzelnen Aspekte des jeweiligen Kapitels genauer beleuchten, dennoch bieten sie zahlreiche Möglichkeiten zur Verbesserung und Erweiterung. Insbesondere der Fehlerbehandlung wurde bei der Formulierung nur geringe Priorität eingeräumt.
Kürze und Unvollständigkeit der Codebeispiele sind nur zum Teil auf sparsamen Umgang mit dem zur Verfügung stehenden Platz zurückzuführen, sie sollen Dich auch dazu motivieren den wiedergegebenen Quellcode zu verbessern und zu erweitern. Um Dich bei der Programmierung möglichst schnell zurecht zu finden und Dir die wichtigsten Dinge schnell anzueignen ist es erforderlich, dass Du neben der Lektüre auch selbst aktiv an der Erstellung von Quellcode arbeitest. Die Codebeispiele in diesem Buch sind dazu gedacht Dich hierzu einladen.