ESP32-C3 mit LuatOS System

In diesem Beitrag möchte ich dir den ESP32-C3 mit LuatOS System vorstellen und zeigen, wie du diesen Mikrocontroller programmierst.

ESP32-C3 mit LuatOS System
ESP32-C3 mit LuatOS System

Einen Mikrocontroller mit ESP32-C3 Chip habe ich dir bereits im Beitrag Mikrocontroller ESP32 C3 mit LCD-Display vorgestellt.

Bezug des ESP32-C3 mit LuatOS System

Den mir vorliegenden Mikrocontroller habe ich auf aliexpress.com für wenige Euro gefunden und für sehr interessant befunden. Es gab im gleichen Shop zusätzlich auch ein LCD-Display, welches man auf diesen stecken kann, dieses habe ich gleich mitbestellt.

Artikel "ESP32 Entwicklung Bord ESP32 C3 LCD CORE" im Shop Aliexpress.com
Artikel „ESP32 Entwicklung Bord ESP32 C3 LCD CORE“ im Shop Aliexpress.com

Lieferumfang

Zum Lieferumfang des Mikrocontrollers und des LCD-Displays gehörte jeweils 2 Stiftleisten und Buchsenleisten.

Was mich doch recht störte war, dass jede einzelne Stift- / Buchsenleiste einzeln eingepackt war. Diese Ressourcenverschwendung ist bezeichnend für Shops mit Sitz im asiatischen Raum.

ESP32-C3 Chip

Auf dem hier verwendeten Mikrocontroller ist der recht neue ESP32-C3 in der Version 342021 verbaut.

ESP32-C3 Chip auf dem Mikrocontroller
ESP32-C3 Chip auf dem Mikrocontroller

Was ist LuatOS?

Kommen wir zunächst zur Frage: „Was ist LuatOS?“. LuatOS ist ein Embedded Script Running Framework, welches die Entwicklungseffizienz erhöhen soll. Dieses System ist für IoT-Geräte optimiert, welche einen geringen Speicherbedarf haben.

Einrichtung der Entwicklungsumgebung Visual Studio Code

Das LuatOS System wird in Visual Studio Code programmiert, wo du eine zusätzliche Erweiterung für dieses System installieren kannst.

Installieren der Erweiterung "LuatOS" in Visual Studio Code
Installieren der Erweiterung „LuatOS“ in Visual Studio Code

Wenn dieses installiert wurde, dann muss noch die Datei „settings.json“ für den aktuellen Workspace auf nachfolgenden Code angepasst werden.

Diese erreichst du über „Datei“ > „Einstellungen“ > „Einstellungen“ oder einfacher über die Tastenkombination „Strg + ,“.

öffnen der Einstellungen in Visual Studio Code
öffnen der Einstellungen in Visual Studio Code

Wenn der Reiter „Einstellungen“ geöffnet ist, findest du oben recht das Symbol „Einstellungen öffnen (JSON)“ (siehe Bild).

öffnen der Datei "settings.json"
Öffnen der Datei „settings.json“
{
   "editor.fontFamily": "Consolas, 'Microsoft Yahei UI Light','Courier New', monospace",
   "editor.renderLineHighlight": "all",
   "editor.emptySelectionClipboard": false,
   "files.autoGuessEncoding": true,
   "editor.bracketPairColorization.enabled": true,
   "editor.guides.bracketPairs":"active",
   "luahelper.base.showOnline": false, 
}

Quellen

Für die nachfolgenden Kapitel habe ich mich aus diversen Quellen bedient, zum einen aus der offiziellen Dokumentation und auch aus dem russischen YouTube Video.

Da ich aber weder russisch noch Chinesisch sprechen / lesen kann habe ich mich mit dem Google Translator und der Seite deepl.com bedient. Des Weiteren waren die Bilder auch schon recht aufschlussreich.

Flashen des Mikrocontrollers

Für den Upload des Codes benötigen wir ein zusätzliches Tool, welches unter https://cdndownload.openluat.com/Luat_tool_src/last_release/Luatools_v2.exe heruntergeladen werden kann.

Mein Browser & Antivirus hatte zunächst die Verbindung abgelehnt, was ich manuell bestätigen musste.

Wenn die EXE-Datei heruntergeladen und mit deinem doppelklick gestartet wurde, wird man mit einem Dialog darauf hingewiesen, dass Updates vorliegen. Diese installiere ich zunächst.

installieren der Updates in Luatools
Installieren der Updates in Luatools

Download des Flash-Files für den

Damit wir mit dem Mikrocontroller kommunizieren können, müssen wir zunächst einige Einstellungen treffen.

  • zum einen muss die Checkbox (1) markiert werden,
  • der korrekte COM Port (2) muss gewählt werden, und
  • die Baudrate muss auf 921600 (3) eingestellt werden

Wenn diese Einstellungen getroffen wurden, kann die Schaltfläche „Open Serial Port“ betätigt werden und die kleine graue Lampe sollte sich grün verfärben (4). Im seriellen Output sollte man nun zeitgleich die Meldung „[Zeitstempel] hi, LuatOS“ finden.

Einstellungen für die Kommunikation mit dem ESP32-C3 aus luatools
Einstellungen für die Kommunikation mit dem ESP32-C3 aus luatools

In meinem Fall verwende ich den Mikrocontroller ESP32-C3 und muss die Datei „luatools\resource\esp32c3_lua_lod\core_V0003\LuatOS-SoC_V0003_ESP32C3.soc“ auswählen.

Wenn die Datei ausgewählt wurde, kann die Schaltfläche „download“ betätigt werden. Der Download dauert mit knapp 50 Sekunden recht lange und in der Zeit sollte der Mikrocontroller nicht abgesteckt werden!

download der Firmware auf den ESP32-C3 mit luatools
download der Firmware auf den ESP32-C3 mit luatools

Programmieren der Ausgabe „Hello World!“

Starten wir mit einem kleinen Programm und programmieren, dass die Ausgabe „Hello World!“ auf der seriellen Schnittstelle ausgegeben wird.

Programm "Hello World!" in Visual Studio Code
Programm „Hello World!“ in Visual Studio Code

In Visual Studio Code erstellen wir eine neue Datei „main.lua“ und kopieren folgenden Code hinein. Die Datei muss den Dateinamen „main.lua“ tragen denn sonst wird diese nicht hochgeladen!

PROJECT = "helloWorld"
VERSION = "0.0.1"

sys = require"sys"

print("Hello World!")

sys.run()

Diese Datei müssen wir jetzt mit dem zuvor wendeten luatool auf den Mikrocontroller hochladen.

Im ersten Schritt klicken wir auf die Schaltfläche „Manage & Debug“ oben rechts im Tool Luatools.

Im neuen Dialog erzeugen wir uns zunächst ein neues Projekt mit der Schaltfläche „Create project“ (1), diesem müssen wir einen Namen vergeben (2) und dieses mit der Schaltfläche „OK“ (3) bestätigen.

Wenn das Projekt erstellt wurde, dann wird die Schaltfläche „Select the file“ (1) freigeben aus welcher wir die Firmware für den Mikrocontroller markieren (2) und diese über die Schaltfläche „Öffnen“ (3) wählen.

Nun muss die zuvor erzeugte Datei „main.lua“ gewählt werden, dazu klicken wir die Schaltfläche welche in der Grafik mit (1) markiert ist und navigieren in den Projektordner (2) und markieren die Datei (3) und betätigen dieses mit der Schaltfläche „Öffnen“ (4).

Im letzten Schritt betätigen wir die Schaltfläche „Download only script“ (1), nach dem erfolgreichen Download wird die Zeile „download successful“ in grün (2) angezeigt.

In meinem Fall musste ich einmal den Mikrocontroller über den Taster „RST“ neu starten und die es wurde die Zeile „Hello World!“ ausgegeben.

6 Kommentare

    1. Hi,

      ich stecke in dem Thema „LuatOS“ noch nicht so tief drin, muss aber sagen, dass es sich recht intuitiv programmieren lässt. Aber das ist erst mein erster Eindruck.

      Es werden noch einige Beiträge dazu folgen und dann denke, ich kann ich auch ein Vergleich zwischen diesen beiden Systemen ziehen.

      Gruß,

      Stefan Draeger

  1. Das Board ist für den Preis sehr solide! Tasmota läuft darauf auch auf Anhieb.
    Mit Tasmota kommt auch eine sehr moderne Script Sprache mit; „Berry“. Diese ist irgendwo zwischen LUA und microPython angesiedelt. Die Dokumentation von Berry ist auf Englisch. Tasmota kann ganz einfach über den Chrome Browser installiert werden. Also einfach das C3 Luatos Board anstecken und diese Website aufrufen
    https://tasmota.github.io/install/

  2. Hi, ich habe das Board in der Annahme eines gewöhnlichen esp devboards gekauft und wollte es mit der Arduino ide als espnow Fernbedienung programmieren, habe jedoch ständig eine Fehlermeldung im Serial monitor bekommen, nur so bin ich darauf aufmerksam geworden, das dieses Framework vorinstalliert ist, da ich nicht viel zu luatos und espnow gefunden habe, frage ich mich ob und wie es möglich wäre den esp auf die bisherige Art per Arduino ide zu programmieren, bzw wie ich ein anderes Framework flashen kann.
    LG
    David

    1. Hi David,

      du benötigst dafür ein Flashfile also eine BIN-Datei für den ESP32, dieses findest du auf der Seite vom Chiphersteller Espressif.

      Gruß,

      Stefan

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert