Commit 8cc36d9e authored by Yoann Ono Dit Biot's avatar Yoann Ono Dit Biot
Browse files

Add a new twatch post

parent 8ccae656
Pipeline #1755 passed with stages
in 19 seconds
......@@ -32,7 +32,7 @@ mkdir twatch-micropython && cd twatch-micropython
git clone https://github.com/micropython/micropython/
# Téléchargement du framework de développement Espressif
git clone https://github.com/espressif/esp-idf.git
export ESPIDF=/mnt/data/Labs/Electronics/twatch/esp-idf
export ESPIDF=<PATH_TO_DIRECTORY>/esp-idf
# Téléchargement de la toolchain ESP32 Xtensa
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
tar xzvf xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
......@@ -54,12 +54,12 @@ make -C ports/esp32 all
Si tout s'est bien passé, le firmware est présent dans le dossier ```ports/esp32/build-GENERIC```. Nous allons pouvoir le tester.
# Tester le firmwware
# Tester le firmware
Pour déployer le firmware que nous venons de compiler, il suffit de brancher la T-Watch en USB à l'ordinateur puis d'entrer la commande suivante :
```bash
make deploy
make -C ports/esp32 deploy
```
Il est ensuite possible de se connecter à un shell interactif python (REPL) via le port USB en série. Par exemple, à l'aide du logiciel picocom :
......
---
title: "T-Watch 2020 : Micropython + LVGL"
slug: twatch2020-micropython-lvgl
date: 2020-08-30
categories: Tutorials
---
Lors de mon dernier article sur la twatch, je vous présentais comment installer [MicroPython sur la TTGO T-Watch 2020](2020-08-14_twatch2020-micropython.md). L'environnement déployé était plutôt "rustique" et ne permettait pas de profiter pleinement des fonctionnalités que propose la T-Watch. Depuis, les choses ont un peu bougé, et il est maintenant possible d'avoir un environnement bien plus développé avec notamment le support de LVGL pour avoir une interfaces graphiques qui dépote.
# Qu'est ce que LVGL ?
LVGL est une bibliothèque permettant de facilement créer des interfaces graphiques pour de l'embarqué. Le tout semble plutôt léger et propose tout un tas de widget bien pratique. Par exemple voici le type de rendu que l'on peut avoir :
![Exemple d'interface créée avec LVGL](/img/posts/twatch/lvgl_demo.png)
# Créer l'image Micropython avec LVGL
Contrairement au dernier article, nous n'allons pas partir du dépot Micropython officiel, mais d'une version modifiée. En effet, [Nikita Selin](https://github.com/OPHoperHPO) a fait une grosse partie du boulot pour porter proprement la montre avec Micropython et notamment offrir une compatibilité avec LVGL. Nous allons donc partir de son dépôt.
Comme la dernière fois nous allons, préparer notre environnement avec les commandes suivantes :
```bash
mkdir twatch-micropython-lvgl && cd twatch-micropython-lvgl
# Téléchargement du code Micropython
git clone https://github.com/OPHoperHPO/lilygo-ttgo-twatch-2020-micropython micropyhon
# Téléchargement du framework de développement Espressif
git clone https://github.com/espressif/esp-idf.git
# Téléchargement de la toolchain ESP32 Xtensa
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
tar xzvf xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
```
Maintenant que tout est téléchargé, Il suffit de se rendre dans le dossier ```lilygo-ttgo-twatch-2020-micropython``` puis de modifier le fichier ```makefile``` présent dans ```ports/esp32``` afin d'y définir les chemins vers ESP-IDF et la toolchain ESP32 Xtensa. Cela evite de se pastiller les variables d'environnement à définir à chaque fois comme c'était le cas précédemment.
Une fois que c'est fait, on prépare l'environnement :
```bash
cd micropython
git submodule update --init
make -C mpy-cross
```
Maintenant, nous pouvons brancher la montre, compiler, puis déployer le firmware:
```bash
make -C ports/esp32 deploy
```
# Tester le firmware
Maintenant que nous avons déployer notre firmware, nous allons pouvoir tester si LVGL fonctionne correctement avec le script suivant :
```python
import lvgl as lv
import ttgo
# Init watch
watch = ttgo.Watch()
# Init lvgl
lv.init()
watch.lvgl_begin()
# Enable backlight
watch.tft.backlight_fade(100)
# Init lvgl
lv.init()
watch.lvgl_begin()
# Enable backlight
watch.tft.backlight_fade(100)
# Init interface
scr = lv.obj()
win = lv.win(scr)
win.set_title("TWatch + LVGL")
btn = lv.btn(win)
label = lv.btn(btn)
label.set_text("Hello world")
lv.scr_load(scr)
```
Si une interface s'affiche, c'est gagné! On va maintenant pouvoir s'amuser avec les différents composant de la montre. Pourquoi pas créer un TVBGone ou outils d'attaque Bluetooth ? ;)
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment