IMA4 2016/2017 P38

De Wiki d'activités IMA

Description du projet

Le but du projet est d'améliorer une veilleuse créée l'an passé. Cette veilleuse doit pouvoir sélectionner une image à projeter ainsi que pouvoir lancer une musique afin d'améliorer la nuit des nourrissons et des jeunes enfants. Il serait de plus intéressant de pouvoir visualiser l'enfant via une webcam. La famille pourrait de ce fait pouvoir passer des nuits sereines et reposantes.

Il serait tout d’abord nécessaire de revoir la partie matériel (coque) qui au fil du temps a subi quelques dommages.

Après cela, il serait intéressant d'améliorer ce prototype pour le rendre plus fonctionnel et plus performant :

  • Permettre de configurer la connexion réseau de la veilleuse,
  • Pouvoir récupérer les images et les musiques dans le cloud, pour l'instant les contenus multimédia utilisés sont ceux stockés dans la veilleuse,
  • Ajouter un comportement de veilleuse statique avec une source lumineuse autre que le vidéo-projecteur,
  • Ajouter des capteurs, d'humidité, de température et de qualité de l'air pour surveiller l'environnement de l'enfant,
  • Les parents doivent pouvoir paramétrer les plages horaires de fonctionnement et de mise en veille.

Précisions sur le cahier des charges

Après discussion avec les professeurs référents et la découverte du prototype, les nouvelles tâches à réaliser en priorité sont :

  • L'allumage et l'extinction de la veilleuse n’est pas idéal. La Raspberry pi n'est pas autonome. Il est intéressant de la relier à une batterie. Il est donc nécessaire d'ajouter un circuit permettant l'extinction et l'allumage proprement (à l'aide d'un bouton on/off). Il sera nécessaire de réaliser un circuit adapté pour contrôler l'ensemble de ces deux fonctions avec un seul bouton.
  • Quand tous les composants auront été implémentés, nous pourrons concevoir l’enveloppe externe qui sera définie selon la place occupée par les composants. En effet l'enveloppe de la veilleuse a été abîmée avec le temps et n'était pas adaptée pour que l'on puisse modifier les composants qu'elle comportait.
  • Nous pourrons changer la configuration de façon à ce que la Raspberry pi puisse accéder à des points d’accès. Il sera ensuite possible de la relier au cloud de façon à directement récupérer les images et musiques dans celui-ci.
  • Enfin l'idée d'une lumière représentant une veilleuse statique pourra être ajoutée.
  • Après avoir pu répondre à toutes ces contraintes, il sera possible de perfectionner le prototype en rajoutant des capteurs d'environnement (chaleur, humidité, bruit).

Tâches à réaliser

Création du circuit d'allumage/extinction :

  • Connecter les pôles "run" à un bouton poussoir.
  • Ajouter le code adéquate pour configurer correctement les broches GPIO de la raspberry pi
  • Ajouter le code pour gérer l'extinction (sudo halt) lors d'une baisse du courant sur une broche GPIO(bouton enclenché).
  • Créer un circuit permettant l'allumage et l'extinction de la Raspberry pi proprement, à l'aide d'un seul bouton.

Création de la structure :

  • Il a été suggéré que je puisse utiliser la découpeuse laser de façon à concevoir une coque simple et épurée.
  • Ayant une large gamme d'outils permettant de manipuler le bois, je me sens capable de pousser cette idée d’enveloppe vers un conteneur plus artistique (bois brute taillé ou planches de palette poncées).


Configuration de la Raspberry :

  • Permettre le choix de la veilleuse statique (uniquement lumière d'ambiance)
    • Configurer l'application déjà créée pour demander à la Raspberry pi d'allumer une LED ou de l’éteindre.
  • Permettre le switch de la raspberry pi de "point d’accès" en "client Wifi" pour accéder à un cloud.
    • Une reconfiguration du réseau sera nécessaire pour lui permettre de communiquer avec un point d’accès.
    • Réussir à connecter la Raspberry à un cloud
    • Prévoir une partie de l'application permettant l'importation de musique depuis ce cloud.

matériel nécessaire

  • Raspberry pi modèle B minimum (ok)
  • batterie 5v, 1 A
  • circuit shut down(une breadboard, une LED, une resistance 220 ohms, 3 fils M/M, 2 fils M/F, un interrupteur on/off)
  • bois de palette
  • dongle wi pi (ok)
  • Rétroprojecteur (ok)
  • timer(circuit de retardement 5 secondes)

calendrier prévisionnel

20h sur le circuit d'allumage

10h sur la structure

40h configuration de la Raspberry

30h ajout de capteurs de contrôle de l'environnement de l'enfant.



Semaine 1 et 2

Pour cette première semaine j'ai tout d’abord pris en mains la raspberry pi.
Grâce à la commande "minicom -os" je me connecte par le terminal afin de directement modifier les scripts du mini-ordinateur.

Je me suis tout d’abord attaqué au circuit d'extinction et de redémarrage de la Raspberry pi.

Pour l'extinction de la Raspberry pi j'utilise un script écris en python se lançant au démarrage, tournant en fond et attendant une information précise pour exécuter un "sudo halt" éteignant la machine.

Un bouton relie la masse à une broche GPIO (broche 23). A la réception d'une chute de tension (bouton enclenché faisant le lien entre la masse et la broche 23) la raspberry pi exécute le script donné si dessus consistant donc a éteindre la Raspberry pi.


IMG 0906.JPG

Il faut maintenant réussir à couper le courant arrivant à la Raspberrypi quelques secondes après cette extinction du système. J'aurai donc besoin d'un "timer" ou "retardateur" pour retarder la coupure du courant qui alimente la Raspberry pi. Le coté pratique est que à la réactivation du courant, la machine redémarrera d'elle même et relancera le script en fond de tache.

Semaine 3 et 4

J'ai donc élaboré un circuit permettant, grâce a un bouton switch d'éteinde la raspberry ou de la rallumer. Je vais vous detailler les différentes parties du circuit suivant:

Veileuse co schem.png
  • La broche GPIO 23 paramétrée en entrée permet la détection du turn off/on du switch.

Lors de la détection du turn off la Raspbberry pi lance la commande "sudo halt" permettant l'arret proprement du systeme. Lors de la détection du turn on cette broche est à 1 et rien ne se passe.

  • La broche GPIO 24(une borche sortie 3,3v) envoie une tension quand la Raspberry est allumée. cela permet a la capacitée de se charger a l'allumage de la Raspberry pi.
  • La résistance et la capacité en parallèle permettent de laisser le temps au système de s'éteindre proprement. en effet a l'extinction le ssyteme prends 7secondes avant de s'éteindre. pendant ce temps la capacité se decherge a la fois dans le transistor qui n'est plus alimenté par la batterie et a la fois dans la resistance en parrallele. La valeur de la résistance et la capacité ont été choisies de façon à laisser le temps nécessaire au système.
  • Pour finir, le transistor est alimenté par une batterie et ne laisse passer le courant uniquement si le bouton est sur on ou si il est sur off depuis moins de 7 secondes approximativement.

Avant de construire la carte électronique de ce montage je me suis lancé dans la construction d'un prototype sur une breadboard. le prototype ne marche toujours pas et je rencontre encore quelques problèmes.

je ne suis pas sur d'avoir besoin du branchement de la broche GPIO24. de plus l'alimentation de la Raspberry pi étant une alimentation USB/microUSB j'ai du faire des soudures pour me permettre le branchement sur une breadboard. Je suis actuellement en train de faire des tests en c202, pour pouvoir résoudre au plus vite les problèmes pratiques rencontrés et pouvoir passer la conception de la carte.

Semaine 5

j'ai toujours des problèmes avec le prototype. En effet le transistor Pmos n’est peut être pas le plus adapté a mon montage. lorsque le courant arrive sur la grille du transistor il est bloqué et lorsque le courant sur la grille est coupé le transistor est passant. il me faudrait exactement l'inverse.

Le transistor N-channel est en effet le plus adéquat pour notre circuit. De plus, j'ai constaté qu'une partie du circuit relié à la Raspberry pi n'était pas utile. il faut bien prendre en compte que la broche "source" du transistor NMOS se relie, à l'inverse des PMOS, sur la masse.

Semaine 6

Après avoir reçu le nouveau transistor il nous fallait revoir le circuit. En effet un N-channel MOS FET ne se branche pas de la même manière. J'ai donc mis la broche "source" a la masse, la broche "grille" sur ma tension et ma broche drain à une borne de ma charge. j'ai du en plus rajouter une résistance nommée Rg pour pouvoir ramener la tension VGS à la masse. J'ai eu beaucoup de problème avec mes prises de mesures et donc à vérifier si mon montage fonctionnait. En effet mes mesures de tension étaient bonnes mais le transistor n'était pour autant pas passant. j'ai compris en relisant des cours de base sur le courant et la tension que la borne négative de ma charge prenait la même tension que ma borne positive si le circuit était ouvert. J'en ai donc déduis que je n'avais pas de courant qui circulait. J'ai donc ajouté une diode pour être sur de bien visualiser la circulation du courant ou non dans ma charge. Je suis enfin parvenu à switcher mon transistor comme je le souhaitais. Il me reste a rajouter les composant permettant le retardement de l'ouverture de mon transistor lorsque je n'alimente plus la grille. C'est a dire rajouter la capacité et quelques résistances.

Après avoir rajouter les composant permettant le retardement, mon circuit fonctionne. Seul problème : La valeur de mes composant a été mal choisie. En effet mon circuit s’éteint en 35 secondes, ce qui est beaucoup trop. Je reviens sur mes calculs et décide donc de prendre une capacité de 10uF et d'ajuster la valeur de la résistance en faisant plusieurs essais. Je cherche à obtenir un temps de décharge entre 8 et 15 secondes pour qu'il soit suffisamment long mais pas excessivement.

Je me suis permis de l'optimiser le prototype en remplaçant plusieurs résistances par une seule jouant les différents rôles attribués aux anciennes. De plus j'ai rajouté des LED pour pouvoir contrôler le bon fonctionnement du circuit et faciliter une future maintenance.

Le circuit ayant changer je vous mes la version finale, qui comporte en plus, la connections logique "détection" permettant d'ordonner a la Raspberry d’éteindre le système.

SCH2MA FINAL!


Je passe maintenant a la partie conception du PCB. Voici le schéma PCB final obtenu.


SCH2MA PCB

semaine 7

semaine 8

semaine 9

feuille d'heure

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Définition cahier des charges 2h 4h
circuit d'allumage 2h 4h 4h 2h 8h 8h 8h 8h
structure
configuration Raspberry 2h 4h 4h 2h
ajout des capteurs d'environnement

sources

http://www.framboise314.fr/ma-framboise314-fait-risette-ajouter-un-bouton-de-reset-au-rasperry-pi-version-b/
http://hardware-libre.fr/2013/07/raspberry-pi-5-ajouter-un-bouton-materiel-avec-python/
http://hardware-libre.fr/2013/07/ajouter-un-bouton-dextinction-avec-python/
http://www.framboise314.fr/ma-framboise314-fait-risette-ajouter-un-bouton-de-reset-au-rasperry-pi-version-b/
http://www.raspberrypi-france.fr/tutoriel-se-connecter-wi-fi-raspberry-pi-3/