Outils pour utilisateurs

Outils du site


wiki:projets:pedagogie-informatique:pedagogie-informatique

Arduino

  • Porteuse du projet : Léa MAUFFREY
  • Date : 05/2019
  • Licence : libre!
  • Contexte : Arduino

Description

Dans le cadre de mon mémoire de deuxième année, j'aimerais travailler sur l'apprentissage de l'informatique et des nouvelle technologie. Le but étant de rendre les nouvelles technologie abordable et d'en faire un outil pour soutenir la création. L'utilisation de la carte seeeduino permet de faire un circuit électrique simplement. Mon dispositif permet de générer des visuelles avec des formes géométriques. C'est un moyen de transformé la lumière en image et de créer ses propre visuels génératifs.


Capteur

  • Carde Seeeduino Lotus
  • trois capteur groove - light sensor

Schémas


Tutoriel

Brancher les capteur groove arduino à la carte seeeduino grâce aux câbles du capteur

Choisir les entrées analogiques A0 A2 A6


Programmes Arduino

//créer des variables pour récupérer les valeur de chaque capteur
//inscrire l'entré correspondant à la carte(0,2,6)
const int Voie_R=0;
const int Voie_G=2;
const int Voie_B=6;

int mesure_bruteR=0;
int mesure_bruteG=0;
int mesure_bruteB=0;
 
void setup()   {
Serial.begin(9600);
} 
 
void loop(){
mesure_bruteR=analogRead(Voie_R);
mesure_bruteG=analogRead(Voie_G);
mesure_bruteB=analogRead(Voie_B);

//valeur à envoyer à processing
Serial.print(mesure_bruteR);
Serial.print(",");
Serial.print(mesure_bruteG);
Serial.print(",");
Serial.println(mesure_bruteB);

//récupère la valeur des capteurs toutes les 500 milliseconde
delay(500);
}

Programmes Processing

Utilisation de la librairie Serial https://processing.org/reference/libraries/serial/index.html

// importer la librairie pour communiger avec arduino
import processing.serial.*;
Serial myPort;   

// variables correspondant au valeur des capteurs
float var1;
float var2;
float var3;

void setup() {
  size(500, 500);

  // afficher tous les ports disponibles
  printArray(Serial.list());

  String portName = Serial.list()[0];
  //Important : se caler sur la valeur en baud du prog Arduino
  myPort = new Serial(this, portName, 9600);
  myPort.bufferUntil('\n');
}

Partie graphique. Couleur du fond et création des figures géométrique.

void draw() {
  // chaque couleur (RVB) correspond à la valeur d'un capteur
  color c = color(var1, var2, var3, 20);
  fill(c);
  rect(0, 0, width, height);
  strokeWeight(5);
  stroke(255, 255);
  //créer une ligne qui varie en fonction des valeurs du capteur
  line(500, var1, var2, var3);
  line(var1,0, var2, var3);
  line(var1, var2,500, var3);
  line(var1, var2, var3,500);
}

Communication avec Arduino (récupération des valeurs des capteurs)

void serialEvent (Serial myPort) {

  background(0); //efface l'écran à chaque boucle
//lire les valeurs envoyé par arduino
  String inString = myPort.readStringUntil('\n');
  if (inString != null) {

    inString = trim(inString);
    //on convertie une chaîne de caractère (String) en entier (int) correspondante
    int inputs[] = int(split(inString, ',')); // on élude les virgules

    // on affecte nos 3 valeurs au variable
    if (inputs.length == 3) {
      var1 = inputs[0];
      var2 = inputs[1];
      var3 = inputs[2];

      // On ré-échelonne la valeur analogique en valeur RGB
      var1 = map(var1, 0, 1023, 0, 255);
      var2 = map(var2, 0, 1023, 0, 255);
      var3 = map(var3, 0, 1023, 0, 255);
    }

  }
}

Références

wiki/projets/pedagogie-informatique/pedagogie-informatique.txt · Dernière modification: 2019/05/22 17:50 (modification externe)