Jeffrey Cross
Jeffrey Cross

C'est l'heure du courrier électronique - Créez une "horloge de courrier électronique" ... plus vous obtenez de ko, plus l'horloge tourne!

C’est l'heure des courriels - Une «horloge» d'apparence innocente surveille l'accumulation de messages non lus dans votre boîte de réception - par Tom Igoe.

J'ai beaucoup d'angoisse à propos du courrier électronique. Chaque kilo-octet de ma boîte de réception détruit une minute de plus de ma vie, mais je ne peux pas m'empêcher de la vérifier. J'ai donc décidé d'incarner mon anxiété dans un appareil qui s'inquiétait de mon courrier entrant. J'ai toujours aimé les mécanismes d'horlogerie, alors j'ai créé mon objet fétiche de courrier électronique sous la forme d'une horloge. Pour chaque kilo-octet de nouveau courrier que je reçois, l'horloge avance sans relâche.

Voici la conception de base que je suis venu avec. L'horloge elle-même est pilotée par un microcontrôleur, qui se connecte à Internet et interroge un programme vérifiant mes comptes de messagerie. Le programme rapporte le nombre de kilo-octets et le microcontrôleur avance l'horloge d'une coche pour chaque kilo-octet. Simple!

Pour le construire vous-même, vous devez savoir comment programmer un microcontrôleur et savoir faire de la programmation Web de base. Pour la programmation du microcontrôleur, voir l’article Primer dans MAKE, Volume 04 (page 158)ou mon livre Calcul physique: détecter et contrôler le monde physique à l'aide d'ordinateurs. Pour le composant Web, j'ai utilisé un script CGI (Common Gateway Interface) écrit en Perl, mais vous pouvez également écrire des scripts CGI en PHP, Python, Ruby et d'autres langages.

  1. Fils soudés aux contacts du solénoïde. Remarquez le cristal en bas et la «puce mystère» sous la goutte au centre (Figure 1).
  2. Les horloges de batterie bon marché fonctionnent généralement de la même manière (Figure 2).
  3. Vue arrière de l'horloge, montrant les trous percés dans le boîtier pour Ethernet, l'alimentation et le port USB-B pour la programmation de la carte à microcontrôleur Arduino (Figure 3).
  4. Vue de face de l'horloge, visage enlevé (Figure 4).

MATÉRIAUX

Voici ce que j'ai choisi pour les blocs de construction de base de mon horloge de messagerie.

Microcontrôleur J’ai utilisé le module Arduino (arduino.berlios.de), une petite carte d’entrée / sortie et un environnement de développement construit autour du microcontrôleur ATMega8 d’Atmel. Arduino est basé sur Wiring, un autre environnement de développement ouvert et facile, qui utilise la puce ATMega128. J'ai opté pour Arduino car je savais que je voulais éventuellement créer mon propre circuit imprimé personnalisé. L'ATMega8 est plus facile à souder que l'ATMega128.

Convertisseur série-à-Ethernet Au lieu de me préoccuper d'écrire ma propre pile TCP / IP pour la carte Arduino, j'ai utilisé du matériel pratique: le module série-à-Ethernet XPort de Lantronix. Ces modules peuvent acheminer des données entre une connexion Ethernet et un port série alimentant un microcontrôleur. Pour éviter un peu de soudure, je recommande également le Cobox Micro, qui a la même interface de programmation que le XPort (vous devez simplement entrer dans telnet), mais une interface physique plus simple.

J'aurais adoré construire une horloge mécanique, mais je n’avais pas le temps. J’ai donc repris les forces d’une horloge à pile bon marché et ai connecté son arbre d’entraînement au moyeu d’une jauge d’essai antique.

Diagramme système. Un script CGI interroge mes comptes de messagerie et renvoie un nouveau volume de courrier. Un microcontrôleur appelle le script et fait avancer les aiguilles de l’horloge en conséquence.

Le construire

J'ai commencé par chercher le moyen le plus simple de piloter l'horloge. J'ai soigneusement enlevé l'horloge et examiné le circuit imprimé à l'intérieur. Il y avait une puce mystère au milieu, scellée dans du plastique, mais j’ai trouvé que le mécanisme principal de l’horloge, qui commande tous les autres, est contrôlé par un solénoïde. Les deux terminaux de solénoïde étaient assez faciles à repérer, et j’ai pensé que tout ce que j’avais à faire était d’envoyer une impulsion par ces connexions, et que l’horloge ferait très bien tourner.

J'ai soudé quelques fils sur les contacts du solénoïde et remis l'horloge en place. Ensuite, j'ai pulsé le solénoïde directement avec une alimentation de 5 VCC, en contournant la puce mystère. Le moteur a sauté, mais l’horloge n’a pas tonné. De toute évidence, il y avait encore beaucoup à apprendre, aussi j’ai replacé la pile de l’horloge et connecté les dérivations à un oscilloscope pour voir l’évolution de la tension au fil du temps. Le motif était plus complexe que prévu. Chaque seconde, l’impulsion alternerait: haute-basse-zéro une seconde et basse-haute-zéro la suivante.

J'ai programmé le microcontrôleur pour dupliquer ce modèle et j'ai envoyé sa sortie dans l'horloge. Cela a pris quelques expériences, mais j'ai finalement eu le microcontrôleur pour contrôler assez bien l'horloge. Chaque tick généré a fait avancer l'horloge d'environ deux secondes. Comme je ne me souciais pas de garder le temps réel, c’était bien.

L'étape suivante consistait à faire vérifier le courrier par le microcontrôleur. Le XPort n'avait besoin que de trois fils connectés du côté du microcontrôleur: la réception série, la transmission série et une connexion de réinitialisation pour permettre au microprocesseur de redémarrer le port. Faire un circuit imprimé pour le XPort était un défi car ses broches ne suivent pas 1/ 10 "grid, le standard des amateurs de planches. J’ai donc utilisé le logiciel Eagle de CadSoft pour concevoir un tableau personnalisé dans lequel monter le module. Vous pouvez trouver le fichier de mise en page à l’adresse tigoe.net/emailclock.

Ensuite, j'ai configuré le XPort à partir de mon ordinateur portable via un câble de conversion USB / série. Suivant les instructions de Lantronix, je lui ai donné une adresse IP, une adresse de passerelle et un masque de sous-réseau. J'ai également configuré les paramètres du port série.

J'ai ouvert une fenêtre de terminal, mis une ligne téléphonique dans le XPort et entré «Hello World!» Pour confirmer que les messages passaient. Ensuite, j'ai quitté telnet et essayé de me connecter à mon serveur Web en entrant son adresse numérique (port 80) dans la fenêtre série:

C82.165.199.37 / 80.

Le XPort a confirmé en renvoyant un «C». J'ai répondu avec une requête HTTP pour une page Web sur mon serveur, http://tigoe.net/pcomp/index.shtml:

GET /pcomp/index.shtml HTTP / 1.1 HÔTE: tigoe.net

Le serveur a renvoyé l'en-tête HTTP et le contenu de la page demandée:

HTTP / 1.1 200 OK Date: mar 13 déc 2005 20:50:27 serveur GMT: Apache / 1.3.33 (Unix) Codage de transfert: chunked Content-Type: text / html ... et ainsi de suite.

Succès! En voyant cet échange de HTTP (Hyper Text Transport Protocol), la langue normalement cachée des navigateurs et des serveurs Web, je devais faire en sorte que XPort fonctionne comme navigateur. Maintenant, je devais obtenir que le microcontrôleur fasse de même: ouvrir une connexion Internet, demander une page et lire les résultats. Vous pouvez trouver mon code pour le faire à tigoe.net/emailclock. J’ai téléchargé le micrologiciel compilé à partir de mon ordinateur portable via le convertisseur série-USB intégré d’Arduino.

Le microcontrôleur ne demande pas de page HTML - il appelle un script CGI (interface de passerelle commune), également disponible sur le lien ci-dessus, qui vérifie tous mes comptes de messagerie, interroge le volume de nouveaux messages, ajoute les numéros et renvoie le total à celui qui le demande. Comme ce script n’attend pas d’être appelé à partir d’un navigateur, il ne formate pas ses résultats au format HTML. Pour minimiser la programmation nécessaire du côté des microcontrôleurs, les choses restent simples en ne renvoyant que l'en-tête HTTP et une ligne de texte:

.

Une fois que tout le système fonctionnait, j'ai trouvé un boîtier pour l'horloge: un bel appareil de test électronique ancien avec un trou derrière sa face en forme d'horloge pouvant accueillir un arbre de transmission. L'arbre de l'horloge se visse facilement et le module Arduino et le XPort s'intègrent parfaitement à l'intérieur. J'ai percé quelques trous à l'arrière pour les câbles d'alimentation et Ethernet, et l'horloge était prête.

Comment ça marche? Je vérifie toujours mon courrier électronique de manière compulsive, mais quelques heures ont été nécessaires à la construction de cette horloge, je n’ai pas du tout ouvert mon programme de messagerie!


Tom Igoe dirige l’informatique physique du programme de télécommunications interactives de l’Université de New York.

Références:

http://arduino.berlios.de

http://tigoe.net/emailclock

http://tigoe.net/pcomp/index.shtml

De MAKE 6 - Page 117. Pour obtenir MAKE, abonnez-vous ou achetez des volumes uniques.

Part

Laisser Un Commentaire