Erstellen Sie eine mruby-Entwicklungsumgebung für ESP32 (Linux Edition)

Überblick

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.)

Voraussetzungen

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.

Verfahren

Erstellung einer virtuellen Linux Mint-Maschine

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.

Image from Gyazo

Konstruktion der ESP-IDF-Entwicklungsumgebung

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

ESP-IDF-Quellcode-Set Klon

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

ESP-IDF-Setup

$ 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)




Recommended Posts

Erstellen Sie eine mruby-Entwicklungsumgebung für ESP32 (Linux Edition)
Erstellen Sie eine Kubernetes-Umgebung für die Entwicklung unter Ubuntu
So erstellen Sie eine Entwicklungsumgebung für TensorFlow (1.0.0) (Mac)
[Memo] Erstellen Sie mit Docker eine Entwicklungsumgebung für Django + Nuxt.js
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
[Linux] Erstellen einer Jenkins-Umgebung mit Docker
Erstellen einer Python-Entwicklungsumgebung für die KI-Entwicklung
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
[Linux] Aufbau einer Docker-Umgebung mit Amazon Linux 2
Erstellen Sie mit dem Serverless Framework eine lokale Entwicklungsumgebung für Lambda + Python
[DynamoDB] [Docker] Erstellen Sie mit Docker-Compose eine Entwicklungsumgebung für DynamoDB und Django
Erstellen Sie eine Entwicklungsumgebung für die C-Sprache mit einem Container
[Python] Erstellen Sie mit Docker eine Django-Entwicklungsumgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Ihrem Mac
Erstellen Sie mit der Doker Toolbox eine Django-Entwicklungsumgebung
Erstellen Sie mit Eclipse eine Minecraft-Plug-Entwicklungsumgebung
Erstellen Sie eine Python-Entwicklungsumgebung auf Raspberry Pi
Erstellen Sie eine lokale Entwicklungsumgebung mit WSL + Docker Desktop für Windows + Docker-Lambda + Python
Richten Sie eine Entwicklungsumgebung für die Verarbeitung natürlicher Sprache ein
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (3) GVim8.0 und Python3.6
Erstellen einer Django-Entwicklungsumgebung mit pyenv-virtualenv auf einem Mac
Erstellen Sie mit pyenv-virtualenv eine Python-Umgebung für jedes Verzeichnis
[Linux] WSL2 Erstellen Sie mit Ubuntu 20.04 eine Umgebung für laravel7
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (1)
Ich möchte einfach eine modellbasierte Entwicklungsumgebung erstellen
Erstellen Sie eine Python-Entwicklungsumgebung unter Mac OS X.
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Erstellen Sie eine Python-Entwicklungsumgebung mit pyenv unter MacOS
So erstellen Sie eine Python-Umgebung unter Amazon Linux 2
Entwicklungsübergreifende Umgebung (Entwicklung von Programmen für Windows unter Linux)
Erstellen einer Django-Umgebung für Win10 (mit virtuellem Speicherplatz)
Erstellen Sie mit Docker eine einfache Fast API-Entwicklungsumgebung
Linux Kernel Build für DE10nano
Erstellen Sie eine LAMP-Umgebung [CentOS 7]
[ev3dev × Python] Aufbau einer ev3dev-Entwicklungsumgebung
Erstellen Sie eine maschinelle Lernumgebung
[Zum Organisieren] Python-Entwicklungsumgebung
Erstellen Sie die Python-Umgebung offline
Erstellen Sie mit Docker eine Django-Entwicklungsumgebung! (Docker-compose / Django / postgreSQL / nginx)
Erstellen Sie Azure-Pipelies mit Azure DevOps in einer selbst gehosteten Linux-Umgebung
Erstellen Sie eine Go-Entwicklungsumgebung mit den Remote-Containern von VS Code
Erstellen Sie eine VS Code + Docker-Entwicklungsumgebung mit Linux VM
Erstellen Sie eine Python-Entwicklungsumgebung mit Eclipse (fügen Sie einen HTML-Editor hinzu).
[Django] Erstellen Sie mit PyCharm schnell eine Entwicklungsumgebung für Django-Container (Docker)
Erstellen Sie eine GVim-basierte Python-Entwicklungsumgebung unter Windows 10 (2) Grundeinstellungen
Erstellen Sie mit VSCode x Remote Development x Pipenv eine komfortable Entwicklungsumgebung
Erstellen einer Entwicklungsumgebung für die Python2.7-Serie mit Vagrant
Erstellen Sie mit Docker kostengünstig eine Flask-Entwicklungsumgebung
Erstellen Sie eine LAMP-Umgebung mit Vagrant (Linux + Apache + MySQL + PHP)
Erstellen Sie eine PyData-Umgebung für eine Lernsitzung zum maschinellen Lernen (Januar 2017).
Erstellen Sie unter CentOS 7.7 eine Python-Umgebung für Ihren Heimserver
[Linux] [Grundeinstellungen] Inhalt der Einrichtung der Entwicklungsumgebung
Erstellen Sie mit Docker eine Go-Umgebung
[Für Anfänger] Django -Entwicklungsumgebung Bau-
Optionen für die Python-Entwicklungsumgebung für Mai 2020
Emacs-Einstellungen für die Python-Entwicklungsumgebung
Erstellen Sie eine Python3-Umgebung unter CentOS7
Erstellen und testen Sie eine CI-Umgebung für mehrere Versionen von Python
Erstellen Sie in kürzester Zeit eine Selenium-Umgebung unter Amazon Linux 2
Versuchen Sie es mit virtualenv, mit dem eine virtuelle Umgebung von Python erstellt werden kann