Erstellen Sie eine mruby-Entwicklungsumgebung für ESP32 unter Linux.
Erstellen einer mruby-Entwicklungsumgebung für ESP32 auf Mac - Qiita Vor dem Schreiben konnte ich keinen Artikel für Mac finden, also habe ich ihn tatsächlich unter Linux ausprobiert.
Ich konnte es unterwegs nicht bauen, also habe ich es auf dem Mac versucht, aber ich bin aus dem gleichen Grund festgefahren und habe es gelöst. Da dies eine gute Idee ist, werden wir auch die Linux-Version veröffentlichen. (Der Ablauf ist der gleiche, aber die Befehle usw. unterscheiden sich geringfügig.)
Ich baue mit Parallels eine virtuelle Linux-Maschine darauf.
Die verwendete Linux-Distribution und -Version.
$ cat /etc/lsb-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=19.2
DISTRIB_CODENAME=tina
DISTRIB_DESCRIPTION="Linux Mint 19.2 Tina"
Das Zielgerät ist M5Stack.
Normalerweise verwende ich kein Linux, daher habe ich versucht, Linux Mint zu verwenden, das ich noch nie zuvor installiert hatte, indem ich auf die folgende Site verwiesen habe.
[Zweckmäßig] 7 empfohlene Linux-Distributionen für Anfänger
Folgen Sie einfach dem Parallels-Installationsassistenten und wählen Sie eine Distribution aus. Diese wird fast automatisch erstellt.
Ich wusste nicht, dass es auch eine kostenlose Version namens Parallels Lite gibt, und es scheint, dass Sie hier auch eine virtuelle Umgebung für Linux erstellen können.
Get Started — ESP-IDF Programming Guide v4.1-dev-1066-g93a8603c5 documentation
Wir werden gemäß dem offiziellen Dokument vorgehen, aber es ist notwendig, verschiedene Befehle im Voraus vorzubereiten. Installation der Befehle @GORO_Neko hat die erforderlichen Befehle im folgenden Artikel geschrieben, daher werde ich auf sie verweisen. Führen Sie eine Anwendung aus Ruby-Sprachcode auf ESP-WROOM-32 (ESP32) mit mruby-esp32 --Qiita aus Wenn ich sudo apt install``` ausführe, erhalte ich
`` 404 Not Found``` und es scheint, dass ich apt aktualisieren muss.
$ sudo apt update
Installieren Sie die erforderlichen Befehle wie unten gezeigt. (Derjenige, der nicht enthalten war und derjenige, der aktualisiert wurde.) Heutzutage ist es nicht "apt get", sondern "apt install".
$ sudo apt install git
$ sudo apt install libncurses-dev
$ sudo apt install gperf
$ sudo apt install python-pip
$ sudo apt install python-serial
$ sudo apt install python-dev
$ sudo apt install grep
$ sudo apt install automake
$ sudo apt install texinfo
$ sudo apt install help2man
$ sudo apt install libtool
$ sudo apt install libtool-bin
$ sudo apt install cmake
$ sudo apt install ruby
Von hier an ist down ungefähr das gleiche wie die Mac-Version. Klonen Sie von github gemäß der Dokumentation in das esp-Verzeichnis.
$ mkdir ~/esp
$ cd ~/esp
$ git clone --recursive https://github.com/espressif/esp-idf.git
$ cd ~/esp/esp-idf
$ ./install.sh
~/.Fügen Sie bashrc die folgende Zeile hinzu.
. $HOME/esp/esp-idf/export.sh
Starten Sie das Terminal neu oder führen Sie `` `source ~ / .profile``` aus, um zu reflektieren.
### Hallo Weltkopie des Beispielprojekts
Kopieren Sie das von esp-idf bereitgestellte Hallo-Welt-Beispiel.
$ cd ~/esp $ cp -r $IDF_PATH/examples/get-started/hello_world .
Configuration
Starten Sie menuconfig vor dem Erstellen.
$ cd ~/esp/hello_world $ idf.py menuconfig
Wenn es normal startet, wird der folgende Bildschirm angezeigt.
Wenn dieser Bildschirm angezeigt wird, sind die Arbeiten bis zu diesem Punkt ohne Probleme abgeschlossen.
![Image from Gyazo](https://i.gyazo.com/3f103b64419f8f92094202d301e90d9f.png)
Es scheint, dass auf diesem Bildschirm verschiedene Bedingungen festgelegt sind, aber hier endet es einmal mit der ESC-Taste.
Drücken Sie Y, um im Exit-Dialog für alle Fälle zu speichern.
### Bauen
Mit dem folgenden Befehl wird das Hallo-Welt-Projekt erstellt.
$ idf.py build
### Auf die eigentliche Maschine hochladen
Verbinden Sie [M5Stack](https://www.switch-science.com/catalog/3647/) mit einem USB-Kabel.
Überprüfen Sie den angeschlossenen Port. Normalerweise sieht es aus wie `` `/ dev / ttyUSB0```.
$ ls /dev/ttyU* /dev/ttyUSB0
Führen Sie den folgenden Befehl aus, um das Programm hochzuladen.
$ idf.py -p /dev/ttyUSB0 flash
Ich habe jedoch einen Fehler mit verweigerter Berechtigung erhalten.
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
#### **`Der Benutzer, der bei der Einwahlgruppe angemeldet ist, weil es sich um eine Einwahl handelt und keine Zugriffsrechte zu haben scheint(parallels)Hinzufügen.`**
```/dev/Der Eigentümer von ttyusb0 ist root
$ sudo usermod -aG dialout parallels
Starten Sie jetzt neu. (Vielleicht müssen Sie sich nur noch einmal anmelden.)
#### **`Es wird auf Dialout zurückgesetzt, sodass Sie jedes Mal chacheln müssen. Es ist daher besser, es in eine Gruppe einzuteilen.`**
```/dev/Ich hätte den Besitzer von ttyusb0 ändern können, aber wenn ich das Gerät ein- und ausstecke, wird der Besitzer root.
Ich werde es wieder hochladen.
$ idf.py -p /dev/ttyUSB0 flash
Diesmal hat es funktioniert.
### Programmbetriebsprüfung
Sie können die Ausgabe des Programms mit dem Monitor überprüfen.
idf.py -p /dev/ttyUSB0 monitor
Sie können sehen, dass Hallo Welt! Und Chip-Informationen ausgegeben werden.
Hello world! This is ESP32 chip with 2 CPU cores, WiFi/BT/BLE, silicon revision 1, 2MB external flash Restarting in 10 seconds... Restarting in 9 seconds... Restarting in 8 seconds...
Jetzt können Sie mit ESP-IDF vom Projekterstellung bis zur Ausführung prüfen.
## mruby Konstruktion
### Klonen Sie den Quellcode
Klonen Sie den Quellcode gemäß der Dokumentation unter [GitHub mruby-esp32](https://github.com/mruby-esp32/mruby-esp32).
$ cd ~/ $ git clone --recursive https://github.com/mruby-esp32/mruby-esp32.git $ cd mruby-esp32
### Bauen
Erstellen Sie mit make wie in der Dokumentation beschrieben.
MRUBY_EXAMPLE = simplest_mrb.rb scheint die zu verwendende mruby-Datei aus einigen Beispielen anzugeben.
Wie bei der Mac-Version tritt beim Aktivieren der Option -W ein Fehler auf. Stellen Sie daher CFLAGS so ein, dass die Überprüfung vor dem Ausführen deaktiviert wird.
$ export CFLAGS="-Wno-error=format-overflow=" $ make MRUBY_EXAMPLE=simplest_mrb.rb
### Kommunikationsanschlusseinstellungen
```menuconfig```Legt den für die Kommunikation verwendeten Port fest, der Standardwert ist jedoch```/dev/ttyusb0```Da es auf eingestellt ist, müssen Sie es normalerweise nicht einstellen.
Wenn der Kommunikationsport nicht `` `/ dev / ttyUSB0``` ist, stellen Sie ihn gemäß dem folgenden Verfahren ein.
$ make menuconfig
```menuconfig```Wenn gestartet wird, stellen Sie wie folgt ein.
1. Wählen Sie __Serial Flasher Config ---> __
2. Wählen Sie __ (/ dev / ttyUSB0) Standard-Serail-Port) __
3. Geben Sie den Port ein, den Sie verwenden möchten.
4. Drücken Sie zweimal __ESC__ und dann im Dialogfeld __Y__, um zu speichern.
### Programmschreiben und Funktionsprüfung
[simplest_mrb.rb](https://github.com/mruby-esp32/mruby-esp32/blob/master/main/examples/simplest_mrb.rb) Überprüfen der Dateien 1234 und 4321 wie unten gezeigt. Es ist für die Ausgabe von zwei Zeilen ausgelegt.
puts "1234" puts "4321"
Führen Sie die Flash- und Monitor-Aufgaben aus, um das Programm zu schreiben und zu überprüfen.
$ make MRUBY_EXAMPLE=simplest_mrb.rb flash monitor
Wenn ich die Ausgabe überprüfe, scheint sie normal zu funktionieren.
I (542) cpu_start: Starting scheduler on PRO CPU. I (0) cpu_start: Starting scheduler on APP CPU. I (370) mruby_task: Loading binary... 1234 4321 I (390) mruby_task: Success
Das mruby-Programm wurde also sicher wie die Mac-Version ausgeführt.
# Beziehung
Mac-Version.
- [Erstellen einer mruby-Entwicklungsumgebung für ESP32 auf Mac - Qiita](https://qiita.com/katsuyoshi/items/dc0aed3aeb35d8a0ebcb)
# Referenz
Ich habe auf die folgende Seite verwiesen. (Obwohl es wie eine zusammenfassende Seite aussieht ...)
Vielen Dank.
- [Führen Sie eine Anwendung aus Ruby-Sprachcode auf ESP-WROOM-32 (ESP32) mit mruby-esp32 --Qiita aus](https://qiita.com/GORO_Neko/items/12967d5c8f84975db221)
- [GitHub - mruby-esp32/mruby-esp32: mruby application template for ESP32](https://github.com/mruby-esp32/mruby-esp32)