1. Introduction

N'ayant jamais eu de télévision à la maison, je me suis donc naturellement tourné comme le reste de la famille à la lecture du journal (et oui ça arrive encore de nos jours!) Etant notre principale source d'information sur le monde extérieur (avant d'être autorisé à avoir un smartphone), l'arrivée du quotidien 24H était tous les jours très attendue. Le but de ce projet étant de nous prévenir lorsque le facteur a déposé le courrier en allumant un robot Thymio en vert.

2. Matériel et méthodes

2.1 Matériel

Pour tenter de réaliser ce projet j'ai eu besoin:

D'un ordinateur portable (utiliser un moniteur externe est conseillé pour avoir une interface graphique Linux mais je n'en possède pas). D'un Raspberry Pi 3 dont le port GPIO possède 40 pins dont 17 totalement libres. Le Raspberry possède plusieurs entrées et sorties mais seulement quelques-uns d'entre elles seront utilisées, respectivement les pins SCL, SDA, 3.3V ET GND. D'un accéléromètre, gyroscope et d'une boussole chacun munit de trois axes. Ces trois appareils de mesures sont regroupé dans un seul module: le MPU 9150 de Sparkfun. Dans mon projet je ne vais utiliser que le gyroscope. Cet appareil comporte quand à lui 11 pins dont 4 utilisé: GND, VCC, SDA SCL. Pour finir j'ai utilisé un robot Thymio pour indiquer à l'aide de ses LEDs si la courrier à bien été apporté ou non.

2.2 Méthode

Le projet devait se passer en trois étapes. Premièrement, écrire le code pour trouver le(s) axe(s) pour le(s) quel(s) leur valeurs changerai(ent). Deuxièmement trouver une manière de communiquer entre l'ordinateur et le Thymio. Finalement écrire le code qui colore le Thymio soit en vert si le courrier a été déposé soit en rouge si rien ne c'est passé.

Partie 1 imu = MPU9150('Y') if imu > 90:

  print(imu.gyro.xyz)
  1. Cette partie reviens trois fois afin d'afficher les valeurs de chaque axe et de pouvoir constater lesquels varient.
  GPIO.output(GYRO, GPIO.High)

else:

  GPIO.output(GYRO, GPIO.Low)
  1. Dans le cas ou la première partie du code se verrait avérée, un courant passerait à travers les pins comme signal (pour dire que le gyroscope a bien pivoté de 90°). Dans le cas contraire aucun courant ne circulerait.

La deuxième partie n'a pas été réalisée.

Partie 3 var axe

if axe<90 then call leds.top(32,0,0)

else call leds.top(0,32,0) end

Comme la troisième partie se fait avec le Thymio, j'ai donc codé en Aseba. J'ai nommé "axe" la variable de l'angle de l'axe choisi en première partie. Si cet angle est plus petit que 90° alors le Thymio est allumé en rouge. Autrement les LEDs s'allument en vert. L'angle de 90° car il correspond à la rotation du clapet sur les boîtes aux lettres.

3. Résultats

Il n'y a malheureusement aucun résultat à ce projet car je n'ai jamais réussi à me connecter à mon Raspberry Pi chez moi. Le premier problème à été de trouver l'adresse IP de mon Raspberry Pi car ne possédant pas de moniteur externe ou de télévision je n'avait pas d'interface graphique pour travailler. Il a donc fallu installer une application mobile (Fing) pour y parvenir mais là aussi ce fût un combat acharné pour dénicher de la mémoire sur mon téléphone car il ne possède que 8 Go de stockage! J'ai donc demandé de l'aide à un camarade bien plus doué que moi en informatique mais après plusieurs heures il en est arrivé à la conclusion que j'ai un problème de réseau à la maison. N'ayant jamais pu tester mon code, je ne possède pas de résultats concrets.

4. Discussion

En l'absence de résultats, il ne peut y avoir de discussion.

5. Conclusion

Bien que j'aurais pu commencer un peu plus tôt, les problèmes techniques que j'ai rencontré ont fortement impacté mon travail. Etant tout à fait incapable de résoudre de tels problèmes, j'étais en quelque sorte dépendant des autres (que je ne blâme en aucun cas mais au contraire que je remercie). Les parties 1 et 3 auraient pu tout à fait être accessible mais je pense que la grande difficulté se trouvait dans la communication entre le Raspberry Pi et le Thymio (je me serai très probablement tourné vers un camarade ayant "résolu" ce problème).

Références

https://github.com/micropython-IMU/micropython-mpu9150 aide pour le code (afin de trouver le bon axe de rotation) https://www.ecosia.org/images?q=MPU+9150#id=49F3DDFFE2EAA8B82090F3ADE3EC7A36A90FCD4C photo du module gyroscope https://www.ecosia.org/images?q=Wedge+40+pin#id=37D38DDABE6DB787833B108F208678E30888BCFD port GPIO de 40 pins