Étape 3: Programmation l’Edison (IDE Arduino)
Les LEDs
Le premier volet, que nous devons faire fonctionner est la bande de LED. Dans ce cas, nous utilisons une bande de 1 mètre de APA102 qui a 36 LEDs adressables individuellement. Nous utilisons ces plutôt que les bandes de WS2811/WS2812 plus populaires car ils utilisent des fils séparés pour leurs signaux d’horloge et de données. Les différentes versions du microprogramme Intel Edison ont des problèmes qui les rendent difficile en interface avec les bandes de 3 fils LED, donc utilisant les bandes de WS2811/WS2812 est problématique.
Pour contrôler la bande de LED, il faut quatre épingles sur le GPIO comme illustré ici :
GND--> GND
DI -> PIN 11 (MOSI)
CI--> PIN 13 (SPI horloge)
5V--> 5V
L’enjeu ici est d’identifier les broches appropriées sur la carte Arduino Edison. Le Kit d’Edison Intel pour Arduino Hardware Guide ( http://download.intel.com/support/edison/sb/ediso... ) identifie ces broches que celles nécessaires pour "Envoyer des données SPI" (broche 11) et "SPI horloge contrôle" (13 broches).
Maintenant que les broches appropriées sont identifiés, il faut écrire du code pour pousser les LEDs. Aucun des bibliothèques existantes comme FASTLED ou NeoPixel fonctionne avec le APA102s et l’Edison donc nous aurons besoin d’un code personnalisé. La meilleure explication que j’ai trouvé est dans les forums communautaires d’Intel ici : https://communities.intel.com/message/335874#3358... . Fondamentalement, nous devons créer un objet de mémoire tampon et ensuite affecter les valeurs de couleur RVB en les passant à travers la mémoire tampon. Une fois que vous avez la bande APA102 connectée aux broches comme décrit, vous pouvez exécuter le code suivant pour tester le système. Notez que puisque nous utilisons seulement un couple des LED à la fois dans le projet final, nous ne sera pas utiliser une alimentation externe.
ÉCRAN LCD
L’écran LCD que nous utilisons est le « Grove - rétro-éclairage LCD RVB. » Il s’agit dans le cadre de la Grove Starter Kit Plus de SeeedStudio et est également disponible séparément. Pour le connecter à l’Edison, nous utiliserons le « bouclier de Base Grove » et un des quatre fils câbles inclus. Une fois qu’il est connecté, vous devrez télécharger la bibliothèque « Grove_LCD_RGB_Backlight » Arduino : https://github.com/Seeed-Studio/Grove_LCD_RGB_Bac... . Vous devrez alors mettre une copie du répertoire « bibliothèques » pour votre installation IDE Arduino. Une fois que vous obtenez les fichiers de bibliothèque en place, vous devez exécuter le « fade » ou « HelloWorld » exemples de scripts comme illustré dans l’image.
Serveur de réseau
L’Edison Intel est livré avec toutes les fonctionnalités d’un bouclier Arduino WIFI, donc aucun matériel supplémentaire ou des boucliers ne sont nécessaires pour le côté Arduino de l’Edison pour accéder les systèmes WIFI. Maintenant, nous avons juste besoin d’installer leur place et testez-les. Pour ce faire, vous allez ouvrir l’IDE Arduin et exécutez l’esquisse de l’exemple « SimpleWebServerWIFI. » Si l’installation de votre Arduino IDE n’est pas venu installée avec les croquis « wifi », vous pouvez les télécharger depuis github ( https://github.com/codebendercc/arduino-library-f... ). Maintenant, il vous suffit de personnaliser l’esquisse SSID de votre réseau (nom) et mot de passe, et vous devriez être bon.
Reconstituer les
Maintenant, nous avons juste besoin d’écrire un sketch qui permettra d’utiliser toutes les pièces que nous avons juste le programme d’installation. Voici l’esquisse que vous aurez besoin :
https://github.com/nam37/weathergrid/BLOB/Master/W...
J’ai essayé de l’esquisse à répondre à vos questions en commentaire, mais voici un aperçu rapide de l’esquisse.
- Les lignes d’abord 70 ou alors définissent les constantes nécessaires, définissent certaines variables nécessaires et « comprennent » les bibliothèques nécessaires.
- Les lignes suivant 100 ou plus sont les principaux « boucle » de l’esquisse. Ici le webserver initialisé est en attente pour les connexions entrantes. Lorsqu’une connexion est rencontrée, il tente de l’identifier comme un code de temps « WW » ou un code de température « ZZ ». Si ou l’autre de ces comme trouvé ensuite la bonne LED s’allument et/ou le message approprié est affiché sur l’écran LCD.
- Le reste de l’esquisse se compose d’une collection de fonction utilisée pour contrôler les LEDs et l’écran LCD.
Une note sur la persistance...
Certaines versions de microprogramme Intel Edison ont un bogue qui pauses Arduino croquis persistance. Si vous trouvez que vos scripts Arduino ne sont pas automatiquement être rechargées au redémarrage, vous aurez besoin à cette adresse. Il y a un grand fil dans la communauté de Intel Edison qui traite de cela ici : https://communities.intel.com/thread/77945