P15 Réseau de capteurs temps réel : Différence entre versions

De Wiki de Projets IMA
(Prise en main de RIOT OS et STM32F4discovery)
(Prise en main de RIOT OS et STM32F4discovery)
Ligne 63 : Ligne 63 :
 
RIOT est un système d'exploitation construit autour d'un micro-noyau temps-réel, développé pour les besoins de l'Internet des objets et des réseaux sans fil. Initialement lancé en Europe par INRIA, Freie Universität Berlin, et l'Université de Hambourg en 2013, RIOT est actuellement développé par une large communauté du logiciel libre rassemblant des développeurs du monde entier.
 
RIOT est un système d'exploitation construit autour d'un micro-noyau temps-réel, développé pour les besoins de l'Internet des objets et des réseaux sans fil. Initialement lancé en Europe par INRIA, Freie Universität Berlin, et l'Université de Hambourg en 2013, RIOT est actuellement développé par une large communauté du logiciel libre rassemblant des développeurs du monde entier.
  
Pour prendre à main RIOT et la carte STM32, J'ai commencé par réaliser une application basé sur l'exemple "hello_world" de RIOT: cette simple application "gpio_to_serial" est capable d'allumer/éteindre une led dès qu'une interruptions est générée lors qu'on appuie sur le bouton "user" et affiche l'état de la led au terminal.
+
Pour prendre à main RIOT et la carte STM32, J'ai commencé par réaliser une application basé sur l'exemple "hello_world" de RIOT: cette simple application "gpio_to_serial" est capable d'allumer/éteindre une led dès qu'une interruptions est générée lors qu'on appuie sur le bouton "user" et affiche l'état de la led au terminal:
 
   
 
   
 
  2017-10-22 19:02:26,692 - INFO # GPIO Callback
 
  2017-10-22 19:02:26,692 - INFO # GPIO Callback

Version du 26 octobre 2017 à 16:14

  • Etudiant : Edmur Lopes
  • Encadrants : Alexandre Boé / Xavier Redon / Thomas Vantroys

Cahier des charges

Présentation générale du projet

Le projet réseau de capteurs temps réel consiste à développer et évaluer la possibilité de contrôler en temps réel un moteur par liaison sans fil.

Contexte

L'industrie 4.0 propose d'organiser les moyens de production de façon agile et autonome. Pour cela, on peut envisager de créer des ilots de travail interconnectés. Chaque ilot pourrait être déplacé pour optimiser soit l'utilisation des ressources soit la production. Dans le cas d'ilots identiques, pour faciliter la mise à jour des systèmes et le contrôle des machines, il peut être intéressant de faire la régulation sur un système "serveur". Les ilots deviennent alors les clients et envoient leurs données au serveur qui renvoie par la suite la commande.

Objectif du projet

L'objectif du projet consiste à mettre en place un réseau radio multi-saut classique (temps réel). Pour cela il va falloir:

- Développer un réseau non temps réel basé sur des cartes STM32 et des radios à 868 MHz, embarquant un système d'exploitation Riot OS,
- Évaluer les temps de propagation de l'information en fonction de l'environnement (perturbations, distance, ...),
- Modifier la partie MAC de Riot OS pour garantir les temps de latence.

Description du projet

Ce projet consiste à la mise en place d'un réseau sans fil de capteurs temps réel, afin de pouvoir envoyer/recevoir des commandes/informations d'un serveur vers la cible (un robot dans ce cas). Le réseau qu'on va mettre en place va devoir être capable d’effectuer le chemin le plus court vers le nœud cible dans le but de diminuer le temps de propagation de l'information. Comme montre la figure ci-après:

Architecture matérielle

Liste des tâches à effectuer

  1. Faire des recherches bibliographiques: temps réel, MAC, RIOT OS...
  2. Prise en main de RIOT OS et de la carte STM32F4
  3. Mettre en Place un réseau non temps réel
  4. Étudier les caractéristiques de ce réseau non temps réel: le temps de latence, des éventuels erreurs lors de l'émission...
  5. Rendre le réseau non temps réel en réseau temps réel
  6. Mise en place d'une commande automatique en cas de défaut sur le réseau

Première semaine (18/09/17 : 24/09/17)

  • Premier Rendez-vous de présentation du projet avec les encadrants
  • Analyse du besoin et élaboration du cahier des charges

Deuxième semaine (25/09/17 : 01/10/17)

  • Élaboration de la page wiki (présentation du projet)
  • Initiation à la recherche bibliographique (RIOT OS, Réseau temps réel, microcontrôleurs ARM (stm32), MAC protocol, RPL, etc.)

Calendrier prévisionnel

Previsionnel.png

Travail réalisé

Récupération du code et installation des outils de compilation

Avant de commencer à programmer une application, il faut tout d'abord cloner le code source de RIOT OS depuis GitHub:

git clone https://github.com/RIOT-OS/RIOT.git RIOT

Il faudra aussi installer les outils nécessaires à la compilation et au débogage de la famille de microcontrôleurs ARM:

apt-get install build-essential g++-multilib gtkterm openocd

Le paquetage g++-multilib est uniquement nécessaire si le système hôte est 64bits.

Installation des compilateurs et ses outils associés:

apt install gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-linux-gnueabi

Prise en main de RIOT OS et STM32F4discovery

RIOT est un système d'exploitation construit autour d'un micro-noyau temps-réel, développé pour les besoins de l'Internet des objets et des réseaux sans fil. Initialement lancé en Europe par INRIA, Freie Universität Berlin, et l'Université de Hambourg en 2013, RIOT est actuellement développé par une large communauté du logiciel libre rassemblant des développeurs du monde entier.

Pour prendre à main RIOT et la carte STM32, J'ai commencé par réaliser une application basé sur l'exemple "hello_world" de RIOT: cette simple application "gpio_to_serial" est capable d'allumer/éteindre une led dès qu'une interruptions est générée lors qu'on appuie sur le bouton "user" et affiche l'état de la led au terminal:

2017-10-22 19:02:26,692 - INFO # GPIO Callback
2017-10-22 19:02:26,693 - INFO # Message received, LED is ON
2017-10-22 19:02:34,944 - INFO # GPIO Callback
2017-10-22 19:02:34,945 - INFO # Message received, LED is OFF
2017-10-22 19:02:35,040 - INFO # GPIO Callback
2017-10-22 19:02:35,041 - INFO # Message received, LED is ON
2017-10-22 19:02:38,184 - INFO # GPIO Callback
2017-10-22 19:02:38,186 - INFO # Message received, LED is OFF
2017-10-22 19:02:38,280 - INFO # GPIO Callback
2017-10-22 19:02:38,281 - INFO # Message received, LED is ON
2017-10-22 19:02:40,578 - INFO # GPIO Callback
2017-10-22 19:02:40,580 - INFO # Message received, LED is OFF

Cette application m'a permit de comprendre comment fonctionne le système riot et de passer à la mise en place d'un premier réseau.

Mise en place d'un réseau non temps réel