Étape 4: Les matériels et logiciels
Matériel
Je me suis lassé de maintenir avec l’ensemble standard de composants de Grove. Cela réduit la variabilité dans la programmation et réduit le niveau d’effort d’obtenir quelque chose de branché assez rapidement. Les composants électroniques se composait de :
- Intel Edison
- Carte de dérivation Arduino
- Bouclier de base Grove
- Boutons de Grove
- Rétro-éclairage RGB LCD Grove
- Moteur Grove I2C
- Moteur pas à pas
- LED
- Pilote de EL Grove
Le bouclier de base fait trivial tous les branchements. Il y a très peu de travail à faire avec le matériel. L’essentiel du travail a été dans le logiciel essaie de faire avancer les choses pour parler les uns aux autres.
Logiciel
J’ai utilisé Node.js et Javascript depuis deux permettent d’itération d’un code très rapide, qu’il y avait beaucoup de. De plus, je sais que Javascript et Node.js ainsi lors de la programmation je pourrais mettre la majeure partie de mon énergie sur le comportement. J’ai aussi utilisé des promesses. Cela a aidé avec la nature asynchrone de certains des composants. Bien sûr, j’ai utilisé MRAA et UPM. Et même si je voulais vraiment utiliser Johnny-cinq ou Cylon.js, je suis resté loin d’eux, parce que je ne pensais pas qu'avoir le temps de les apprendre. Enfin, Pushbullet a été utilisé comme le bus de notification.
Dernières modifications ici : GitHub : Thinking of You
Node.js
Node.js est très simple à utiliser et à comprendre. Démarrer, exécuter du code init et ensuite créer une boucle de longue durée, semblable à la pompe de messages Windows d’autrefois et vous êtes prêt. Partir d’ici sur le système de répond aux événements.
Promesses
J’ai utilisé une implémentation rapide et efficace des promesses appelé Bluebird. Le code a semblé un peu moins encombré que si j’avais utilisé le langage standard de rappel. Edison ne semble pas avoir des problèmes avec cette bibliothèque, bien que je n’ai rien fait de vraiment compliqué ou ésotérique. J’ai utilisé juste les trucs de base et cela a fonctionné seulement. La raison principale pourquoi j’ai utilisé des promesses est parce que j’avais besoin de quelque chose comme fonction delay() de l’Arduino. Délais particulièrement aidèrent avec LED se fanant où afin de voir le changement qu'un retard doit se produire entre le changement de luminosité.
Pushbullet
Pushbullet est un système où notifications sur votre terminal peuvent être diffusées à vos autres périphériques ou ordinateurs. Ils fournissent une API qui permet, entre autres fonctionnalités, appareil d’une seule personne de communiquer à une autre personne périphérique ou ordinateur simplement en se référant à leur mail via un appel reste. Grâce à ce système, chaque personne aura besoin de leur propre clé API pour pouvoir envoyer et recevoir des notifications. Enfin, il y a un paquet de Node.js qui fournit une interface de programmation facile à utiliser à Pushbullet.
Composants
Affichage à cristaux liquides
UPM I2C LCD fournit un simple pour utiliser la classe pour piloter l’écran LCD. Par défaut, l’écran affiche la date et l’heure. Elle le fait en affichant la date et l’heure une fois par minute via une méthode d’intervalle. Quand un message de jouet il s’agit, il est affiché sur l’écran LCD. Pour attirer l’attention qu’un message est arrivé, l’arrière-plan change aléatoirement de couleur toutes les quelques secondes.
Moteur pas à pas
Le pilote automobile de Grove I2C contrôle le moteur pas à pas. Gap fournit grovemd, une classe facile à utiliser pour déplacer le moteur vers l’avant ou l’arrière-plan.
LED
La LED n’a rien de spécial. Il se connecte directement à une goupille PWM. Bien une résistance devrait être utilisée, j’ai choisi de ne pas pour utiliser l’un, comme il est rarement entièrement alimenté. Lorsqu’un message arrive, le LED se fanera dedans et dehors. Il obtient près de l’extrémité supérieure que pour une fraction de seconde.
Boutons
J’avais varié de succès avec les boutons de Grove. Sur cinq, deux échoué. Il semble qu’ils ont un déroulant intégré de circuit. C’était agréable. J’ai utilisé standard MRAA GPIO au lieu du bouton Grove UPM. Ce dernier n’a pas eu un mécanisme de rappel ISR qui a travaillé en Javascript (au moins il n’a jamais travaillé pour moi). J’avais espéré qu'ils seraient ont également fait l’effet rebondissant dans la bibliothèque GPIO. Pour compenser, j’ai juste utilisé un retard qui s’il y avait, cliquez sur les événements avec la période d’attente, ils ont été ignorés.
Panneau d’EL
EL est assez facile de travailler avec. Avec des panneaux, ils peuvent être coupés aux formes juste tant que suffisamment d’énergie circule vers le panneau. Tout ce qu’il me fallait juste un simple rectangle.