Contrôle d'accéléromètre, 2013/2014, TD1

De Wiki de Projets IMA

Introduction

Partie Electronique

Séance 1 : Découverte de la NanoBoard & d'Altium

N'ayant aucune notion de projets FPGA sous Altium, il nous a d'abord fallu nous familiariser avec cette interface.
Nous avons donc suivi le tutoriel nous permettant d'apprendre à programmer la NanoBoard.
Nous avons alors réalisé avec succès notre premier compteur 4 bits sous Altium.

Séance 2

Conversion Analogique Numérique : Principe

La NanoBoard ne travaillant qu'en signaux numériques, il est nécessaire de convertir le signal analogique émis par l'accéléromètre (de 0 à 5 V).
Elle envoie soit 0V, soit 5V. Nous utilisons donc une PWM.

On utilise un compteur qui fixe la fréquence du signal à générer.
On compare en permanence la valeur du compteur à une valeur fixe qui permet de définir le rapport cyclique

Nous obtenons ceci :

MLI filtree.png

Pour obtenir la valeur moyenne du signal de sortie de la NanoBoard (comme montré ci-dessus), nous utiliserons un filtre passe bas afin d'éliminer toutes les harmoniques qui ne nous intéressent pas.

Passe-bas.gif


Un comparateur AOP de type TL081 nous permettra de comparer notre signal ainsi filtré avec la sortie de l'accéléromètre :

Traits en pointillés : Valeur de l'accéléromètre
PWM Principe.png


Schéma résumant notre système de conversion Analogique Numérique :

Schema recap.png

Partie FPGA

Partie Analogique


Conception du programme de conversion analogique numérique sous Altium Designer

Programmation sous Altium Designer

Séance 3 : Mise en pratique

Compilation sur la NanoBoard et Câblage

Principaux problèmes rencontrés

Partie Informatique

Séance 1 : Familiarisation avec l'accéléromètre et communication série

Ecriture des fichiers serial.h et serial.c
Compilation de serial.c
Exécution de l'exécutable
-> On envoie un octet nul au port série. Notre système sans fil équipé de l'accéléromètre reçoit cet octet.
-> Le système sans fil envoie 4 octets au port série qui correspondent à :
octet 1 : position en x
octet 2 : position en y
octet 3 : position en z
octet 3 : état des 2 boutons (00 : 2 boutons non enfoncés, 01 : 1er bouton enfoncé, 02 : 2ème bouton enfoncé, 03 : les 2 boutons enfoncés)
-> Affichage de ces 4 octets en hexadécimal dans le terminal

Séance 2

Séance 3

Annexes

Acteurs du projet

Projet réalisé par Julien Hérin, Shuai He et Jérémie Denéchaud

Liens externes

Sujet disponible à l'adresse suivante :

Lien