Solaire2012-1 : Différence entre versions

De Wiki de bureau d'études PeiP
(Deuxième étape: programmer le robot)
(Deuxième étape: programmer le robot)
Ligne 37 : Ligne 37 :
 
c) '''Récupérer les valeurs d'ensoleillement.'''
 
c) '''Récupérer les valeurs d'ensoleillement.'''
  
Une fois le programme chargé sur l'Arduino et ce dernier branché sur la Foxboard, il faut pouvoir récupérer la valeur d'ensoleillement mesurée par la photorésistance. Comment ? A l'aide d'un programme rédigé en langage C. Ce programme va récupérer la valeur lue sur la prise USB. Cette valeur sera alors envoyée par Bluetooth au contrôleur NXC. Ce sera lui qui va comparer et garder en mémoire la valeur maximale d'ensoleillement
+
Une fois le programme chargé sur l'Arduino et ce dernier branché sur la Foxboard, il faut pouvoir récupérer la valeur d'ensoleillement mesurée par la photorésistance. Comment ? A l'aide d'un programme rédigé en langage C. Ce programme va récupérer la valeur lue sur la prise USB. Cette valeur sera alors envoyée par Bluetooth au contrôleur NXC. Ce sera lui qui va comparer et garder en mémoire la valeur maximale d'ensoleillement. Ce programme est disponible ci-dessous.
  
 
[[Fichier:progfinal.c|200px|thumb|center]]
 
[[Fichier:progfinal.c|200px|thumb|center]]

Version du 28 avril 2013 à 21:46

Première étape: Construire le robot

La première version du robot

La première étape est la construction du robot. Cette première étape n'est pas la plus simple à réaliser, car il faut en effet poser sur un robot assez petit deux panneaux solaires relativement grands. Un premier robot fut donc construit en suivant la notice de montage fournie dans la boite de LégoMindstorm. Mais la configuration de ce premier robot faisait qu'il était très difficile d'accéder au contrôleur à cause de la position des panneaux solaires. De plus, le support des panneaux solaires était fragile, la solution n'était pas satisfaisante.

First
Sur cette première version du robot, l'accès au contrôleur est difficile, et le robot fragile

La version finale

Le premier robot fut entièrement démonté, et un deuxième robot fut alors construit. Un des deux panneaux solaires fut monté sur un servomoteur LégoMindstorm. L'idée est que le panneau s'incline en fonction de l'incidence des rayons lumineux pour un rendement optimal. Le panneau se retrouve alors en hauteur, ce qui permet aussi d’accéder plus facilement au contrôleur. Un emplacement fut également prévu pour la FoxBoard et l'Arduino. Le deuxième panneau solaire a quand à lui été installé sur l'emplacement prévu pour la FoxBoard-Arduino. Des roues de petite voiture ont été installées à l'arrière afin de renforcer cet emplacement, les legos n'étant pas assez résistants pour supporter la masse d'un panneau solaire, d'un Arduino et d'une FoxBoard. Enfin, un sonar à ultrasons à été installé à l'avant afin de pouvoir éviter des obstacles.

Deuxième étape: programmer le robot

a) Le robot se déplace en autonomie

Le premier point imposé par le cahier des charges est que le robot doit pouvoir se déplacer à volonté dans une pièce, de manière autonome, tout en évitant les obstacles. Ce premier point fut programmé en "LegoMindstorm", car il est très facile d'utilisation. Sur la vidéo suivante, on voit que le robot peut en effet se déplacer de manière autonome (lien pour le téléchargement de la vidéo):

Fichier:Autonomie.mp4


le robot se déplace en autonomie dans une pièce tout en évitant les obstacles


b) Le robot mesure l'ensoleillement maximal

Pendant que que robot se déplace en autonomie dans la pièce, il va mesurer l'ensoleillement maximal à l'aide d'une photorésistance connectée à une plateforme Arduino. Plus la luminosité sera élevée, plus la valeur renvoyée par l'Arduino sera élevée; inversement, plus la luminosité est faible, plus la valeur renvoyée par l'Arduino sera faible. Voici le programme (simple) qui permet d'obtenir la valeur de luminosité:

Montage pour Arduino


Ce montage ne fera que mesurer l'ensoleillement. Contrairement à la première version du robot, la valeur maximale ne sera pas enregistrée dans l'Arduino, mais envoyée au contrôleur NXC via Bluetooth. C'est ce dernier qui fera la comparaison entre toutes les valeurs enregistrée et gardera en mémoire la plus haute. Tout cela est détaillé dans la suite.

c) Récupérer les valeurs d'ensoleillement.

Une fois le programme chargé sur l'Arduino et ce dernier branché sur la Foxboard, il faut pouvoir récupérer la valeur d'ensoleillement mesurée par la photorésistance. Comment ? A l'aide d'un programme rédigé en langage C. Ce programme va récupérer la valeur lue sur la prise USB. Cette valeur sera alors envoyée par Bluetooth au contrôleur NXC. Ce sera lui qui va comparer et garder en mémoire la valeur maximale d'ensoleillement. Ce programme est disponible ci-dessous.

Fichier:Progfinal.c

Les difficultés rencontrées

Dans ce paragraphe seront détaillées les difficultés rencontrées, et comment elles ont été surmontées.

- Problèmes de conception liés à la taille des panneaux solaires. La solution: la première version du robot fut entièrement démontée. La version finale fut montée en pensant à l'agencement des panneaux solaires dès le début.

- Difficulté liée à au branchement de l'arduino sur le Foxboard. Il fallait pouvoir récupérer la valeur d'ensoleillement que l'arduino récupérait. Solution: Un programme rédigé en langage C à été utilisé pour pouvoir récupérer la valeur d'ensoleillement.