Articles

Alles, was Sie über Arduino-Code wissen müssenblog Postcircuito Teamarch 11, 2018

Seit dem Start der Open-Source-Plattform Arduino hat sich die Marke im Zentrum einer expansiven Open-Source-Community etabliert. Das Arduino-Ökosystem besteht aus einer vielfältigen Kombination von Hardware und Software. Die Vielseitigkeit von Arduino und seine einfache Schnittstelle macht es zu einer führenden Wahl für eine Vielzahl von Benutzern auf der ganzen Welt, von Hobbyisten, Designern und Künstlern bis hin zu Produktprototypen.

Das Arduino-Board wird über USB an einen Computer angeschlossen und dort mit der Arduino-Entwicklungsumgebung (IDE) verbunden. Der Benutzer schreibt den Arduino-Code in die IDE und lädt ihn dann auf den Mikrocontroller hoch, der den Code ausführt und mit Ein- und Ausgängen wie Sensoren, Motoren und Leuchten interagiert.

Sowohl Anfänger als auch Experten haben Zugang zu einer Fülle von kostenlosen Ressourcen und Materialien, um sie zu unterstützen. Benutzer können Informationen zum Einrichten ihres Boards oder sogar zum Codieren auf Arduino nachschlagen. Die Open Source hinter Arduino hat es besonders freundlich zu neuen und erfahrenen Benutzern gemacht. Es gibt Tausende von Arduino-Codebeispielen online verfügbar. In diesem Beitrag führen wir Sie durch einige Grundprinzipien der Codierung für Arduino.

Planen Sie Ihr nächstes Arduino-Projekt >>

Arduino-Codierungsumgebung und grundlegende Tools

Welche Sprache ist Arduino?

Arduino-Code ist in C ++ geschrieben und enthält spezielle Methoden und Funktionen, die wir später erwähnen werden. C ++ ist eine vom Menschen lesbare Programmiersprache. Wenn Sie eine Skizze erstellen (der Name für Arduino-Codedateien), wird diese verarbeitet und in Maschinensprache kompiliert.

Arduino IDE

Die Arduino Integrated Development Environment (IDE) ist das wichtigste Textbearbeitungsprogramm für die Arduino-Programmierung. Hier geben Sie Ihren Code ein, bevor Sie ihn auf das Board hochladen, das Sie programmieren möchten. Arduino-Code wird als Skizzen bezeichnet.Hinweis: Es ist wichtig, die neueste Version der Arduino IDE zu verwenden. Von Zeit zu Zeit, Überprüfen Sie hier nach Updates.

Arduino Codebeispiel

Wie Sie sehen können, hat die IDE ein minimalistisches Design. Es gibt nur 5 Überschriften in der Menüleiste sowie eine Reihe von Schaltflächen darunter, mit denen Sie Ihre Skizzen überprüfen und hochladen können. Im Wesentlichen übersetzt und kompiliert die IDE Ihre Skizzen in Code, den Arduino verstehen kann. Sobald Ihr Arduino-Code kompiliert ist, wird er in den Speicher des Boards hochgeladen.

Alles, was der Benutzer tun muss, um mit dem Kompilieren seiner Skizze zu beginnen, ist einen Knopf zu drücken (eine Anleitung dazu finden Sie unten).

Wenn der Arduino-Code fehlerhaft ist, wird eine Warnmeldung angezeigt, die den Benutzer auffordert, Änderungen vorzunehmen. Die meisten neuen Benutzer haben aufgrund der strengen Syntaxanforderungen von Arduino häufig Schwierigkeiten beim Kompilieren. Wenn Sie bei der Verwendung von Arduino Fehler in Ihrer Interpunktion machen, wird der Code nicht kompiliert und Sie erhalten eine Fehlermeldung.

Serieller Monitor und serieller Plotter

Arduino Serial Monitor kann durch Klicken auf das Lupensymbol oben rechts in der IDE oder unter Tools geöffnet werden. Der serielle Monitor wird hauptsächlich für die Interaktion mit dem Arduino-Board über den Computer verwendet und ist ein großartiges Werkzeug für die Echtzeitüberwachung und das Debugging. Um den Monitor zu verwenden, müssen Sie die serielle Klasse verwenden.

Der Code, den Sie herunterladen circuito.io hat einen Testabschnitt, der Ihnen hilft, jede Komponente mit dem seriellen Monitor zu testen, wie Sie im Screenshot unten sehen können:

Arduino Serial Plotter ist eine weitere Komponente der Arduino IDE, mit der Sie ein Echtzeitdiagramm Ihrer seriellen Daten erstellen können. Der serielle Plotter erleichtert Ihnen die Analyse Ihrer Daten durch eine visuelle Anzeige erheblich. Sie können Diagramme, Diagramme mit negativem Wert erstellen und Wellenformanalysen durchführen.

Debugging von Arduino-Code und Hardware

Im Gegensatz zu anderen Softwareprogrammierplattformen verfügt Arduino nicht über einen integrierten Debugger. Benutzer können entweder Software von Drittanbietern verwenden oder den seriellen Monitor verwenden, um die aktiven Prozesse von Arduino zum Überwachen und Debuggen zu drucken.

Mit der seriellen Klasse können Sie auf den seriellen Monitor drucken, Kommentare und Werte von Variablen debuggen. Bei den meisten Arduino-Modellen werden die seriellen Pins 0 und 1 verwendet, die an den USB-Anschluss angeschlossen sind.

Codestruktur

Bibliotheken

In Arduino gibt es, ähnlich wie bei anderen führenden Programmierplattformen, integrierte Bibliotheken, die grundlegende Funktionen bereitstellen. Darüber hinaus ist es möglich, andere Bibliotheken zu importieren und die Fähigkeiten und Funktionen des Arduino-Boards zu erweitern. Diese Bibliotheken sind grob in Bibliotheken unterteilt, die mit einer bestimmten Komponente interagieren, oder in Bibliotheken, die neue Funktionen implementieren.

Um eine neue Bibliothek zu importieren, müssen Sie zu Sketch > Import Library

gehen.in dieser Datei müssen Sie ‚#include‘ verwenden, um externe Bibliotheken einzuschließen. Sie können auch benutzerdefinierte Bibliotheken erstellen, um sie in isolierten Skizzen zu verwenden.

Pin-Definitionen

Um die Arduino-Pins zu verwenden, müssen Sie definieren, welcher Pin verwendet wird und seine Funktionalität. Eine bequeme Möglichkeit, die verwendeten Pins zu definieren, ist die Verwendung von:

‚#define pinName pinNumber‘.

Die Funktionalität ist entweder input oder output und wird mit der Methode pinMode () im Abschnitt setup definiert.

Deklarationen

Variablen

Wenn Sie Arduino verwenden, müssen Sie globale Variablen und Instanzen deklarieren, die später verwendet werden sollen. Kurz gesagt, mit einer Variablen können Sie einen Wert benennen und speichern, der in Zukunft verwendet werden soll. Sie würden beispielsweise von einem Sensor erfasste Daten speichern, um sie später zu verwenden. Um eine Variable zu deklarieren, definieren Sie einfach ihren Typ, Namen und Anfangswert.

Es ist erwähnenswert, dass die Deklaration globaler Variablen keine absolute Notwendigkeit ist. Es ist jedoch ratsam, dass Sie Ihre Variablen deklarieren, um die Verwendung Ihrer Werte später zu vereinfachen.

Instanzen

In der Softwareprogrammierung ist eine Klasse eine Sammlung von Funktionen und Variablen, die an einem Ort zusammengehalten werden. Jede Klasse verfügt über eine spezielle Funktion, die als Konstruktor bezeichnet wird und zum Erstellen einer Instanz der Klasse verwendet wird. Um die Funktionen der Klasse zu verwenden, müssen wir eine Instanz dafür deklarieren.

Setup()

Jeder Arduino Sketch muss eine Setup-Funktion haben. Diese Funktion definiert den Anfangszustand des Arduino beim Booten und läuft nur einmal.

Hier definieren wir Folgendes:

  1. Pin-Funktionalität mit der pinMode-Funktion
  2. Anfangszustand der Pins
  3. Klassen initialisieren
  4. Variablen initialisieren
  5. Codelogik

Loop()

Die Loop-Funktion ist ebenfalls ein Muss für jeden Arduino-Sketch und wird nach Abschluss von setup() ausgeführt. Es ist die Hauptfunktion und wie der Name schon sagt, läuft es immer wieder in einer Schleife. Die Schleife beschreibt die Hauptlogik Ihrer Schaltung.

Beispiel:

Hinweis: Die Verwendung des Begriffs ‚void‘ bedeutet, dass die Funktion keine Werte zurückgibt.

Arduino programmieren

Die grundlegende Arduino-Codelogik ist eine „Wenn-Dann“ -Struktur und kann in 4 Blöcke unterteilt werden:

Setup – wird normalerweise im Setup-Abschnitt des Arduino-Codes geschrieben und führt Dinge aus, die nur einmal ausgeführt werden müssen, z. B. die Sensorkalibrierung.

Input – Lesen Sie am Anfang der Schleife die Eingaben. Diese Werte werden als Bedingungen („if“) verwendet, z. B. das Umgebungslicht, das mit analogRead() von einem LDR abgelesen wird.

Daten bearbeiten – Dieser Abschnitt wird verwendet, um die Daten in eine bequemere Form umzuwandeln oder Berechnungen durchzuführen. Zum Beispiel gibt analogRead() einen Messwert von 0-1023 an, der einem Bereich von 0-255 zugeordnet werden kann, der für PWM verwendet werden soll.(siehe analogWrite())

Output – dieser Abschnitt definiert das Endergebnis der Logik („dann“) gemäß den im vorherigen Schritt berechneten Daten. Wenn Sie sich unser Beispiel für LDR und PWM ansehen, schalten Sie eine LED nur ein, wenn das Umgebungslicht einen bestimmten Schwellenwert unterschreitet.

Arduino-Codebibliotheken

Bibliotheksstruktur

Eine Bibliothek ist ein Ordner, der aus Dateien mit C ++ (.cpp) Code-Dateien und C ++ (.h) Header-Dateien.

Die .h-Datei beschreibt die Struktur der Bibliothek und deklariert alle ihre Variablen und Funktionen.

Die .cpp-Datei enthält die Funktionsimplementierung.

Importieren von Bibliotheken

Das erste, was Sie tun müssen, ist, die Bibliothek, die Sie verwenden möchten, aus den vielen online verfügbaren Bibliotheken zu finden. Nachdem Sie es auf Ihren Computer heruntergeladen haben, müssen Sie nur die Arduino IDE öffnen und auf Skizze klicken > Bibliothek einschließen > Bibliotheken verwalten. Anschließend können Sie die Bibliothek auswählen, die Sie in die IDE importieren möchten. Sobald der Vorgang abgeschlossen ist, steht die Bibliothek im Skizzenmenü zur Verfügung.

Im Code von circuito.io anstatt externe Bibliotheken wie bereits erwähnt hinzuzufügen, stellen wir ihnen den Firmware-Ordner zur Verfügung. In diesem Fall weiß die IDE, wie sie bei Verwendung von #include .

Von der Software zur Hardware

Es gibt viel über die Softwarefunktionen von Arduino zu sagen, aber es ist wichtig, sich daran zu erinnern, dass die Plattform sowohl aus Software als auch aus Hardware besteht. Die beiden arbeiten zusammen, um ein komplexes Betriebssystem auszuführen.

Code → Compile → Upload → Run

Das Herzstück von Arduino ist die Fähigkeit, den Code zu kompilieren und auszuführen.

Nachdem Sie den Code in der IDE geschrieben haben, müssen Sie ihn auf den Arduino hochladen. Durch Klicken auf die Schaltfläche Hochladen (das nach rechts gerichtete Pfeilsymbol) wird der Code kompiliert und hochgeladen, wenn er die Kompilierung bestanden hat. Sobald Ihr Upload abgeschlossen ist, wird das Programm automatisch gestartet.

Sie können dies auch Schritt für Schritt tun:

  1. Kompilieren Sie zuerst den Code. Klicken Sie dazu einfach auf das Check-Symbol (oder klicken Sie in der Menüleiste auf sketch > Verify / Compile.

Wie Sie sehen können, befindet sich das Häkchen oben links unter dem Tag „Datei“ im Menübereich.

Sobald Sie dies getan haben, beginnt Arduino zu kompilieren. Sobald es fertig ist, erhalten Sie eine Abschlussnachricht, die wie folgt aussieht:

Wie Sie sehen können, zeigt die grüne Linie am unteren Rand der Seite an, dass Sie „fertig kompiliert“ sind. Wenn Ihr Code nicht ausgeführt wird, werden Sie im selben Abschnitt benachrichtigt und der problematische Code wird zur Bearbeitung hervorgehoben.

Sobald Sie Ihre Skizze zusammengestellt haben, ist es Zeit, sie hochzuladen.

  1. Wählen Sie den seriellen Port, mit dem Ihr Arduino gerade verbunden ist. Klicken Sie dazu im Menü auf Tools > Serial port, um den von Ihnen gewählten seriellen Port festzulegen (wie oben gezeigt). Anschließend können Sie die kompilierte Skizze hochladen.
  2. Um die Skizze hochzuladen, klicken Sie auf das Symbol Hochladen neben dem Häkchen. Alternativ können Sie das Menü aufrufen und auf Datei> hochladen klicken. Ihre Arduino-LEDs flackern, sobald die Daten übertragen werden.

Sobald Sie fertig sind, werden Sie mit einer Abschlussmeldung begrüßt, die Ihnen mitteilt, dass Arduino den Upload abgeschlossen hat.

IDE einrichten

Um ein Arduino-Board an Ihren Computer anzuschließen, benötigen Sie ein USB-Kabel. Bei Verwendung des Arduino UNO überträgt der USB die Daten im Programm direkt auf Ihr Board. Das USB-Kabel wird verwendet, um Ihren Arduino mit Strom zu versorgen. Sie können Ihren Arduino auch über eine externe Stromquelle betreiben.

Bevor Sie den Code hochladen können, müssen Sie einige Einstellungen konfigurieren.

Wählen Sie Ihr Board – Sie müssen festlegen, welches Arduino-Board Sie verwenden möchten. Klicken Sie dazu auf Tools > Board > Ihr Board.

Wählen Sie Ihren Prozessor – es gibt bestimmte Boards (z. B. Arduino pro-mini), für die Sie angeben müssen, welches Prozessormodell Sie haben. Wählen Sie unter tools > processor > das Modell aus, das Sie haben.

Wählen Sie Ihren Port – um den Port auszuwählen, an den Ihr Board angeschlossen ist, gehen Sie zu tools > Port > COMX Arduino (Dies ist der serielle Port von Arduino).

So installieren Sie nicht native Boards (z. B. NodeMCU)

Einige Board-Modelle sind nicht in der Arduino IDE vorinstalliert, daher müssen Sie sie installieren, bevor Sie Code hochladen können.

Um ein nicht-natives Board wie NodeMCU zu installieren, müssen Sie:

  1. Klicken Sie auf tools > Boards > Boards Manager
  2. Suchen Sie in der Suchleiste nach dem Board, das Sie hinzufügen möchten, und klicken Sie auf „Installieren“.

Einige Boards können nicht über den Board Manager gefunden werden. In diesem Fall müssen Sie sie manuell hinzufügen. Um dies zu tun:

  1. Klicken Sie auf Files > Preferences
  2. Fügen Sie im Feld Additional Boards Manager die URL des Installationspakets Ihres Boards ein. Fügen Sie beispielsweise für NodeMCU die folgende URL hinzu: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Klicken Sie auf OK
  4. Gehen Sie zu Extras > Boards > Boards Manager
  5. Suchen Sie in der Suchleiste nach dem Board, das Sie hinzufügen möchten, und klicken Sie auf „Installieren“.

Sobald Sie diesen Schritt abgeschlossen haben, sehen Sie die installierten Platinen in der Liste der Platinen unter Tools.

Hinweis: Der Prozess kann für verschiedene Boards leicht abweichen.

Arduino: Eine extrem vielseitige Plattform

Arduino ist weit mehr als nur ein einfacher Mikrocontroller. Mit einer umfangreichen IDE und einer Vielzahl von Hardwarekonfigurationen ist Arduino wirklich eine vielfältige Plattform. Die Vielfalt seiner Bibliotheken und sein intuitives Design machen es zu einem Favoriten für neue Benutzer und erfahrene Hersteller gleichermaßen. Es gibt Tausende von Community-Ressourcen, die Ihnen den Einstieg in Hardware und Software erleichtern.

Wenn Sie Ihre Fähigkeiten verbessern, können Probleme auftreten, die Debugging erfordern, was eine Schwachstelle der Arduino IDE darstellt. Glücklicherweise gibt es verschiedene Tools und Methoden zum Debuggen von Arduino-Hardware und -Software. Im nächsten Artikel werden wir uns ansehen, wie man Arduino debuggt (und wie man Arduino-Code testet) sowie wie man Simulatoren und Emulatoren verwendet.