Projet IMA3 P3, 2015/2016, TD2

De Wiki d'activités IMA

Projet IMA3-SC 2015/2016 : Cartographie

Cahier des charges

Pour notre sujet de projet Systèmes Communicants, nous avons décidé de nous orienter vers un système permettant de cartographier une salle à l'aide d'un capteur de distance tournant sur lui-même par un servomoteur. Pour cela, nous avons pensé à utiliser un sonar ultra-sons pour la détection des "murs" de la salle. De cette façon, nous pourrions récupérer les positions de chaque obstacle et ainsi les tracer.

Matériel nécessaire

Par conséquent, pour pouvoir mener à bien notre projet, nous aurions besoin des choses suivantes :

  • Une nanoboard
  • Une Raspberry Pi
  • Un sonar ultra-sons
  • Un servomoteur

Séance 1

Pour débuter, nous avons d'abord réalisé un schéma représentant les différentes parties du projet, ce qui nous permettra de mieux nous répartir les tâches et comprendre ce qu'on attend de nous lors de ce projet.


légende Schéma global du travail à réaliser

Simulation du fonctionnement

Vidéo simulant le fonctionnement de notre montage : ici

Le résultat escompté de cette simulation : Sonar.jpg


Partie électronique

  • Concernant la partie électronique, nous avons commencé la séance par créer un prototype Arduino pour pouvoir tester le bon fonctionnement du sonar ultra-sons et du servomoteur, et de voir comment s'utiliser ces 2 composants. Nous avons donc réussi à faire tourner le servomoteur en continu pour un angle de 0 à 180° tout en récupérant la distance de l'obstacle le plus proche avec le sonar.

(mettre photo programme Arduino)


légende Test des différents composants


  • Nous avons ensuite été travailler sur Altium pour pouvoir commencer la conception de notre circuit électronique qui est pour le moment remplacé pour un prototype Arduino. Comme nous ne savions pas par où commencer ce travail, nous avons décidé de nous initier avec le tutoriel décrit dans les ressources mises à disposition pour ce projet. Cela nous a permis de nous familiariser avec les composants logiques disponibles sur Altium et de voir les différentes étapes pour intégrer un schéma sur la FPGA.

légende Initiation aux composants logiques sur Altium


Partie informatique

  • Nous avons initialisé la liaison série en suivant les indications données dans les annexes du projet. Une fois le serveur Apache installé sur la Raspberry Pi, nous avons pu nous connecter en ssh de l'ordinateur fixe à la Raspberry pour vérifier que cela fonctionnait correctement. Pour cela, un câble Ethernet a été raccordé de la Raspberry au boîtier de la salle de projet. Nous avons également eu le temps d'installer la bibliothèque liée au websocket pour pouvoir travailler dessus à la séance suivante.

Séance 2

Partie électronique

  • Après s'être entraînés avec le tutoriel sur Altium, dès le début de la seconde séance nous nous sommes attaqués à la conception du circuit électronique que nous devons réaliser pour remplacer le fonctionnement du programme Arduino. Nous avons donc à assurer la commande du servomoteur ainsi que du sonar parallèlement. Nous nous sommes premièrement intéressé au servomoteur, qui fonctionne avec un signal PWM, généré par la FPGA. Nous avons alors fait des recherches sur le modèle du servomoteur utilisé pour obtenir ses caractéristiques et nous avons trouvé la datasheet suivante :


légende Datasheet du servomoteur HS-422


  • En lisant ce document, nous avons pu remarquer que la rotation du servomoteur s'effectuait en indiquant une certaine période au signal PWM (400 microsecs pour un angle de 45°). Du coup, nous avons réalisé un circuit permettant seulement d'émettre un signal PWM en faisant varier la fréquence de ce signal afin de retrouver la période indiquée. En utilisant l'analyseur logique branché sur une des broches externes de la FPGA, nous avons relevé une fréquence d'environ 50 kHz pour une période proche de 400 microsecs. A la fin nous n'avons pas eu le temps de tester et d'envoyer ce signal sur le servomoteur pour vérifier nos observations. Après avoir discuté avec un professeur, nous nous sommes rendus compte que nous n'avions pas encore réfléchi à l'alimentation du servomoteur, et que celle-ci poserait problème si on l'alimentait seulement avec la FPGA. En effet, le courant délivré par la NanoBoard ne dépasse pas les 10 mA, alors que selon la datasheet, le servomoteur a besoin d'un courant de 150 mA pour fonctionner convenablement. A la prochaine nous devrons donc réfléchir à un éventuel montage à transistors afin de booster le courant délivré par la FPGA.


légende Schéma Altium pour l'émission d'un signal PWM



Partie informatique

Séance 3

Partie électronique

légende Schéma Altium pour le fonctionnement du servo-moteur

légende Schéma Altium pour le sonar

légende Réalisation des tests pour le moteur


Partie informatique

Démonstration

Conclusion