Outils pour utilisateurs

Outils du site


diy:grove:grove

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
diy:grove:grove [2020/04/03 17:27] jbpueldiy:grove:grove [2020/04/03 17:44] (Version actuelle) jbpuel
Ligne 5: Ligne 5:
 L'environnement Grove est composé d'éléments, capteurs et actionneurs, montés sur des cartes équipées d'un connecteur spécifique. L'environnement Grove est composé d'éléments, capteurs et actionneurs, montés sur des cartes équipées d'un connecteur spécifique.
  
-Par ailleurs, un shield de base Grove doit être installé sur la carte Arduino. Ce shield met à disposition ces mêmes connecteurs, numériques, analogiqueset I2C. Des cordons avec ces mêmes connecteurs sont utilisés pour relier les éléments à la carte.+Par ailleurs, un shield de base Grove doit être installé sur la carte Arduino. Ce shield met à disposition ces mêmes connecteurs, numériques, analogiques et I2C. Des cordons avec ces connecteurs sont utilisés pour relier les éléments à la carte.
  
-Chaque connecteur assure le câblage de 4 pins (5v, GND, et pins numérotées).\\+Chaque cordon assure le câblage de 4 pins (5v, GND, et pins numérotées).\\
 Par exemple, le connecteur numérique D3 correspond aux pins digital 3 et digital 4.\\ Par exemple, le connecteur numérique D3 correspond aux pins digital 3 et digital 4.\\
 Certains composants n'utiliseront que le pin digital 3, d'autres utiliseront digital 3 et 4. Prudence, donc, avec l'utilisation du connecteur suivant (D4 qui lui aussi utilise digital 4) ! Certains composants n'utiliseront que le pin digital 3, d'autres utiliseront digital 3 et 4. Prudence, donc, avec l'utilisation du connecteur suivant (D4 qui lui aussi utilise digital 4) !
Ligne 13: Ligne 13:
 ===== Utilisation d'un composant Grove ===== ===== Utilisation d'un composant Grove =====
  
-On trouve toutes les informations sur l'environnement ainsi qu'une fiche détaillée de chaque composant sur le wiki du fabricant, [[http://wiki.seeedstudio.com/Grove/|Seeedstudio]]. En règle générale, on y trouve un tutoriel pour utiliser le composant dans différents environnements (Arduino, Raspberry Pi etc...) mais également des liens permettant de télécharger les bibliothèques requises. Le plus souvent il s'agit de liens vers Github, proposant une archive zip qui sera directement ajoutée à la bibliothèque par l'IDE Arduino. +On trouve toutes les informations sur l'environnement ainsi qu'une fiche détaillée de chaque composant sur le wiki du fabricant, [[http://wiki.seeedstudio.com/Grove/|Seeedstudio]]. En règle générale, on y trouve un tutoriel pour utiliser le composant dans différents environnements (Arduino, Raspberry Pi etc...) mais également des liens permettant de télécharger les bibliothèques requises. Le plus souvent il s'agit de liens vers Github, proposant une archive zip qui sera directement ajoutée à la bibliothèque par l'IDE Arduino. Une fois la bibliothèque ajoutée à l'IDE, on dispose généralement de programmes d'exemple permettant de découvrir les différentes fonctions associées au composant
- +
-===== Programmes Grove ===== +
- +
-Cette [[diy:grove:programmes|page]] regroupe tous les programmes utilisant les composants Grove présentés ci-dessous.+
  
 ===== Tutoriels sur les composants ===== ===== Tutoriels sur les composants =====
Ligne 29: Ligne 25:
 [[diy:grove:autres|Autres composants]] [[diy:grove:autres|Autres composants]]
  
 +===== Programmes Grove =====
  
-==== Afficheur LCD RGB backlight ==== +Cette [[diy:grove:programmes|page]] regroupe tous les programmes utilisant les composants Grove présentés ci-dessus.
- +
-Une fois installée la bibliothèque dans l'IDE Arduino, on dispose de fichiers d'exemple permettant de tester les différentes commandes. +
- +
-<code C++> +
-#include <Wire.h> +
-#include "rgb_lcd.h" +
- +
-rgb_lcd lcd; // Déclare un objet de type rgb_lcd +
- +
-void setup() { +
-    lcd.begin(16, 2); // Fixe le nombre de colonnes (16) et de lignes (2) de l'afficheur +
-+
-</code> +
-Les fonctions suivantes sont disponibles pour l'objet lcd de type rgb_lcd +
-<code C++> +
-    lcd.setCursor(0, 1); // Place le curseur colonne 0, ligne 1 (la numérotation commence à 0,0) +
-    lcd.print("Hello, world!"); // Affiche une chaîne ou une variable +
-    lcd.clear(); // Efface l'écran et repositionne le curseur en (0,0) +
-    lcd.blink(); // Active le clignotement du curseur +
-    lcd.noblink(); // Désactive ce clignotement +
-    lcd.autoscroll(); // Active le scrolling  +
-    lcd.noAutoscroll(); // Désactive le scrolling +
-    lcd.cursor(); // Affiche le curseur +
-    lcd.noCursor(); // Ne l'affiche pas +
-    lcd.display(); // Eteint l'écran +
-    lcd.noDisplay(); // Allume l'écran +
-    lcd.setRGB(255, 128, 0); // Fixe la couleur de rétro-éclairage en RGB +
-    lcd.setPWM(couleur, i); // Fait varier couleur et intensité du rétro-éclairage, i dans [0,255] +
-    // Couleurs prédéfinies, en unsigned char : REG_RED, REG_GREEN, REG_BLUE +
-    lcd.blinkLED(); // Fait clignoter le rétro-éclairage +
-    lcd.noBlinkLED(); // Pas de de clignotement du rétro-éclairage +
-    lcd.scrollDisplayLeft(); // Décale l'affichage d'une position vers la gauche +
-    lcd.scrollDisplayRight(); // Pareil vers la droite +
-    // Ne gère pas le saut de ligne, mais le texte revient dans l'écran par le côté opposé à sa sortie +
-</code> +
-Enfin, on peut créer des caractère personnalisés. +
-<code C++> +
-// Créer le dessin avant le setup dans une grille de 5x8 pixels +
-byte dessin[8] = { +
-    0b00000, +
-    0b01010, +
-    0b11111, +
-    0b11111, +
-    0b11111, +
-    0b01110, +
-    0b00100, +
-    0b00000 +
-}; +
-lcd.createChar(n, dessin); // Dans le setup, affecte le dessin au caractère n° n +
-lcd.write(n); // Ensuite, affichage du caractère n +
-// Si besoin, forcer le type (unsigned char)n +
-</code> +
- +
-==== Télémetre Ultrasonic ranger ==== +
- +
-<code C++> +
-#include "Ultrasonic.h" +
- +
-Ultrasonic telemetre(7); // Déclare un objet de type Ultrasonic connecté sur D7 +
-</code> +
-ensuite +
-<code C++> +
-long distance; // En centimetres, plage de mesure 0 - 400 +
-distance = telemetre.MeasureInCentimeters(); // La fonction MeasureInInches() existe aussi +
-</code> +
- +
-==== Afficheur 4 chiffres ==== +
- +
-Dans la bibliothèque TM1637 fournie pour Grove, plusieurs fonctions d'affichage sont disponibles (voir exemples). Ici on utilise displayNum() dont le comportement présente une anomalie : les valeurs 0 ne sont pas affichées. Il est possible de modifier le fichier TM1637.cpp de la bibliothèque pour changer ce comportement. +
- +
-=== Avec la bibliothèque Grove (modifiée) === +
- +
- +
-<code C++> +
-#include "TM1637.h" +
- +
-// Définition des pins pour TM1637 : connecter sur D6 du shield Grove +
-const int CLK = 6; +
-const int DIO = 7; +
-TM1637 afficheur(CLK, DIO); +
- +
-void setup() { +
-  afficheur.init(); +
-  afficheur.set(BRIGHT_TYPICAL); // BRIGHT_TYPICAL = 2, BRIGHT_DARKEST = 0, BRIGHTEST = 7 +
-+
- +
-void loop() { +
-  int potar = analogRead(A0); +
-  int val = map(potar,0,1023,-50, 50); +
-  delay(150); +
-  afficheur.displayNum(val); +
-+
-</code> +
- +
-=== Avec la bibliothèque alternative === +
- +
-Bibliothèque de [[https://github.com/avishorp/TM1637|Avishay Orpaz]]\\ +
-[[https://www.makerguides.com/tm1637-arduino-tutorial/|Tuto]] complet avec cette bibliothèque. +
- +
-<code C++> +
-#include <TM1637Display.h> +
- +
-// Définition des pins pour TM1637 : connecter sur D6 du shield Grove +
-const int CLK = 6; +
-const int DIO = 7; +
- +
-TM1637Display afficheur(CLK, DIO); +
- +
-void setup() { +
-  afficheur.clear(); +
-  afficheur.setBrightness(2); +
-+
- +
-void loop() { +
-  int potar = analogRead(A0); +
-  int val = map(potar,0,1023, 0, 100); +
-  delay(150); +
-  afficheur.showNumberDec(val); +
-+
-</code> +
- +
-==== Afficheur Barre de LED ==== +
- +
-Cet afficheur est composé de 10 barres (Leds), 8 vertes, 1 orange et 1 rouge.\\ +
-On peut les piloter individuellement ou bien considérer qu'elles représentent un "niveau" entre 0 et 10, soit aucune barre allumée ou bien toutes les barres allumées respectivement, ainsi que toutes les valeurs intermédiaires. +
- +
-Pour définir individuellement l'état des barres, on utilise un masque binaire sur 10 bits. Par exemple le nombre binaire ''0b000000000000101'' soit 5 en décimal correspond à l'allumage des barres 1 et 3.\\ +
-C'est sous cette forme qu'est attendu le paramètre de la fonction setBits et le résultat renvoyé par la fonction getBits. +
- +
-Pour définir un niveau, c'est un entier entre 0 et 10.\\ +
- +
- +
-Le programme suivant utilise toutes les fonctions disponibles : +
- +
-<code C++> +
-#include <Grove_LED_Bar.h> +
- +
-Grove_LED_Bar barre(7, 6, 1, LED_BAR_10); // Clock pin, Data pin, Orientation, Type de barre) +
-// Orientation : 1 = Vert à Rouge, 0 = Rouge à Vert Autre type : LED_CIRCULAR_24 +
- +
-unsigned int etat; +
- +
-void setup() { +
-  barre.begin(); +
-  barre.setGreenToRed(1); // Change l'orientation : 1 = Vert à Rouge, 0 = Rouge à Vert +
-+
- +
-void loop() { +
-  // Adressage individuel des Leds : setBits, getBits, setLed, toggleLed +
-  barre.setBits(0x0); // Eteint toutes les LEDs +
-  delay(1000); +
-  barre.setBits(0x3ff); // Allume toutes les LEDs, 0b000001111111111 ou 1023 en décimal +
-  delay(1000); +
-  barre.setBits(0b000000000000001); // Allume LED 1 : peut aussi s'écrire 0x1 en hexa ou 1 en décimal +
-  delay(1000); +
-  barre.setBits(0b000000000010100); // Allume LED 3 et 5 : soit 0x14 en hexa ou 20 en décimal +
-  delay(1000); +
-  etat = barre.getBits(); // Lecture de l'état actuel de la barre +
-  etat <<= 1; // Décalage à gauche (Led 4 et 6) +
-  barre.setBits(etat); +
-  delay(1000); +
-  etat >>= 2; // Décalage de 2 positions à droite (Led 2 et 4) +
-  barre.setBits(etat); +
-  delay(1000); +
-  barre.setLed(1, 1); // Allume Led 1 +
-  barre.setLed(2, 0); // Eteint Led 2 +
-  barre.toggleLed(7); // Bascule Led 7 +
-  delay(2000); +
-  // Adressage des Leds par niveaux +
-  for (int i = 0; i <= 10; i++) { +
-    barre.setLevel(i); +
-    delay(500); +
-  } +
-  delay(1000); +
-+
-</code> +
  
diy/grove/grove.1585934840.txt.gz · Dernière modification : 2020/04/03 17:27 de jbpuel