Adafruit NeoPixel

De EduTech Wiki
Version datée du 6 septembre 2022 à 15:21 par Kalli (discussion | contributions) (→‎Liens)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Introduction

Dans cet article nous décrivons le Flora RGB Smart NeoPixel version 2

Voir également:

Le pixel

Caractéristiques principales:

  • 12,5 mm de diamètre
  • 2,5 mm d'épaisseur totale
  • Protocole de vitesse 800 KHz
  • Conception enchaînée, ce qui signifie que vous pouvez en connecter plusieurs à une seule broche et les enchaîner
  • Alimentation 5-9VDC (peut fonctionner à 3,5V mais la couleur sera atténuée), courant constant 18,5mA par LED (~ 55mA max total par pixel)

Brancher un NeoPixel

Selon la page brancher des pinces crocodile (récupéré en juin 2022), un NeoPixel doit être connecté avec trois fils à une carte de type FLORA. Selon la carte, les possibilités de câblage peuvent être différentes. Par exemple. sur une GEMMA, vous avez moins de choix, mais le principe est le même :

  • Connectez le câble + à un pad VOUT (Volt Out)
  • Connectez le câble - à un pad GND (mise à la terre)
  • Connectez le câble de données à un pad d'entrée/sortie à usage général, par ex. A1.

Nous vous suggérons d'utiliser des couleurs standard pour vos câbles, c'est-à-dire le rouge pour le +, le noir pour le - et le jaune ou le blanc pour les données.

Câblage depuis un CPX

Câblage avec un Circuit Playground Express
Pads sur la carte NeoPixel Bande LED avec câbles
VOUT (puissance de sortie) + rouge
GND (ground/"sol" ou base) - noir
A1 (ou un autre pad d'entrée/sortie à usage général, c'est-à-dire A0 à A7) ↑ (flèche pointant vers l'intérieur) jaune ou blanc

Notez que A0 à A7 sont différents en ce qui concerne les autres fonctionnalités, vous pouvez donc aussi bien utiliser A1 à A3 car ils ne peuvent pas être utilisés pour autre chose que l'entrée/sortie numérique et l'entrée analogique.

Câblage depuis un GEMMA

Câblage avec un GEMMA
Pads sur la carte NeoPixel Bande LED avec câbles
VOUT (puissance de sortie) + rouge
GND (ground/"sol" ou base) - noir
D1 / ~A0 ou A1, A2 (sortie d'entrée à usage général) ↑ (flèche pointant vers l'intérieur) jaune ou blanc

Exemple MakeCode pour le Circuit Playground Express

Pour manipuler une bande de NeoPixels externes vous devrez :

  • Définir la bande
  • Utiliser les méthodes de bande pour définir les couleurs et d'autres choses. Ci-dessous, nous utilisons les méthodes "setPixelColor(index,color)" et "setAll (...)".

Cela fonctionne également avec un seul pixel. Au lieu d'utiliser des boucles pour itérer sur chaque pixel, travaillez simplement avec le pixel à l'index 0.

L'exemple suivant effectue les opérations suivantes :

  • Au démarrage, une courte animation de 5 secondes de la bande
  • Après cela, tout devient noir (off)
  • En appuyant sur le bouton A -> Tous les pixels seront bleus
  • En appuyant sur le bouton B -> Tous les pixels seront rouges
  • En appuyant sur la bande A3 (ou la bande de cuivre attachée) : Trois boucles qui s'allumeront avec des couleurs différentes. Après cela : tout est réglé sur jaune

Pour jouer avec cet exemple, copiez simplement le code ci-dessous, puis collez-le dans l'onglet de code JavaScript {} sur https://makecode.adafruit.com/#editor. Vous pouvez ensuite passer à l'éditeur de blocs. Assurez-vous de commencer à partir d'un nouveau projet.

// Button A down
input.buttonA.onEvent(ButtonEvent.Down, function () {
    // show blue on all pixels
    strip.setAll(0x0000FF)
})
// Button B down
input.buttonB.onEvent(ButtonEvent.Down, function () {
    // show red on all pixels
    strip.setAll(0xFF0000)
})
// A3 touched (you could add a strip of copper)
input.touchA3.onEvent(ButtonEvent.Down, function () {
    for (let index2 = 0; index2 <= strip.length(); index2++) {
        strip.setPixelColor(index2, 0xff0000)
        pause(100)
    }
    for (let index22 = 0; index22 <= strip.length(); index22++) {
        strip.setPixelColor(index22, 0x00ff00)
        pause(100)
    }
    for (let index3 = 0; index3 <= strip.length(); index3++) {
        strip.setPixelColor(index3, 0x0000ff)
        pause(100)
    }
    for (let index32 = 0; index32 <= strip.length(); index32++) {
        strip.setPixelColor(index32, 0xffff00)
    }
})
let strip: light.NeoPixelStrip = null
// mount an external Neopixel strip on pin A1 with 30
strip = light.createStrip(pins.A1, 30)
// show default animation for 5 seconds
strip.showAnimation(light.rainbowAnimation, 5000)
// Turn it off (make colors black)
for (let index = 0; index <= strip.length(); index++) {
    strip.setPixelColor(index, 0x000000)
}

Liens

Documentation générale officielle (à lire)

Tutoriels