wiki:Peri19_C00

Cours PERI 0

Préambule

  • Le module PERI est expérimental par nature. Son but est de présenter les briques technologiques présentes dans les réseaux de capteurs. Il n'est évidemment pas exhaustif, mais tente de couvrir le domaine aussi largement que possible.
  • Cette première séance n'est pas un cours, mais une discussion sur vos attentes et sur ce que le module peut vous apporter.
  • Site WEB : www-soc.lip6.fr/trac/sesi-peri

Objectif du module

  • PERI : au départ c'est pour périphériques d'un PC
    • Disques (SCSI)
    • Cartes réseau (ethernet)
    • Bus système (ISA, PCI)
  • C'est devenu périphériques d'un système embarqué
    • Unité de calcul embarquée (8, 16, 32 et même 64bits)
    • Capteurs (analogique, numérique)
    • Protocole de communications (i2c, spi, wifi, ble)
  • et aussi
    • Driver Linux
    • Serveur web
    • Base de données

Plateforme cible

peri_2019_plateforme.png

Organisation prévisionnelle du module

peri_2019_planning.png

Organisation des séances

  • Les TME sont des TP
  • Fonctionnement en binôme
  • Prêt du matériel

Plateforme de TME

plateforme-peri-raspberry.png

Évaluation du module

L'objectif est d'évaluer l'investissement et la compréhension Notes d'interrogations écrites en début de séance de TME Notes de comptes rendus Note d'examen Matériels Raspberry Pi 1 et 3 Arduino micro ESP32 BLE, WIFI, LORA Ecran oled I2C LED + bouton poussoir Capteur luminosité Capteur de son capteur de mouvement Générateur de son Accéléromètre, gyroscope. Transceiver RADIO NRF24L01 Câbles, boîtes, etc.

Sondage

  • Pourquoi avez-vous choisi ce module ?
  • Avez-vous un (ou plusieurs) projets en tête ?
  • Avez-vous déjà utilisé des micro-contrôleurs ? Si oui, lesquels ?
  • Avez-vous déjà installé linux sur une raspberrypi ?
  • Avez-vous déjà fait des montages électroniques ? Si oui, quoi ? (en 1 phrase courte).
  • Avez-vous déjà écrit un pilote pour Linux ? Si oui que faisait-il ? (en 1 phrase courte)
  • Avez-vous déjà réalisé un serveur WEB ? Si oui avec quel serveur, et quel langage ?
  • Avez-vous déjà réalisé une base de donnée ? Si oui laquelle ?
  • Avez-vous déjà écrit un site WEB ?
  • Quels langages connaissez-vous (vraiment) ?

Questions

  • Que trouve-t-on dans /dev ?
  • Que permet de faire mmap ?
  • Qu'est-ce qu'un module noyau ?
  • Quel est le rôle d'un driver ?
  • Qu'est-ce qu'un bootloader ?
  • Peut-on connecter une LED directement sur une broche de micro-contrôleur ?
  • Que signifie "valeur analogique" ?
  • Peut-on connecter directement un bouton-poussoir sur une broche de micro-contrôleur ?
  • Quelle est la différence entre un site WEB et un serveur WEB ?
  • Qu'est-ce qu'une base de données ?
  • Qu'est-ce qu'un site web dynamique ?
  • Comment faire communiquer des processus ?
  • Que signifie I2C ?
  • Qu'est qu'un bus (en informatique) ?
  • Que signifie bande ISM ?
  • Qu'est-ce qu'un canal radio ?
  • Que signifie GPIO ?
  • Que signifient pull-up et tristo
  • Que signifie échantillonneur-bloqueur ?
  • Qu'est-ce qu'un automate d'état fini ?
  • Que veut dire ISR ?
  • Que signifie "programmation événementielle" ?
  • Peut-on écrire un programme multitâche si on n'a droit qu'à une seule pile (partagée par toutes les tâches) ?
  • Savez-vous ce qu'est un analyseur logique ? Si oui, en avez-vous déjà utilisé ?
  • Qu'est qu'un appel système ?
  • Que veut dire MMU ? À quoi ça sert ? Quel est le rapport avec une table de pages ?
  • Avez-vous déjà utilisé une breadboard ?
  • Connaissez-vous les couches OSI ?
  • Quelles différences connaissez-vous entre les protocoles TCP et UDP ?
  • Que signifie cross-compilation ?
  • Connaissez-vous le protocole Publish & Subscribe ?

Réponses au Sondage (18 personnes)

  • Pourquoi avez-vous choisi ce module ?
    Vous savez tous pourquoi vous êtes là, je souhaite que ce module vous apporte plein de compétences. Soyez curieux et n'hésitez pas à jouer avec le matériel :-)
    • 8 la description de l'UE.
    • 4 programmations bas niveau et système
    • 5 pour les systèmes embarqués ou codesign matériel / logiciel
    • 1 pour programmer
  • Avez-vous un (ou plusieurs) projets en tête ?
    Un peu plus de la moitié d'entre vous n'a pas encore de projet en tête, ce n'est pas grave parce que le principal objectif de ce module est de vous montrer les briques technologiques. Les projets vous viendront en tête naturellement.
    • 10 non
    • 3 des idées, mais pas de projets
    • 1 dispositif pour lire panneaux routiers
    • 1 robot
    • 1 dispositif BLE
    • 1 drone
    • 1 jardin intelligent
    • 1 faire un doctorat
  • Avez-vous déjà utilisé des micro-contrôleurs ? Si oui, lesquels ?
    Non pour un peu moins d'un tiers, les autres essentiellement dans le cadre des études. La différence avec ce module, c'est que vous allez garder le matériel pendant 3 mois et que j'ai choisi un matériel abordable (Raspberry Pi ~ 50€ et les microcontrôleurs Arduino et ESP32 avec leurs périphériques, c'est moins de 25€ chacun). Donc si ça vous intéresse, vous pourrez continuer après.
    • 5 non
    • 6 Arduino
    • 6 ARM7 LPC23xx
    • 2 PIC microchip
    • 2 Raspberry Pi
    • ESP8266
    • Motorola
  • Avez-vous déjà installé linux sur une raspberrypi ?
    Super, on va le faire, et vous pourrez le faire sans risque chez vous.
    • 15 non
    • 3 oui
  • Avez-vous déjà fait des montages électroniques ? Si oui, quoi ? (en 1 phrase courte).
    Un peu moins d'un quart n'a jamais fait de montage. On ne va pas vraiment en faire ici, nous allons jouer au Lego en combinant des objets. C'est plus facile et surtout c'est parce que notre objectif est moins de fabriquer des objets que des projets d'objets communicants.
    • 4 non
    • 9 oui en licence EEA (robot filoguidé, détecteur cardiaque, filtres)
    • 2 oui robot contrôlé en Bluetooth, suiveur
    • 1 oui projet domotique
  • Avez-vous déjà écrit un pilote pour Linux ? Si oui que faisait-il ? (en 1 phrase courte)
    Super, on va le faire, mais ça va rester simple, nous voulons juste être capable de piloter les périphériques simples depuis une application utilisateur Linux.
    • 17 non
    • 1 oui
  • Avez-vous déjà réalisé un serveur WEB ? Si oui avec quel serveur, et quel langage ?
    Non pour les 2/3 d'entre vous. C'est bien on va le faire. C'est important parce que le serveur WEB est la porte d'entrée de votre projet, toutefois, nous verrons comment il est possible s'en passer en utilisant des services cloud (en fait le serveur sera déporté).
    • 13 non
    • 5 oui (Apache, PHP, Nimgx)
  • Avez-vous déjà réalisé une base de données ? Si oui laquelle ?
    Non pour les 2/3 d'entre vous. Très bien, on va le faire. Là aussi, c'est indispensable. Une base de données constitue la mémoire de votre projet.
    • 12 non
    • 6 oui (MySQL, OracleDB, sqlite, office access, PostGre?)
  • Avez-vous déjà écrit un site WEB ?
    Non pour les 2/3 d'entre vous. Le site WEB c'est la vitrine de votre projet. On n'utilisera pas de CMS (Content Manager System qui permet d'éditer les pages depuis le poste client), mais on montrera comment faire des pages statiques et dynamiques (dont le contenu change tout seul).
    • 11 non
    • 7 oui (CMS symfony, CMS Kompozer, PHP+JS)
  • Quels langages connaissez-vous (vraiment) ?
    Cette rubrique aurait être plus longue si vous aviez tous mis l'ensemble des langages que vous avez utilisés au moins une fois et moins longue si vous n'aviez mis que les langages dans lesquels vous avez écrit de vrais projets (disons plus de 1000 lignes). Mais bon, le C est le plus connu, c'est la base et pour le reste vous être en phase avec l'index TIOBE qui mesure la popularité des langages de programmation.
    • 16 C
    • 9 C++
    • 6 Python
    • 6 java
    • 4 PHP
    • 6 VHDL
    • 3 mathlab
    • HTML/CSS
    • 2 Javascript
    • 2 SQL
    • C#
    • uC
    • Assembleur MIPS
    • 2 ocaml
Last modified 5 years ago Last modified on Feb 10, 2019, 10:29:52 AM