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)
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.
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.
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
Les commandes nécessaires sont écrites par @GORO_Neko dans l'article ci-dessous, je vais donc y faire référence.
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
À 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
$ 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)