Arduino 101 : Créer une robe LED à reconnaissance de motifs avec Intel Curie
Composants et fournitures
| Bandeau NeoPixel (ou LEDs RGB individuelles) | × | 1 |
| Arduino 101 | × | 1 |
| Bouton poussoir 12mm (SparkFun) | × | 1 |
| Résistance 10 kΩ | × | 1 |
| Fils de connexion (génériques) | × | 1 |
| Pile 9V | × | 1 |
| Connecteur 9V vers jack barrel | × | 1 |
| LEDs NeoPixel RGB Adafruit Flora (lot de 4) | × | 1 |
| Fil conducteur cousable | × | 1 |
Outils et machines nécessaires
- Pistolet à colle chaude
- Machine à coudre
- Fer à souder
Applications et services en ligne
- Arduino IDE
À propos de ce projet
Ingénieure et artiste, je combine science et art dans mes créations. Cette robe utilise le moteur de reconnaissance de motifs (PME) et l'accéléromètre de l'Intel Curie sur Arduino 101. Le Curie intègre des capacités de réseau neuronal, mais peu d'exemples PME existent. J'espère inspirer d'autres à exploiter cette fonctionnalité.
Le tissu utilise une page de ma bande dessinée : une scientifique et son robot observent le ciel. Lorsque la porteuse dessine un motif dans l'air, des LEDs disposées en constellations s'allument sur le tissu.
Instructions
Note : après la publication, j'ai amélioré le circuit électronique. Une méthode optimisée pour fixer les LEDs durablement est décrite après l'étape 3.
Mise à jour : Lors de démonstrations toute la journée, la pile 9V doit être changée toutes les 3 heures environ. La tension chute sous 9V, rendant la reconnaissance de motifs inefficace. La pile peut être réutilisée ailleurs.
Étape 1 : Préparer les LEDs
Découpez un bandeau NeoPixel Adafruit en segments et disposez-les en formes de constellations. Collez ou cousez-les sur le tissu de base. Vous pouvez aussi utiliser des LEDs RGB individuelles.
Étape 2 : Renforcer la structure
Ajoutez un tissu d'entoilage par-dessus et brodez les contours des constellations (optionnel). J'ai cousu un troisième tissu épais au dos, créant un sandwich à trois couches qui rigidifie l'ensemble.
Étape 3 : Souder les LEDs
Soudez les connexions. Avec des LEDs cousables, utilisez du fil conducteur. C'est un travail minutieux qui demande de la patience. J'ai créé quatre circuits séparés (Orion, Grande Ourse, Cygne, Cassiopée), chacun connecté à une broche différente de l'Arduino 101.
Méthode améliorée
Le tissu initial était trop souple, cassant les soudures. Voici la méthode robuste :
Positionner les LEDs
Utilisez du feutre (tissu épais qui tient bien la colle chaude). Disposez les LEDs pour qu'elles correspondent aux étoiles des constellations.
Planifier les LEDs et les fils
Collez les bandes LED par points sur le feutre (pas sur toute la longueur, pour laisser de l'espace pour les gaines thermorétractables). Coupez les fils à la bonne longueur et placez-les. Maintenez-les avec du ruban temporaire (pas de colle chaude encore) pour pouvoir ajuster lors du soudage.
Préparer tous les modules pour la couture
Après soudure et pose de gaines thermorétractables, collez solidement chaque constellation sur son morceau de feutre. J'ai préparé quatre modules distincts.
Tester !
Testez chaque circuit avec le sketch « NeoPixel Strandtest » avant d'aller plus loin. Le niveau est « Facile » scientifiquement, mais la stabilisation des câbles sur le tissu demande du travail.
Assurez-vous que l'Arduino IDE est à jour avec la bibliothèque Curie PME. L'éditeur web Arduino est recommandé.
Confectionner la robe
En parallèle, cousez la robe. Après validation du circuit, cousez les modules LED à l'intérieur de la robe ; la lumière traversera le graphisme.
L'Arduino 101 et la pile sont logés dans un boîtier imprimé 3D, porté à la main. Les longs fils passent dans la manche.
Le code ci-dessous programme la carte. Après le téléversement, entraînez d'abord les neurones pour qu'ils apprennent les motifs. Regardez la vidéo vers 0:30.
Pour plus de photos et projets tech-fashion, visitez mon site web.
Code
PME_4LED_new.ino (Arduino)
Version mise à jour qui stocke les données d'entraînement. Au démarrage, les LEDs s'allument en rouge. En maintenant l'Arduino 101 à plat (port USB horizontal) et en appuyant sur le bouton, les données précédentes sont restaurées (vert puis bleu = prêt). Si l'Arduino est tenu verticalement (port USB vertical) pendant l'appui, l'effacement des données permet un nouvel entraînement.
/* Démonstration du moteur de reconnaissance de motifs (CuriePME)
* pour classifier des flux de données accéléromètre.
* Dessinez des lettres dans l'air pour l'entraînement, puis le PME les reconnaît.
* Nécessite un bouton sur la broche digitale 4.
* Dessinez de grandes lettres (1-2 pieds) pour de meilleurs résultats.
*/
#include "CurieIMU.h"
#include "CuriePME.h"
#include
#include
#include
#define PINM 6
#define PINC 3
#define PINS 9
#define PINO 5
Adafruit_NeoPixel stripM = Adafruit_NeoPixel(10, PINM, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel stripS = Adafruit_NeoPixel(10, PINS, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel stripC = Adafruit_NeoPixel(10, PINC, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel stripO = Adafruit_NeoPixel(10, PINO, NEO_GRB + NEO_KHZ800);
// ... (code complet disponible sur GitHub)
PME_LED (Arduino)
Code générique combinant l'exemple « Draw in the Air » PME et le code Adafruit NeoPixel. Adaptez la distribution des broches selon votre disposition de LEDs.
/* Exemple utilisant CuriePME pour classifier des données accéléromètre
* et contrôler des LEDs NeoPixel. Basé sur l'exemple Draw in the Air.
*/
#include "CurieIMU.h"
#include "CuriePME.h"
#include
#define PIN 6
Adafruit_NeoPixel strip = Adafruit_NeoPixel(54, PIN, NEO_GRB + NEO_KHZ800);
// ... (code complet disponible sur GitHub)
Schémas
Connexion des LEDs aux broches Arduino 101 et bouton sur la broche 4 (voir tutoriel Arduino Button). Schéma similaire au Fritzing Adafruit : Basic Connections. La pile 9V se branche directement sur le jack barrel.
Processus de fabrication
- L'évolution et la production des patrons de couture industriels
- Éliminer les fils de liaison : Comment BreadShield connecte Arduino directement aux breadboards
- Projet capteur DHT11 température/humidité avec indicateurs LED et buzzer piézo
- Construire un Spybot Arduino piloté par Bluetooth
- FlickMote : Télécommande IR à gestes pour maison connectée
- TV-B-Gone DIY Arduino : Télécommande universelle pour toutes les TV
- Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
- Transformer votre Clavier MIDI en Tuteur Piano Intelligent avec Arduino, LED et MuseScore
- Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas