Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Changeur de couleur RGB activé par mouvement – Projet Arduino

Composants et fournitures

SparkFun APDS-9960 (capteur gestuel, proximité, lumière RVB) × 1
Fils de connexion (génériques) × 1
Arduino UNO × 1
Résistance 4,75 kΩ × 1
LED RVB diffuse cathode commune × 1

Applications et services en ligne

À propos de ce projet

Ce projet vous permet d'exploiter la puissance de vos mouvements pour contrôler une LED RVB. Vous aurez besoin du SparkFun APDS-9960 et d'une LED RVB à cathode commune (pas anode). Utilisez une carte Arduino 5V avec des résistances de 4,7 kΩ, car ce capteur utilise le protocole I2C. Connectez selon le schéma. Vous pouvez ajouter des couleurs personnalisées dans le code ; j'en ai déjà mis 6. Les commandes par défaut sont :

Ce code peut être adapté à de nombreux autres types de projets ! N'hésitez pas à expérimenter et créer vos propres projets. Bon making !

Changeur de couleur RGB activé par mouvement – Projet Arduino

Code

Code Arduino C/C++
#include  #include 

// Broches
#define APDS9960_INT 2 // Doit être une broche d'interruption

// Constantes
int red_pin = A0;
int green_pin = A1;
int blue_pin = A2;
int onOff_flag = 0;
int colorNumber = 0;

// Variables globales
SparkFun_APDS9960 apds = SparkFun_APDS9960();
int isr_flag = 0;

void setup() {
  pinMode(APDS9960_INT, INPUT);
  Serial.begin(9600);
  Serial.println(F("--------------------------------"));
  Serial.println(F("SparkFun APDS-9960 - Test Gestuel"));
  Serial.println(F("--------------------------------"));
  attachInterrupt(0, interruptRoutine, FALLING);
  if ( apds.init() ) {
    Serial.println(F("Initialisation APDS-9960 terminée"));
  } else {
    Serial.println(F("Erreur lors de l'initialisation APDS-9960 !"));
  }
  if ( apds.enableGestureSensor(true) ) {
    Serial.println(F("Capteur gestuel en cours d'exécution"));
  } else {
    Serial.println(F("Erreur lors de l'initialisation du capteur gestuel !"));
  }
  pinMode(A0, OUTPUT); pinMode(A1, OUTPUT); pinMode(A2, OUTPUT);
  analogWrite(A0, 0); analogWrite(A1, 0); analogWrite(A2, 0);
}

void loop() {
  if( isr_flag == 1 ) {
    detachInterrupt(0);
    handleGesture();
    isr_flag = 0;
    attachInterrupt(0, interruptRoutine, FALLING);
  }
  if (onOff_flag == 1){
    switch (colorNumber){
      case 0: Serial.println("rouge"); analogWrite(red_pin, 255); analogWrite(green_pin, 0); analogWrite(blue_pin, 0); break;
      case 1: Serial.println("bleu clair"); analogWrite(red_pin, 255); analogWrite(green_pin, 153); analogWrite(blue_pin, 204); break;
      case 2: Serial.println("bleu foncé"); analogWrite(red_pin, 100); analogWrite(green_pin, 0); analogWrite(blue_pin, 170); break;
      case 3: Serial.println("vert"); analogWrite(red_pin, 0); analogWrite(green_pin, 255); analogWrite(blue_pin, 0); break;
      case 4: Serial.println("bleu"); analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 255); break;
      case 5: Serial.println("violet"); analogWrite(red_pin, 191); analogWrite(green_pin, 0); analogWrite(blue_pin, 255); break;
    }
  } else {
    analogWrite(red_pin, 0); analogWrite(green_pin, 0); analogWrite(blue_pin, 0);
  }
  delay(1000);
}

void interruptRoutine() { isr_flag = 1; }

void handleGesture() {
  if ( apds.isGestureAvailable() ) {
    switch ( apds.readGesture() ) {
      case DIR_UP: Serial.println("HAUT"); onOff_flag = 1; break;
      case DIR_DOWN: Serial.println("BAS"); onOff_flag = 0; break;
      case DIR_LEFT: Serial.println("GAUCHE"); if(onOff_flag == 1){ if(colorNumber > 0) colorNumber--; else colorNumber = 5; Serial.println(colorNumber); } break;
      case DIR_RIGHT: Serial.println("DROITE"); if(onOff_flag == 1){ if(colorNumber < 5) colorNumber++; else colorNumber = 0; Serial.println(colorNumber); } break;
      case DIR_NEAR: Serial.println("PROCHE"); break;
      case DIR_FAR: Serial.println("LOIN"); break;
      default: Serial.println("AUCUN");
    }
  }
}

Schéma

Connectez comme indiqué.

Changeur de couleur RGB activé par mouvement – Projet Arduino

Processus de fabrication

  1. Construire un bouton IoT AWS contrôlé par mouvement avec Raspberry Pi, capteur PIR et MQTT
  2. Construire un robot Raspberry Pi piloté par Bluetooth avec retour audio
  3. Lampe de table RGB à commande gestuelle – Éclairage interactif, mains libres
  4. Contrôler des LED avec Alexa via Raspberry Pi – Guide Pas à Pas
  5. Transformez une vieille voiture RC en véhicule piloté au joystick avec Arduino
  6. Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
  7. Robot commandé par la voix avec Arduino Nano et Bluetooth
  8. Pistolet à eau intelligent à détection de mouvement avec Arduino Nano
  9. PiBot : Robot pianiste Arduino pour performance musicale de précision