Projet ICN commun 2016/2017
Rex (discuter | contributions) (→Début de construction de l'horloge) |
Rex (discuter | contributions) (→A réaliser) |
Version du 17 septembre 2017 à 18:57
Sommaire |
Cahier des charges
Plusieurs solutions ont été proposées pour l'apparence de l'horloge :
- utilisation d'un disque dur : https://www.youtube.com/watch?v=xaL4Cqu8DAs ;
- un écran derrière un miroir : https://www.youtube.com/watch?v=fkVBAcvbrjU ;
- affichage de l'heure avec des aiguilles physiques ou en projection ;
- utilisation de matrices de LEDs pour les messages ;
- utilisation d'afficheurs à segments comme pour les réveils du commerce.
Les afficheurs LCD à segments sont difficiles à trouver en pièces détachés. Les écrans de taille raisonnable sont relativement onéreux. L'affichage par un disque dur est assez délicat à réaliser et peu informatif. Les élèves se sont repliés sur un affichage par matrices de LEDs. Une matrice pour l'heure, une matrice pour les informations.
La listes de fonctionnalités évoquées suit.
- affichage de l'heure et de la date ;
- affichage d'autres fuseaux horaires ;
- affichage de la température ambiante :
- affichage de l'intitulé du cours ;
- sonnerie de début et de fin de cours ;
- avertissement en cas de niveau sonore trop élevé ;
- affichage d'un message de bienvenue ;
- affichage de la météo du jour.
Liste du matériel nécessaire
Voici les informations des différents éléments de l'horloge établies par Noé :
- 420 Adafruit x2 192mmx96mm 23.53euros http://www.digikey.fr/product-detail/fr/adafruit-industries-llc/420/1528-1412-ND/5699167
- Raspberry Pi 3 type B 88mmx58mm 39.95euros http://www.materiel.net/micro-pc-raspberry-pi/raspberry-pi-3-type-b-128021.html
- Arduino mega 2560 R3 100mmx53mm 39.95euros http://www.selectronic.fr/carte-arduino-mega.html
- Electret microphone MX9814 7.50euros http://www.mouser.fr/ProductDetail/Adafruit/1713/?qs=sGAEpiMZZMsMyYRRhGMFNofwqklVUFtrRKKXD3NROZM%3d
- Haut-parleur x2 1W/ 8ohms 2.41euros http://www.lextronic.fr/P5204-haut-parleur--1w--8-ohms.html
- Amplificateur MAX98306 12.21euros https://shop.mchobby.be/breakout/195-amplificateur-2-x-37w-class-d-3232100001954-adafruit.html
Pour l'instant 151.04euros
Il faudrait peut-être rajouter un récepteur DCF77 pour obtenir l'heure exacte :
- CONRAD 13.99euros http://www.conrad.fr/ce/fr/product/641138/Platine-de-reception-DCF-alimentation-25-15-VDC-3-mA
matériel pour la prochaine séance:
- 40 vis en nylon de 3mm de diamètre et environ 1,5 cm de longueur
les vis ne sont pas assez longues pour la plupart et leurs diamètre est trop gros pour certains trous
Il sera également nécessaire d'ajouter un carte son USB à la Raspberry Pi car elle n'en dispose pas (Réf : carte son externe USB 5.1 6.90euros https://www.pearl.fr/article/PX6653/carte-son-externe-usb-5-1)
Apparence de l'horloge
Une première version de l'apparence de l'horloge a été dessinée avec le logiciel sketchup par Célya. A l'aide des dimensions des matrices de LEDs, un dessin vectoriel a été créé pour être utilisé par la découpeuse laser de Polytech'Lille.
Les photos ci-dessous présentent une première maquette en contre-plaqué de test.
La seconde version du fichier pour la découpeuse laser est donnée ci-après.
Réalisations
Quelques étapes de la réalisation de l'horloge par ordre chronologique.
- travail sur le design de l'horloge en le schématisant sur sketchup ;
- recherche des différents éléments de l'horloge (prix, fournisseurs, etc) :
- création du fichier pour découper les plaques de plexiglas avec inkscape ;
- découpage des plaques de plexiglass au Fabricarium de Polytech'Lille.
- relier le Raspberry Pi à l'horloge atomique dont l'émetteur est situé à Mainflingen;
Récupération des signaux DCF77
Les sites suivants sont conseillés par les encadrants pour faire fonctionner la platine de réception DCF77 :
- un schéma décrivant comment utiliser le module ;
- un site décrivant comment utiliser le port série d'une Raspberry ;
- un autre site décrivant comment utiliser une entrée quelconque d'une Raspberry ;
- enfin ce dernier site montre comment modifier un programme pour synchroniser la date avec une entrée quelconque de la Raspberry ;
Un grand travail de récupération des signaux DCF77 a été réalisé.
Il y avait beaucoup de perturbation pour les ondes DCF dans la salle si bien que nous n'arrivions pas à capter un signal en entier pour avoir l'heure. Nous avons donc décidé d'isoler le Raspberry PI en le mettant devant la salle. Pour pourvoir le contrôler nous l'avons donc connecté à un point d’accès mobile sur lequel nous avons utilisé le SSH depuis un ordinateur dans la salle.trou du cul
La carte DCF77 montrée sur la photo suivante a été utilisée.
Cette carte a été connecté à la Raspberry Pi.
Les logiciels utilisés pour récupérer les signaux DCF77 sont : radioclkd2
(version modifié), ...
Le logiciel radioclkd2
a été récupéré sur Internet [1] et compilé sur la Raspberry Pi. Un script a été écrit pour le lancer correctement après configuration des ports d'entrée/sortie de la Raspberry. Le script est donné ci-après :
#!/bin/sh if [ ! -d /sys/class/gpio/gpio17/ ] ; then echo 17 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio17/direction echo both > /sys/class/gpio/gpio17/edge fi radioclkd2 -s gpio -v /sys/class/gpio/gpio17/value:-DCD
Pour que le logiciel radioclkd2
puisse communiquer la date et l'heure au logiciel ntp
qui s'occupe de la gestion du temps, il faut ajouter les lignes ci-dessous dans le fichier de configuration de ntp
, c'est à dire /etc/ntp.conf
:
server 127.127.28.0 fudge 127.127.28.0 flag1 1
Ce fichier permet aux deux logiciels de communiquer par mémoire partagée. Pour pouvoir vérifier le bon fonctionnement de la communication utiliser les lignes suivantes :
server 127.127.28.0 fudge 127.127.28.0 flag1 1 flag4 1 statistics clockstats statsdir /ntpstats/ filegen clockstats file clockstats type day enable
Les statistiques sur la récupération de l'heure par DCF77 sont alors sauvegardés dans le répertoire /var/lib/ntp/ntpstats
.
Pour intégrer proprement la carte dans l'horloge un circuit électronique a été réalisé avec le logiciel Fritzing. Le fichier de cette carte est disponible : Media:Dcf77.fzz.Fichier:20170607 122319.jpg
Début de construction de l'horloge
Les photos ci-dessous montrent une partie de l'horloge montée avec
- les plaques de plexiglas les plus propres obtenues avec la découpeuse laser de Polytech'Lille ;
- les deux matrices de LEDs comportant, chacune, 32x16 LEDs ;
- la Raspberry PI avec le chapeau de contrôle des matrices de LEDs.
La Raspberry PI est configurée en mode point d'accès WiFi pour pour dialoguer avec l'horloge à partir d'un téléphone portable.
A réaliser
Il reste encore beaucoup de travail à réaliser pour cette horloge.
- la Raspberry ne possède pas d'entrée audio, il faut donc trouver une carte son USB reconnue par la Raspberry et expérimenter la capture audio avec cette carte son ;
- il faut concevoir le dispositif d'accroche pour les haut-parleurs sur la facade avant ;
- un circuit électronique pour la connexion carte son / haut-parleurs et platine DCF / Raspberry sera certainement nécessaire, utiliser la place prévue à l'origine pour l'Arduino pour la fixer dans l'horloge.
Quelques indications
Pour utiliser les matrices de LEDs avec la Raspberry PI :
- suivez le tutorial adafruit à partir du chapitre 6, en particulier
- récupérez les paquetages nécessaires par apt-get install python-dev python-imaging;
- récuperez les programmes de démonstration.
- modifiez le programme pour afficher en boucle les textes qui se trouvent dans un fichier donné.
Pour transformer la Raspberry PI en point d'accès WiFi, il faut :
- installer le paquetage hostapd, configurer le serveur hostapd en WPA (méthode d'identification) avec un SSID (réseau WiFi) et un mot de passe ;
- modifier le fichier /etc/network/interfaces pour donner une adresse IP à la Raspberry PI sur son interface WiFi ;
- installer le paquetage isc-dhcp-server et configurer le serveur dhcpd pour donner des adresses IP aux téléphones portables qui se connecteront sur votre SSID ;
- installer le paquetage bind9 et configurer le serveur named pour donner un nom facile à retenir à l'horloge.
- installer les paquetage apache2 et php5 pour pouvoir créer un petit site Web dont les fichiers doivent se trouver dans le répertoire /var/www/html.