Description du projet

Cette horloge affiche l’heure en jouant au célèbre jeu Pong. Les bots gagnent et perdent successivement afin que leur score donne l’heure (on le voit sur la photo). Cette horloge n’est pas très dure à réaliser et coûte environ 100$. Toutes les pièces se trouvent aisément sur eBay et le code source est téléchargeable. L’horloge peut donner l’heure de manière littérale (en anglais, cf photo), ou se contente d’afficher simplement l’heure. La date apparaît de temps en temps avec un effet rétro. Un menu vous permet de choisir le mode d’affichage, réglable avec les boutons situés sous l’écran. L’écran est composé de 2 panneaux lumineux LED à matrice de Sure Electronics (vous pouvez choisir entre rouge et vert, personnellement je préfére le vert).

Le matériel

FXBQO1FGRFNDBXX.MEDIUMFRX90AEGRFNDBXV.LARGEF87E3NGGRFNDBXU.LARGEFTG8435GRFNDBXS.MEDIUMF1JKEASGRFNDBXT.MEDIUMF0F8TZMGRFNDBXR.MEDIUM
  • 2 x Model 2416 Rouge ou verre LED Matrix Displays de Sure Electronics : Ils se trouvent sur eBay pour 15 $ http://www.sure-electronics.net/ Assurez-vous d’obtenir la dernière révision (pour info elle est basée sur la puce Holtek HT1632C). Vous reconnaîtrez facilement la dernière révision à sa puce du contrôleur et les commutateurs DIP à l’arrière. (Voir photo).

  • Une carte Arduino Uno ou DuemilanoveC’est l’arduino qui animera l’horloge (comme votre pc qui anime l’écran, c’est donc le « cerveau » de l’horloge). Choisissez une Arduino équipé du processeur Atmega 328. (Certaines vieilles cartes sont équipé de l’ancien ATmega 168 et risquent de ne pas avoir assez de RAM ce qui empêchera votre horloge de bien s’exécuter).

  • DS1307 Real Time Clock chip (RTC) et IC socket : Comme dis plus haut, la puce DS1307 permet à l’horloge d’indiquer l’heure, même lorsque l’alimentation est coupée (alimentée alors par la petite pile de 3,3V).

  • Crystal Oscillateur pour le DS1307
  • Une petite pille 3.3V : Cette pile permet à l’horloge de continuer à afficher l’heure (uniquement l’heure) lorsque l’arduino est débranché, pratique en cas de coupure de courant ou de remplacement d’arduino…

  • OU un module I2C DS1307Peut remplacer les trois élements précedents en un petit module, connectez le pin SDA au pin A4 de l’Arduino et le SCL au A5.

  • Un Blindage Arduino (prototype) : La carte de prototypage ou de fiches «bouclier» a mettre sur le dessus de l’Arduino rend facile d’ajouter des composants. Il apporte toute l’Arduino broches d’entrée et de sortie sur un circuit que vous pouvez composants à souder à. Obtenir un conseil qui est conçu pour une puce de continuer, c’est à dire celui qui apporte chaque broche du circuit intégré sur un plot de soudure, vous pouvez connecter les fils à (voir photo). . Si vous n’aimez pas l’idée de soudure, vous pourriez obtenir un fil de planche à pain et le cavalier pour construire le circuit sur la place temporairement.

  • 1x 16 Pin IDC Socket : Nous souderons ce socket sur le sur la carte de prototypage pour pouvoir y brancher dessus le câble « ruban » de l’écran. On peut la trouver pour quelques dollars sur eBay mais si vous ne voulez pas souder vous n’aurez pas besoin de cela
  • 2x ‘Push to Make’ Buttons : Ils sont utilisés pour régler l’heure / changer le mode d’affichage. Vous pouvez les obtenir pour une poignée de dollars ..

  • 1x Cable USB – Type « A to B » : Ceci est nécessaire pour programmer l’Arduino.

  • 1x Alimentation externe pour l’arduino : Ce câble est utilisé pour alimenter l’horloge. Ils vous coûteront mois de 10$. Le câble doit avoir au moins 150 mA en sortie

Le cirquit

schematic.jpg
Ce shéma vous indique la manière de relier les différentes parties. Ce n’est pas très difficile et vous pouvez déjà essayer sur une breadbord pour être sûr que ton est « ok ».

Les 2 boutons ne sont pas affichés dans ce shéma. Vous aurez besoin de connecter un bouton entre l’Arduino numérique broche 2 et la masse. L’autre bouton doit aller entre la borhce numérique 3 de l’Arduino et GND.
La disposition des broches du DS1307 sur le schéma n’est pas exacte, la broche 8 devrait vraiment être en haut à droite en face de la broche 1. Tous les numéros de broches sont corrects en termes de ce qu’ils se connectent à Cependant, afin de suivre la numérotation et ça devrait aller.

Raccorder l’écran

P1020065.JPG
Ces écrans utilisent un protocole série appelé « SPI » pour recevoir les données.4 câbles seront nécessaires pour assurer la connexion entre le premier écran et l’arduino. Deux autres câbles seront nécessaires pour l’alimentation. Derrière chaque écran se situe deux connecteurs. Ils permettent la liaison entre plusieurs écrans, nous allons donc les utiliser.
C’est à cela que va servir la nappe fournie dans la boîte. Connectez les écrans entres-eux grâce à cette nappe (vous pouvez utiliser les autres câbles, ce sont les mêmes en fait ). Utilisez l’un des connecteurs de chaque écran pour les relier a l’arduino.

Pour tester leur utilisation, j’ai branché les câbles à l’Arduino. Une fois que vous aurez répéré quel câble est pour l’alim et quel câble contrôle l’affichage. Vous pourrez souder le socket IDC à la plaque de prototypage, j’ai donc pu connecter la nappe à la plaque. Les pins 4 & 5 de l’Arduino doivent être respectivement connectés aux pins 1 & 2 de l’écran. Ces deux branchements sont utilisés pour la fonction appelée Cable Select ou ‘CS’. Cette fonction détermine quel écran reçoit l’affichage émit par l’Arduino. Les écrans ont des petits switch DIP qui permettent de définir leur adresse par rapport aux câbles, cela permet de leur donner deux identités différentes. Vous devez donc régler un des écrans en CS1 on et l’autre en CS2 on. Le pin 10 de l’Arduino es utilisé pour envoyer à l’écran ce qu’il doit afficher et doit être raccordé au pin 7 de l’écran. Le pin 11 côté Arduino envoie le signal de l’horloge, connectez ce pin ou n°5 sur l’écran. Enfin connectez le pin 12 au 5V+ et la carte et le 11 à GND (négatif).

Vous pouvez aussi utiliser les vis au dos de l’écran pour l’alimentation.

Souder les autres composants

  • Le module DS1307 se charge de l’heure. Il utilise le protocole I2C (ce n’est pas très important) grâce à cela il n’a besoin que de deux raccordements pour délivrer l’heure à l’arduino. Connectez les pins 5 et 6 du module aux pins A4 et A5 de l’Arduino. Branchez le crystal entre les pins 1 &2 du DS1307. Celui-ci permettra de réguler l’horloge et de lui donner le bon tempo. Enfin le port positif de la pile bouton se connecte au pin 3 du module, et l’anode à la base GND. La batterie permet au module de fonctionner même si l’alimentation externe n’est plus assurée ainsi il ne perd pas l’heure!
  • Raccorder un des deux boutons à pression entre le pin 2 et la base GND, l’autre entre le pin 3 et la base GND, tout ceci sur la carte Arduino directement.
  • [Branchez le 5V et le GND aux écrans comme je l’ai dit plus haut à la carte Arduino aux ports correspondants. Faites de même avec le module horloge./li_item]
  • Je ne vais pas épiloguer sur l’alimentation de l’arduino, faites comme bon vous semble, e vous conseil tout de même de l’alimenter via son port USB. Ne vous inquiétez pas si cela chauffe un peu c’est du aux multiples raccordement et aux consommation des différents modules.

La plaque de prototypage

P1020067.JPG

La plaque de prototypage rend beaucoup plus facile le branchement de tous les composants de votre projet, sur une plaque de taille standard vous devriez avoir la place de tout caser. Pour ma part j’ai déporté les deux boutons grâce à des câble sais fou pouvez tout aussi bien les souder directement à la plaque. Je ne peux pas vous donner de réel conseils pour où souder chaque composant, mais vous devriez pouvoir vous faire une idée par rapport au schéma de raccordement plus haut. Après avoir tout souder (ou pas) vous devriez avoir quelque chose s’apporchant de ma photo. Vous pouvez voir la nappe IDC (pour les écrans) à droite, au milieu le module DS1307. Le petit truc argenté sur ce module est le crystal dont je vous ai parlé tout à l’heure. Tout à gauche se trouve la pile bouton assurant la conservation de l’heure en cas de perte de l’alimentation. Le bouton rouge en haut à droite est le bouton reset qui est en fait livré avec le module, bien pratique.

Le résultat

P1020071.JPG

Voilà donc ce que cela donne quand tout est connecté! les deux écrans sont branchés sur la plaque de prototypage qui se trouve elle même sur l’arduino. Easy!

Programmer l’Arduino

La dernière étape consiste à téléversement le programme sur votre carte Arduino, pour ce faire vous aller devoir passer par le soft Arduino que vous devriez avoir sur votre ordi depuis longtemps maintenant! Ensuite téléchargez l’archive ici, dézippez là, vous devriez y trouver le sketch principal appelé ‘pongclock’ et 4 dossiers de librairies appelés respectivement ‘Button’, ‘DS1307’, ‘Font’ et ‘ht1632c’. Ce sont les extensions nécessaires au contrôles des écrans, boutons etc. Importez ces quatres librairies. Ensuite ouvrez le ‘pongclock.pde’, Vous devriez voir le code apparaître dans la fenêtre principale de l’IDE. Choisissez votre type de carte et téléversez. Débranchez et rebranchez votre Arduino, si tout se passe bien, et ça devrait être le cas, vous verrez vos écrans prendre vie! utilisez les 2 boutons pour régler l’heure, asseyez vous et admirez votre oeuvre!

Ce tutoriel est une traduction d’un tutoriel d’instructable que vous retrouverez à cette adresse sous licence : Attribution-NonCommercial-ShareAlike