RIOT OS : Différence entre versions

De fablab
Aller à : navigation, rechercher
Ligne 1 : Ligne 1 :
<big> '''WIP''' </big>
+
<big style="font-size:200%;"> '''WIP''' </big>
 
== Description du projet et objectifs ==
 
== Description du projet et objectifs ==
 
Le but de ce projet était la contribution au support RIOT OS des cartes STM32 du fablab FabMSTIC
 
Le but de ce projet était la contribution au support RIOT OS des cartes STM32 du fablab FabMSTIC
Ligne 10 : Ligne 10 :
 
* de compléter le support RIOT OS pour les cartes STM32 du fablab fabMSTIC,
 
* de compléter le support RIOT OS pour les cartes STM32 du fablab fabMSTIC,
 
* de réaliser des démonstrateurs "sympa » avec celles-ci (Afficheur  dynamique Horaire FabLab)
 
* de réaliser des démonstrateurs "sympa » avec celles-ci (Afficheur  dynamique Horaire FabLab)
* et de contribuer les développements réalisés (support et démo) à la  base de code de RIOT https://github.com/RIOT-OS/RIOT
+
* de contribuer les développements réalisés (support et démo) à la  base de code de RIOT https://github.com/RIOT-OS/RIOT
  
 
== Équipe ==
 
== Équipe ==
Ligne 16 : Ligne 16 :
 
* PAQUET Léo
 
* PAQUET Léo
 
* VIGOUROUX Thomas
 
* VIGOUROUX Thomas
 
  
 
== Présentation de RIOT OS ==
 
== Présentation de RIOT OS ==
Ligne 22 : Ligne 21 :
  
 
== Présentation de LoRaWAN ==
 
== Présentation de LoRaWAN ==
 +
LoRaWAN (Long Range Wide-area network) est un protocole de communication conçu pour l'internet des objets. Ce protocole utilise la technologie de modulation LoRa.
  
 
== Contenu du projet ==
 
== Contenu du projet ==
  
=== Inventaire des cartes du Fablab ===
+
=== Inventaire des cartes STM32 du Fablab ===
 +
Nous avons dans un premier temps fait l'inventaire des cartes électroniques STM32 du Fablab.
 +
 
 +
Nous avons respecté la norme de RIOT qui sépare les "boards" (les cartes avec CPU) et les "shields" (carte possédant les capteurs).
 +
 
 +
Pour chaque "board" on cherche si elle appartient au dossier [https://github.com/RIOT-OS/RIOT/tree/master/boards boards] de RIOT OS.
 +
Quant aux "shields" on regarde pour chaque capteurs si son driver appartient au dossier [https://github.com/RIOT-OS/RIOT/tree/master/drivers drivers].
 +
 
 +
Un grand nombre de capteurs appartenant aux cartes du Fablab ne sont pas supportés dans RIOT mais sont en revanche des versions alternatives de capteurs supportés.
 +
Nous avons donc cherché le driver pouvant être adapté pour chaque capteur non supporté.
  
 
=== Démonstration d'utilisation de RIOT OS ===
 
=== Démonstration d'utilisation de RIOT OS ===
Ligne 32 : Ligne 41 :
  
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/command_led Command led] ====
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/command_led Command led] ====
 
+
Cet exemple montre comment créer une commande pour le shell de RIOT. Cette commande permet d'allumer et d'éteindre la led de la carte.
  
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/nucleo-f411re Nucleo F411 RE] ====
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/nucleo-f411re Nucleo F411 RE] ====
 +
Cet exemple montre comment interagir avec les dispositifs grâce à ''saul''.
  
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/press_button Press button] ====
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/press_button Press button] ====
 +
Cet exemple montre l'utilisation d'une fonction de rappel lors de l'appui du bouton sur la carte.
  
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/saul_list_all Saul list all] ====
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/saul_list_all Saul list all] ====
 +
Cet exemple montre une utilisation de ''saul'' notamment pour lister les dispositifs compatible avec ''saul''.
  
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/x-nucleo-iks01a1 X-nucleo-iks01a1] ====
 
==== [https://github.com/CampusIoT/stm32-riotos-demos/tree/master/examples/x-nucleo-iks01a1 X-nucleo-iks01a1] ====
 
+
Cet exemple montre comment récupérer les infos de 3 capteurs du shield ''X-nucleo-iks01a1'' en utilisant ''saul''.
  
 
=== Création d'un driver pour un capteur ===
 
=== Création d'un driver pour un capteur ===
[https://github.com/vigoux/RIOT Fork de RIOT] avec le support du capteur lsm6dso
+
Le shield ''X-NUCLEO-IKS01A1'' est un shield présent en grande quantité au fablab ('''nbr''').
 +
Ce shield a '''4''' de capteurs:
 +
*''HTS221'' capteur d'humidité et de température supporté par RIOT.
 +
*''LIS3MDL'' magnétomètre supporté.
 +
*''LPS25HB'' capteur de pression supporté.
 +
*''LSM6DS0'' accéléromètre et gyroscope non supporté.
 +
 
 +
Afin que le shield soit entièrement supporté il faut donc écrire le driver du ''LSM6DS0''. Il existe dans RIOT le driver du ''LSM6DSL'', capteur présent dans le shield ''X-NUCLEO-IKS01A2'' par exemple.
 +
 
 +
Le driver a donc été adapté grâce à la [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwi7t7z_r8fpAhUJnxQKHQXGCJcQFjABegQIBhAB&url=https%3A%2F%2Fwww.st.com%2Fresource%2Fen%2Fdatasheet%2Flsm6dso.pdf&usg=AOvVaw0BnX-bpSN28PjIg2UkfmjS documentation] du ''LSM6DS0''.
 +
 
 +
Au final le driver se trouve sur ce [https://github.com/vigoux/RIOT Fork de RIOT] avec le support du capteur lsm6dso.
  
 
=== Utilisation de LoRaWAN avec RIOT OS ===
 
=== Utilisation de LoRaWAN avec RIOT OS ===
Ligne 50 : Ligne 73 :
 
== Difficultés rencontrées ==
 
== Difficultés rencontrées ==
 
=== Coronavirus ===
 
=== Coronavirus ===
 +
La pandémie mondiale due au Coronavirus a malheureusement eu un fort impact sur notre projet.
 +
Le fait que l'on ai plus eu accès au Fablab a bloqué le projet puisque l'on avait plus accès aux cartes électroniques.
  
 
== Bibliographie ==
 
== Bibliographie ==
 
* [https://fr.wikipedia.org/wiki/RIOT_(syst%C3%A8me_d%27exploitation) Page Wikipédia RIOT OS]
 
* [https://fr.wikipedia.org/wiki/RIOT_(syst%C3%A8me_d%27exploitation) Page Wikipédia RIOT OS]
 
* [https://fr.wikipedia.org/wiki/LoRaWAN Page Wikipédia LoRaWAN]
 
* [https://fr.wikipedia.org/wiki/LoRaWAN Page Wikipédia LoRaWAN]

Version du 22 mai 2020 à 11:55

WIP

Description du projet et objectifs

Le but de ce projet était la contribution au support RIOT OS des cartes STM32 du fablab FabMSTIC

Contexte:

Le fablab FabMSTIC possède une grande variété de cartes STM32 (Disco et Nucleo) de ST Microelectronics et de cartes d’extension capteurs et de communication (LoRa, Sigfox, BLE, Wifi, Thread …) . Plusieurs d’elles sont partiellement supportées par RIOT OS.

L’objectif du projet fablab est

  • de compléter le support RIOT OS pour les cartes STM32 du fablab fabMSTIC,
  • de réaliser des démonstrateurs "sympa » avec celles-ci (Afficheur dynamique Horaire FabLab)
  • de contribuer les développements réalisés (support et démo) à la base de code de RIOT https://github.com/RIOT-OS/RIOT

Équipe

  • BALETTE-PAPE Julien
  • PAQUET Léo
  • VIGOUROUX Thomas

Présentation de RIOT OS

RIOT OS https://www.riot-os.org/ est un système d’exploitation open source pour les objets connectés de l’Internet des Objets. Il supporte déjà un grand nombre des CPU et des capteurs dont ceux fabriqués par ST Microelectronics.

Présentation de LoRaWAN

LoRaWAN (Long Range Wide-area network) est un protocole de communication conçu pour l'internet des objets. Ce protocole utilise la technologie de modulation LoRa.

Contenu du projet

Inventaire des cartes STM32 du Fablab

Nous avons dans un premier temps fait l'inventaire des cartes électroniques STM32 du Fablab.

Nous avons respecté la norme de RIOT qui sépare les "boards" (les cartes avec CPU) et les "shields" (carte possédant les capteurs).

Pour chaque "board" on cherche si elle appartient au dossier boards de RIOT OS. Quant aux "shields" on regarde pour chaque capteurs si son driver appartient au dossier drivers.

Un grand nombre de capteurs appartenant aux cartes du Fablab ne sont pas supportés dans RIOT mais sont en revanche des versions alternatives de capteurs supportés. Nous avons donc cherché le driver pouvant être adapté pour chaque capteur non supporté.

Démonstration d'utilisation de RIOT OS

Afin de prendre en main le développement sous RIOT OS nous avons écris 5 applications montrant des exemples d’utilisation différents de RIOT OS. Ces exemples ont étés mis sur le dépot des démos riot.

Command led

Cet exemple montre comment créer une commande pour le shell de RIOT. Cette commande permet d'allumer et d'éteindre la led de la carte.

Nucleo F411 RE

Cet exemple montre comment interagir avec les dispositifs grâce à saul.

Press button

Cet exemple montre l'utilisation d'une fonction de rappel lors de l'appui du bouton sur la carte.

Saul list all

Cet exemple montre une utilisation de saul notamment pour lister les dispositifs compatible avec saul.

X-nucleo-iks01a1

Cet exemple montre comment récupérer les infos de 3 capteurs du shield X-nucleo-iks01a1 en utilisant saul.

Création d'un driver pour un capteur

Le shield X-NUCLEO-IKS01A1 est un shield présent en grande quantité au fablab (nbr). Ce shield a 4 de capteurs:

  • HTS221 capteur d'humidité et de température supporté par RIOT.
  • LIS3MDL magnétomètre supporté.
  • LPS25HB capteur de pression supporté.
  • LSM6DS0 accéléromètre et gyroscope non supporté.

Afin que le shield soit entièrement supporté il faut donc écrire le driver du LSM6DS0. Il existe dans RIOT le driver du LSM6DSL, capteur présent dans le shield X-NUCLEO-IKS01A2 par exemple.

Le driver a donc été adapté grâce à la documentation du LSM6DS0.

Au final le driver se trouve sur ce Fork de RIOT avec le support du capteur lsm6dso.

Utilisation de LoRaWAN avec RIOT OS

Difficultés rencontrées

Coronavirus

La pandémie mondiale due au Coronavirus a malheureusement eu un fort impact sur notre projet. Le fait que l'on ai plus eu accès au Fablab a bloqué le projet puisque l'on avait plus accès aux cartes électroniques.

Bibliographie