P13 Plateforme expérimentation IOT : Différence entre versions

De Wiki de Projets IMA
(Présentation du projet)
(Étape du projet)
Ligne 13 : Ligne 13 :
 
====La carte fille====
 
====La carte fille====
 
====La carte petite fille====
 
====La carte petite fille====
 
==Étape du projet==
 
=====<center>Carte Mère</center>=====
 
======<span style="font-size: 120%; border: ">Objectif</span><br> ======
 
- Valider le fonctionnement de la carte mère<br>
 
- Être capable de reconfigurer des microcontrôleur<br>
 
- Être capable de remonter les informations par la liaison série et par l’USB
 
 
======<span style="font-size: 120%; border: ">Étude</span>======
 
L'étude se traduit par plusieurs point :<br>
 
- Recherche des documentations sur les différents composants électroniques<br>
 
- Analyse de la structure existante<br>
 
La structure se compose de microcontrôleur, d'un ordinateur embarqué et d'un hub usb<br>
 
- Technologie Atmel<br>
 
Localisation des fonctions sur le microcontrôleur<br>
 
- Technologie Micro-USB<br>
 
 
 
======<span style="font-size: 120%; border: ">Test</span>======
 
Carte microcontrôleur :<br>
 
 
Test de programmation à l'aide du PDI<br>
 
''Objectif :'' Faire clignoter une led <br>
 
 
Montage:<br>
 
<center>[[Fichier: pfe_p13_Schéma_test_pdi.JPG|500px]]</center><br>
 
 
Bornier PDI :<br>
 
<center>[[Fichier: PFE_p13_PDI_bornier.JPG|250px]]</center><br>
 
 
 
Remarque : Lorsque qu'on programme un atméga avec le pdi il est nécessaire de l'alimenter par une source externe<br>
 
Relever de la trame de données (PDI DATA) <br>
 
Fréquence de la trame : 2.7174 Hz <br>
 
<center>[[Fichier:pfe_p13_pdi_data.jpg |500px]]</center><br>
 
Relever de l'horloge (PDI CLK) <br>
 
On observe des oscillations. Ces dernières ont un dépassement de 20%<br>
 
La fréquence minimale de programmation est de 10 KHZ . Nous sommes à la fréquence de 2 Mhz
 
<center>
 
[[Fichier:pfe_p13_clk_pdi.jpg|500px]]
 
[[Fichier:pfe_p13_clk_pdi2.jpg|500px]]
 
</center>
 
Code C :<br>
 
int main (void)<br>
 
{<br>
 
int i;<br>
 
PORTB_DIR= 1;<br>
 
while(1)<br>
 
{<br>
 
PORTB_OUT=0;<br>
 
for(i=0;i<=10000;i++);<br>
 
PORTB_OUT= 1;<br>
 
for(i=0;i<=10000;i++);<br>
 
}<br>
 
}<br>
 
<br>
 
Résultat sur la broche PB0 du microcontrôleur :<br>
 
<center>
 
[[Fichier:pfe_p13_resultat_prog_pdi.jpg|500px]]
 
</center><br>
 
'''L'objectif a été réalisé avec succès la led clignote'''
 
 
 
-Programmation de l'ATXMEGA à l'aide d'une Raspberry <br>
 
''Objectif :'' Être capable de programmer le microcontrôleur <br><br>
 
Installations des bibliothèques <br>
 
- gcc-avr<br>
 
- binutils-avr<br>
 
-https://github.com/DiUS/xmega-pdi-pi2 <br>
 
-libcm2835<br>
 
- build-essential<br>
 
-g ++ <br><br>
 
 
Procédure d'installation de la libcm2835<br>
 
wget http://67.192.60.197/mikem/bcm2835/bcm2835-1.4.6.tar.gz <br>
 
tar xvfz bcm2835-1.4.6.tar.gz; <br>
 
cd bcm2835-1.4.6; <br>
 
./configure; <br>
 
make; <br>
 
sudo make install<br><br>
 
 
Procédure de programmation :<br>
 
1- Écrire son programme C<br>
 
Exemple clignotement d'une Led:<br>
 
<br>
 
#include <avr/io.h><br>
 
int main (void)<br>
 
{<br>
 
int i;<br>
 
PORTB.DIR= 1;<br>
 
while(1)<br>
 
{<br>
 
PORTB.OUT=0;<br>
 
for(i=0;i<=10000;i++);<br>
 
PORTB.OUT= 1;<br>
 
for(i=0;i<=10000;i++);<br>
 
}<br>
 
}<br>
 
<br>
 
2- Compilation <br>
 
Pour pouvoir un ficher . hex il faut exécuter ses commandes sous Linux:<br>
 
$ avr-gcc -g -Os -mmcu=atxmega64a1 -c demo.c <br>
 
$ avr-gcc -g -mmcu=atxmega64a1 -o demo.elf demo.o<br>
 
$ avr-objcopy -j .text -j .data -O ihex demo.elf demo.hex <br>
 
 
3- Transfert du programme sur la raspberry <br>
 
Commande :scp code.hex pi@192.168.1.11:~/raspberry <br>
 
4- Programmation<br>
 
Afin de pouvoir en pdi il faut utilise la commande suivante : <br>
 
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 <br>
 
Attention c'est un .hex qu'il faut mettre<br>
 
<br><br>
 
<center>[[Fichier:PFE_p13_PDI_pi2.JPG|500px]]</center><br>
 
Conclusion :<br>
 
Le test consiste à faire clignoter une led. La première partie du test consiste à programmer la ligne de code suivant : :00000001FF<br>
 
Résultat:<br>
 
Test partiellement réussi. Seul la ligne de code à été transféré dans l'atxmega. La programmation du clignotement de la LED fonctionne. Cependant on rencontre quelque problème. Ces problèmes sont liées au fait qu'on connecte la carte ATXMEGA sur la raspberry. Cette dernière ne nous délivre pas assez de puissance. Au bout de quelque minute l'éclairement de la LED faiblit et le régulateur se met à chauffer.<br>
 
<br><br>
 
-Test des convertisseurs Analogique Numérique<br>
 
-Test de l'ensemble des fonctions
 
 
<br><br>
 
Carte usb:<br>
 
Étude des composants présent sur la carte<br>
 
Tests du bloc alimentation <br>
 
Ce test est simple . Il s'agit de vérifier la présence du 3.3V. Ce test n'a pas abouti suite à un problèmes matériels.<br>
 
La solution provisoire est de l'alimentée avec une alimentation continu<br>
 
 
Problème rencontrés : <br>
 
- Le régulateur 3.3 V ne fonctionne pas.<br><br>
 
 
======<span style="font-size: 120%; border: ">Échange</span>======
 
 
=====<center>Carte fille</center>=====
 
======<span style="font-size: 120%; border: ">Objectif</span>======
 
-Être capable de remonter les informations à la mère <br>
 
-Être capable de programmer ces enfants
 
 
======<span style="font-size: 120%; border: ">Échange</span>======
 
 
=====<center>Carte petite fille</center> =====
 
======<span style="font-size: 120%; border: ">Objectif======
 
-Créer un carte permettant de montrer les capacités du nœud
 
======<span style="font-size: 120%; border: ">Étude</span>======
 
======<span style="font-size: 120%; border: ">Réalisation</span>======
 
======<span style="font-size: 120%; border: ">Test</span>======
 
======<span style="font-size: 120%; border: ">Échange</span>======
 
 
=====<center>Démonstrateur</center> =====
 
======<span style="font-size: 120%; border: ">Objectif</span>======
 
- Choisir un panel de capteur<br>
 
- Assembler tout les cartes ensembles
 
 
======<span style="font-size: 120%; border: ">Étude</span>======
 
'''- Température''' <br><br>
 
 
Un capteur de température doit avoir une large plage de mesure. La température dans des bâtiments excédant pas 50 C pour le maximum et - 10 C pour le minimum. La plage du capteur retenu est : -10 C 60 C <br><br>
 
 
C'est un capteur analogique donc il faudra utiliser le convertisseur analogique numérique. Les valeurs qui seront à configurés sont : <br>
 
* Quantum<br>
 
* Plage de mesure<br>
 
* Registre <br><br>
 
''Capteur envisagé'' : <br>
 
Fournisseur : Conrard<br>
 
Référence :Capteur de température numérique TSIC506 boîtier TO 92 B & B Thermotechnik TSIC506-TO92<br>
 
Plage de mesure :-10 C - 60C<br>
 
Tension d'alimentation :3-5.5V<br>
 
Précision : +/- 0.1 C<br>
 
Consommation : 30 - 60 µA<br>
 
[[Fichier:Pfe_p13-capteur-temp.jpg|200px|center]]
 
<br><br>
 
 
'''- Volume sonore''' <br>
 
Afin de pouvoir mesurer le volume sonore on doit utiliser un micro qui va nous fournir une tension analogique .<br>
 
C'est un capteur analogique donc il faudra utiliser le convertisseur analogique numérique. Les valeurs qui seront à configurés sont : <br>
 
* Quantum<br>
 
* Registre <br><br>
 
''Capteur envisagé'' : <br>
 
Fournisseur : Zartronic.fr<br>
 
Référence :Capteur Sonore Analogique<br>
 
Tension d'alimentation :5V<br>
 
[[Fichier:Pfe_p13-capteur-son.jpg|200px|center]]
 
<br><br>
 
 
 
'''- Luminosité''' <br>
 
Afin de pouvoir mesurer la luminosité ambiante on peut utiliser un photo-transistor . Ce dernier nous fera varier une résistance. On ne peut pas utiliser cette résistance comme mesure directement donc on va effectuer un traitement électronique à la suite du capteur. Ce traitement nous permettra d'obtenir une tension qui variera dans le temps.<br>
 
Cette tension sera appliqué sur un convertisseur analogique numérique<br>
 
Les valeurs qui seront à configurés sont : <br>
 
* Quantum<br>
 
* Registre <br><br>
 
''Capteur envisagé'' : <br>
 
Fournisseur : Conrard<br>
 
Référence :Photo-résistance FW200<br>
 
[[Fichier:Pfe_p13-capteur-luminosite.jpg|200px|center]]
 
<br><br>
 
 
- ''Qualité de l'air''<br>
 
*Mesure de l'humidité<br>
 
*Mesure du monoxyde de carbone<br>
 
-''Place disponible''
 
 
======<span style="font-size: 120%; border: ">Échange</span>======
 
  
 
==Bilan==
 
==Bilan==

Version du 24 novembre 2015 à 07:56

Présentation du projet

===Contexte=== ===Cahier des charges=== ===Planification===

A la découverte de la programmation pdi

===Présentation du PDI=== ===Programmation à l'aide du mkII=== ===Programmation à l'aide de la Rasbpberry===

La composition d'un noeud

====La carte mére==== ====La carte fille==== ====La carte petite fille====

Bilan