P13 Plateforme expérimentation IOT : Différence entre versions
(→Sa composition) |
(→Sa composition) |
||
Ligne 169 : | Ligne 169 : | ||
-une carte raspberry pi<br> | -une carte raspberry pi<br> | ||
-deux cartes XMega-A3BUX plained<br><br> | -deux cartes XMega-A3BUX plained<br><br> | ||
− | <center>[[Fichier:PFE_P13_Carte_mére | + | <center>[[Fichier:PFE_P13_Carte_mére.JPG|500px]]</center> |
La programmation s'effectuera par PDI. Les informations seront remontées grâce à la liaison série<br><br> | La programmation s'effectuera par PDI. Les informations seront remontées grâce à la liaison série<br><br> | ||
Version du 30 novembre 2015 à 14:50
Sommaire
Présentation du projet
Contexte
L'IOT (Internet of Things) est un sujet très vogue. Il est basé sur l'utilisation de nombreux objets hétérogènes reliés ensemble par liaison radio en général. Le développement de ces applications permettent de collecté des données qui pourront étre utilisé dans le cadre de la rénovation de la bibliothèque universitaire de Lille1 par exemple. Dans la bibliothèque on pourra collécté des données qui seront exploité soit par le personnel ou des étudiants.
Cahier des charges
Objectif :
-Réaliser un noeud de capteur
Il a été défini lors des réunions les points suivants :
-Structure d'un nœud de capteur
Un nœud de capteur sera composé d'une carte mère, de 8 cartes filles . Sur chacune des filles il y aura deux capteurs implantés dessus.
Ci-dessous un nœud de capteur :
-Communication interne du nœud
Le noeud sera capable de se recongifurer tout seul via la raspberry.
Par soucis de sécurité on pourra remonter les données issues des capteurs soit par la liaison série ou par liaison usb.Il faut noter
que la liaison USB sera utilisé en fonctionnement normal
Chaque capteur communique en liaisons radios entre eux.
-Communication externe du noeud
Le noeud communiquera vers d'autre noeud ou vers un puit grâce à une liaison radio située sur les cartes des petites filles soit via
le cable éthernet placé sur la carte mére.
-Information que l'on souhaite avoir
Afin de réaliser un noeud il a été choisi de faire remonter les informations suivantes :
Ces informations correspondent à des données utilisable en bibliothéque pour les étudiants que pour le personnel. Ces données pourront étre
stockées en vue d'analyse. Ces derniére sont traités dans un autre projet
A la découverte de la programmation pdi
Présentation du PDI
Le Programme et Débogue l'Interface (PDI) est une interface propriétaire Atmel pour
la programmation externe et son débogage.Il est constitué de deux éléments:
-Clock
-Data
Schéma du connecteur pour la programmation en pdi
Horloge
Relever de l'horloge (PDI CLK)
On observe des oscillations. Ces dernières ont un dépassement de 20%
La fréquence minimale de programmation est de 10 KHZ . Nous sommes à la fréquence de 2 Mhz
Données
Relever de la trame de données (PDI DATA)
Fréquence de la trame : 2.7174 Hz
Programmation à l'aide du mkII
Matériel nécessaire
-Pc équipée de la suite AVR Studio
-Connecteur MKII
-Atxmega
-Platine d'expérimentation
-Led
-Résistance
Schéma d'installation :
AVR Studio
Le logiciel AVR Studio est disponible à l'adresse suivante :http://www.atmel.com/microsite/avr_studio_5/
Exemple
Clignotement d'une Led :
Code C :
- include <avr/io.h>
int main(void)
{
int i;
PORTB_DIR= 0XFF;
while(1)
{
PORTB_OUT= 0x00;
for(i=0;i<=10000;i++);
PORTB_OUT= 0xFF;
for(i=0;i<=10000;i++);
}
}
Relévé du résultat à l'aide d'un oscilloscope :
Programmation à l'aide de la Rasbpberry
Matériel nécessaire
Pour réaliser la programmation à l'aide de la Rasberry on aura bessoin :
-Pc sous linux
-Atxmega (note il faudra remplacer la variable mmcu par le nom de vôtre atxmega)
-Platine d'expérimentation
-Led
-Résistance
Bibliothéque
Afin de pouvoir programmer l'atxmega sur la raspberry , on a bessoin des bibliothéques suivantes sur Debian :
- gcc-avr
- binutils-avr
- https://github.com/DiUS/xmega-pdi-pi2
- build-essential
- g ++
-libcm2835
Installation de la libcm2835
wget http://67.192.60.197/mikem/bcm2835/bcm2835-1.4.6.tar.gz
tar xvfz bcm2835-1.4.6.tar.gz;
cd bcm2835-1.4.6;
./configure;
make;
sudo make install
Connexion du Pdi sur la Rasbperry
Afin de pouvoir faire fonctionner le pdi il est important de le connecter de la façon suivante :
-broche 1 : 3.3V
-broche 25 : GND
-broche 16 : PDI_Data
-broche 18 : PDI_clk
Correspondance entre les broches et les gpio :
Sa programmation
Afin de pouvoir programmer le fichier .hex donnée en exemple il faut éxécuter cette procédure :
-Compilation du fichier C
$ avr-gcc -g -Os -mmcu=atxmega64a1 -c demo.c
-Génération du fichier hex
$ avr-gcc -g -mmcu=atxmega64a1 -o demo.elf demo.o
$ avr-objcopy -j .text -j .data -O ihex demo.elf demo.hex
-Transfert du fichier .hex à la racine de la raspberry
scp nom_fichier.hex pi@adresse_raspberry:~/
-Transfert de la raspberry vers l'atxmega
sudo ./pdi -c (Numéro de la GBIO de la Clock) -d (Numéro de la GBIO de la Data) -a override base address (note: PDI address space) - F Nom du fichier.hex
Exemple
Clignotement d'une Led :
Code C :
- include <avr/io.h>
int main (void)
{
int i;
PORTB.DIR= 1;
while(1)
{
PORTB.OUT=0;
for(i=0;i<=10000;i++);
PORTB.OUT= 1;
for(i=0;i<=10000;i++);
}
}
Fichier hex généré pour l 'atxmega
Extrait du fichier hex :
- 1001F0000C94080111241FBECFEFDFE2DEBFCDBF9C
- 1002000018BE19BE1ABE1BBE0E940A010C94120130
- 100210000C9400008FEF80932006109224068093A8
- 080220002406FBCFF894FFCF88
- 00000001FF
Résultat :
La composition d'un noeud
La carte mère
Sa fonction
Sa composition
Elle sera composé de :
-une carte raspberry pi
-deux cartes XMega-A3BUX plained
La programmation s'effectuera par PDI. Les informations seront remontées grâce à la liaison série
La carte fille
Sa fonction
Sa composition
Elle sera composé de :
-Atmega A1U
La carte petite fille
Sa fonction
Sa composition
Elle sera composé de :
une carte XMega-A3BUX plained
Exemple de capteur
- Mesure de la température
Ce type de capteur utilise le convertisseur analogique numérique du microcontroleur. Les paramétres à configurés seront les suivantes :
* Quantum
* Plage de mesure
* Registre
Ce capteur à les caractéristiques suivantes :
Fournisseur : Conrard
Référence :Capteur de température numérique TSIC506 boîtier TO 92 B & B Thermotechnik TSIC506-TO92
Plage de mesure :-10 C - 60C
Tension d'alimentation :3-5.5V
Précision : +/- 0.1 C
Consommation : 30 - 60 µA
- Mesure du volume sonore
La mesure d'un volume sonore se réalise par la transformation d'un vibration en un signal éléctrique.Afin de pouvoir l'exploiter il faudra
le connecté sur le convertisseur analogique numérique du microcontroleur.Les paramétres à configurés seront les suivantes :
* Quantum
* Registre
Ce capteur à les caractéristiques suivantes :
Fournisseur : Zartronic.fr
Référence :Capteur Sonore Analogique
Tension d'alimentation :5V
- Mesure de la luminosité
La mesure de la luminosité s'effectue avec l'aide d'un photo-transistor. Le photo-tansistor fera varier une résistance. On peut mesurer sa tension
a ses bornes. Cette tension étant trés faible il est nécessaire d'avoir un amplificateur en sortie. La tension sera exploitable par le
convertisseur analogique numérique du microcontroleur.Les paramétres à configurés seront les suivantes :
* Quantum
* Registre
Ce capteur à les caractéristiques suivantes :
Fournisseur : Conrard
Référence :Photo-résistance FW200