IMA4 2016/2017 P38

De Wiki de Projets 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 et aussi lancer une musique afin d'améliorer la nuit des nourrissons et des jeunes enfants. Il serait de plus intéressant que cette veilleuse puisse 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 à y récupérer directement les images et les musiques.
  • 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équat 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 brut 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 des 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é ci-dessus consistant donc à é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 qu'à la réactivation du courant, la machine redémarrera d'elle même et relancera le script en fond de tâche.

Semaine 3 et 4

J'ai donc élaboré un circuit permettant, grâce à un bouton switch d'éteindre la raspberry ou de la rallumer. Je vais détailler 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 un arrêt propre du système. Lors de la détection du turn on cette broche est à 1 et rien ne se passe.

  • La broche GPIO 24(une broche sortie 3,3v) envoie une tension quand la Raspberry est allumée. cela permet à la capacité de se charger à 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 à l'extinction le système prend 7secondes avant de s'éteindre. Pendant ce temps, la capacité se décharge, à la fois dans le transistor qui n'est plus alimenté par la batterie et à la fois dans la résistance en parallèle. 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 seulement si le bouton est sur on ou s'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 sûr d'avoir besoin du branchement de la broche GPIO24. De plus l'alimentation de la Raspberry pi étant une alimentation USB/microUSB, j'ai dû 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é à 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 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" à la masse, la broche "grille" sur ma tension et ma broche drain à une borne de ma charge. j'ai dû en plus rajouter une résistance nommée Rg, pour pouvoir ramener la tension VGS à la masse. J'ai eu beaucoup de problèmes 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éduit que je n'avais pas de courant qui circulait. J'ai donc ajouté une diode pour être sûr 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 à rajouter les composant permettant le retardement de l'ouverture de mon transistor lorsque je n'alimente plus la grille. C'est à dire rajouter la capacité et quelques résistances.

Après avoir rajouté les composants permettant le retardement, mon circuit fonctionne. Seul problème : La valeur de mes composants 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 d'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 changé, j'insère la version finale, qui comporte en plus, la connections logique "détection" permettant d'ordonner à la Raspberry d’éteindre le système.

Carte allumage.PNG


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


PCB allumage.PNG

semaine 7

j'ai continué la création de mon PCB.

J'ai ajouté un "header" qui me permettra de brancher mon circuit directement sur ma raspberry pi sans utiliser de fils. Il fallait penser à la position des composants et du "header". En effet, je souderai les composants sur la face opposée à celle du "header" pour empêcher une collision entre mes composants et la Raspberry pi.

J'ai fait une première version en cours d'impression qui, si elle fonctionne, me permettra de passer à la suite du projet.

ce week-end dernier, j'ai commencé ma boîte qui contiendra tous les composants de ma veilleuse. J'ai choisi de faire une boîte en bois plus ou moins cubique de dimensions 14cm*14cm*16cm. je fournis ici les croquis m'ayant aidé à finaliser l'objet.


La forme reste simple et efficace car je voudrais consacrer un maximum de temps au cœur de mon projet, c'est à dire les parties électroniques et la programmation. Malgré cela, je pense arriver à une coque agréable à regarder. J'ai donc coupé mes six planches de palette industrielle. Je les ai poncées, pour éviter toutes échardes et blessures possibles, et pour donner un aspect plus neuf au bois et plus agréable à regarder. je suis dans l'optique de l’assembler prochainement et de la vernir.

semaine 8

j'ai raté mes soudures sur la carte. De plus, comme les pastilles et les isolettes étaient trop petites, j'ai entrepris de faire une deuxième version. J'ai donc agrandi les pastilles les isolettes et j'ai repensé un peu le circuit. les soudures faites sur cette nouvelle carte sont bien meilleures. Malgré tout, je suis confronté à de nouveaux problèmes:

  • la connexions surb se soudant sur la carte a besoin de deux trous supplémentaire que je vais devoir faire à la foreuse pour éviter l'impression d'une nouvelle carte.
  • Après avoir fait ces trous, je me suis rendu compte que je les avais fait au mauvais endroit.
  • la pose du h'eauder risque de gêner les autres fils reliant le psb à l'ordinateur.

semaine 9

Mon PCB rencontre encore des erreurs que je compte corriger cette semaine. La diode située juste après la raspberry pi empêche la mise à la masse du "mini ordinateur". Cette tension nulle n'étant pas respectée .L'allumage de la raspberry pi est impossible. J'ai donc dessoudé la diode que je ais remplacer par un fil pour tester l'allumage de ma raspberry pi.


De plus la résistance que j'ai mis en place, qui permet la décharge de ma capacité, est trop faible. La capacité se décharge donc trop vite et le système n'a pas le temps de s'éteindre proprement. J'ai dessoudé ma résistance et je vais la remplacer par une autre avec une impédance supérieure.

La tension reste à plus de 3v,même en ayant retiré la diode. je cherche donc la raison pour laquelle je ne retrouve pas la masse à la borne négative de ma raspberry pi.

J'ai retiré la deuxième diode partie grille du transistor qui posait visiblement problème aussi. Le système est cohérent au niveau des tensions. Mais la raspberry pi peine à démarrer. J'ai pensé que le courant qu'elle nécessitait à l'allumage était trop faible ; j’ai donc remplacé la batterie par une prise secteur. Le problème reste le même. la raspberry s'éteint aussi vite qu'elle démarre. Je me demande si le problème vient de l'alimentation ou du software.

semaine 10

J'ai trouvé d’où venait le dernier problème de mon pcb. En effet pour rappel, la raspberry pi n'arrivait pas à s'allumer quand je mettais mon circuit entre celle-ci et l'alimentation. J'ai donc vérifié les tensions et les intensités à différents endroits du montage. Elles me semblaient toutes correctes: -5v à l'entrée de la raspberry -0v à la sortie de la raspberry En remplaçant la raspberry par un multimètre, je constate qu'il y a 1A de disponible, cela fonctionne donc correctement. Je remarque juste qu'en fonctionnement la tension à la borne positive de ma raspberry pi descend à 4,6V. Cela ne me paraît pas excessif étant donné que, d’après mes recherches, elle tiendrait entre 4,5 et 5,5V sans problème. Toutefois, je décide d’augmenter légèrement la tension en la branchant sur un "power supply" plutôt que via USB sur l’ordinateur. Le problème venait en effet de ce léger manque de tension... Visiblement la batterie que j'utilisais ne fournissait pas assez de tension (5V sur la datasheet, 4,6V en pratique) Je dois donc, pour finaliser cette partie du projet, trouver une batterie fournissant légèrement plus que 5v de tension. Mon circuit fonctionne avec 5,5v injectés.

travail effectué en fin de projet

Âpres réflexion, je dois donc injecter 10v réduit à 5,5V pour ne pas endommager mon circuit.J'ai donc acheté une nouvelle batterie. J'ai mis les deux batterie en série suivies d'un régulateur de tension la ramenant a 5,5V. le circuit s'allume correctement. Il me restait le problème de de la chute de tension qui devait être captée par la broche GPIO. Le problème était que la diode installée ne réduisait pas assez la tension. On ne détectait qu'une tension légèrement plus basse du à la tension de seuil de la diode. j'ai donc grâce à l'interrupteur, ramené la tension de la broche à la masse. J'empêche le court circuit grâce à la diode.


régulateur



Pour ce qui est de la boite, je me rends compte que une fois le montage réalisé, la première en bois de palette est trop petite. Je dois donc en refaire une. Je décide, de plus, de changer de bois car mon premier prototype ne me plaisait pas. J'utilise du bois fin (5mm)que je fixe grâce à de la colle chauffante et quelques clous.Le bois est évidemment préalablement poncé et ajusté. Le rendu est bien plus propre. Je rajoute une ouverture élégante. En effet sur la première boite l'ouverture n'était qu'un trou sur une des faces. je fixe l'interrupteur et je câble tout le système à l'intérieur. Il ne me manquait que de faire en sorte que les éléments ne se baladent pas trop dedans. Au lieu de les coller définitivement, j'ai opté pour des élastiques qui peuvent se retirer facilement.


boite finale

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 heures suplémenteire Total
Définition cahier des charges 2h 4h 6h
circuit d'allumage/régulateur 2h 4h 4h 2h 8h 8h 8h 8h 4h 4h 10h 62h
structure 2h 4h 4h 4h 10h 24h
configuration Raspberry 2h 4h 4h 2h 6h 18h
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/

Compte rendu

Rapport final: Fichier:La veilleuse enfant connectée-final.pdf