Retour vers le Futur

Vous avez réalisé ou vous voulez réaliser un truc impensable avec votre Raspberry Pi ? Cet endroit est pour vous...

Modérateur : Francois

Veloce
Messages : 79
Enregistré le : sam. 24 janv. 2015 20:12

Retour vers le Futur

Message par Veloce » dim. 25 janv. 2015 19:01

26 octobre 1985

Marty Mc Fly réalise le premier voyage dans le temps, à bord de la De Lorean de son ami le Dr Emett Brown (Doc pour les intimes).
Hé mais c'était il y a 30 ans tout juste :o

Pour fêter ça, je vous propose de réaliser une reproduction des fameux "circuits temporels", avec un Raspberry Pi évidemment !
Image
Ne faites pas attention à l'aspect rudimentaire de cette maquette, elle n'est pas à l'échelle et je n'ai pas eu le temps de la peindre ;)

Avant d'aller plus loin, quelques avertissements:
1) l'idée n'est pas de moi, en fait j'ai copié sur Adafruit, qui a réalisé une horloge comme celle ci à base d'Arduino.
Je l'ai juste adaptée au Raspberry Pi et améliorée.
http://www.adafruit.com/blog/2012/07/02 ... ruit-gear/
2) la réalisation coûte un peu d'argent et prend beaucoup de temps.
3) On apprend plein de choses : comment utiliser la bibliothèque WiringPi, comment gérer le bus I2C, comment fabriquer une alimentation 3,3V,
comment démultiplexer un signal, comment programmer une horloge temps réel, comment Unix gère l'heure sous forme de structure en C, comment
administrer un PC sans écran avec SSH, etc etc.
4) c'est un projet cool mais au bout du compte, ça ne sert pas à grand chose. C'est un peu comme grimper une montagne, l'intérêt c'est le chemin, pas le résultat.
5) non, elle n'est pas à vendre et non, je n'en fabriquerai pas une autre pour la vendre. Par contre si vous voulez en construire une, je veux bien
vous fournir les plans, le programme, et toutes les explications utiles.

Vous êtes encore là ? Bon, je ne suis pas le seul cinglé du forum c'est rassurant. :lol:

Voyons comment c'est fait :
Image
On a bien un RaspberryPi, relié à un circuit imprimé par une nappe de fils, et le tout est alimenté en 5V, par un transfo d'iPhone
ou un câble allume-cigare dans la voiture (eh non, je n'ai pas de De Lorean, snif).

Toute l'électronique tient sur deux plaques prototypes à bandes, dont j'ai coupé les pistes avec un cutter.
Image
Le truc bleu avec une pile bouton, c'est mon horloge temps réel, qui garde la mémoire de l'heure lorsqu'on débranche l'alimentation.
Le Raspberry Pi règle son horloge tout seul comme un grand via le Wi-Fi, mais si on met l'horloge dans une voiture il faut sauvegarder l'heure.

Côté face, on découvre les afficheurs.
Image
Ils sont tous montés sur des platines de chez Adafruit, qui permettent de les piloter sur le bus I2C.
http://www.adafruit.com/products/878
Tout le secret de ce montage est là : ces platines permettent de piloter tous les afficheurs avec seulement 2 fils, au lieu d'utiliser les GPIO.

Le régulateur en haut à gauche est un LM317T, qui avec deux résistances et deux condensateurs , permet de descendre la tension d'alimentation de 5V à 3,3V.
En effet, j'alimente les afficheurs en 3,3v au lieu de 5v parce que le bus I2C du Raspberry Pi est en 3,3v (et pas 2,21 Gw comme on le croit souvent).

Le circuit intégré à 16 broches, vers le milieu, en bas, est un 74HC138, qui sert à sélectionner une ligne de 3 afficheurs. Ainsi chaque afficheur est identifié par une adresse sur le bus I2C, de 1 à 3, qui représente sa colonne, et par une adresse sur le démultiplexeur, qui détermine sa ligne.

Les gros trucs blancs et moches sont des patins en caoutchouc, qui permettent de maintenir les circuits imprimés à la bonne distance de la façade pour que les afficheurs affleurent sans dépasser de la surface du coffret.

Voilà, ça fait plusieurs mois que cette horloge fonctionne sur mon palier, mais je n'ai pas encore fait imprimer les autocollants pour la façade, et je n'ai pas encore développé l'application web qui permettra de régler les heures de départ et d'arrivée à partir de n'importe quel navigateur ou smartphone.
Par la suite, je voudrais ajouter un ampli audio pour pouvoir jouer une alarme "tan-tan-tan-tantantan" lorsque l'heure programmée est atteinte.

Dites-moi si ça vous plaît, si vous voulez construire la même je vous donnerai plus de détails, nom de Zeus !

Veloce :P

domi
Administrateur
Messages : 2938
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Retour vers le Futur

Message par domi » lun. 26 janv. 2015 12:41

Projet très instructif.
Celui ci a du effectivement te prendre beaucoup de temps...
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Veloce
Messages : 79
Enregistré le : sam. 24 janv. 2015 20:12

Re: Retour vers le Futur

Message par Veloce » lun. 26 janv. 2015 14:30

Oui, il y a pas mal de choses que j'ai dû apprendre petit à petit.
Et d'abord le bus I2C.

Autrefois, pour relier des entrées-sorties à un ordi, c'était compliqué, il fallait câbler 16 fils d'adresse, et 8 fils de données,
et comme le bus était partagé entre tous les périphériques (comme la mémoire, le circuit vidéo, etc), il fallait installer un
buffer, (composant qui mémorisait la valeur des données), ou mieux un 8255 (interface parallèle programmable) qui
permettait d'avoir l'équivalent de 24 GPIO. Et puis il fallait décoder l'adresse, donc installer plusieurs composants qui
interprètent l'adresse et sélectionnent le buffer ou le 8255 quand l'adresse correcte est demandée. Bref, il fallait pas mal
de réflexion, de câblage, de soudures, pas mal de composant et de budget aussi.

Pour ce projet de machine à voyager dans le temps, je dois commander 9 écrans, qui ont chacun 4 chiffres, de 7 segments,
soit 252 sorties numériques, plus les petits points qui clignotent, plus les leds qui indiquent si on est le matin ou l'après-midi.
Autant dire qu'avec la technologie des bus parallèles ce projet n'est pas faisable (enfin, si, il doit l'être puisque quelqu'un a
construit la maquette pour le film :lol: ).

Ce qui serait top, ce serait de piloter une interface parallèle programmable, genre 8255, mais à partir d'une liaison série.
Pis ce qui serait encore mieux, ce serait de pouvoir mettre autant d'interfaces que je veux sur le même fil. Et bien c'est
justement ce que permet le bus I2C. Il a un fil pour les données, un fil pour l'horloge (pour que tout le monde écoute celui
qui parle), un fil pour l'alimentation 5V et un fil pour la masse.

J'ai fait un petit schéma de principe qui est un peu faux, mais ce n'est pas grave, c'est juste pour comprendre comment ça
marche:
Image

Alors à gauche on a un maître, par exemple le Raspberry Pi, qui émet des données sur sa patte que j'ai appelée TX1.
Chaque fois que TX1 passe à 1, le transistor conduit et la ligne DATA se retrouve à la masse.
A ma droite, on a un composant, par exemple un afficheur ou une horloge temps réel, ou un capteur de température,
ou un autre micro si on veut. Il écoute sur sa patte RX2.
Il peut aussi parler sur sa patte TX2, et dans ce cas, pareil, la ligne DATA va à la masse chaque fois qu'il y a un 1 sur TX2.
Le Raspberry PI, lui, écoute sur sa patte RX1. Donc on voit qu'avec un seul fil on arrive à faire une communication bidirectionnelle.
Surtout, rien ne m'interdit de mettre un autre composant sur la ligne, il faut juste qu'il soit reconnu par une adresse différente.

Alors quand je dis "un fil", en fait il en faut 4: un pour les données, un pour l'horloge, un pour le +5V et un pour la masse.
Le schéma pour l'horloge est à peu près le même, chacun peut parler et écouter sur la ligne d'horloge, chacun son tour, mais c'est le maître qui donne la parole à chacun.

Vous allez me demander pourquoi je réinvente le bus I2C, alors qu'on trouve un article très bien fait sur Wikipédia ?
http://fr.wikipedia.org/wiki/I2C
En fait c'est juste pour montrer la résistance sur mon schéma, qui est une résistance de "pull-up". Tant que personne ne
parle, la ligne DATA est tirée vers le haut à 5V, qui est la tension d'alimentation.

Sur le Raspberry Pi, le bus I2C est alimenté en 3,3V, alors que sur les afficheurs d'Adafruit, il est alimenté en 5V. Même chose pour l'horloge temps réel. Alors comment on fait ?
-La première solution consiste à acheter un convertisseur de niveau, qui se met entre le Raspberry et le bus I2C, et qui
remet le bus au bon niveau tout en protégeant le Raspberry Pi contre les erreurs de manipulations.
-La deuxième solution, que j'ai retenue, consiste à alimenter les afficheurs en 3,3V. Comme ça leur résistance de pull-up
ne tire que 3,3V et le Raspberry est content. Notez que l'horloge temps réel est alimentée en 5V, elle, mais que je n'ai pas
soudé sa résistance de pull-up. C'est donc la résistance de pull-up des afficheurs, ou celle du Raspberry Pi, qui définit le
niveau à 3,3V.

Dans mon prochain post je vais essayer de donner la liste du matériel que j'ai acheté pour construire mon horloge, puis
j'expliquerai comment marche l'horloge temps réel.

à suivre

Veloce

Avatar du membre
EVOTk
Modérateur
Messages : 886
Enregistré le : sam. 20 sept. 2014 02:36

Re: Retour vers le Futur

Message par EVOTk » lun. 26 janv. 2015 16:16

Juste une chose a dire : cest beau, belle réalisation !

Sa donne envie davoir la meme !

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Retour vers le Futur

Message par Manfraid » lun. 26 janv. 2015 16:32

Entièrement d'accord EvoTk cela donne vraiment envie
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Veloce
Messages : 79
Enregistré le : sam. 24 janv. 2015 20:12

Re: Retour vers le Futur

Message par Veloce » lun. 26 janv. 2015 18:30

Attendez, vous n'avez même pas vu la façade:
Image

Si quelqu'un connaît un imprimeur capable de m'imprimer ça, je suis preneur !

Ca fait 22 cm x 16 cm, donc ça tient sur un A4, mais il faudrait que
ça soit en plastique et que ça résiste un peu aux UV.

Veloce ;)

Avatar du membre
EVOTk
Modérateur
Messages : 886
Enregistré le : sam. 20 sept. 2014 02:36

Re: Retour vers le Futur

Message par EVOTk » lun. 26 janv. 2015 21:20

Moi je verrai bien sa imprimer normalement, découpé les trous puis plastifier et re-decoup

Veloce
Messages : 79
Enregistré le : sam. 24 janv. 2015 20:12

Re: Retour vers le Futur

Message par Veloce » mar. 27 janv. 2015 12:59

Bonjour,

j'ai fait la liste de courses, il y en a pour 200 € à peu près, hors frais de port, et hors impression de la façade.

Item......................................................PU........Qté.......Prix
Raspberry.Pi----------------------------------------------------------------------------
Raspberry.Pi.(modèle.A.ou.B,.mais.pas.+).....................30,00.€.........1...30,00.€
Clé.USB.WIFI.EDIMAX.N150.NANO.EW-7811Un.......................9,00.€.........1....9,00.€
Afficheurs------------------------------------------------------------------------------
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Horloge.temps.réel.(optionnelle)--------------------------------------------------------
Adafruit.DS1307.Real.Time.Clock.breakout.board.kit...........11,00.€.........1...11,00.€
Composants------------------------------------------------------------------------------
Platine.d'essais.à.pistes.100x160x1,5mm.......................3,00.€.........1....3,00.€
LED.cablée.verte.ronde.3.mm...................................0,15.€.........2....0,30.€
LED.cablée.jaune.ronde.3.mm...................................0,15.€.........2....0,30.€
LED.cablée.rouge.ronde.3.mm...................................0,15.€.........2....0,30.€
Résistance.à.couche.métallique.220.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Résistance.à.couche.métallique.330.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Résistance.à.couche.métallique.560.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Régulateur.de.tension.réglable.LM317T.boîtier.TO-220..........0,23.€.........1....0,23.€
Barrette.sécable.mâle.droite.20.broches.......................1,00.€.........3....3,00.€
Condensateur.polyester.sortie.radiale.100.nF.63.V.............0,05.€.........1....0,05.€
Condensateur.anti-parasite.sortie.radiale.470.nF..............0,70.€.........1....0,70.€
CI.CMOS.74.HC.138.DIP.........................................0,15.€.........2....0,30.€
Connecteur.femelle.pas.2.54.pôle.2.X.13.......................0,55.€.........2....1,10.€
Câble.nappe.26.contacts.(le.mètre)............................6,00.€.........1....6,00.€
BOITIER.UNIVERSEL.IP65.RP1455.220X165X60.....................24,00.€.........1...24,00.€
TOTAL===========================================================================199,08.€

Et M... pas moyen de coller un tableau dans un champ web. Désolé si ce n'est pas très lisible.
Je vais voir si je peux joindre le fichier Excel ?

Veloce

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Retour vers le Futur

Message par Manfraid » mar. 27 janv. 2015 13:04

essaye de mettre le tableau dans une balise code comme ça si il est bien former dans un blocnote il sera plus présentable sur le site
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

domi
Administrateur
Messages : 2938
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Retour vers le Futur

Message par domi » mar. 27 janv. 2015 13:55

Bonjour,

Dans une balise CODE, cela passe bien :

Code : Tout sélectionner

Item...........................................................PU..........Qté.....Prix
Raspberry.Pi----------------------------------------------------------------------------
Raspberry.Pi.(modèle.A.ou.B,.mais.pas.+).....................30,00.€.........1...30,00.€
Clé.USB.WIFI.EDIMAX.N150.NANO.EW-7811Un.......................9,00.€.........1....9,00.€
Afficheurs------------------------------------------------------------------------------
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Adafruit.0.56".4-Digit.7-Segment.Display.w/I2C.Backpack.-....12,00.€.........3...36,00.€
Horloge.temps.réel.(optionnelle)--------------------------------------------------------
Adafruit.DS1307.Real.Time.Clock.breakout.board.kit...........11,00.€.........1...11,00.€
Composants------------------------------------------------------------------------------
Platine.d'essais.à.pistes.100x160x1,5mm.......................3,00.€.........1....3,00.€
LED.cablée.verte.ronde.3.mm...................................0,15.€.........2....0,30.€
LED.cablée.jaune.ronde.3.mm...................................0,15.€.........2....0,30.€
LED.cablée.rouge.ronde.3.mm...................................0,15.€.........2....0,30.€
Résistance.à.couche.métallique.220.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Résistance.à.couche.métallique.330.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Résistance.à.couche.métallique.560.Ohm.sortie.axiale..........0,10.€.........6....0,60.€
Régulateur.de.tension.réglable.LM317T.boîtier.TO-220..........0,23.€.........1....0,23.€
Barrette.sécable.mâle.droite.20.broches.......................1,00.€.........3....3,00.€
Condensateur.polyester.sortie.radiale.100.nF.63.V.............0,05.€.........1....0,05.€
Condensateur.anti-parasite.sortie.radiale.470.nF..............0,70.€.........1....0,70.€
CI.CMOS.74.HC.138.DIP.........................................0,15.€.........2....0,30.€
Connecteur.femelle.pas.2.54.pôle.2.X.13.......................0,55.€.........2....1,10.€
Câble.nappe.26.contacts.(le.mètre)............................6,00.€.........1....6,00.€
BOITIER.UNIVERSEL.IP65.RP1455.220X165X60.....................24,00.€.........1...24,00.€
TOTAL===========================================================================199,08.€
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

Répondre

Retourner vers « Utilisateurs avancés »