Créer un environnement de développement mruby pour ESP32 (édition Linux)

Aperçu

Créez un environnement de développement mruby pour ESP32 sous Linux.

Création d'un environnement de développement mruby pour ESP32 sur Mac - Qiita Avant d'écrire, je ne trouvais pas d'article écrit pour Mac, donc je l'ai essayé sous Linux.

Je ne pouvais pas le construire en cours de route, alors je l'ai essayé sur Mac, mais j'ai fini par rester bloqué pour la même raison et je l'ai résolu. Comme c'est une bonne idée, nous publierons également la version Linux. (Le flux est le même, mais les commandes, etc. sont légèrement différentes)

Conditions préalables

Je construis une machine virtuelle Linux par dessus avec Parallels.

La distribution et la version Linux utilisées.

$ cat /etc/lsb-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=19.2
DISTRIB_CODENAME=tina
DISTRIB_DESCRIPTION="Linux Mint 19.2 Tina"

Le périphérique cible est M5Stack.

procédure

Création de machine virtuelle Linux mint

Je n'utilise généralement pas Linux, j'ai donc essayé d'utiliser Linux mint, que je n'avais jamais installé auparavant, en me référant au site ci-dessous.

[Par objectif] 7 distributions Linux recommandées pour les débutants

Suivez simplement l'Assistant d'installation Parallels et sélectionnez une distribution et elle sera créée presque automatiquement.

Je ne savais pas qu'il existe également une version gratuite appelée Parallels Lite, qui semble également être capable de créer un environnement virtuel pour Linux.

Image from Gyazo

Construction de l'environnement de développement ESP-IDF

Nous utilisons un environnement de développement croisé appelé ESP-IDF comme nous l'avons fait sur Mac.

Nous procéderons selon le document officiel, mais il est nécessaire de préparer diverses commandes à l'avance.

Get Started — ESP-IDF Programming Guide v4.1-dev-1066-g93a8603c5 documentation

Installation des commandes

Les commandes nécessaires sont écrites par @GORO_Neko dans l'article ci-dessous, je vais donc y faire référence.

Exécutez une application créée à partir du code de langage Ruby sur ESP-WROOM-32 (ESP32) à l'aide de mruby-esp32 --Qiita

Cependant, lorsque je lance sudo apt install`, j'obtiens `` 404 Not Found '' et il semble que je doive mettre à jour apt.

$ sudo apt update

Installez les commandes nécessaires comme indiqué ci-dessous. (Celui qui n'était pas inclus et celui qui a été mis à niveau.) Ces jours-ci, ce n'est pas «« apt get »» mais «« 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

Clonage du jeu de codes source ESP-IDF

À partir de maintenant, c'est à peu près le même que la version Mac. Clonez depuis github dans le répertoire esp selon la documentation.

$ mkdir ~/esp
$ cd ~/esp
$ git clone --recursive https://github.com/espressif/esp-idf.git

Configuration ESP-IDF

$ cd ~/esp/esp-idf
$ ./install.sh

~/.Ajoutez la ligne suivante à bashrc.



. $HOME/esp/esp-idf/export.sh


 Redémarrez le terminal ou exécutez `` `` source ~ / .profile``` pour refléter.


### bonjour copie mondiale d'un exemple de projet

 Copiez l'exemple hello world fourni par esp-idf.

$ cd ~/esp $ cp -r $IDF_PATH/examples/get-started/hello_world .


 Configuration

 Lancez menuconfig avant de construire.

$ cd ~/esp/hello_world $ idf.py menuconfig


 Lorsqu'il démarre normalement, l'écran suivant apparaît.
 Si cet écran apparaît, le travail jusqu'à présent s'est terminé sans problème.

 ![Image from Gyazo](https://i.gyazo.com/3f103b64419f8f92094202d301e90d9f.png)

 Il semble que différentes conditions soient définies sur cet écran, mais ici il se termine une fois avec la touche ESC.
 Appuyez sur Y pour enregistrer dans la boîte de dialogue de sortie au cas où.


### Construire

 La commande ci-dessous construira le projet hello world.

$ idf.py build


### Télécharger sur la machine réelle

 Connectez [M5Stack](https://www.switch-science.com/catalog/3647/) avec un câble USB.
 Vérifiez le port connecté. Habituellement, cela ressemble à `` `` / dev / ttyUSB0```.

$ ls /dev/ttyU* /dev/ttyUSB0


 Pour télécharger le programme, exécutez la commande ci-dessous.

$ idf.py -p /dev/ttyUSB0 flash


 Cependant, j'ai eu une erreur avec l'autorisation refusée.

serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'



#### **`L'utilisateur qui est connecté au groupe de numérotation car il est connecté et ne semble pas avoir de droits d'accès(parallels)Ajouter.`**
```/dev/Le propriétaire de ttyusb0 est root

$ sudo usermod -aG dialout parallels


 Maintenant redémarrez. (Vous devrez peut-être vous reconnecter.)



#### **`Il sera réinitialisé à la numérotation, vous devrez donc le chacher à chaque fois, il est donc préférable de le mettre dans un groupe.`**
```/dev/J'aurais pu changer le propriétaire de ttyusb0, mais lorsque je branche et débranche l'appareil, le propriétaire devient root.

 Je vais le télécharger à nouveau.

$ idf.py -p /dev/ttyUSB0 flash


 Cette fois, cela a fonctionné.

### Contrôle du fonctionnement du programme

 Vous pouvez vérifier la sortie du programme avec le moniteur.

idf.py -p /dev/ttyUSB0 monitor


 Vous pouvez voir que Hello world! Et les informations de la puce sont sorties.

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


 Vous pouvez maintenant vérifier de la construction du projet à l'exécution avec ESP-IDF.


## construction mruby

### Cloner le code source

 Clonez le code source selon la documentation sur [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


### Construire

 Construisez avec make comme décrit dans la documentation.
 MRUBY_EXAMPLE = simplest_mrb.rb semble spécifier le fichier mruby à utiliser à partir de certains échantillons.

 Comme avec la version Mac, une erreur se produira lors de la vérification de l'option -W, alors configurez CFLAGS pour désactiver la vérification avant de faire.

$ export CFLAGS="-Wno-error=format-overflow=" $ make MRUBY_EXAMPLE=simplest_mrb.rb


### Paramètres du port de communication

```menuconfig```Définit le port utilisé pour la communication avec, mais la valeur par défaut est```/dev/ttyusb0```Puisqu'il est défini sur, vous n'avez généralement pas besoin de le définir.

 Si le port de communication n'est pas `` / dev / ttyUSB0 '', définissez-le selon la procédure ci-dessous.

$ make menuconfig


```menuconfig```Quand est démarré, réglez comme suit.

 1. Sélectionnez __Serial flasher config ---> __
 2. Sélectionnez __ (/ dev / ttyUSB0) Port serail par défaut) __
 3. Entrez le port que vous souhaitez utiliser.
 4. Appuyez deux fois sur __ESC__, puis appuyez sur __Y__ dans la boîte de dialogue pour enregistrer.

### Écriture du programme et contrôle de fonctionnement

 [simplest_mrb.rb](https://github.com/mruby-esp32/mruby-esp32/blob/master/main/examples/simplest_mrb.rb) Vérification des fichiers, 1234 et 4321 sont comme indiqué ci-dessous. Il est conçu pour produire deux lignes.

puts "1234" puts "4321"


 Exécutez les tâches de flash et de surveillance pour écrire et vérifier le programme.

$ make MRUBY_EXAMPLE=simplest_mrb.rb flash monitor


 Lorsque je vérifie la sortie, cela semble fonctionner normalement.

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


 Le programme mruby a donc été exécuté en toute sécurité comme la version Mac.


# Relation

 Version Mac.

 - [Création d'un environnement de développement mruby pour ESP32 sur Mac --Qiita](https://qiita.com/katsuyoshi/items/dc0aed3aeb35d8a0ebcb)


# référence

 Je me suis référé au site suivant. (Bien que cela ressemble à un site de résumé ...)
 Merci beaucoup.


 - [Exécutez une application créée à partir du code de langage Ruby sur ESP-WROOM-32 (ESP32) en utilisant mruby-esp32 --Qiita](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

Créer un environnement de développement mruby pour ESP32 (édition Linux)
Créer un environnement Kubernetes pour le développement sur Ubuntu
Comment créer un environnement de développement pour TensorFlow (1.0.0) (Mac)
[Memo] Construire un environnement de développement pour Django + Nuxt.js avec Docker
Créez facilement un environnement de développement avec Laragon
[Linux] Créer un environnement Jenkins avec Docker
Créer un environnement de développement Python pour le développement de l'IA
Créer un environnement de développement pour l'apprentissage automatique
[Linux] Construction de l'environnement Docker avec Amazon Linux 2
Créer un environnement de développement local pour Lambda + Python à l'aide de Serverless Framework
[DynamoDB] [Docker] Créer un environnement de développement pour DynamoDB et Django avec docker-compose
Créer un environnement de développement de langage C avec un conteneur
[Python] Créer un environnement de développement Django avec Docker
Créez un environnement de développement Python sur votre Mac
Créer un environnement de développement Django à l'aide de Doker Toolbox
Créez un environnement de développement de plugins Minecraft avec Eclipse
Construire un environnement de développement Python sur Raspberry Pi
Créez un environnement de développement local avec WSL + Docker Desktop pour Windows + docker-lambda + Python
Mettre en place un environnement de développement pour le traitement du langage naturel
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Créer un environnement de développement Django à l'aide de pyenv-virtualenv sur Mac
Créez un environnement python pour chaque répertoire avec pyenv-virtualenv
[Linux] WSL2 Créer un environnement pour laravel7 avec Ubuntu 20.04
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Je souhaite créer facilement un environnement de développement basé sur un modèle
Créer un environnement de développement Python sur Mac OS X
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Créer un environnement de développement Python à l'aide de pyenv sur MacOS
Comment créer un environnement Python sur Amazon Linux 2
Environnement de développement croisé (développement de programmes pour Windows sous Linux)
Construire un environnement Django pour Win10 (avec espace virtuel)
Créer un environnement de développement d'API rapide léger à l'aide de Docker
Compilation du noyau Linux pour DE10nano
Créer un environnement LAMP [CentOS 7]
[ev3dev × Python] Construction de l'environnement de développement ev3dev
Créer un environnement d'apprentissage automatique
[Pour organiser] Environnement de développement Python
Créer un environnement Python hors ligne
Créez un environnement de développement Django avec Docker! (Docker-compose / Django / postgreSQL / nginx)
Créer des pipelies Azure avec Azure DevOps dans un environnement auto-hébergé Linux
Créez un environnement de développement Go avec les conteneurs distants de VS Code
Créer un environnement de développement VS Code + Docker avec une machine virtuelle Linux
Créer un environnement de développement Python avec Eclipse (ajouter un éditeur HTML)
[Django] Créez rapidement un environnement de développement de conteneur Django (Docker) avec PyCharm
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Créez un environnement de développement confortable avec VSCode x Remote Development x Pipenv
Comment créer un environnement de développement de la série Python2.7 avec Vagrant
Créez un environnement de développement Flask à faible coût avec Docker
Créez un environnement LAMP avec Vagrant (Linux + Apache + MySQL + PHP)
Créer un environnement PyData pour une session d'étude sur l'apprentissage automatique (janvier 2017)
Créez un environnement python sur CentOS 7.7 pour votre serveur domestique
[Linux] [Paramètres initiaux] Contenu de la configuration de l'environnement de développement
Créer un environnement go à l'aide de Docker
[Pour les débutants] Django -Construction d'environnement de développement-
Options d'environnement de développement Python pour mai 2020
Paramètres Emacs pour l'environnement de développement Python
Créer un environnement python3 sur CentOS7
Créer et tester un environnement CI pour plusieurs versions de Python
Créez un environnement Selenium sur Amazon Linux 2 dans les plus brefs délais
Essayez d'utiliser virtualenv qui peut créer un environnement virtuel de Python