Software – Pollux Labs https://polluxlabs.net Arduino, ESP32 & ESP8266 | Projekte & Tutorials Tue, 07 Nov 2023 12:57:36 +0000 de-DE hourly 1 https://wordpress.org/?v=6.4.4 https://polluxlabs.net/wp-content/uploads/2020/05/cropped-pollux-labs-p-32x32.png Software – Pollux Labs https://polluxlabs.net 32 32 Die Arduino IDE 2.0 https://polluxlabs.net/news/die-arduino-ide-2-0/ Sat, 20 Mar 2021 11:13:52 +0000 https://polluxlabs.net/?p=7372 Die Arduino IDE 2.0 Weiterlesen »

]]>
20.3.2021

Anfang März 2021 wurde auf dem offiziellen Arduino-Blog eine neue Beta-Version der Arduino IDE angekündigt. Beta-Versionen sind für das beliebte Entwicklungstool nichts ungewöhnliches. Die neue Version jedoch schon – so wie es der Sprung auf die Versionsnummer 2.0 auch vermuten lässt.

Werfen wir also einen ersten kurzen Blick auf die neue IDE.

Du kannst dir die Beta-Version wie üblich im Download-Bereich von Arduino herunterladen – etwas weiter unten unter Experimental Software.

Wenn du nach der Installation die Arduino IDE das erste mal öffnest, wird dir gleich die frischere Optik auffallen. Alles wirkt etwas moderner und aufgeräumter. So musst du zum Beispiel nicht mehr in das Menü, um den Bibliotheks- und Boardmanager zu öffnen. Auch die Auswahl deines Boards kannst du direkt im Sketch treffen.

Die Oberfläche der Arduino IDE 2.0
Die Oberfläche der Arduino IDE 2.0

Darüber hinaus gibt es ein Feature, das du sicherlich aus anderen Tools kennst: die Autovervollständigung.

Wenn du anfängst, einen Befehl einzugeben, öffnet sich eine Auswahl mit passenden Ergänzungen. Hier am Beispiel Serial.

Autovervollständigung in der Arduino IDE 2.0
Autovervollständigung in der Arduino IDE 2.0

Apropos serielle Verbindung: Auch der Serielle Monitor ist nun besser integriert. Statt in einem Extrafenster findest du ihn nun im unteren Bereich des Sketchs.

Serieller Monitor in der Arduino IDE 2.0
Serieller Monitor in der Arduino IDE 2.0

Außerdem versprechen die Entwickler eine schnellere Kompilierung der Sketches und das sogenannte Live Debugging.

Hast du auch schon ein Serial.print() nach dem anderen in deinem Sketch platziert, um zum Beispiel herauszufinden, was wann in einer Variablen gespeichert wird? Das könnte nun vorbei sein. Mit dem Live Debugger kannst du dir Breakpoints im Code setzen und so viel leichter nachvollziehen, was dein Sketch genau macht.

Aktuell (Stand März 2021) wird der Live Debugger von den Boards der MKR-Familie, Nano 33 IoT, Nano 33 BLE, Portenta und Zero unterstützt.

Lohnt sich der Umstieg?

Das können wir jetzt noch nicht beurteilen. Was sich aber auf jeden Fall lohnt, ist ein Blick in die neue Software! Die Arduino IDE 2.0 ist ein richtiger Schritt nach vorne und beinhaltet viele Features, die moderne IDEs ausmachen.

Achte jedoch darauf, dass du die Beta-Version erst einmal nicht für “wichtige” Projekte einsetzt. Hier können immer noch Bugs auftreten, die deinen Sketch vielleicht beschädigen.

Stehst du noch am Anfang deiner Maker-Karriere? In unserem Online-Kurs lernst du, wie du deinen Arduino programmieren kannst.

]]>
Ein Babyphone mit künstlicher Intelligenz und einem Arduino Nano 33 BLE Sense https://polluxlabs.net/arduino-projekte/ein-babyphone-mit-kuenstlicher-intelligenz-und-einem-arduino-nano-33-ble-sense/ Mon, 18 Jan 2021 22:36:23 +0000 https://polluxlabs.net/?p=4884 Ein Babyphone mit künstlicher Intelligenz und einem Arduino Nano 33 BLE Sense Weiterlesen »

]]>

Ein Babyphone ist eine praktische Sache, sollte das eigene Kleinkind mal außer Hörweite sein. Im Prinzip ist solch ein Gerät nichts anderes als ein Sender mit Mikrofon, der per Funk Geräusche an einen Empfänger überträgt. Weint oder schreit ein Baby aus dem Lautsprecher, erkennt jeder Mensch sofort, was hier los ist.

Aber kann eine künstliche Intelligenz auch lernen, Weinen und Schreien von anderen Geräuschen zu unterscheiden? Klar! Hier stellen wir ein Projekt vor, das mithilfe von Machine Learning und TinyML genau das macht. Alles was du dafür brauchst, ist ein Arduino Nano 33 BLE Sense und einen kostenlosen Account bei Edge Impulse.

Fortgeschrittene

3 – 4 Stunden

ca. 40€

Für dieses Projekt benötigst du:

Arduino® Board Nano 33 BLE Sense with headers
Arduino® Board Nano 33 BLE Sense with headers
Arduino Board Nano 33 BLE Sense with headers; Inhalt: 1 Stück

Das vorgestellte Projekt stammt vom Maker Ish Ot Jr. und wurde im Arduino Project Hub veröffentlicht. Du findest die Beschreibung (Englisch) hier. Im Folgenden beschäftigen wir uns mit den Voraussetzungen für das Babyphone mit KI, gehen auf wichtige Aspekte genauer ein und geben einen Ausblick auf weitere Anwendungen und Möglichkeiten.

Grundlagen

Das Babyphone mit dem Arduino Nano 33 BLE Sense funktioniert im Kern so: Zunächst sammelst du Geräusche von (d)einem Baby, die die Künstliche Intelligenz später erkennen soll. Damit sie diese von allen möglichen anderen Geräuschen unterscheiden kann, benötigst du auch Nebengeräusche, die im Kinderzimmer auftreten können – und zwar so viele Samples wie möglich, auch von der Stille eines träumenden Babys. 😉

Die Audiodaten kannst du direkt mit deinem Arduino sammeln. Wenn du noch nicht weißt, wie das geht, lese zunächst diese beiden Tutorials:

Wie du siehst, steht der Service von Edge Impulse im Mittelpunkt. Diesen kannst du kostenlos nutzen, um Daten zu sammeln, zu KI-Modellen zu verarbeiten und auf einem Microcontroller zu deployen.

Audio sammeln und ein Modell entwickeln

Wenn du nun weißt, wie du grundsätzlich Daten mit deinem Arduino Nano sammelst und in Edge Impulse speicherst, kannst du damit loslegen. Im Projekt im Arduino Project Hub legt der Autor zwei Labels an: Weinen (crying) und Geräusche (noise).

Wenn du für jedes deiner Labels mehrere Minuten Audio gesammelt hast, kann es weitergehen. In seinem Tutorial im Arduino Project Hub erläutert der Autor, welche Einstellungen er für sein Impulse Design verwendet. Damit erhält er eine Genauigkeit seines Modells von gut 86%.

Investiere in diesen Schritt des Projekts ruhig etwas Zeit und spiele mit den Einstellungen herum. Es ist wichtig, dass die einzelnen Labels (bzw. Features) gut von einander unterscheidbar sind, wie hier zu sehen. Diese Daten stammen aus einem anderem KI-Projekt, bei dem es um das Erkennen von Gesten geht.

KI-Modell in Edge Impulse
Beispiel für gut getrennte Features

Wenn du auf keinen grünen Zweig kommst, könnte eine Möglichkeit sein, einfach noch mehr Daten zu sammeln. Je mehr Material deine KI zum Lernen hat, desto besser. Achte auch darauf, dass du in Edge Impulse auch genügend Testdaten hast – diese dürfen sich nicht mit den Trainingsdaten überschneiden, um zuverlässige Ergebnisse zu erhalten.

So bringst du die KI auf deinen Arduino

Wenn du zufrieden bist mit deinem KI-Modell, wähle unter dem Menüpunkt Deployment die Kachel Arduino Library und lade dir die ZIP-Datei herunter. Hier enthalten sind eine Bibliothek und ein Sketch, den du im Folgenden etwas modifizierst.

Du könntest unter Deployment auch eine Firmware für deinen Arduino Nano 33 BLE Sense erstellen lassen. Dann könntest du die Auswertungen der KI jedoch nur im Seriellen Monitor verfolgen – etwas unpraktisch für ein Babyphone. Deshalb kommt der Sketch ins Spiel.

Im Tutorial im Project Hub geht der Autor sehr genau auf seine Anpassungen ein und erklärt, wie er die direkt am Arduino verbaute RGB LED verwendet, um darzustellen, ob ein Baby gerade weint oder nicht. Grün steht hier für “Alles in Ordnung”, also dafür, dass die Künstliche Intelligenz nur Noise erkennt. Rot hingegen für Weinen.

Wie geht es weiter?

Das vorgestellte Projekt zeigt sehr anschaulich, wie man mit einem einigermaßen günstigen Microcontroller und Edge Impulse relativ einfach ein KI-Projekt umsetzen kann. Du könntest das Modell noch verfeinern und nicht alles was nicht Weinen ist, einfach unter Noise zusammenfassen. So könnten weitere Labels die Ergebnisse noch verbessern.

Für diese detailliertere Auswertung ist die interne RGB LED vermutlich nicht ausreichend. Auf Pollux Labs findest du viele Tutorials zu Displays und auch zu einem NeoPixel LED Ring.

Wie sieht es mit anderen Geräuschen aus? Duscht gerade jemand? Oder schleudert deine Waschmaschine unruhig und könnte bald kaputtgehen? Das könnten alles Anwendungsfälle für dich sein. 🙂

]]>
Leg los mit CircuitPython https://polluxlabs.net/circuitpython/leg-los-mit-circuitpython/ Mon, 12 Oct 2020 12:30:12 +0000 https://polluxlabs.net/?p=2972 Leg los mit CircuitPython Weiterlesen »

]]>

Suchst du einen leichten Zugang in die Welt der Microcontroller und Elektronikprojekte? Oder bist du schon ein alter Hase und hast einfach Lust auf etwas Neues? Es gibt eine Menge Gründe, CirycuitPython auszuprobieren!

In diesem Artikel erfährst du, was CircuitPython ist und was du brauchst, um damit durchzustarten. Wir schreiben zusammen etwas Python-Code und lassen ein paar LEDs wilde Sachen machen. 🙂

Was ist CircuitPython?

Das New Yorker Unternehmen Adafruit hat im Sommer 2017 ihre “neue” Programmiersprache vorgestellt: CircuitPython. Hierbei handelt es sich um einen sogenannten Fork von MicroPython, einer anderen Sprache, die ebenso für die Programmierung von Microcontrollern entwickelt wurde. Beide Programmiersprachen basieren auf Python 3 – CircuitPython wurde jedoch mit dem Ziel entwickelt, besonders einsteigerfreundlich zu sein.

Python gilt als leicht zu erlernende Programmiersprache und wird mittlerweile auch bereits in der Schule unterrichtet. Dabei ist Python nicht nur etwas für Einsteiger – auch komplexe Projekte im Bereich der künstlichen Intelligenz werden z.B. mit Python realisiert.

Welche Vorteile hat CircuitPython?

Abgesehen davon, dass Python relativ leicht zu lernen ist, hat der Einsatz von CircuitPython noch weitere Vorteile.

Vermutlich hast du bereits in der Arduino IDE Sketches in C++ geschrieben und auf dein Board geladen. Dann weißt du, dass jede Änderung im Code mit einem längeren Update des Boards verbunden ist: Der Sketch wird kompiliert und dann vollständig auf den Microcontroller geladen – was ganz schön lange dauern kann.

Anders bei CircuitPython: Wenn du dein Board per USB an deinen Computer anschließt, wird es als Laufwerk erkannt. Hierauf befindet sich der Python-Code z.B. in der Datei code.py – diese Datei kannst du theoretisch mit jedem Text-Editor öffnen und verändern. Sobald du deine Änderungen gespeichert hast, resettet sich dein Board automatisch und läuft mit dem neuen Code – eine Sache von wenigen Sekunden.

Der große Unterschied hierbei ist, dass C++ kompiliert wird und Python (also auch CircuitPython) interpretiert. Wie bitte? Um nicht den Rahmen dieses Artikel zu sprengen, lies bitte hier mehr über Kompilieren und Interpretieren, wenn dich das Thema interessiert.

Die REPL

Das klingt schon ziemlich schnell, aber es geht noch schneller. Wenn auf deinem Board CircuitPython läuft, kannst du mit ihm über die REPL (engl. Read–eval–print loop) kommunizieren. Das heißt, du kannst Befehle direkt an deinen Microcontroller senden, die dieser dann sofort ausführt.

Das ist besonders praktisch zum Debuggen, also um schnell mal auszuprobieren, ob eine LED richtig angeschlossen ist oder eine Funktion so funktioniert, wie du es dir vorgestellt hast. Mit der Arduino IDE und C++ kann das mitunter frustrierend sein, da du auch für kleine Änderungen im Sketch alles wieder neu kompilieren und hochladen musst.

Die REPL im Mu Editor mit CircuitPython

Später lernst du in diesem Artikel den Mu Editor kennen. Dann werden wir genauer auf die REPL eingehen.

Und die Nachteile?

Natürlich hat der Einsatz von CircuitPython auch Nachteile. Ein gewichtiger ist der Support mit Bibliotheken: Adafruit und die Community haben bereits für viele Sensoren und Bauteile passende Bibliotheken veröffentlicht und stellen diese selbstverständlich kostenfrei zur Verfügung. An die Menge, die dir in der Arduino IDE zur Verfügung steht, kommen sie aber noch nicht heran.

Da CircuitPython jedoch eine noch relativ junge Technologie ist, sind wir davon überzeugt, dass sich das im Laufe der Zeit ändern wird. Bereits jetzt veröffentlicht Adafruit regelmäßig neue Bundles mit Bibliotheken, die dir das Leben leichter machen.

Stichwort Geschwindigkeit: Die Geschwindigkeit beim Entwickeln ist bei CircuitPython zwar höher, dafür können Programme jedoch langsamer laufen als es beim kompilierten Code in C++ der Fall ist. Aber dieser Unterschied dürfte bei den meisten Hobby-Anwendungen kaum ins Gewicht fallen.

Der passende Microcontroller

Der einfachste Weg, mit CircuitPython und Microcontrollern zu experimentieren, ist, ein speziell dafür ausgelegtes Board zu kaufen. Adafruit hat hier eine fast schon überwältigende Menge an verschiedenen Boards in vielen Größen und für viele Anwendungsbereiche produziert.

Du kannst CircuitPython aber auch auf einigen Arduino-Boards wie dem Zero oder dem MKR Zero zum Laufen bringen. In der Dokumentation von Adafruit erfährst du mehr darüber.

In diesem Artikel verwenden wir das Board Metro M0 Express von Adafruit. Es hat dieselben Maße wie ein Arduino UNO und verfügt über ähnlich viele Analog- und Digitalpins. Außerdem hat es 4 LEDs und einen NeoPixel an Bord und verfügt über 2MB Speicher. Genug Platz für deinen Code, Dateien und Bibliotheken.

Alle Boards, die CircuitPython unterstützen, findest du in einer Übersicht von Adafruit.

Vorbereitungen

Du hast dich entschlossen, mit CircuitPython loszulegen? Großartig! Bevor du anfängst, musst du allerdings noch etwas Zeit in Vorbereitungen stecken.

Zunächst solltest du dir die passende Firmware für dein Board, die aktuellen Bibliotheken und einen passenden Editor herunterladen und installieren.

Die Firmware

Suche in der Übersicht von Adafruit nach deinem Board und klicke darauf. Anschließend siehst du die verfügbaren Versionen der Firmware. Achte darauf, die neueste stable Version herunterzuladen – in unserem Beispiel die Version 5.3.1

Firmware Metro M0 Express

Schließe nachdem Download dein Board per USB an deinem Computer an. Als nächstes musst du es in den Boot-Modus versetzen: Das machst du, indem du zweimal kurz hintereinander den Reset-Button auf dem Board drückst.

Adafruit weist darauf hin, dass das in der “richtigen” Geschwindigkeit erfolgen soll – wie auch immer, wenn es geklappt hat, findest du im Explorer (oder Finder auf deinem Mac) ein neues Laufwerk. Der Name des Laufwerks setzt sich aus dem Boardnamen und “BOOT” zusammen. In unserem Fall heißt es also METROBOOT.

Das Board im Boot-Modus im Finder

Ziehe nun die Datei, die du vorhin heruntergeladen hast, auf dieses Laufwerk. Damit installierst du die Firmware. Nach wenigen Sekunden sollte das Laufwerk automatisch ausgeworfen werden und dafür ein anderes mit dem Namen CIRCUITPY erscheinen.

Wenn das der Fall ist, hat alles funktioniert und dein Board ist bereit. 🙂 Falls es nicht klappt, wirf einen Blick in die Dokumentation von Adafruit – hier werden einige weitere Hilfestellungen gegeben.

Die Bibliotheken

Jetzt wo dein Board bereit ist, fehlen noch die Bibliotheken. Wie eingangs erwähnt, gibt es bereits für viele Anwendungen eine Bibliothek, die dir Arbeit abnimmt.

Adafruit bietet hier ganze Bundles an, die du dir hier herunterladen kannst. Lade dir von dort das Bundle herunter, das deiner Firmware-Version entspricht. Wenn du also eine Firmware in der Version 5.x installiert hast benötigst du das Bibliotheken-Bundle mit derselben Versionsnummer.

Entpacke die heruntergeladene Datei und öffne den Ordner. Im Unterordner lib findest du nun alle verfügbaren Bibliotheken. Suche dir die aus, die du benötigst und kopiere sie in den gleichnamigen Ordner des Laufwerks CIRCUITPY. Wenn dein Board genug Speicher besitzt, kannst du auch einfach alle Bibliotheken dort rüberkopieren.

Bibliotheken für CircuitPython auf dem Metro M0 Express

Wenn du auf Probleme stößt, konsultiere die Dokumentation von Adafruit zum Thema Bibliotheken. Hier werden recht viele Sonderfälle besprochen.

Examples

Aus der Arduino IDE kennst du sicherlich die Beispiele, die den meisten Bibliotheken beiliegen. Diese sind recht nützlich, um herauszufinden, welche Funktionen eine Bibliothek bietet und wie du diese verwendest.

Diese Beispiele gibt es auch für CircuitPython. Auf der Seite, von der du das Bibliotheken-Bundle heruntergeladen hast, kannst du unter Bundle Examples eine ZIP-Datei mit Beispielen herunterladen.

Wie du diese Beispiele auf deinem Board ausführst, sehen wir gleich. Zunächst fehlt jedoch noch der passende Editor.

Der Mu Editor

Um Code in CircuitPython schreiben zu können, benötigst du natürlich einen Editor. Hier reicht im Prinzip der einfachste Text Editor – wir möchten dir jedoch den Mu Editor ans Herz legen. Der ist gratis, einsteigerfreundlich und für CircuitPython ausgelegt. So findest du darin z.B. einen Seriellen Monitor und Plotter wie du es vermutlich schon von der Arduino IDE gewohnt bist. Außerdem kannst du hier auch die oben beschriebene REPL problemlos verwenden.

Lade dir die aktuelle Version hier von der offiziellen Seite für dein Betriebssystem herunter.

Erste Schritte

Öffne nun den Mu Editor. Als nächstes schauen wir uns die wichtigsten Funktionen an. Danach schreibst du auch schon deinen ersten Code in Python und bringst ihn auf deinem Board zum Laufen.

Oberfläche des Mu Editors

Im oberen Bereich findest du eine Leiste mit Funktionen:

Modus: Hier kannst du einstellen, für welchen Zweck du den Mu Editor verwenden möchtest. Unserer heißt Adafruit CircuitPython.

Neu: Erstellt eine neue leere Datei.

Laden & Speichern: Das ist sicherlich klar. 🙂 Ein Hinweis vorab: Wenn dein Board deinen Code automatisch starten soll, musst du den Dateinamen cody.py verwenden.

Seriell & Plotter: Diese beiden kennst du sicherlich schon von der Arduino IDE. Hier kannst du wie gewohnt Daten einsehen und Statements ausgeben, die dir beim Debuggen helfen.

Prüfen: Hiermit kannst du deinen Code auf Fehler checken lassen.

Die REPL öffnen und verwenden

Um die REPL zu öffnen und direkt mit deinem Board interagieren zu können, öffne zunächst über den entsprechenden Button oben den Seriellen Monitor. Drücke anschließend gleichzeitig Strg + C und danach eine beliebige Taste. Nun öffnet sich die REPL:

Die REPL im Mu Editor

Zeit für einen kurzen Test: Kopiere den folgenden Code, füge ihn in deiner REPL ein und drücke Enter:

import board
import digitalio
import time
 
led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT

Jetzt kannst du direkt die Onboard-LED anschalten, indem du folgendes eingibst und wieder Enter drückst:

led.value = True

Ist sie angegangen? Dann schalte sie versuchsweise wieder aus, indem du led.value auf False setzt. Hinweis: Auf den meisten kompatiblen Boards kannst du die interne LED über den Pin D13 ansteuern. Bei einigen ist es jedoch D17 und einige wenige haben keine interne LED.

So speicherst du dein Programm auf dem Board

Die REPL ist toll, um schnell etwas zu testen. In den meisten Fällen wirst du jedoch ein reguläres Programm in CircuitPython schreiben und direkt auf deinem Board abspeichern.

Dein Board sucht automatisch nach einer Datei mit dem Namen code.py. Wenn es keine findet, hält es Ausschau nach der Datei main.py und führt diese aus. Heißt konkret: Speichere das Programm, das ausgeführt werden soll unter dem Namen code.py direkt auf dem Laufwerk CIRCUITPY deines Boards ab.

Immer wenn dein Board hier eine Änderung feststellt – weil du den Code im Mu Editor aktualisiert und gespeichert hast – rebootet es und führt den neuen Code aus. Das ganze dauert in der Regel nur wenige Sekunden.

Dein erstes Programm in CircuitPython

Jetzt wird es Zeit, dein erstes Programm zu schreiben, auf deinem Board abzuspeichern und auszuführen. Auch für dieses Beispiel soll erst einmal eine blinkende LED reichen.

Schnapp dir ein Breadboard, eine LED und einen Vorwiderstand und baue folgendes auf:

Ein erster Test mit CircuitPython und Adafruit Metro Express

Kopiere nun folgenden Code in eine leere Datei in deinem Mu Editor und speichere sie als code.py ab.

import board
import digitalio
import time
 
led = digitalio.DigitalInOut(board.D1)
led.direction = digitalio.Direction.OUTPUT
 
while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Deine LED sollte nun im Halbsekundentakt an- und wieder ausgehen. Werfen wir nun einen Blick auf die einzelnen Teile des Codes.

Zunächst bindest du drei Bibliotheken ein so wie du es aus der Arduino IDE kennst. Viele Bibliotheken sind in extra Dateien ausgelagert und müssen von dir in den Ordner lib auf deinem Board gespeichert werden, bevor du sie verwenden kannst.

Die drei Bibliotheken in diesem Beispiel sind jedoch Teil von CircuitPython. Das heißt, du musst nichts weiter tun, bevor du sie verwenden kannst, außer sie einzubinden:

import board
import digitalio
import time

Die Bibliothek board benötigst du für den Zugriff auf deine Hardware, digitalio kümmert sich um die Inputs und Outputs des Boards und mit time kannst du dein Programm “schlafen legen” – ähnlich wie du das mit delay() in C++ machst.

Anschließend legst du den Pin der LED (D1) und seine “Richtung” (OUPUT) fest. Auch das kennst du aus der Arduino IDE von der Funktion pinMode().

led = digitalio.DigitalInOut(board.D1)
led.direction = digitalio.Direction.OUTPUT

Zuletzt erstellst du einen While-Loop, der ununterbrochen läuft. Hier schaltest du die LED mit led.value = True ein, wartest eine halbe Sekunde und schaltest sie für eine weitere halbe Sekunde wieder aus.

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Spiele an den Werten etwas herum, um zu sehen, wie sich die Intervalle der LED verändern. Wenn du dein Programm speicherst, sollten deine Änderungen nach wenigen Sekunden sichtbar werden.

Wie geht es weiter?

Du hast nun alles, was du brauchst, um mit CircuitPython loszulegen. Zeit für deine Experimente. Schaue als nächstes in den Bibliotheken nach, für welche deiner Bauteile und Sensoren du hier etwa passendes findest. Wirf anschließend einen Blick in die Beispiel-Codes, die jeder Bibliothek beiliegen und beginne deine Abenteuer mit CircuitPython!

]]>
Eine ESP32-CAM (AI Thinker) mit der Arduino IDE programmieren https://polluxlabs.net/arduino-tutorials/eine-esp32-cam-ai-thinker-mit-der-arduino-ide-programmieren/ Fri, 02 Oct 2020 09:08:19 +0000 https://polluxlabs.net/?p=2802 Eine ESP32-CAM (AI Thinker) mit der Arduino IDE programmieren Weiterlesen »

]]>
Du möchtest Fotos aufnehmen und sie auf einer SD-Karte speichern, übers Internet verschicken oder gleich einen Video-Stream einrichten? Dann ist die ESP32-CAM eine tolle Sache! Es gibt da nur einen Umstand: Das Board hat keinen USB-Port. Also was tun?

In diesem Tutorial lernst du, wie du deine ESP32-CAM über einen USB/Serial-Adapter direkt in der Arduino IDE programmierst. Du benötigst hierfür:

Vorbereitungen in der Arduino IDE

Wenn du die ESP32-CAM noch nicht mit deiner Arduino IDE verbunden hast, hole das schnell nach. In diesem Tutorial erfährst du, wie du ESP32-Boards verfügbar machst.

Wenn du das erledigt hast, findest du im Menü Werkzeuge > Board den Eintrag AI Thinker ESP32-CAM – den brauchst du später.

Programmieren über einen Adapter

Da du die ESP32-CAM nicht direkt an deinen Computer anschließen kannst, benötigst du einen Adapter, der die serielle Kommunikation per USB ermöglicht. Diese werden auch FTDI-Adapter genannt – nach dem Unternehmen FTDI, das sich auf diese Anwendungen spezialisiert hat. Ein bisschen wie Tempo also. 🙂

Diese Adapter gibt es in vielen Ausführungen von vielen Herstellern. Oben haben wir dir einen verlinkt, den du zwischen 3,3V und 5V umschalten kannst – was ganz praktisch ist.

Um nun also einen Sketch hochzuladen, verbinde deine ESP32-CAM und den FTDI-Adapter wie folgt:

ESP32-CAM mit FTDI-Adapter programmieren

Hier noch einmal die Verbindungen übersichtlich dargestellt:

FTDI-AdapterESP32-CAM
GNDGND
VCC5V
TXDU0R
RXDU0T

Wichtig: Wenn du einen Sketch hochlädst, musst du an deiner ESP32-CAM den Pin IO0 mit GND verbinden – im Schema oben hellblau dargestellt. Um den Sketch später auszuführen, trenne diese Verbindung wieder und drücke den Reset-Button.

Wenn du den Adapter und die ESP32-CAM wie oben beschrieben miteinander verkabelt hast, verbinde den Adapter mit deinem Computer. Wähle dann in der Arduino IDE das Board AI Thinker ESP32-CAM und den richtigen Port aus und lade deinen Sketch hoch.

Funktioniert nicht?

Der häufigste Fehler ist die fehlende Verbindung zwischen IO0 und GND, die du beim Upload herstellen musst. Wenn du hierfür ein Kabel verwendest, prüfe es auf seine Funktion.

Eine weitere Fehlerquelle kann auch das USB-Kabel sein: Kannst du damit Daten übertragen oder liefert es nur Strom? Manchmal kommt es auch zu Problemen, wenn das Kabel zu lang ist – probiere einfach mal ein anderes.

Wenn der Fehler woanders liegen muss, findest du möglicherweise in der recht umfangreichen Dokumentation bei Random Nerd Tutorials (Englisch) eine Lösung.

]]>
Deinen ESP32 mit der Arduino IDE programmieren https://polluxlabs.net/arduino-tutorials/deinen-esp32-mit-der-arduino-ide-programmieren/ Thu, 01 Oct 2020 13:52:35 +0000 https://polluxlabs.net/?p=2806 Deinen ESP32 mit der Arduino IDE programmieren Weiterlesen »

]]>
Der ESP32 ist so etwas wie der große Bruder des ESP8266. Mit ihm verfügst du nicht nur über WiFi, sondern kannst auch Bluetooth nutzen. Und das beste: Du kannst es ganz einfach mit deiner Arduino IDE programmieren – genauso wie deine Arduino-Boards. Ein paar Vorbereitungen musst du hierfür allerdings treffen.

Lerne hier, wie du in 5 Minuten deinen ESP32 in deiner Arduino IDE installierst und anschließend mit dem Programmieren loslegen kannst.

Dein Board in der Arduino IDE installieren

Öffne zuerst die Einstellungen deiner Arduino IDE. Dort findest du das Feld Zusätzliche Boardverwalter-URLs. Trage hier die folgende Adresse ein:

https://dl.espressif.com/dl/package_esp32_index.json
ESP32 URL in der Arduino IDE eintragen

Tipp: Wenn du dort schon die URL deines ESP8266 eingetragen hast, schreibe die des ESP32 einfach mit einem Komma getrennt dahinter. Dann verfügst du in der Arduino IDE über beide.

Schließe nun das Fenster mit einem Klick auf OK. Öffne als nächstes das Menü Werkzeuge und wähle dort den Menüpunkt Boards und anschließend Boardverwalter.

Suche in dem Fenster, das sich jetzt öffnet, nach ESP32. Vermutlich wirst du dort nur einen Eintrag finden. Noch ein Klick auf Installieren, kurz warten und das sollte es gewesen sein. 🙂

ESP32 im Boardverwalter
Das Paket für deinen ESP32 installieren

Einen Sketch auf den ESP32 hochladen

Schließe nun deinen ESP32 an und wähle im Menü unter Werkzeuge > Board dein Modell und den richtigen Port aus.

Unter Datei > Beispiele findest du unter WiFi den Sketch WiFiScan. Dieser eignet sich für einen ersten Test, denn er macht nichts anderes als die verfügbaren WLAN-Netzwerke in der Umgebung anzuzeigen.

Öffne also diesen Sketch und lade ihn auf deinen ESP32. Nach dem Upload findest du in deinem Seriellen Monitor (115200 Baud) die Netzwerke in der Umgebung.

Funktioniert nicht?

Solltest du beim Upload Probleme haben, probiere folgendes:

Halte den Button BOOT auf deinem ESP32 gedrückt und starte den Upload. Sobald in der Arduino IDE der Status “Connecting…” erscheint, kannst du den Button wieder loslassen. Der Upload sollte jetzt durchlaufen.

]]>
Microcontroller mit Swift programmieren https://polluxlabs.net/news/microcontroller-mit-swift-programmieren/ Thu, 10 Sep 2020 12:42:10 +0000 https://polluxlabs.net/?p=2251 Microcontroller mit Swift programmieren Weiterlesen »

]]>
Du kannst Microcontroller mit C++ programmieren, klar. Außerdem kannst du MicroPython verwenden, oder auch Adafruits Fork CircuitPython – und hier ist noch lange nicht Schluss. Jetzt steht dir eine weitere Alternative zur Verfügung: Swift.

Die Macher von Mad Machine haben ein Framework entwickelt, das Apples Programmiersprache Swift kompiliert und auf einem Microcontroller laufen lässt – und das ganze SwiftIO getauft.

Im Angebot haben sie auch gleich die passende Hardware, einen Controller mit  Cortex®-M7 core @600MHz Prozessor und ganzen 46 GPIO Pins. Programmiert wird das Board über die hauseigene MadMachine IDE. Auf der der Webseite der Entwickler findest du einen Überblick über die Hard- und Software, außerdem Tutorials und Code-Beispiele.

Im Shop kannst du das Board derzeit für 68$ aus den USA importieren. Darüber hinaus gibt es auch ein Maker Kit, das neben dem Board auch Bauteile wie Display, Motoren und ein paar Sensoren enthält. Dieses Kit kostet momentan 118$ – plus Einfuhrsteuern und möglicherweise Zollgebühren.

Warum Swift?

Wie du vermutlich auch schon weißt, ist das Programmieren in C++ nicht immer ein Spaß. Die Sprache ist für Anfänger nicht leicht verständlich – auch wenn es sich in der Arduino IDE eigentlich im Rahmen hält. Python und auch Swift haben hier den Ruf, weitaus zugänglicher zu sein.

Was die verfügbaren Bibliotheken bzw. die unterstützten Sensoren, Displays etc. angeht, hält sich Mad Machine etwas bedeckt. Natürlich gibt es Bibliotheken für die mitgelieferten Bauteile, ob das Angebot jedoch künftig erweitert wird, konnten wir nicht erkennen. Das ist sicherlich auch abhängig davon, wie gut die Idee angenommen wird.

Fazit: Wenn du dich für Swift interessierst, oder iOS Developer bist, der sich für Microcontroller interessiert, oder einfach nur Lust auf was Neues hast – dann könnte SwiftIO spannend für dich sein. Wenn du allerdings einfach eine gute Alternative zu C++ suchst, solltest du es wohl erst einmal mit MicroPython oder CircuitPython versuchen.

Bestseller Nr. 2
THE TORTURED POETS DEPARTMENT (Ivory 2LP; inkl. Bonustrack The Manuscript)
  • The Tortured Poets Department (Ivory 2LP; inkl. Bonustrack The Manuscript)

*Swift und das Swift logo sind Markenzeichen von Apple Inc.

]]>
Arduino Nano 33 BLE Sense mit Edge Impulse verbinden https://polluxlabs.net/arduino-tutorials/arduino-nano-33-ble-sense-und-edge-impulse/ Mon, 24 Aug 2020 16:14:05 +0000 https://polluxlabs.net/?p=2197 Arduino Nano 33 BLE Sense mit Edge Impulse verbinden Weiterlesen »

]]>
Mit Edge Impulse sammelst du ganz einfach Sensordaten, entwickelst daraus KI-Modelle und spielst diese wieder zurück auf einen Microcontroller. Der perfekte Kompagnon hierfür ist der Arduino Nano 33 BLE Sense – denn hier befinden sich nicht nur passende Sensoren direkt auf dem Board, sondern er ist auch in der Lage, deine KI-Modelle auszuführen.

Lerne in diesem Tutorial, wie du deinen Arduino Nano 33 BLE Sense bei Edge Impulse verfügbar machst. Wir folgen hierbei weitestgehend dem englischen Leitfaden bei Edge Impulse.

Beachte bitte: Für dieses Tutorial benötigst du einen (kostenlosen) Account bei Edge Impulse und ein bereits angelegtes Projekt, mit dem du deinen Arduino verbinden kannst.

Arduino® Board Nano 33 BLE Sense with headers
Arduino® Board Nano 33 BLE Sense with headers
Arduino Board Nano 33 BLE Sense with headers; Inhalt: 1 Stück

Benötigte Software

Um mit deinem Arduino Nano 33 BLE Sense bei Edge Impulse starten zu können, musst du zunächst folgende Software auf deinem PC / Mac installieren:

  • Node.js v12 oder höher
  • Arduino CLI
  • Edge Impulse CLI

Aber keine Sorge, die Software ist gratis und normalerweise in wenigen Minuten installiert.

Node.js installieren

Bei Node.js handelt es sich um eine Laufzeitumgebung auf Basis von JavaScript, die Code auch außerhalb von Browsern ausführen kann. Die Software ist open source und funktioniert plattformübergreifend.

Um Node.js zu installieren, besuche die offizielle Webseite und lade dir die aktuelle Version herunter. Führe anschließend die Installation aus und folge den dortigen Anweisungen.

Arduino CLI installieren

Die Abkürzung CLI steht für Command Line Interface – das heißt in diesem Fall, dass du mit der Arduino CLI einen Sketch statt in der Arduino IDE auch über das Terminal kompilieren und hochladen kannst.

Um die Arduino CLI zu installieren, besuche die offizielle Webseite von Arduino. Hier hast du mehrere Möglichkeiten: Mac- und Linux-User können Homebrew verwenden. Wenn du Windows verwendest, oder die benötigten Dateien lieber selbst herunterladen möchtest, findest du diese unter Latest packages.

Nach der erfolgreichen Installation geht es mit dem CLI von Edge Impulse weiter.

Edge Impulse CLI installieren

Dieses Command Line Interface besteht aus mehreren Paketen, die du für die Kommunikation zwischen Arduino und Edge Impulse benötigst.

___STEADY_PAYWALL___

Öffne für die Installation das Terminal und führe folgenden Befehl aus:

npm install -g edge-impulse-cli

Die Installation sollte in wenigen Minuten abgeschlossen sein. Sollte es zu Problemen kommen, prüfe die Hinweise in der Dokumentation von Edge Impulse (englisch).

Als nächstes verbindest du deinen Arduino Nano 33 BLE Sense mit Edge Impulse, damit du mit dem Sammeln von Sensordaten beginnen kannst.

Den Arduino mit Edge Impulse verbinden

Hierfür sind noch einmal ein paar Schritte und eine Software nötig. Die Verbindung sollte jedoch in wenigen Minuten stehen.

Den Arduino vorbereiten

Verbinde deinen Arduino Nano 33 BLE Sense via USB mit deinem Computer. Drücke jetzt zwei Mal hintereinander den RESET-Button. Jetzt sollte eine gelbe LED dauerhaft leuchten, die dir signalisiert, dass du die benötigte Firmware von Edge Impulse aufspielen kannst.

Die Firmware von Edge Impulse installieren

Noch einmal ist etwas Software nötig für die Verbindung mit Edge Impulse. Diesmal nicht für deinen Computer, sondern für den Arduino selbst. Lade dir hier zunächst die aktuelle Firmware herunter und entpacke die Zip-Datei.

Starte jetzt – je nachdem, welches Betriebssystem (Windows, Mac, Linux) du verwendest – eine der folgenden Installationsdateien. Dein Arduino muss hierfür mit deinem Computer verbunden sein und die LED gelb leuchten.

  • flash_windows.bat
  • flash-mac.command
  • flash_linux.sh
Das Flashen der Edge Impulse Firmware

Wenn die Installation durchgelaufen ist, drücke noch einmal den RESET-Button auf deinem Arduino, um die neue Firmware zu booten.

Die Einrichtung abschließen

Alles, was jetzt noch fehlt, ist die Verknüpfung deines Arduinos mit einem deiner Projekte bei Edge Impulse. Starte hierfür im Terminal den Wizard mit folgendem Befehl:

edge-impulse-daemon

Der Wizard führt dich durch alle Schritte. Prüfe anschließend in deinem Projekt bei Edge Impulse, ob die Verbindung steht.

Erfolgreich mit Edge Impulse verbundener Arduino Nano 33 BLE Sense

Und das sollte es gewesen sein! Jetzt kannst du mit verschiedenen Sensoren deines Arduinos Daten sammeln und in Edge Impulse zu einem KI-Modell verarbeiten.

Beachte bitte: Dein Arduino Nano ist jetzt grundsätzlich mit Edge Impulse und deinem Projekt dort verbunden. Wenn du ihn zwischenzeitlich jedoch für etwas Anderes verwendest und ihn danach wieder mit Edge Impulse verbinden möchtest, führe den Befehl edge-impulse-daemon wie oben beschrieben erneut aus. Danach steht dir dein Arduino in Edge Impulse wieder zur Verfügung.

Und noch etwas: Möchtest du den Arduino mit einem anderen Projekt in Edge Impulse verknüpfen, musst du die bestehende Verbindung zunächst trennen. Das machst du, indem du im Terminal diesen Befehl ausführst:

edge-impulse-daemon --clean

Der Wizard fragt dich dann nach Username und Passwort von Edge Impulse. Anschließend kannst du direkt im Terminal ein anderes Projekt auswählen.

Wie geht es weiter?

Jetzt, wo du deinen Arduino Nano mit Edge Impulse verknüpft hast, wird es Zeit, dass du ein paar Daten für deine KI sammelst. In diesem Tutorial lernst du, wie du mit dem eingebauten Bewegungssensor des Arduino Nano 33 BLE Sense Bewegungsdaten sammelst und speicherst.

]]>
MicroPython installieren auf dem ESP8266 & ESP32 https://polluxlabs.net/esp8266-projekte/micropython-installieren-auf-dem-esp8266-esp32/ Tue, 25 Feb 2020 20:52:18 +0000 https://polluxlabs.net/?p=1086 MicroPython installieren auf dem ESP8266 & ESP32 Weiterlesen »

]]>
Hier erfährst du, was MicroPython ist, welche Vorteile dir diese Programmiersprache bietet und wie du sie auf deinem ESP8266* oder ESP32* installierst.

Was ist MicroPython?

MicroPython ist angelehnt an und kompatibel zu Python 3 und speziell für die Programmierung von Microcontrollern ausgelegt. Die Sprache ist dem regulären Python sehr ähnlich – das heißt, wenn du bereits mit Python programmieren kannst, kannst du das auch mit MicroPython.

Da diese Sprache darauf ausgelegt ist, unter eingeschränkten Bedingungen – nämlich auf Microcontrollern mit wenig Speicherplatz – zu arbeiten, besitzt MicroPython nicht alle Bibliotheken von Python. Die für die Programmierung von ESP8266 und ESP32 sind natürlich an Bord – insbesondere jene, die du brauchst, um mit den Pins zu arbeiten und dich mit dem Internet zu verbinden.

Welche Vorteile bietet MicroPython?

Python ist eine Programmiersprache, die sowohl leicht zu lernen als auch leicht zu lesen ist. Das gilt auch für MicroPython – wenn du etwas Python beherrschst und schon auf “richtigen” Computern programmiert hast, fällt dir der Einstieg mit MicroPython leicht. Hier findest du einen Überblick über wichtige Funktion von MicroPython (Englisch).

Weitere Vorteile sind:

  • Du kannst deinen Microcontroller “live” programmieren. D.h. über die Shell (bzw. REPL) kannst du deinen Code direkt testen, ohne erst einen ganzen Sketch hochladen zu müssen.
  • Exception und Error-Handling: Du kannst den Umgang mit Ausnahmen und Fehler bereits in deinem Code definieren.

Aber MicroPython hat auch Nachteile im Vergleich zur Arduino IDE und C, denn hier gibt es für viele Bauteile bereits Bibliotheken, die du einfach installieren, einbinden und verwenden kannst. Mit MicroPython wirst du ab und an etwas länger nach einer geeigneten Lösung suchen müssen.

MicroPython installieren mit der Thonny IDE

Um mit MicroPython auf deinem ESP8266* oder ESP32* loslegen zu können, musst du deinen Microcontroller mit einer passenden Firmware flashen. Hierfür gibt es mehrere Möglichkeiten. Eine recht einfache ist der Editor Thonny IDE. Das Tolle: Thonny ist für Anfänger bestens geeignet und du kannst auch gleich deinen Microcontroller damit programmieren.

Lade dir zunächst die neueste Version von Thonny hier herunter und starte die Installation.

Die Firmware herunterladen

Als nächstes benötigst du die aktuelle Firmware. Diese findest du hier auf der offiziellen Seite von MicroPython. Wähle den entsprechenden Abschnitt für deinen Controller und lade dir die aktuelleste (latest) Version herunter, indem du auf den Dateinamen mit der Endung .bin klickst. Mit dieser Datei flashst du gleich deinen Microcontroller.

Schließe nun deinen Microcontroller wie gewohnt über USB an deinen Computer an. Nun öffne die Thonny IDE.

Klicke als Erstes Menü Run auf Configure interpreter. Dort findest du im Dropdown-Menü mehrere Optionen – auch jeweils eine für den ESP8266 und den ESP32. Wenn du die passende Option gewählt hast, kannst du unter Port or WebREPL den USB-Port wählen, an dem dein Microcontroller angeschlossen ist.

Klicke nun auf den Link unten rechts Install or update MicroPython.

Wähle unter Port noch einmal den richtigen USB-Port aus und wähle unter Firmware die Datei, die du gerade heruntergeladen hast.

Mit einem Klick auf Install geht es los! Auf deinem Microcontroller wird MicroPython installiert. Nach wenigen Sekunden sollte das erledigt sein und du kannst die drei Fenster wieder schließen, bis du wieder auf der Oberfläche der Thonny IDE bist.

So funktioniert MicroPython und die Thonny IDE

Die Oberfläche der Thonny IDE besteht (neben dem Menü) aus zwei Fenstern. Im oberen schreibst du dein Python-Programm, dass über den grünen “Play”-Button auf deinen ESP8266 oder ESP32 hochlädst.

Im unteren Fenster findest du die Shell, mit der quasi in Echtzeit mit deinem Microcontroller interagieren kannst.

Wenn du einen ESP8266 angeschlossen hast, trage hinter die drei >>> in der Shell probeweise – Zeile für Zeile – folgenden Code ein und drücke nach jeder Zeile Enter:

from machine import Pin
Pin(2, Pin.OUT).value(0)

Nun sollte die interne LED auf deinem Controller leuchten. Wenn du in die Klammern hinter value eine 1 einträgst, geht sie wieder aus. Seltsamerweise verhält sich dieser Code beim ESP8266 “falsch herum” – eine 1 schaltet den Pin auf HIGH, eine 0 auf LOW. Beim ESP32 ist das wiederum wie gewohnt.

Wie geht es weiter?

Jetzt hast du das grundlegende Setup, um deinen Microcontroller mit MicroPython zu programmieren. Erforsche als nächstes, was du hiermit alles anstellen kannst! 🙂

Hier findest du ESP8266 Projekte, die du nachbauen oder von denen du dich inspirieren lassen kannst.

Wenn MicroPython doch nicht das Richtige für dich ist, lerne hier CircuitPython kennen.

]]>
So programmierst du einen ATtiny85 mit dem Arduino https://polluxlabs.net/arduino-tutorials/so-programmierst-du-einen-attiny85-mit-dem-arduino/ Mon, 02 Dec 2019 19:53:10 +0000 https://polluxlabs.net/?p=567 So programmierst du einen ATtiny85 mit dem Arduino Weiterlesen »

]]>
Es gibt Projekte, für die auch ein kleiner Arduino schon zu groß ist. Weil du nur wenige Pins brauchst. Oder weil du nur wenig Strom verbrauchen willst. Oder weil du einfach keinen Platz hast. Für all diese Fälle ist ein ATtiny85 genau das, was du brauchst.

Prozessoren der ATtiny-Familie gibt es in zahlreichen Ausführungen – der bekannteste und gebräuchlichste dürfte der ATtiny85 sein, den du hier näher kennenlernst. Aber: Diesen Prozessor einzurichten und zu programmieren ist nicht ganz so bequem, wie du es von deinem Arduino gewohnt bist. Schwer ist deshalb aber noch lange nicht! 🙂

Die ATtiny85 Basics

Du findest an deinem ATtiny85 in einer Ecke eine Kerbe. Drehe den Prozessor so, dass sie oben links ist. Links neben der Kerbe befindet sich der Pin mit der Nummer 1. Die Nummer der anderen Pins ergeben sich, indem du sie gegen den Uhrzeigersinn durchzählst.

Allerdings stimmen die Nummern der Pins nicht mit denen überein, die du in deinem Arduino Sketch verwenden musst. Diese Tabelle zeigt dir, welcher Pin welche Funktion hat und mit welcher Zahl du ihn in deinem Code ansteuerst:

Pin am ATtiny85FunktionPin im Sketch
1Reset
23
34
4GND
50
61
72
8VCC

Wenn du also zum Beispiel eine LED an Pin 3 deines ATtiny85 ansteuern möchtest, definierst du diesen Output-Pin in deinem Sketch wie folgt:

pinMode(4, OUTPUT);

Vorbereitung der Arduino IDE

Bevor du loslegen kannst, musst du zunächst deiner Arduino IDE beibringen, wie sie mit dem ATtiny85 kommunizieren kann.

Öffne hierfür die Einstellungen. Im unteren Bereich findest du das Feld Zusätzliche Boardverwalter-URLs. Hier fügst du per Copy & Paste folgenden Link ein und schließt danach das Fenster per Klick auf OK.

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

Öffne nun den Boardverwalter. Den findest du unter Werkzeuge – Board – Boardverwalter. In dem Fenster, das sich jetzt öffnet, suchst du nach attiny und installierst das gefundene Paket von David A. Mellis.

Boardverwalter attiny
Installiere das Paket attiny von David A. Mellis

Und das war’s auch schon. Als nächstes verbindest du deinen ATtiny85 mit dem Arduino und programmierst ihn mit deinem ersten Sketch.

Verbinde den ATtiny85 mit dem Arduino

Schnapp dir ein Breadboard und setze den ATtiny85 in die Mitte über die Lücke des Boards. Der erste Sketch wird eine LED blinken lassen, weshalb du diese Schaltung einfach gleich mit auf das Breadboard baust. Du benötigst zusätzlich:

  • Kondensator (z.B. 100µF)
  • LED
  • 220Ω Widerstand
  • ein paar Kabel

___STEADY_PAYWALL___

Schau dir zuerst kurz den schematischen Aufbau an:

Attiny85 Arduino Aufbau

Wie du siehst, ist der Aufwand recht überschaubar. Neben den Anschlüssen von Strom (Pin 8), Erde (Pin 4) Reset (Pin 1) benötigst du noch die Pins 5 bis 7 an deinem ATtiny85, um ihn zu programmieren. Diese schließt du am Arduino an die digitalen Pins 11 bis 13 an.

An Pin 3 des ATtiny85 schließt du eine LED mit dazwischengeschaltetem Widerstand (220Ω) an und verbindest auch diese mit der Erde. Diese LED wirst du später blinken lassen, um zu prüfen, ob die Programmierung vom Arduino aus funktioniert hat.

Hinweis: Im schematischen Aufbau oben siehst du den Kondensator am Arduino an den Pins Erde (GND) und Reset (RES). Stecke diesen zunächst noch nicht in die Pins – du benötigst ihn erst später.

Den Arduino als Programmer konfigurieren

Du musst zunächst einen Sketch auf einen Arduino hochladen, damit er deinen ATtiny85 programmieren kann. Dieser Sketch ist in deiner Arduino IDE bereits verfügbar. Du findest ihn unter Datei – Beispiele – 11.ArduinoISP.

Denke daran, den Kondensator noch nicht zu verwenden. Ansonsten kannst du den Sketch nicht hochladen.

Sketch ArduinoISP
Der Sketch ArduinoISP

Den ATtiny85 programmieren

Jetzt ist es endlich soweit. Stecke den Kondensator an deinem Arduino in die Pins Erde (GND) und Reset (RES) – und achte unbedingt darauf, das richtig herum zu tun. Die mit Minus markierte Seite am Kondensator gehört in den Pin Erde.

Ein paar wenige Einstellungen in der Arduino IDE sind jetzt noch nötig:

Wähle im Menü unter Werkzeuge zunächst den Punkt Board. Wähle hier ATtiny25/45/85 aus.

Anschließend wählst du unter Prozessor den Eintrag ATtiny85.

Unter Clock wählst du Internal 1MHz.

Im Punkt Programmer wählst du Arduino as ISP. Wichtig ist das “as ISP”! 🙂

Stelle zuletzt sicher, dass dein Arduino am Computer angeschlossen ist und die Verbindung, wie du es von anderen Projekten kennst, unter Port zu finden ist.

So sollten deine Einstellungen dann aussehen, wenn du fertig bist:

Auswahl des Attiny85 in der IDE

Den Sketch hochladen

Lade nun zuletzt diesen Sketch hoch. Er landet jetzt direkt auf deinem ATtiny85 und lässt die LED blinken:

int ledPin = 4;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  digitalWrite(ledPin, HIGH);   
  delay(500);                     
  digitalWrite(ledPin, LOW);    
  delay(500);                     
}

Hinweis: Erinnerst du dich noch an die unterschiedlichen Nummer für die Pins am ATtiny85 und im Arduino Sketch? Du hast deine LED zwar am ATtiny85 an Pin 3 angeschlossen – im Sketch musst du sie allerdings über Pin 4 ansprechen. In der Tabelle oben findest du alle Entsprechungen der Pins.

Das war’s! 🙂 Die LED sollte jetzt auf deinem Board im Halbsekunden-Takt blinken.

Wie geht es weiter?

So ein ATtiny85 bietet natürlich weniger Pins und weniger Speicher als dein Arduino. Um Sensoren auszulesen und mit den Daten ein klein wenig anzustellen, reicht es aber allemal.

Versuche doch mal, einen Temperatursensor anzuschließen und zum Laufen zu bringen. Dieses Tutorial ist zwar für den Arduino, aber du kannst es bestimmt adaptieren. Viel Erfolg!

]]>