Table des matières:

Twitter Watcher, le #twatch : 6 étapes (avec photos)
Twitter Watcher, le #twatch : 6 étapes (avec photos)

Vidéo: Twitter Watcher, le #twatch : 6 étapes (avec photos)

Vidéo: Twitter Watcher, le #twatch : 6 étapes (avec photos)
Vidéo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembre
Anonim
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch
Twitter Watcher, le #twatch

Le #twatch fait défiler les derniers sujets tendances de Twitter sur un écran LCD. Il s'agit d'une appliance réseau autonome qui reste à jour sans PC. C'était génial de regarder #iranelection, Michael Jackson et d'autres événements historiques défiler pendant que nous développions le #twatch. Ce Instructable documente le matériel et la conception de #twatch. En plus d'un ticker de tendance Twitter, le #twatch est également un sac à dos LCD ethernet générique. Il affichera les listes de lecture, les statistiques du PC et d'autres informations avec des programmes comme LCD Smartie. Il est également évolutif par logiciel, il n'est donc jamais obsolète. Le #twatch est open source, vous pouvez donc télécharger nos designs et créer les vôtres. Seeed Studio a quelques packs LCD #twatch ethernet assemblés pour 45 $, y compris l'expédition dans le monde entier. Obtenez-les tant qu'ils durent parce que nous n'en ferons pas plus bientôt. Si vous avez raté ce projet, inscrivez-vous ici pour être informé des futures précommandes #twatch. Voir cet article avec sa mise en forme originale sur DangerousPrototypes.com, plus de discussion sur le forum #twatch. Nous vous enverrons un PCB #twatch gratuit si vous êtes le premier à tweeter le #twatch !Présentation du conceptLe #twatch récupère les derniers sujets tendances de Twitter, puis charge quelques tweets pour chacun. Les sujets tendances et les tweets défilent sur un écran. La #twatch récupère les nouvelles tendances et tweets toutes les cinq minutes pour que vous voyiez toujours les derniers sujets tendances. Nous avons également ajouté un mode sac à dos Ethernet générique, afin que la #twatch puisse également afficher les statistiques du PC à partir d'un programme comme LCD Smartie, plus d'informations sur cette fonctionnalité dans la partie 2.

Étape 1: l'utiliser

En l'utilisant
En l'utilisant

Le #twatch est facile à utiliser.

  • Connectez-le à un réseau Ethernet domestique avec accès Internet. Le #twatch nécessite une configuration réseau automatique (DHCP), c'est le paramètre par défaut sur presque tous les réseaux domestiques modernes.
  • Allumez-le. La #twatch nécessite une alimentation CC 6-7 volts. Il utilise une prise d'alimentation CC de 2,1 mm, le type le plus courant. Les alimentations CC universelles doivent inclure une prise de 2,1 mm.
  • Ajustez le contraste. Les écrans LCD changent avec la température et l'âge, utilisez la vis de réglage pour ajuster le contraste de l'écran.
  • Le #twatch configurera les paramètres réseau et commencera à faire défiler les derniers sujets tendances et quelques tweets de chacun. Vous devrez peut-être ajuster à nouveau le contraste pour un effet de défilement plus net.

Obtenez les mises à jour #twatch sur le blog Dangerous Prototype.

Étape 2: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Nous avons utilisé la version gratuite de Cadsoft Eagle pour réaliser le circuit et le PCB. Téléchargez les derniers fichiers à partir de la page de code Google du projet. Cette section a perdu beaucoup de mise en forme chez Instructables, vous pouvez voir la version originale ici. Microcontrôleur Ethernet PIC 18F67J60 Le Microchip PIC 18F67J60 est parfait pour ce projet car il combine une interface réseau Ethernet et un microcontrôleur 41MHz (10MIPs) dans un petit boîtier pour seulement quelques dollars. Il n'est disponible qu'en boîtiers 64 broches + TQFP, mais nous n'avons eu aucun problème à le souder à la main à un PCB professionnel. Le PIC nécessite une alimentation de 3,3 volts. La partie Ethernet est vraiment gourmande en énergie, nous avons donc utilisé un régulateur géant TO-220 LD117-3,3 volts (VR1). Nous avons choisi un gros régulateur car il pourrait avoir à dissiper un tas de chaleur en fonction de l'alimentation d'entrée. Le régulateur nécessite un petit condensateur de découplage d'entrée (C15) et un grand condensateur de sortie de 10uF (C3). Il y a un gros problème avec ces puces: elles ne peuvent être programmées qu'une centaine de fois. Cela rend le développement difficile, nous avons donc également conçu une version de développement de #twatch basée sur une puce différente. Plus d'informations sur cette conception dans un futur article. Chaque broche d'alimentation PIC reçoit un condensateur de découplage de 0,1 uF (C17-C23). Le PIC dispose d'un régulateur interne de 2,5 volts pour le microcontrôleur et les noyaux Ethernet, le régulateur nécessite un condensateur au tantale de 10 uF (C1). Le PIC est programmé via un en-tête ICSP à 5 broches. La broche de réinitialisation MCLR est maintenue haute avec une résistance de rappel de 10K (R21), une résistance supplémentaire (R4) et un condensateur (C16) recommandés par la fiche technique offrent une protection contre diverses conditions de réinitialisation accidentelle. La section Ethernet exige un cristal externe de 25 MHz (Q1). Deux condensateurs 33pF (C4, C5) complètent le circuit de l'oscillateur. Nous avons utilisé une prise ethernet avec aimants intégrés (J2). La prise est une HanRun HR911105A, fournie par Seeed Studio - assurez-vous d'avoir la même prise, une prise compatible, ou ajustez le PCB pour une prise que vous pouvez trouver. L'interface Ethernet nécessite un circuit de terminaison (R30-33, C10-11, L1) et une résistance de polarisation de 2,28 Kohms à 1 % (R7, non illustré). Écran LCD à caractères HD44780 La #twatch prend en charge un écran LCD « standard » de 4 lignes par 20 caractères 5 volts HD44780 avec un rétroéclairage de + 5 volts. Vous pouvez généralement les trouver pour environ 10 $ sur eBay. Assurez-vous de vérifier que votre écran LCD correspond au brochage #twatch avant de le fixer. La plupart des écrans LCD sont identiques, mais pas tous. Presque tous les écrans LCD à caractères fonctionnent à 5 volts, nous fournissons donc une alimentation de 5 volts à partir d'un régulateur 7805 commun (VR2, C14, C2). L'écran LCD avec rétroéclairage pourrait potentiellement utiliser beaucoup de courant, nous avons donc utilisé un autre grand régulateur To-220. C12 est un condensateur de découplage pour l'alimentation LCD, mais les LCD ont déjà un découplage intégré. C12 n'a pas besoin d'être rempli, nous l'avons juste inclus en cas de problèmes de stabilité. Pour une vitesse de rafraîchissement maximale, l'écran LCD est contrôlé via l'interface 8 bits complète. La plupart des écrans LCD sont des pièces de 5 volts qui nécessitent environ 4,25 volts + pour enregistrer un niveau élevé sur les broches de données, mais le PIC 18F65J60 n'est qu'une pièce de 3,3 volts. Heureusement, le PIC a un tas de broches tolérantes à 5 volts afin que nous puissions maintenir le signal à 5 volts avec une résistance de rappel de 10K (R10-R19), puis le mettre à la terre en modifiant le réglage de la direction des broches PIC. C'est ce qu'on appelle généralement une sortie à drain ouvert. Certains écrans LCD plus récents fonctionnent à 5 volts, mais fonctionnent toujours à des niveaux d'interface de 3,3 volts. Le #twatch prendra en charge ce mode si vous omettez R10-19 afin qu'aucune tension de rappel ne passe sur les broches, et modifiez le firmware pour basculer le registre LAT au lieu du registre TRIS dans HD44780.c. Le contraste de l'écran LCD est contrôlé par une tension de polarisation, généralement générée avec un potentiomètre de 10Kohm. Le PCB #twatch a des empreintes pour un pot SMD de 3 mm peu coûteux (R2) et un deuxième espace pour utiliser un pot traversant plus grand (R2A). Un seul doit être rempli ! Juste au cas où il y aurait du bruit dans l'alimentation de tous les éléments Ethernet, nous filtrons la tension de polarisation à travers une petite perle de ferrite (L2). Nous avons également inclus un condensateur pour un filtrage supplémentaire (C13), mais nous ne l'avons pas utilisé car aucun élément n'est réellement nécessaire. Le #twatch peut contrôler de simples rétroéclairages de +5 volts jusqu'à 400 mA environ. Le PIC commute un transistor (NPN1) à travers une résistance de limitation de courant de 240 ohms (R3, non illustré). Nous avons utilisé un transistor pouvant gérer 800mA+ avec un gain de 250hfe+, de sorte que le PIC peut commuter une charge importante avec son courant de sortie de broche maximum de 20mA. R1 est une résistance de limitation de courant pour le rétroéclairage LCD, si nécessaire. Nous avons utilisé une résistance traversante pour qu'elle puisse dissiper beaucoup de chaleur avec de gros rétroéclairages, et parce que c'est la taille la plus facile à trouver localement et à souder soi-même. Si votre rétroéclairage ne nécessite pas de résistance, remplacez simplement R1 par un morceau de fil. Notre écran LCD nécessitait une résistance de 3 ohms pour une alimentation de rétro-éclairage de 240 mA. Certains rétro-éclairages utilisent beaucoup d'énergie, nous avons donc placé les broches d'alimentation juste à côté de l'alimentation et renforcé le plan de masse avec un tas de VIA. Certains rétroéclairages LCD sophistiqués nécessitent des circuits de commande spéciaux, alors assurez-vous que le vôtre utilise une simple alimentation de +5 volts pour éviter tout dommage. Alimentation La #twatch nécessite une alimentation de 6 à 7 volts via une prise d'alimentation de 2,1 mm (J1). Les fiches de 2,1 mm sont la taille la plus courante et devraient être fournies avec chaque alimentation universelle. Plus la tension d'alimentation que vous utilisez est élevée, plus la chaleur doit être dissipée par VR1 et VR2. N'oubliez pas que le #twatch est un prototype de tableau d'apprentissage, ce n'est pas un produit commercial complet et testé. Prenez les précautions de sécurité appropriées et ne le faites pas fonctionner sans surveillance.

Étape 3: PCB et liste de pièces

PCB et liste de pièces
PCB et liste de pièces
PCB et liste de pièces
PCB et liste de pièces

Nous avons utilisé la version gratuite de Cadsoft Eagle pour faire le schéma et le PCB. Téléchargez les derniers fichiers à partir de la page Google Code du projet. Le PCB est une conception à 2 couches avec de petites traces et une séparation (10 mil) autour de la puce PIC TQFP à 64 broches. Nous avons préparé des gerbers et les avons envoyés au service PCB de Seeed Studio pour des travaux open source. Des PCB supplémentaires de notre commande sont disponibles dans la boutique Seeed Studio. Si vous achetez nos PCB supplémentaires, assurez-vous d'obtenir la prise Ethernet HanRun qui s'adapte à la carte. Étant donné que les trous de montage sur les écrans LCD 20x4 varient, nous n'avons pas essayé d'adapter le PCB aux trous LCD. Nous l'avons rendu aussi petit que possible, comme le sac à dos LCD en série de SparkFun, afin qu'il reste à l'écart des trous d'origine. Comme effet secondaire, ce n'est pas trop gênant derrière un écran plus petit comme cet écran LCD 16x2 chez Adafruit. Liste des pièces Cliquez pour une image de placement en taille réelle [PNG]. Pièce | Valeur | PackageIC1 PIC 18F67J60 TQFP-64C1-3 Condensateur au tantale 10 uF, 10 volts+ SMC_AC4, 5 Condensateur 33 pF 0805C10, 11, C14-23 Condensateur 0,1 uF 0805ICSP 5x 0,1" connecteur mâle J1 Prise d'alimentation SMD 2,1 mm SMDJ2 HR911105A Prise Ethernet RJ-45L1, L2 Ferrite perle, 200ma+ 0805NPN1 Transistor NPN, 250hfe+, 800ma+ SOT-23Q1 Cristal SMD 25MHz HC49UPR2(A) Résistance monotour 10K 3mm SMD ou trou traversantR3 Résistance 240 ohms 0805R4-6 Résistance 390 ohms 0805R7 2, résistance 260 ohms, 1% 0805R10 21 Résistance 10 000 ohms 0805R30-33 Résistance 49,9 ohms, 1% 0805VR1 Régulateur LDO 3,3 volts (LD1117) TO-220VR2 7805T Régulateur 5 volts TO-220HD44780-LCD LCD 20x4 HD44780 caractères

Étape 4: Micrologiciel

Micrologiciel
Micrologiciel
Micrologiciel
Micrologiciel
Micrologiciel
Micrologiciel

Le dernier téléchargement complet du firmware #twatch se trouve sur la page de code Google du projet. Le code est écrit en C et est compilé avec le compilateur de démonstration Microchip C18. Pile TCP/IP et fonctions réseau de base La pile TCP/IP « gratuite » de Microchip fournit toutes les fonctions réseau dont nous avons besoin pour exister sur un réseau domestique et récupérer les données de Twitter. La pile est open source et gratuite comme dans la bière, mais la licence Microchip interdit la distribution. En raison de problèmes de licence, nous mettons uniquement notre code source du domaine public dans le projet Google Code SVN, découvrez comment télécharger et compiler la source ici. La pile a un client Dynamic Host Configuration Protocol qui configure automatiquement les paramètres réseau à l'aide du DHCP serveur sur votre réseau local. Le #twatch nécessite un serveur DHCP, mais la grande majorité des réseaux et des routeurs l'ont activé. L'adresse IP, le masque, la passerelle et le premier serveur DNS sont affichés sur l'écran LCD jusqu'à ce que des données Twitter valides soient disponibles. La pile comprend également le serveur d'annonces de Microchip. Lorsque l'adresse IP est acquise par DHCP, le #twatch annonce son adresse IP avec un paquet de diffusion à tous les ordinateurs du réseau local. Utilisez l'utilitaire MCHPDetect.exe dans l'archive du projet pour afficher ces paquets. Enfin, nous avons inclus un serveur ping (IMCP). Utilisez n'importe quel client ping pour vérifier si le #twatch est actif sur le réseau. Client TCP Twitter Le programme de suivi des tendances Twitter est un simple client TCP, semblable à un navigateur Web, qui extrait les données des serveurs Web. L'API de Twitter nous fournira des données dans une variété de formats. Nous avons utilisé le format JSON léger car il est plus facile à décoder pour la puce PIC à faible consommation. Consultez JSONView si vous utilisez Firefox. Une fois que #twatch a configuré automatiquement les paramètres réseau, le client TCP de Twitter prend le contrôle et saisit les sujets tendances actuels.. Il recherche dans ce flux de données JSON et recherche la balise "name". Jusqu'à 10 sujets tendance sont copiés dans une mémoire tampon de 225 octets. Un tableau séparé stocke la position de fin de chaque sujet dans le tampon afin que nous puissions récupérer les sujets à l'étape suivante. Ensuite, #twatch recherche sur Twitter 2 tweets pour chaque sujet. Il ajoute chaque sujet à la fin de l'URL de recherche Twitter JSON, les caractères spéciaux tels que les espaces et la ponctuation sont encodés dans l'URL. Le client TCP analyse les résultats de la recherche et recherche les tweets qui suivent la balise "text". Les tweets ont plusieurs couches d'encodage. Nous décodons les caractères HTML réservés comme l'esperluette (&) et les guillemets ("") car l'écran LCD peut les afficher. Nous supprimons les caractères internationaux UTF8 car l'écran LCD HD44780 ne les a pas dans son jeu de caractères. Les tweets analysés et décodés sont stockés dans un tampon de 2 100 octets, un tableau supplémentaire marque le début et la fin de chaque tweet dans le tampon. L'espace RAM était un gros problème sur la puce 18F67J60, il n'a qu'environ 4000 octets au total, mais le tampon de 2 100 octets semble assez grand pour gérer 20 de taille moyenne tweets. Nous avons pris un soin particulier à nous protéger contre les problèmes de mémoire insuffisante et nous avons testé le client dans des conditions de RAM réduite pour nous assurer qu'il échoue normalement en cas d'erreur. Twitter est bien connu pour ses temps d'arrêt occasionnels. Si le #twatch ne peut pas se connecter à Twitter, il affiche un message d'erreur de connexion et les tentatives deux fois. S'il ne peut pas se connecter après trois tentatives, il attend cinq minutes avant de réessayer. Cela donne à Twitter une chance de résoudre ses problèmes sans être martelé par #twatch q ueries. Le #twatch saisit les nouvelles tendances et les tweets toutes les cinq minutes. Twitter limite le nombre de requêtes qu'un client peut faire, alors faites attention à ne pas actualiser plus souvent. Twitter permet 150 mises à jour de sujets tendances par heure et « beaucoup plus » de requêtes de recherche. Réseau LCD en mode sac à dos Serveur TCP Le #twatch peut également afficher des informations sur l'état du système à partir de programmes tels que LCD Smartie. Le #twatch a un serveur TCP sur le port 1337 qui accepte les commandes au format Matrix Orbital. Cela permet également de contrôler le rétroéclairage de l'écran LCD. Nous allons vous montrer comment rediriger LCD Smartie d'un port COM vers le serveur TCP #twatch dans la deuxième partie de notre article #twatch.

Étape 5: Bootloader pour les mises à niveau du micrologiciel réseau

Chargeur de démarrage pour les mises à niveau du micrologiciel réseau
Chargeur de démarrage pour les mises à niveau du micrologiciel réseau
Chargeur de démarrage pour les mises à niveau du micrologiciel réseau
Chargeur de démarrage pour les mises à niveau du micrologiciel réseau
Chargeur de démarrage pour les mises à niveau du micrologiciel réseau
Chargeur de démarrage pour les mises à niveau du micrologiciel réseau

La #twatch peut être mise à jour depuis un PC sur le réseau local grâce au bootloader internet de Microchip. N'oubliez pas que les PIC Ethernet 18F ne peuvent être programmés qu'une centaine de fois en moyenne, les mises à niveau sont donc quelque peu limitées. Nous n'avons pas encore épuisé une puce, mais nous n'avons atteint qu'environ 55 cycles au cours du développement. Si vous utilisez une toute nouvelle puce, vous devrez programmer le chargeur de démarrage dans le PIC18F67J60 via l'en-tête ICSP, puis vous pouvez télécharger le #twatch firmware sur le réseau. Programmez twatchv2-bl-vxx. HEX dans la puce avec un programmeur PIC comme un ICD2 ou un PicKit. Lorsque le #twatch s'allume, le chargeur de démarrage s'exécute avant le démarrage du programme principal. Le chargeur de démarrage vérifie la connexion entre les broches PGD et PGC de l'en-tête de programmation, illustrée dans l'image ci-dessus. S'il trouve une connexion, le bootloader prend le relais et attend que le nouveau firmware soit téléchargé. Il y a une très faible chance que le bootloader démarre accidentellement même sans cavalier entre les broches PGC et PGD. Cela n'endommagera pas la #twatch, débranchez simplement l'alimentation et réessayez. L'entrée accidentelle du chargeur de démarrage peut être évitée en déplaçant le cavalier sur une position afin qu'il connecte les broches PGD et GND. Le chargeur de démarrage #twatch utilise l'adresse IP 192.168.1.123 et le masque de sous-réseau 255.255.255.0. Votre ordinateur doit également avoir une adresse IP commençant par 192.168.1.xxx pour communiquer avec le #twatch. Nous avons choisi la gamme 192.168.1.xxx car c'est la valeur par défaut la plus courante pour les routeurs domestiques. Si votre ordinateur utilise une autre plage d'adresses IP, vous devrez l'ajuster temporairement avant de pouvoir effectuer la mise à jour. Comment procéder à la mise à niveau:

  • Assurez-vous que votre PC se trouve dans la même plage d'adresses IP et le même sous-réseau que le #twatch. Votre PC doit avoir une adresse IP dans la plage 192.168.1.xxx et un masque de sous-réseau de 255.255.255.0. L'adresse IP par défaut du chargeur de démarrage #twatch est 192.168.1.123, assurez-vous qu'aucun autre ordinateur connecté au même routeur n'utilise déjà cette adresse.
  • Débranchez l'alimentation #twatch.
  • Mettez un cavalier entre les broches PGC et PGD.
  • Branchez le câble réseau, si nécessaire, et branchez l'alimentation. L'écran peut être vide, avoir des blocs solides ou des déchets.
  • Utilisez un utilitaire TFTP pour envoyer le nouveau firmware à l'adresse IP #twatch, nous utilisons TFTP.exe à partir de la ligne de commande Windows.
  • La mise à jour TFTP signale un succès ou une erreur.
  • Débranchez l'alimentation, retirez le cavalier de mise à jour.
  • Rebranchez l'alimentation. Le #twatch devrait commencer à faire défiler les tweets. Si le bootloader démarre à la place, placez un cavalier entre les broches PGD et GND et réessayez.

Étape 6: Allez plus loin, obtenez le vôtre

Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre
Allez plus loin, obtenez le vôtre

Nous avons conçu la #twatch pour utiliser pleinement les ressources sur une seule puce, une conception étendue ajouterait des fonctionnalités mais serait plus chère. La #twatch pourrait suivre votre propre flux Twitter. Il faudrait un petit serveur Web pour entrer votre identifiant Twitter et une EEPROM externe pour stocker les informations de configuration. Le #twatch pourrait également stocker plus de tweets ou des informations supplémentaires sur chaque tweeter, telles que le nom et l'emplacement. Microchip ne fait pas de contrôleur Ethernet intégré avec plus de 4K de RAM, mais nous pourrions ajouter une SRAM externe pour stocker les tweets et les méta-infos des tweets. Le matériel mis à jour pourrait ajouter un en-tête d'E/S pour connecter les boutons avec LCD Smartie. Un 20 caractères par 4line LCD n'a pas beaucoup d'espace d'affichage. Nous avons conçu l'interface #twatch autour de cet espace limité. Un micrologiciel mis à jour peut gérer plusieurs tailles d'écran. Le chargeur de démarrage peut adopter l'adresse IP acquise par DHCP. Une future mise à jour du micrologiciel #twatch tirera parti de cette fonctionnalité pour des mises à niveau réseau plus faciles. La semaine prochaine, nous aborderons le serveur TCP compatible LCD Smartie intégré au #twatch. Obtenez-en un ! Quoi de neuf sur votre #twatch ? Si vous voulez un #twatch ou un PCB assemblé, voici quelques options:

  • Seeed Studio a quelques packs LCD #twatch ethernet assemblés pour 45 $, y compris l'expédition dans le monde entier. Obtenez-les tant qu'ils durent parce que nous n'en ferons pas plus bientôt. Si vous avez raté ce projet, inscrivez-vous ici pour être informé des futures précommandes #twatch.
  • Si vous souhaitez créer le vôtre, Seeed Studio vend les PCB #twatch v1 et v2 supplémentaires de notre commande. Assurez-vous d'obtenir une prise Ethernet de Seeed, ou assurez-vous de pouvoir en trouver une qui correspond au PCB. Nous parlerons de la v1 dans quelques jours, le schéma et le PCB sont dans le projet SVN.
  • Nous enverrons un PCB nu #twatch v2 gratuit aux 2 premières personnes qui tweetent le #twatch.

Si vous souhaitez vous impliquer, rejoignez le projet de matériel ouvert Dangerous Prototypes sur Google Code, ou venez discuter sur le forum #twatch. La semaine prochaine, nous vous montrerons comment rediriger les statistiques du système LCD Smartie vers le serveur TCP #twatch.

Conseillé: