Seit meinen ersten Versuchen im Januar 2014 (Arduino: Was geht?) hat sich viel getan. Es gibt viele neue und leistungsfähigere Boards und, was für mich noch viel interessanter ist: es werden eine Reihe von Nicht-Atmel-Prozessoren durch die Arduino-IDE unterstützt. Das macht es leicht, mit diesen neuen Prozessoren Bekanntschaft zu machen. Insbesondere der ESP8266, ein programmierbarer WLAN-SoC mit UART- und SPI-Schnittstelle und bereits ab 3€ verfügbar, und der STM32F103C8, eine leistungsfähige CPU auf Basis eines ARM 32 Cortex-M3, der als "STM32F103C8T6 ARM STM32 Minimum System Development Board" bereits ab etwa 5$ zu haben ist.
Für beide Systeme gibt es eigenständige SDKs. Der Aufwand, sich in diese einzuarbeiten ist aber nicht gering. Wenn man die Nachteile der Arduino-IDE in Kauf nimmt, kann man für beide Prozessoren schnell erste Programme schreiben.
Man sollte die neueste Version der Arduino-IDE installieren. Zum Zeitpunkt des Schreibens dieses Textes war dies die Version 1.6.4. Deutlich ältere Versionen erlauben die Unterstützung der o.g. Prozessor-Typen nicht. Die neueste Version kann wie üblich von der Arduino-Homepage heruntergeladen werden.
Die IDE besitzt eine neue Funktion, den "Boardsmaneger", über den es auf einfache Art möglich ist, weitere Boards zu installieren. ein einfacher Klick auf den entsprechenden Listeneintrag genügt.
Boardsmanager aufrufen | Arduino Boardsmanager |
Die Installation für die Erweiterung für den ESP8266 geschieht vollständig über den den Boardsmanager. Wie dies funktioniert, ist auf der GitHub-Seite Arduino-compatible IDE with ESP8266 support nachzulesen. Installiert wird das Paket einschließlich eines Compilers ("xtensa-lx106-elf-gcc") im Verzeichnis "<user>AppData\Roaming\Arduino15". Nach erfolgreicher Installation
Für die ESP8266-Erweiterung gibt es eine eigenständige Homepage:
www.arduinesp.com. Hier ist vieles weitere
im Detail beschrieben. Insbesondere die Verschaltung mit einem
FT232-Adapter
ist interessant. Das Uploader-Programm nutzt die Steuerleitungen der RS323-Schnittstelle RTS und
DTR zur Kontrolle des Reset- und GPIO0-Pins, über die der Bootloader angesteuert wird. Mein Terminal-Programm
VbTermie habe ich so angepasst, dass die RS232-Steuerleitungen
angezeigt und bedient werden können. Man kann also z.B. vom Ternimal-Programm aus einen Reset des
ESP8266 auslösen oder den Zustand der beiden GPIO-Pins anzeigen.
ESP8266 ESP-01 | USB TTL | |||
GND RX TX Reset GPIO0 VCC CH_PD |
— — — — — — — |
GND TX RX RTS DTR VCC VCC |
||
Auf die richtige Einstellung der Spannung achten! Der ESP8266 benötigt 3.3V. |
Dokumentationen zum ESP8266 findet man unter bbs.espressif.com oder über die SDK-Seite von espressif.
Weitere Tipps zur ESP8266-Programmierung
Der STM32F103C8T6 ist eine kleine leistungsfähiger CPU Basis eines ARM 32 Cortex-M3 mit 72MHz Taktfrequenz, 64K Flash-Speicher, 20K SRAM, Versorgungs- und I/O-Spannung 2.0-3.6V, on-board Mini USB interface, geeignet zur Stromversorgung und USB-Kommunikation. Größe: 53.34mm x 22.86mm.
Roger Clark hat sich um die Portierung der Arduino-IDE gekümmert. In seinem Wiki findet man eine Anleitung. Die herunter geladenen Dateien müssen nicht unbedingt ins Verzeichnis ".../Documents/Arduino/hardware" kopiert werden. Ich kopiere meinen Dokumenten-Ordner regelmäßig auf ein anderes Medium und möchte in diesem Ordner nur solche Dokumente aufbewahren, die ich selbst erstellt habe und ansonsten nicht wiederbeschafft werden können. Den heruntergeladenen Ordner "Arduino_STM32" kann man genau so gut ins Verzeichnis "...\Arduino\hardware" platzieren, in dem sich schon die Dateien für den Original-Arduino befinden. (Anm. Das klappt zwar, aber nach dem Update auf Version 1.6.5 war alles wieder gelöscht)
Weitere Hinweise findet man auf Roger Clarks Homepage und auf der GitHub-Seite des Projekts. Ein Video zur Hilfestellung des Programm-Uploads findet man unter YouTube. Nicht zuletzt gibt es einen Blog, der sich mit diesem Thema befasst: stm32duino
Die Arduino-IDE ist schon recht spartanisch ausgestattet. Die neuen Boards per Hand in eine komfortablere Entwicklungsumgebung wie das Atmel-Studio einzubinden, ist mit einem nicht machbaren Aufwand verbunden. Deshalb habe ich mir noch einmal die "Visual Micro Arduino IDE" angeschaut. Die aktuelle Version 1505.19 Sp6 vom 30. Mai 2015 lässt nur noch wenige Wünsche übrig. Wenn man sich an die Arduino-Regeln hält, funktioniert das ganze einwandfrei.
Das intensive Studium der ausführlichen Dokumentation ist unerlässlich. Z.B. erfolgt das Upload eines Programms per Funktionstaste (F5). Einen entsprechenden Menüpunkt findet man vergeblich.
Arduino Uno | Compile: ✔ | Upload: ✔ |
ESP8266 | Compile: ✔ | Upload: ✔ |
STM32F103C | Compile: ✔ | Upload: noch nicht getestet (14.6.2015) |
Reste des Build-Vorgangs löschen
Serieller Monitor VbTermie während des Uploads ausschalten.
Quellen eingebundener Bibliotheken sichtbar machen.