Circuit Playground Classic, la carte tout-en-un d’Adafruit

Aujourd’hui, nous vous parlons de la carte tout-en-un d’Adafruit, la Circuit Playground Classic. Cette petite carte ronde de 5cm de diamètre, analogue à l’Arduino du point de vue programmation, intègre en plus des capteurs, des boutons, des LEDs RVB et un mini haut-parleur. Ce qui va vous permettre de faire d’innombrables applications sans besoin de soudure ni de module complémentaire !

Vous découvrirez ici un résumé du contenu de la carte, puis apprendrez à la programmer avec le logiciel Arduino IDE.

Contenu de la Circuit Playground Classic

Passons donc en revue les éléments intégrés dans la Circuit Playground:

  • Le microcontrôleur est un ATmega32u4, le même qu’on retrouve sur les Arduino Leonardo, Micro, Yun, etc.
  • L’alimentation se fait soit avec le 5V du port usb, soit via le port d’alimentation externe qui permet d’utiliser vos batteries à piles, LiPo, etc. avec une tension admissible de 3.5V à 6.5V.
  • Du côté des capteurs, et c’est là que ça devient intéressant, on trouve :
    • Un microphone,
    • Un capteur de lumière,
    • Un capteur de température,
    • Et même un accéléromètre !
  • Pour finir :
    • 10 LEDs RVB
    • 8 pads pouvant au choix:
      • accueillir des pinces crocodiles et servir de GPIOs
      • agir comme des touches tactiles capacitives
    • Un mini haut-parleur (tonalité uniquement)
    • Un interrupteur
    • 2 boutons poussoirs

Rien que ça !

Maintenant que les présentations sont faites, voyons comment la prendre en main. Nous allons commencer par vérifier la carte fraîchement sortie de son emballage, puis nous allons mettre en place l’interface de programmation Arduino IDE pour enfin s’essayer à la programmation.

Première mise sous tension

Nous commençons par vérifier le bon fonctionnement de la carte en faisant les manipulations suivantes:

  1. Mettez la carte sous tension, et vérifiez que la LED verte ON s’allume (à côté du port usb). Il est possible qu’une séquence d’allumage des LEDs RVB préprogrammée en usine se lance, c’est normal.
  2. On va maintenant vérifier que le bootloader est bien chargé en appuyant 2 fois sur le bouton Reset de la carte. Si la LED rouge #13 clignote une dizaine de fois environ 1 fois par seconde, c’est bon !

Mise en place d’Arduino IDE

On va supposer que vous avez déjà Arduino IDE installé sur votre ordinateur. Si ce n’est pas le cas, vous le trouverez sur le site officiel Arduino. Il sera plus pratique d’utiliser la dernière version d’Arduino IDE, puisque la carte et la librairie dont nous aurons besoin y sont déjà présentes.

La mise en place va se faire en 3 étapes :

  1. Vérifier que la carte est bien reconnue sur le port USB
  2. Ajouter la carte Circuit Playground dans Arduino IDE
  3. Ajouter la librairie Adafruit dédiée à la carte (optionnel)

1. Ouvrez Arduino IDE et vérifiez que la Circuit Playground est bien reconnue dans la liste des ports. Si ce n’est pas le cas, téléchargez et installez Windows Driver Software sur le site de Adafruit.

2. Ajoutez la carte Circuit Playground comme suit :

  • Allez dans Outils / Type de carte / Gestionnaire de carte,
  • Cherchez le package « Adafruit AVR Boards » et installez le,
  • Si le package n’est pas présent (ancienne version de l’IDE),
    • Ouvrez les préférences (Fichier / Préférences)
    • Ajoutez l’URL suivante au gestionnaire de cartes supplémentaires
      https://adafruit.github.io/arduino-board-index/package_adafruit_index.json
    • Fermez et relancer Arduino IDE, et retourner dans le gestionnaire de carte
  • Vous pouvez maintenant sélectionner la carte Adafruit Circuit Playground dans le menu Outils / Type de carte

3. Adafruit met à disposition une librairie dédiée aux Circuits Playgrounds permettant de « prémâcher » le travail de programmation. Elle est déjà installée sur les dernières versions de l’IDE, mais sinon il suffit d’aller dans Croquis / Inclure une bibliothèque / Gérer les bibliothèques, puis de chercher la librairie « Adafruit Circuit Playgound » et enfin de l’installer.

Un 1er programme: demo

Nous allons téléverser un premier programme qui permet de démontrer les possiblités de la carte:

  • Connectez la carte sur l’ordinateur en USB
  • Allez dans Fichier / Exemples / Adafruit Circuit Playground et ouvrez l’exemple « demo »
  • Vérifiez que le type de carte et le port série sont bien réglés sur « Adafruit Circuit Playground » dans le menu Outils
  • Cliquez sur « Téléverser »
  • Ouvrez le moniteur série et ajustez la fréquence à 9600 baud

Vous devriez voir l’écran ci-dessous.

Vous pouvez maintenant manipuler la carte et observer ses réactions sur le moniteur série. Par exemple:

  • Éclairez la carte : la valeur « light sensor » augmente,
  • Posez le doigt sur la thermistance A0 : c’est la valeur « Temperature » qui augmente,
  • Posez le doigt sur les pads : les valeurs « Capsense » correspondantes augmentent,
  • Inclinez la carte à la verticale, les valeurs de l’accéléromètre vont varier et vous pourriez ainsi estimer l’axe d’inclinaison de la carte,
  • Testez l’interrupteur,

Bref ! Vous pouvez testez les capteurs, les boutons, les LEDs et il est très facile d’aller voir dans le code la commande qui permet de lire telle ou telle valeur et de gérer les LEDs ou le son.

Un 2ème programme: Lumière de bougie

Ici, nous allons écrire un programme dont le but est de commander les LEDs RVB de manière à simuler un éclairage de bougie.

Le programme consiste simplement à affecter à chaque cycle, une intensité lumineuse aléatoire pendant une durée aléatoire.

Si vous voulez l’essayer, il suffit de copier/coller le code ci-après dans une nouvelle fenêtre Arduino IDE et de téléverser le programme. Et … c’est tout ! Pas de breadboard, ni branchement, ni soudure. CQFD 😉


// mode debug
#define DEBUG 0 // Affiche des infos sur le port série si décommentée

// Ajout de la librairie dédiée
#include "Adafruit_CircuitPlayground.h"

// Variables d'intensité lumineuse
byte intensite = 128; // valeur initiale
byte intensiteMin = 10; // minimum
byte intensiteMax = 210; // maximum

// Variables temporelles
unsigned long temps = 0;
int delai = 100; // valeur initiale
int delaiMin = 100; // minimum
int delaiMax = 300; // maximum

// Couleur LED
uint32_t color = 0xFF2500; // valeur RVB en hexadécimal

// Initialisation de la carte
void setup() {
#ifdef DEBUG
    Serial.begin(9600);
#endif
    CircuitPlayground.begin();
    CircuitPlayground.setBrightness(intensite);
}

// Boucle principal
void loop() {
#ifdef DEBUG
    Serial.print("intensité = "); Serial.println(intensite);
    Serial.print("delai     = "); Serial.println(delai);
#endif
    // Si le délai est dépasser, on change l'éclairage
    if (millis() - temps >= delai) {
        // On règle la couleur sur les 10 LEDs
        for(int i=0; i<10; i++) {
            CircuitPlayground.setPixelColor(i, color);
        }
        // On ajuste la luminosité
        CircuitPlayground.setBrightness(intensite);
        // On change les variables luminosité et délai aléatoirement
        intensite = random(intensiteMin, intensiteMax);
        delai = random(delaiMin, delaiMax);
        // On met le nouveau temps en mémoire
        temps = millis();
    }
    // On attend un peu avant de reboucler
    delay(5);
}

Voilà ce que ça donne …

 

Et pour aller plus loin :

  • Vous pouvez améliorer la simulation d’une bougie en vous basant sur le principe mathématique des fractales avec le code du Jack o’ lantern. Le réalisme obtenu est vraiment bluffant !
  • Pour développer vos propres applications, n’hésitez pas à vous servir des exemples de code disponible dans Fichier / Exemples. Vous pouvez aussi vous référer au guide d’Adafruit et à la documentation publiée par caternuson en attendant qu’Adafruit publie sa version officielle.

Bonne récréation !

2 réflexions au sujet de « Circuit Playground Classic, la carte tout-en-un d’Adafruit »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *