Aus RN-Wissen.de
Version vom 22. November 2013, 17:57 Uhr von Frank (Diskussion | Beiträge) (Das gleiche Programm als übliches C Sketch würde in etwa so aussehen)

Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

Was bedeutet „Arduino" oder "Arduino kompatibel“

Ein zu Arduino Uno kompatibles Board

Die Arduino-Plattform ist eine aus Soft- und Hardware bestehende Plattform. Beide Komponenten sind im Sinne von Open Source quelloffen. Die Hardware besteht aus einem I/O-Board mit einem Mikrocontroller (meisst der Serie Atmel AVR) und analogen und digitalen Ein- und Ausgängen. Die Entwicklungsumgebung IDE unterstützt die Programmiersprache C und und ist frei verfügbar. Sie soll insbesondere Bastlern und anderen Interessierten den Einstieg zur Programmierung und zu Mikrocontrollern erleichtern und stellt eine Alternative zu anderen, oft komplexeren Entwicklungsumgebungen wie Atmel Studio oder Bascom dar.

Ein Arduino oder Arduino kompatibles Board kann verwendet werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren (z. B. Adobe Flash, Processing, diversen Skriptsprachen). Arduino wird intensiv an Kunsthochschulen genutzt, um interaktive Installationen aufzubauen. Das Arduino-Projekt erhielt 2006 eine Anerkennung im Rahmen des Prix Ars Electronica in der Kategorie Digital Communities.

In welcher Sprache programmiert man Arduino Boards

Boards die Arduino kompatibel sind, können in den meisten Fällen auch mit Entwicklungsumgebungen/Programmiersprachen wie Atmel Studio oder Bascom Basic, WinAvr/GCC programmiert werden, für erste Versuche dürfte aber die Arduino IDE der schnellste und einfachste Weg sein. Bei komplexeren Anwendungen scheiden sich die Geister, hier werden von erfahreneren Programmierern oft eine der anderen Entwicklungsumgebungen/Programmiersprachen vorgezogen.

Der Anwender hat also die freie Wahl und kann natürlich auch jederzeit von der ein oder anderen Umgebung umsteigen.

Ich persönlich würde als Entwicklungsumgebung Bascom empfehlen. Für mich ist es die produktivste Entwicklungsumgebung mit einer vorbildlichen Library. In der Regel können dort komplexe Programme mit weniger Programmenzeilen in deutlich kürzerer Zeit umgesetzt werden, lassen Sie sich nicht von den Vorurteilen gegenüber dem Begriff „Basic“ abschrecken, Bascom hat mit dem ursprünglichen Basic von früher nicht mehr viel gemeinsam, außer das es fast genauso leicht erlernbar ist. Natürlich muss man beim programmieren unter Bascom auch nicht auf den Komfort der Programmierung per USB (ohne Programmer per Bootloader) verzichten.


Arduino Boards unter Bascom programmieren

Viele erfahrenere Programmierer bevorzugen bei der Programmierung den Bascom Compiler. Eine Version bis zu 4k Programmcode ist ebenfalls kostenfrei, empfehlenswerter ist natürlich die Vollversion.

Wenn Sie per ISP programmieren, ist hier nichts weiter zu beachten da alle Arduino Boards auch eine ISP Buchse besitzen. Sie wählen einfach unter Programmer den entsprechenden ISP-Programmer den Sie verwenden möchten, in der Regel wird das in der Programmer Dokumentation noch mal beschrieben. Empfehlen kann ich hier besonders den USB-ISP-Bascom Programmer. Falls man einen Programmer mit 10 poligen Anschluss besitzt, benötigt man noch einen Adapter von 10 auf 6.

Man kann aber auch in Bascom ohne Programmer per USB programmieren

Sie können also den ganz normalen „Bootloader“ nutzen, der bereits im Arduino kompatiblen Board ohnehin schon vorhanden ist. Dazu ist es lediglich notwendig, einmalig einige Einstellungen vorzunehmen.

Zunächst benötigen Sie das Programm avrdude. Auf der Robotikhardware.de-DVD ist das bereits fertig entpackt und mit der zugehörigen USB-DLL libusb0.dll zusammengestellt, man braucht also nur den Ordner kopieren! Ansonsten kann man es auch über das Internet laden, man muss da aber darauf achten das man auch die zugehörige libusb0.dll DLL nicht vergisst.

1. Kopieren Sie den Ordner „avrdude“ mit allen Dateien auf ihre Festplatte unter C:\ 2. Danach wählen Sie in Bascom unter Optionen/Programmer die Einstellung:

Extern Programmer

Unter Programm wählen Sie den Pfad, also:

C:\avrdude\avrdude.exe

Und unter Parameter geben Sie folgende Zeile an:

-C c:\avrdude\avrdude.conf -p m328p -P com9 -c arduino -b 115200 -U flash:w:{FILE}:i

Wenn ihr Arduino nicht an COM9 hängt, müssen Sie gegebenenfalls einen anderen COM-Port innerhalb dieser Zeile angeben. Ersetzen Sie dann COM9 durch z.B. COM3, COM4 usw. Das war es, ab nun können Sie auch unter Bascom die Arduino kompatiblen Boards genauso einfach programmieren wie aus der Arduino IDE. Der große Vorteil von Bascom ist die leistungsstärkere IDE mit mehr Möglichkeiten und die der umfangreiche Befehlssatz von Bascom. Zudem ist Bascom deutlich leicht programmierbar und man erreicht Ziele in der Regel deutlich schneller und mit meist wesentlich weniger Programmzeilen. Trotzdem sind Bascom Programme in der Regel genauso schnell, teils sogar schneller als C Programme, da die Funktionen zum großen teil in Assembler implementiert sind. Sie haben so die Vorteile von beiden Welten. Günstige Hardware und guten Compiler! Ein Bild veranschaulicht noch mal die Einstellungen unter Bascom! Getestet mit Windows 7 64 Bit!


ArduinoBascomBootloader.jpg


Ein Bascom Beispielprogramm für Arduino Uno kompatible Boards

'##############################################################
'Blink.bas
'
'Ein  Testprogramm für Arduino Uno kompatible Boards
'
'Das Programm stellt den Port PB5 (Pin 13) auf Ausgang und
'schaltet ihn im Sekundentakt zwischen Low und High um
'Die Led auf dem Board blinkt also
'
'Bascom- und ArduinoTM kompatible Boards sowie Bascom-Compiler
'erhältlich bei www.robotikhardware.de
'Weitere Beispiele auf DVD von RobotikHardware oder in den Portalen
'www.Roboternetz.de und rn-wissen.de
'######################################################################





$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 16000000     'Resonatorfrequenz
$baud = 9800           'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9800



Config PortB.5 = Output

Do
    PortB.5=1
    wait 1
    PortB.5=0
    wait 1
Loop


Das gleiche Programm als übliches C Sketch würde in etwa so aussehen

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */
 
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);     
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}


Die serielle Ausgabe geht in Bascom natürlich auch über das USB Kabel

Man braucht also kein zweites Kabel anschließen um zu Programmieren oder Daten abzurufen

'##############################################################
'RS232Test.bas
'
'Ein  Testprogramm für Arduino Uno kompatible Boards
'
'Das Programm stellt den Port PB5 (Pin 13) auf Ausgang und
'schaltet ihn im Sekundentakt zwischen Low und High um
'Die Led auf dem Board blinkt also
'Zudem wird die Variable z jede Sekunde um 1 erhöht und
'ein Satz über die serielle Schnittstelle ausgegeben
'Mit einem Terminalprogramm kann man die Daten empfangen
'
'
'Bascom- und ArduinoTM kompatible Boards sowie Bascom-Compiler
'erhältlich bei www.robotikhardware.de
'Weitere Beispiele auf DVD von RobotikHardware oder in den Portalen
'www.Roboternetz.de und rn-wissen.de
'######################################################################



$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 16000000     'Resonatorfrequenz
$baud = 9800           'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9800


dim z as integer

Config PortB.5 = Output

z=0
Do
    Print "Hallo - Ich zaehle: "; z
    incr z
    toggle   PortB.5
    wait 1
Loop

Portbelegung von Arduino Uno kompatiblen Boards

ArduinoUnoPortbelegung.jpg


Autoren

--Frank 14:51, 22. Nov 2013 (CET)

Hinweis

Arduino™ ist ein eingetragenes Markenzeichen von Arduino LLC und den damit verbundenen Firmen http://www.arduino.cc/ - Englische Projektseite

Weblinks

Siehe auch


LiFePO4 Speicher Test