RSS

Archiv für den Monat September 2015

Arduino – Meine erst Erfahrungen mit selbst programmierten Mikrochips

In diesem Jahr habe ich einen sehr genialen Geocache gemacht, der mich total inspiriert hat.

Der Cache hieß „Die verschlüsselte Botschaft“ von Gringoalemao. Neben sehr robusten, handwerklich toll gefertigten Stationen haben mir die Elektrobasteleien basierend auf Mikrokontrollern (Mikrochips) besonders gefallen.

Vor mehr als 25 Jahren hatte ich einmal eine elektrotechnische Ausbildung genossen, die mir mitunter neben dem „normalen Computerwissen“ die Grundkentnisse für den Start in die Materie „Arduino“ und Mikrokontroller lieferte.

Was ist Arduino?

Einfach gesprochen handelt es sich bei einem Arduino um einen Mikrochip von der Firma AVR mit der Typbezeichnung ATMega328. Dieser ist auf einer Platine verbaut, welche mit Buchsenleisten die PINs vom Mikrochip zugänglich macht. Neben einem Anschluß und der Regelung für die Versorgungsspannung ist auch noch ein USB-Anschluß mit Treiberchip für den Anschluß an den PC verbaut. Hierüber können die „Programme“ vom PC auf den Mikrokontroller geladen werden. Ist die Platine über USB angelschlossen, erfolgt auch die Spannungsversorgung über USB.

So sieht beispielsweise ein Arduino aus:

ArduinoUnoSMD

Oben und unten seht ihr Stiftleisten, in die man kleine Kabel einstecken kann. Diese sind nummeriert und dienen als Ein- und Ausgabeschnittstelle zu selbst entworfenen Elektronikbasteleien.

Ein Beispiel: Ich schließe zwischen einem solchen Pin (und der Erde – wg. Stromkreislauf) einen Taster oder Schalter an. Dann kann ich z.B. eine Leuchtdiode, welche an einem anderen Pin angeschlossen ist (auch wieder gegen die Erde) ein und ausschalten.

Hört sich bis jetzt noch nicht so spektakulär an, könnte man ja sogar ohne Chip hinbekommen. Das tolle ist aber, dass ich die Leuchtdiode auch blinken lassen kann – z.B. einen Morsecode oder in einem schnellen oder langsamen Rhytmus. Oder ich schließe noch ein paar zusätzliche LEDs an und baue mir ein Lauflicht (vielleicht wie bei Knight Rider).

Genau da fängt dann der Spaß beim Mikrokontroller an. Ich kann all diese Pins ein- und ausschalten wie ich will, wann ich will. Ich kann jede Menge an Sensoren und Aktoren (z.B. Schalter, Taster, Druck-, Temperatur-, Helligkeits-, Feuchtigkeitsmesser, Infrarot-Sende- und Empfangsdioden, Motoren und Servos, RFID-Leser, Funkuhrensignalchips, IR-Bewegungsmelder, Ultraschallsensoren, Displays, Münzeinwurf  u.v.m) anschliessen und steuern. Kenntnisse in Elektronik sollten zumindest soweit vorhanden sein, dass man das Ohmsche Gesetz (Reihen- und Parallelschaltung) beherrscht und weiß, wozu Widerstände, Kondensatoren, Spulen und Dioden da sind und wie die sich im Stromkreis verhalten;-)

Wie oben schon erklärt, muss man dem Mikrochip mittels „Computerogramm“ sagen, was er tun soll. Eine solches Programm für den Arduino nennt man „Sketch“. Und um einen Sketch am PC zu programmieren, braucht man eine sogenannte Programmierumgebung. Diese wird IDE ( InlineDeviceEnvirement) genannt.

Sketche werden in der Programmiersprache C geschrieben. Ein Beispielsketch ist der Blink-Sketch:

int ledPin = 13; // die LED ist an Pin 13 angeschlossen, was in der Variablen ledPin gespeichert ist
                 // (Diese LED ist bei den meisten Boards integriert)

void setup() {
    pinMode(ledPin, OUTPUT); // legt den LED-Pin als Ausgang fest
}

void loop() {
    digitalWrite(ledPin, HIGH); // LED anschalten
    delay(1000); // 1 Sekunde (=1000 ms) warten (delay() braucht den Parameter in ms)
    digitalWrite(ledPin, LOW); // LED ausschalten
    delay(1000); // 1 Sekunde warten
}

Dieser Sketch lässt nachdem er auf die Arduino-Platine geladen wurde eine LED an Pin13 im einsekündigen Rhythmus blinken.

 

Haustür-Codeschloss

Haustür-Codeschloss

Nachdem ich mit kleinen Beispielprogrammen und begleitender Literatur angefangen habe, einfache Schaltungen und Ideen zu entwickeln, entwickelte ich ein Codeschloss als Zutrittskontrolle für meine Haustür. Ich wollte den Verkabelungs- und Programmieraufwand gering halten und habe die Codeeingabe mit nur 2 Tasten realisiert. Die erste Taste sorgt dafür, dass ein  Wert „hochgezählt“ wird. So entspricht z.B. das 7-malige drücken dem Wert 7. Die zweite Taste übernimmt/bestätigt den Wert und geht dann zur nächsten Ziffer. Ich habe eine 5-stellige Eingabe festgelegt, was einer guten Sicherheit entspricht. Sind alle 5 Ziffern eingegeben, werden die Werte mit dem gespeicherten Code verglichen. Ist der eingegebene Code korrekt, leuchtet die LED 3 sek. und der Türöffnerkontekt wird für 3 sek. betätigt. Ist der Code nicht korrekt, blinkt die LED fünf mal kurz – die Tür bleibt verschlossen.

 

 

 

 

 

 

Weitere Basteleien und Experimente folgten…

 
Hinterlasse einen Kommentar

Verfasst von - 25. September 2015 in Arduino und Elektronik