Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

K (Ein Bascom Beispielprogramm für Arduino Uno kompatible Boards)
(Hinweis)
 
(20 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
 
==Was bedeutet „Arduino" oder "Arduino kompatibel“==
 
==Was bedeutet „Arduino" oder "Arduino kompatibel“==
[[Bild:arduinokompatibel.jpg|600px|right]]
+
[[Bild:arduinokompatibel.jpg|thumb|500px|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.
 
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.
  
Zeile 11: Zeile 13:
 
Der Anwender hat also die freie Wahl und kann natürlich auch jederzeit von der ein oder anderen Umgebung umsteigen.
 
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.
+
Ich persönlich bevorzuge die Entwicklungsumgebung Bascom und kann diese nur empfehlen. Mit ihr kann man sehr produktiv arbeiten,das heißt die meisten Aufgaben lassen sich dort weit schneller umsetzen als in C. Das liegt schon, das in der Regel deutlich weniger Codezeilen in Bascom notwendig sind und der Code leichter lesbar ist. Die Vorurteile gegenüber der Sprache Basic sollte man ignorieren, 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.
+
Die Funktionen von Bascom (Library) sind fast durchweg in Assembler implementiert, wodurch die Programm in der Regel oft genauso oder sogar schneller als compilierte C-Programme ablaufen. C hat nur den Vorteil, das der Code besser auf andere Controller außerhalb der AVR-Serie portierbar ist.
  
 +
Natürlich muss man beim programmieren unter Bascom auch nicht auf den Komfort der Programmierung per USB (ohne Programmer per Bootloader) verzichten, siehe Tipps weiter unten!
  
 
==Arduino Boards unter Bascom programmieren==
 
==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.
 
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.
+
Wenn per ISP-Programmer programmiert wird ist hier nichts weiter zu beachten da alle Arduino Boards auch eine ISP-Buchse besitzen. Unter den Programmer-Einstellungen in bascom wird einfach der entsprechenden ISP-Programmer ausgewählt. In der Regel der Vorgang in der Programmer Dokumentation auch noch mal beschrieben. Empfehlenswert ist unter Bascom der spezielle Bascom USB-ISP-Programmer. Dieser Programmer, sowie viele anderen besitzen jedoch einen 10 poligen Anschluss, daher wird ein Adapter benötigt (10 auf 6). Diesen kann man leicht selber basteln oder fertig im Shop (z.B. RobotikHardware.de) bestellen.
  
 
===Man kann aber auch in Bascom ohne Programmer per USB programmieren===
 
===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.
+
Es lässt sich jedoch auch der ganz normale „Bootloader“ nutzen, der bereits in Arduino kompatiblen Boards 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.
+
Zunächst benötigt man 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 (link unten), man muss aber darauf achten das man auch die zugehörige Datei libusb0.dll nicht vergisst, man kann sie in das gleiche Verzeichnis von avrdude kopieren.
  
1. Kopieren Sie den Ordner „avrdude“ mit allen Dateien auf ihre Festplatte unter C:\
+
1. Zunächt kopiert man den Ordner „avrdude“ mit allen Dateien auf die Festplatte unter C:\
2. Danach wählen Sie in Bascom unter Optionen/Programmer die Einstellung:
+
 
 +
2. Danach wählt man in Bascom unter Optionen/Programmer die Einstellung:
  
 
  Extern Programmer
 
  Extern Programmer
  
Unter Programm wählen Sie den Pfad, also:
+
Unter Programm wählen man den Pfad, also:
  
 
  C:\avrdude\avrdude.exe
 
  C:\avrdude\avrdude.exe
Zeile 38: Zeile 42:
 
  -C c:\avrdude\avrdude.conf -p m328p -P com9 -c arduino -b 115200 -U flash:w:{FILE}:i
 
  -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.
+
Wenn das Arduino Board nicht an COM9 hängt, muss gegebenenfalls einen anderen COM-Port innerhalb dieser Zeile angeben werden. COM9 muss dann durch z.B. COM3, COM4 usw. ersetzt werden.  
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.
+
Das war es, ab nun lassen sich 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.
 
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!
 
Ein Bild veranschaulicht noch mal die Einstellungen unter Bascom!  Getestet mit Windows 7 64 Bit!
  
  
 
[[Bild:ArduinoBascomBootloader.jpg]]
 
[[Bild:ArduinoBascomBootloader.jpg]]
 
  
 
===Ein Bascom Beispielprogramm für Arduino Uno kompatible Boards===
 
===Ein Bascom Beispielprogramm für Arduino Uno kompatible Boards===
Zeile 91: Zeile 94:
 
</pre>
 
</pre>
  
 
+
==Das gleiche Programm als übliches C Sketch würde in etwa so aussehen==
==Das gleiche Programm als übleches C Sketch würde so aussehen==
+
 
<pre>
 
<pre>
 
/*
 
/*
Zeile 118: Zeile 120:
 
   delay(1000);              // wait for a second
 
   delay(1000);              // wait for a second
 
}
 
}
 +
</pre>
 +
 +
 +
==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
 +
 +
[[Bild:bascomarduinoseriell.png]]
 +
 +
<pre>
 +
'##############################################################
 +
'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
 
</pre>
 
</pre>
  
Zeile 130: Zeile 183:
 
==Hinweis==
 
==Hinweis==
 
Arduino™ ist ein eingetragenes Markenzeichen von Arduino LLC und den damit verbundenen Firmen
 
Arduino™ ist ein eingetragenes Markenzeichen von Arduino LLC und den damit verbundenen Firmen
http://www.arduino.cc/  -  Englische Projektseite
+
https://www.arduino.cc/  -  Englische Projektseite
  
 
==Weblinks==
 
==Weblinks==
* [http://www.arduino.cc Projektseite mit einer ausführlichen Einführung / Lizenzbedingen usw.]
+
* [https://www.arduino.cc Projektseite mit einer ausführlichen Einführung / Lizenzbedingen usw.]
* [http://arduino.cc/en/Main/Software Die C Entwicklungsumgebung und Beispielprogramme]
+
* [https://arduino.cc/en/Main/Software Die C Entwicklungsumgebung und Beispielprogramme]
* [http://www.roboternetz.de/community/forums/69-Arduino-Plattform Deutsches Roboternetz Arduino-Forum]
+
* [https://www.roboternetz.de/community/forums/69-Arduino-Plattform Deutsches Roboternetz Arduino-Forum]
 +
* [https://savannah.nongnu.org/projects/avrdude/ Avrdude - notwendig wenn unter Bascom per USB Bootloader programmiert wird]
 +
* [https://programino.com PROGRAMINO IDE für Arduino - Alternative Entwicklungsumgebung für Arduino]
  
 
==Siehe auch==
 
==Siehe auch==
Zeile 142: Zeile 197:
 
* [[Mit welchem Controllerboard fang ich an]]
 
* [[Mit welchem Controllerboard fang ich an]]
 
* [[Bascom]]
 
* [[Bascom]]
 +
* [[RN-Control]] - Alternatives Einstiegsboard mit mehr Ports
 
* [[GCC]]
 
* [[GCC]]
  

Aktuelle Version vom 14. Mai 2019, 14:09 Uhr

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 bevorzuge die Entwicklungsumgebung Bascom und kann diese nur empfehlen. Mit ihr kann man sehr produktiv arbeiten,das heißt die meisten Aufgaben lassen sich dort weit schneller umsetzen als in C. Das liegt schon, das in der Regel deutlich weniger Codezeilen in Bascom notwendig sind und der Code leichter lesbar ist. Die Vorurteile gegenüber der Sprache Basic sollte man ignorieren, Bascom hat mit dem ursprünglichen Basic von früher nicht mehr viel gemeinsam, außer das es fast genauso leicht erlernbar ist. Die Funktionen von Bascom (Library) sind fast durchweg in Assembler implementiert, wodurch die Programm in der Regel oft genauso oder sogar schneller als compilierte C-Programme ablaufen. C hat nur den Vorteil, das der Code besser auf andere Controller außerhalb der AVR-Serie portierbar ist.

Natürlich muss man beim programmieren unter Bascom auch nicht auf den Komfort der Programmierung per USB (ohne Programmer per Bootloader) verzichten, siehe Tipps weiter unten!

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 per ISP-Programmer programmiert wird ist hier nichts weiter zu beachten da alle Arduino Boards auch eine ISP-Buchse besitzen. Unter den Programmer-Einstellungen in bascom wird einfach der entsprechenden ISP-Programmer ausgewählt. In der Regel der Vorgang in der Programmer Dokumentation auch noch mal beschrieben. Empfehlenswert ist unter Bascom der spezielle Bascom USB-ISP-Programmer. Dieser Programmer, sowie viele anderen besitzen jedoch einen 10 poligen Anschluss, daher wird ein Adapter benötigt (10 auf 6). Diesen kann man leicht selber basteln oder fertig im Shop (z.B. RobotikHardware.de) bestellen.

Man kann aber auch in Bascom ohne Programmer per USB programmieren

Es lässt sich jedoch auch der ganz normale „Bootloader“ nutzen, der bereits in Arduino kompatiblen Boards schon vorhanden ist. Dazu ist es lediglich notwendig, einmalig einige Einstellungen vorzunehmen.

Zunächst benötigt man 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 (link unten), man muss aber darauf achten das man auch die zugehörige Datei libusb0.dll nicht vergisst, man kann sie in das gleiche Verzeichnis von avrdude kopieren.

1. Zunächt kopiert man den Ordner „avrdude“ mit allen Dateien auf die Festplatte unter C:\

2. Danach wählt man in Bascom unter Optionen/Programmer die Einstellung:

Extern Programmer

Unter Programm wählen man 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 das Arduino Board nicht an COM9 hängt, muss gegebenenfalls einen anderen COM-Port innerhalb dieser Zeile angeben werden. COM9 muss dann durch z.B. COM3, COM4 usw. ersetzt werden. Das war es, ab nun lassen sich 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.

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

Bascomarduinoseriell.png

'##############################################################
'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 https://www.arduino.cc/ - Englische Projektseite

Weblinks

Siehe auch


LiFePO4 Speicher Test