Changes between Initial Version and Version 1 of Peri19_C00


Ignore:
Timestamp:
Feb 10, 2019, 10:29:52 AM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Peri19_C00

    v1 v1  
     1= Cours PERI 0
     2
     3== Préambule
     4
     5* 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.
     6* 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.
     7* Site WEB : www-soc.lip6.fr/trac/sesi-peri
     8
     9== Objectif du module
     10
     11* PERI : au départ c'est pour périphériques d'un PC
     12  * Disques (SCSI)
     13  * Cartes réseau (ethernet)
     14  * Bus système (ISA, PCI)
     15* C'est devenu périphériques d'un système embarqué
     16  * Unité de calcul embarquée (8, 16, 32 et même 64bits)
     17  * Capteurs (analogique, numérique)
     18  * Protocole de communications (i2c, spi, wifi, ble)
     19* et aussi
     20  * Driver Linux
     21  * Serveur web
     22  * Base de données
     23
     24== Plateforme cible
     25
     26[[Image(htdocs:png/peri_2019_plateforme.png,500px,nolink)]]
     27
     28== Organisation prévisionnelle du module
     29
     30[[Image(htdocs:png/peri_2019_planning.png,500px,nolink)]]
     31
     32== Organisation des séances
     33
     34* Les TME sont des TP
     35* Fonctionnement en binôme
     36* Prêt du matériel
     37
     38== Plateforme de TME
     39
     40[[Image(htdocs:png/plateforme-peri-raspberry.png,500px,nolink)]]
     41
     42== Évaluation du module
     43L'objectif est d'évaluer l'investissement et la compréhension
     44Notes d'interrogations écrites en début de séance de TME
     45Notes de comptes rendus
     46Note d'examen
     47Matériels
     48Raspberry Pi 1 et 3
     49Arduino micro
     50ESP32 BLE, WIFI, LORA
     51Ecran oled I2C
     52LED + bouton poussoir
     53Capteur luminosité
     54Capteur de son
     55capteur de mouvement
     56Générateur de son
     57Accéléromètre, gyroscope.
     58Transceiver RADIO NRF24L01
     59Câbles, boîtes, etc.
     60
     61== Sondage
     62
     63* Pourquoi avez-vous choisi ce module ?
     64* Avez-vous un (ou plusieurs) projets en tête ?
     65* Avez-vous déjà utilisé des micro-contrôleurs ? Si oui, lesquels ?
     66* Avez-vous déjà installé linux sur une raspberrypi ?
     67* Avez-vous déjà fait des montages électroniques ? Si oui, quoi ? (en 1 phrase courte).
     68* Avez-vous déjà écrit un pilote pour Linux ? Si oui que faisait-il ? (en 1 phrase courte)
     69* Avez-vous déjà réalisé un serveur WEB ? Si oui avec quel serveur, et quel langage ?
     70* Avez-vous déjà réalisé une base de donnée ? Si oui laquelle ?
     71* Avez-vous déjà écrit un site WEB ?
     72* Quels langages connaissez-vous (vraiment) ?
     73
     74== Questions
     75
     76* Que trouve-t-on dans /dev ?
     77* Que permet de faire mmap ?
     78* Qu'est-ce qu'un module noyau ?
     79* Quel est le rôle d'un driver ?
     80* Qu'est-ce qu'un bootloader ?
     81* Peut-on connecter une LED directement sur une broche de micro-contrôleur ?
     82* Que signifie "valeur analogique" ?
     83* Peut-on connecter directement un bouton-poussoir sur une broche de micro-contrôleur ?
     84* Quelle est la différence entre un site WEB et un serveur WEB ?
     85* Qu'est-ce qu'une base de données ?
     86* Qu'est-ce qu'un site web dynamique ?
     87* Comment faire communiquer des processus ?
     88* Que signifie I2C ?
     89* Qu'est qu'un bus (en informatique) ?
     90* Que signifie bande ISM ?
     91* Qu'est-ce qu'un canal radio ?
     92* Que signifie GPIO ?
     93* Que signifient pull-up et tristo
     94* Que signifie échantillonneur-bloqueur ?
     95* Qu'est-ce qu'un automate d'état fini ?
     96* Que veut dire ISR ?
     97* Que signifie "programmation événementielle" ?
     98* Peut-on écrire un programme multitâche si on n'a droit qu'à une seule pile (partagée par toutes les tâches) ?
     99* Savez-vous ce qu'est un analyseur logique ? Si oui, en avez-vous déjà utilisé ?
     100* Qu'est qu'un appel système ?
     101* Que veut dire MMU ? À quoi ça sert ? Quel est le rapport avec une table de pages ?
     102* Avez-vous déjà utilisé une breadboard ?
     103* Connaissez-vous les couches OSI ?
     104* Quelles différences connaissez-vous entre les protocoles TCP et UDP ?
     105* Que signifie cross-compilation ?
     106* Connaissez-vous le protocole Publish & Subscribe ?
     107
     108== Réponses au Sondage (18 personnes)
     109* Pourquoi avez-vous choisi ce module ?[[BR]]
     110  ''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 :-)''
     111  * 8 la description de l'UE.
     112  * 4 programmations bas niveau et système
     113  * 5 pour les systèmes embarqués ou codesign matériel / logiciel
     114  * 1 pour programmer
     115
     116* Avez-vous un (ou plusieurs) projets en tête ?[[BR]]
     117  ''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.''
     118  * 10 non
     119  * 3 des idées, mais pas de projets
     120  * 1 dispositif pour lire panneaux routiers
     121  * 1 robot
     122  * 1 dispositif BLE
     123  * 1 drone
     124  * 1 jardin intelligent
     125  * 1 faire un doctorat
     126
     127* Avez-vous déjà utilisé des micro-contrôleurs ? Si oui, lesquels ?[[BR]]
     128  ''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.''
     129  * 5 non
     130  * 6 Arduino
     131  * 6 ARM7 LPC23xx
     132  * 2 PIC microchip
     133  * 2 Raspberry Pi
     134  * ESP8266
     135  * Motorola
     136
     137* Avez-vous déjà installé linux sur une raspberrypi ?[[BR]]
     138  ''Super, on va le faire, et vous pourrez le faire sans risque chez vous.''
     139  * 15 non
     140  * 3 oui
     141
     142* Avez-vous déjà fait des montages électroniques ? Si oui, quoi ? (en 1 phrase courte).[[BR]]
     143  ''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.''
     144  * 4 non
     145  * 9 oui en licence EEA (robot filoguidé, détecteur cardiaque, filtres)
     146  * 2 oui robot contrôlé en Bluetooth, suiveur
     147  * 1 oui projet domotique
     148
     149* Avez-vous déjà écrit un pilote pour Linux ? Si oui que faisait-il ? (en 1 phrase courte)[[BR]]
     150  ''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.''
     151  * 17 non
     152  * 1 oui
     153
     154* Avez-vous déjà réalisé un serveur WEB ? Si oui avec quel serveur, et quel langage ?[[BR]]
     155  ''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é).
     156  * 13 non
     157  * 5 oui (Apache, PHP, Nimgx)
     158
     159* Avez-vous déjà réalisé une base de données ? Si oui laquelle ?[[BR]]
     160  ''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.''
     161  * 12 non
     162  * 6 oui (MySQL, OracleDB, sqlite, office access, PostGre)
     163
     164* Avez-vous déjà écrit un site WEB ?[[BR]]
     165  ''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). ''
     166  * 11 non
     167  * 7 oui (CMS symfony, CMS Kompozer, PHP+JS)
     168
     169* Quels langages connaissez-vous (vraiment) ?[[BR]]
     170  ''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.''
     171  * 16 C
     172  * 9 C++
     173  * 6 Python
     174  * 6 java
     175  * 4 PHP
     176  * 6 VHDL
     177  * 3 mathlab
     178  * HTML/CSS
     179  * 2 Javascript
     180  * 2 SQL
     181  * C#
     182  * uC
     183  * Assembleur MIPS
     184  * 2 ocaml