P13 Plateforme expérimentation IOT
Sommaire
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====
Étape du projet
Carte Mère
Objectif
- Valider le fonctionnement de la carte mère
- Être capable de reconfigurer des microcontrôleur
- Être capable de remonter les informations par la liaison série et par l’USB
Étude
L'étude se traduit par plusieurs point :
- Recherche des documentations sur les différents composants électroniques
- Analyse de la structure existante
La structure se compose de microcontrôleur, d'un ordinateur embarqué et d'un hub usb
- Technologie Atmel
Localisation des fonctions sur le microcontrôleur
- Technologie Micro-USB
Test
Carte microcontrôleur :
Test de programmation à l'aide du PDI
Objectif : Faire clignoter une led
Montage:
Bornier PDI :
Remarque : Lorsque qu'on programme un atméga avec le pdi il est nécessaire de l'alimenter par une source externe
Relever de la trame de données (PDI DATA)
Fréquence de la trame : 2.7174 Hz
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
Code C :
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++);
}
}
Résultat sur la broche PB0 du microcontrôleur :
L'objectif a été réalisé avec succès la led clignote
-Programmation de l'ATXMEGA à l'aide d'une Raspberry
Objectif : Être capable de programmer le microcontrôleur
Installations des bibliothèques
- gcc-avr
- binutils-avr
-https://github.com/DiUS/xmega-pdi-pi2
-libcm2835
- build-essential
-g ++
Procédure d'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
Procédure de programmation :
1- Écrire son programme C
Exemple clignotement d'une Led:
- 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++);
}
}
2- Compilation
Pour pouvoir un ficher . hex il faut exécuter ses commandes sous Linux:
$ avr-gcc -g -Os -mmcu=atxmega64a1 -c demo.c
$ avr-gcc -g -mmcu=atxmega64a1 -o demo.elf demo.o
$ avr-objcopy -j .text -j .data -O ihex demo.elf demo.hex
3- Transfert du programme sur la raspberry
Commande :scp code.hex pi@192.168.1.11:~/raspberry
4- Programmation
Afin de pouvoir en pdi il faut utilise la commande suivante :
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
Attention c'est un .hex qu'il faut mettre
Conclusion :
Le test consiste à faire clignoter une led. La première partie du test consiste à programmer la ligne de code suivant : :00000001FF
Résultat:
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.
-Test des convertisseurs Analogique Numérique
-Test de l'ensemble des fonctions
Carte usb:
Étude des composants présent sur la carte
Tests du bloc alimentation
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.
La solution provisoire est de l'alimentée avec une alimentation continu
Problème rencontrés :
- Le régulateur 3.3 V ne fonctionne pas.
Échange
Carte fille
Objectif
-Être capable de remonter les informations à la mère
-Être capable de programmer ces enfants
Échange
Carte petite fille
Objectif
-Créer un carte permettant de montrer les capacités du nœud
Étude
Réalisation
Test
Échange
Démonstrateur
Objectif
- Choisir un panel de capteur
- Assembler tout les cartes ensembles
Étude
- Température
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
C'est un capteur analogique donc il faudra utiliser le convertisseur analogique numérique. Les valeurs qui seront à configurés sont :
* Quantum
* Plage de mesure
* Registre
Capteur envisagé :
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
- Volume sonore
Afin de pouvoir mesurer le volume sonore on doit utiliser un micro qui va nous fournir une tension analogique .
C'est un capteur analogique donc il faudra utiliser le convertisseur analogique numérique. Les valeurs qui seront à configurés sont :
* Quantum
* Registre
Capteur envisagé :
Fournisseur : Zartronic.fr
Référence :Capteur Sonore Analogique
Tension d'alimentation :5V
- Luminosité
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.
Cette tension sera appliqué sur un convertisseur analogique numérique
Les valeurs qui seront à configurés sont :
* Quantum
* Registre
Capteur envisagé :
Fournisseur : Conrard
Référence :Photo-résistance FW200
- Qualité de l'air
- Mesure de l'humidité
- Mesure du monoxyde de carbone
-Place disponible
Échange
==Bilan==