Welche Programmiersprache sollten Sie für Ihre Mikrocontroller-Projekte verwenden? Lassen Sie uns die vier besten Optionen untersuchen.
Mikrocontroller-Entwicklungsplatinen sind in der Maker-Community zu einem festen Bestandteil geworden. Diese programmierbaren Geräte wurden speziell entwickelt, um Eingangs- und Ausgangssignale zu verarbeiten, um verschiedene Module und Komponenten wie Sensoren, Motoren, LEDs und menschliche Eingabegeräte (HIDs) zu steuern.
Aber vorher müssen Sie eine Skriptsprache lernen, die der Mikrocontroller interpretieren kann, um diese Geräte zu programmieren. Zu den heute beliebtesten Mikrocontrollersprachen gehören MicroPython, CircuitPython, Arduino (vereinfachtes C++) und C. Jede dieser Sprachen hat ihre eigenen Vor- und Nachteile.
MicroPython
MicroPython ist eine leichtgewichtige Implementierung der Programmiersprache Python 3, die speziell für Mikrocontroller entwickelt wurde. Es wurde 2013 von Dr. Damien George veröffentlicht, um das Prototyping zu beschleunigen und Personen, die bereits mit Python vertraut sind, zu ermöglichen, Mikrocontroller mit einer ähnlichen Sprache zu programmieren.
Merkmale
MicroPython ist eine hervorragende Skriptsprache für Anfänger, die Mikrocontroller programmieren möchten. Anfänger ohne Programmiererfahrung werden es leicht zu lesen und zu verstehen finden, da es für Menschen lesbare Befehle in einfachen Strukturen verwendet. Darüber hinaus verwendet es eine Read-Evaluate-Print-Loop (REPL)-Laufzeitumgebung, die ein interaktives Codierungserlebnis ermöglicht.
Leistung
Um einen Mikrocontroller mit MicroPython zu programmieren, wird Firmware, die den Interpreter, Bibliotheken und verschiedene andere Abhängigkeiten enthält, in den Mikrocontroller geflasht. Dadurch kann MicroPython-Code lokal vom Mikrocontroller interpretiert und ausgeführt werden, was ein schnelles Prototyping ermöglicht, da während des Codierens Live-Feedback bereitgestellt werden kann.
Allerdings wegen wie Prozessoren Code ausführen, sind interpretierte Sprachen wie MicroPython im Vergleich zu kompilierten Sprachen wie C++ deutlich langsamer. Obwohl das Prototyping viel schneller sein kann, ist die Codeausführung selbst standardmäßig langsamer.
Kompatibilität
Da MicroPython lokale Ressourcen verwendet, um Programme zu interpretieren und auszuführen, muss ein Mikrocontroller mindestens 256 KB Flash-Speicher und 16 KB RAM haben. Leider erfüllen einige beliebte Entwicklungsboards wie das Arduino Uno nicht die erforderlichen Spezifikationen. Es gibt jedoch noch viele Boards, die mit MicroPython kompatibel sind.
Derzeit unterstützt MicroPython offiziell Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, STM32-Entwicklungsboards und einige Arduino-Boards wie Nano 33 BLE, Nano RP2040, Giga R1 und Portenta H7.
Gemeinschaft und Unterstützung
Seit seiner Einführung im Jahr 2013 hat MicroPython eine beträchtliche Anhängerschaft gewonnen. Anfänger sollten es leicht haben, MicroPython mit seiner gut geschriebenen Dokumentation zu lernen. Wenn Sie weitere Hilfe benötigen, verfügt MicroPython auch über ein Community-Forum, in dem Benutzer Anleitungen und Ideen austauschen und alle Arten von Problemen beantworten, die Sie möglicherweise in Bezug auf MicroPython haben.
Arduino
Arduino ist eine beliebte Open-Source-Plattform, die sich hauptsächlich an Elektronik- und Heimwerker richtet. Die Programmiersprache Arduino basiert auf den Programmiersprachen C und C++. Die Arduino-Sprache wurde 2005 von einer Gruppe von Ingenieuren, Künstlern und Designern aus Italien veröffentlicht.
Merkmale
Die Arduino-Programmiersprache verwendet eine abgespeckte Version von C und C++, was das Erlernen und Entwickeln erleichtert. Die Codeausführung mit Arduino ist aufgrund seiner kompilierten Natur erheblich schneller als seine Gegenstücke in interpretierter Sprache. Darüber hinaus benötigt Arduino nur eine geringe Menge an Systemressourcen, um zu funktionieren, wodurch es mit vielen Entwicklungsboards und Mikrocontrollern kompatibel ist.
Leistung
Im Gegensatz zu MicroPython und CircuitPython ist Arduino eine kompilierte Programmiersprache. Das heißt, Code wird zunächst auf einem Compiler kompiliert (bereits in der Arduino IDE enthalten) und dann als ganzes Programm vom Mikrocontroller ausgeführt.
Dies verbessert die Codeausführung erheblich, da der Mikrocontroller keine Ressourcen verwenden muss, um jede Codezeile zu interpretieren. Darüber hinaus wird das Programm beim Kompilieren auch in Maschinencode übersetzt, den der Mikrocontroller nativ ausführen kann, ohne dass Abhängigkeiten installiert werden müssen.
Dies verbessert die Code-Ausführungsgeschwindigkeit erheblich, da der Mikrocontroller das Programm direkt ausführen kann, ohne Zeit und Hardware-Ressourcen für die Übersetzung des Codes aufzuwenden.
Unterstützte Boards
Da die Kompilierungsphase über die IDE erfolgt, können Mikrocontroller nur 32 KB Flash-Speicher und 2 KB RAM zum Arbeiten haben. Abgesehen von Arduino-Boards, Es gibt viele Arduino-Board-Alternativen Sie können mit Arduino programmieren. Viele dieser Boards würden Mikrocontroller wie ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 und STM32 verwenden.
Gemeinschaft und Unterstützung
Als Open-Source-Plattform seit 2005 verfügt Arduino über einige der besten verfügbaren Dokumentationen. Die Arduino Foundation stellt jedes Jahr aktiv Updates, Support und neue aufregende Produkte bereit. Die weltweite Community ist auch eine der aktivsten beim Austausch von Anleitungen und Ideen und der Beantwortung von Problemen, auf die Sie möglicherweise stoßen. Mit Arduino ist Ihnen eine gute Unterstützung garantiert.
SchaltungPython
CircuitPython ist Adafruits Implementierung von Python 3, die auf MicroPython aufbaut. Obwohl CircuitPython von MicroPython abgezweigt wurde, bietet es mehrere Verbesserungen, um das Erlernen von Mikrocontrollern einfach und unterhaltsam zu gestalten.
Merkmale
CircuitPython wurde entwickelt, um Anfängern das Programmieren von Mikrocontrollern beizubringen. Um dies zu erreichen, bietet CircuitPython mehrere Funktionen, darunter eine interaktive Codierung Umgebung, integrierte Bibliotheken, einfache Syntax (einfacher als MicroPython) und hervorragende Dokumentation und Führer.
Leistung
Da CircuitPython auf MicroPython basiert, hat es viele der gleichen Stärken und Schwächen. Die Laufzeit des Programms ist etwas langsamer als bei MicroPython, da CircuitPython mehr Funktionen und zusätzliche Bibliotheken bietet. Der Unterschied ist jedoch wahrscheinlich nicht wahrnehmbar, da CircuitPython leistungsfähigere Mikrocontroller benötigt, um zu funktionieren.
Unterstützte Boards
Mit integrierten Bibliotheken und einer noch einfacheren Syntax benötigen Mikrocontroller-Entwicklungsplatinen mehr Ressourcen, um CircuitPython zu verwenden. Ein Mikrocontroller muss mindestens über einen 8-Bit-Prozessor, 256 KB Flash-Speicher (512 KB empfohlen) und 32 KB RAM (64 KB empfohlen) verfügen. Derzeit unterstützt CircuitPython über 390 Entwicklungsboards, die auf der aufgeführt sind offizielle Website.
Gemeinschaft und Unterstützung
Adafruit ist dafür bekannt, anfängerfreundliche Produkte herzustellen. Daher finden Sie leicht verständliche Dokumentationen und Bücher zu CircuitPython. Obwohl die Sprache erst 2017 eingeführt wurde, hat sie immer noch eine größere Anhängerschaft als MicroPython, die Sie über Discord und das offizielle Forum erreichen können. Wie die Arduino Foundation stellt Adafruit aktiv Updates, Support und neue Produkte bereit, was bedeutet, dass Support leicht zu finden sein sollte.
C
C ist eine Allzweck-Programmiersprache, die in den 1970er Jahren von Dennis Ritchie in den Bell Labs entwickelt wurde. Es ist eine kompilierte Programmiersprache, die Ingenieure und andere Fachleute häufig verwenden, um Mikrocontroller mit hoher Effizienz zu programmieren.
Merkmale
Obwohl es eine schwieriger zu erlernende Sprache ist, liegt der Hauptvorteil von C gegenüber MicroPython, CircuitPython und Arduino in der Geschwindigkeit, Effizienz, Kontrolle und Portabilität, die es bietet. Dies macht C zur besten Sprache, um beide Mikrocontroller zu programmieren, die in fertigen Produkten verwendet werden sollen.
Leistung
Abgesehen von seiner großartigen Portabilität ist C für seine Leistung bekannt. Es kann Programme schneller ausführen als Arduino, MicroPython und CircuitPython, selbst mit einem Mikrocontroller mit geringeren Ressourcen. Dies liegt daran, dass C eine effizientere Sprache ist, die die wenigsten Abhängigkeiten erfordert. Obwohl ein kompiliertes Arduino-Programm wie ein C-Programm auf Bare-Metal-Hardware ausgeführt werden kann, ist sein Maschinencode mit vorgefertigten Bibliotheken und Tools ausgestattet, die die Leistung reduzieren.
Unterstützte Boards
Die C-Sprache ist so portabel, dass damit praktisch jeder Arm-basierte Mikrocontroller programmiert werden kann. Darüber hinaus kann es auf Boards verwendet werden, die auf den Mikrocontrollern Atmel AVR, STM32, PIC und MSP basieren.
Gemeinschaft und Unterstützung
Aufgrund ihrer robusten Programmieranwendung und der Tatsache, dass sie bereits mehrere Jahrzehnte alt ist, hat die Programmiersprache C eine riesige Online-Community. Sie können leicht Hilfe in verschiedenen Online-Foren, Chatrooms und Blogs finden, die sich der Diskussion und dem Austausch von Ideen über die Sprache C widmen.
Mit welcher Sprache sollten Sie programmieren?
Also, was ist die beste Sprache, um Mikrocontroller zu programmieren? Es hängt wirklich von der Person ab. Die C-Sprache wäre die beste für Fachleute, die Elektronik für die Produktion entwerfen.
Diejenigen ohne Programmiererfahrung möchten vielleicht mit CircuitPython beginnen, da es über Funktionen und Dokumentationen verfügt, die das Lernen einfach und unterhaltsam machen. Wer mit Python vertraut ist, wird es leicht haben, Mikrocontroller mit MicroPython zu programmieren.
Und für die Mehrheit der DIY/Maker-Community wäre Arduino immer noch die beste Sprache zum Programmieren Mikrocontroller, da es ein hervorragendes Gleichgewicht zwischen Leistung, Portabilität, Funktionen und bietet Gemeinschaft.