====== 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. {{:wiki:projets:0.png?200|}}{{:wiki:projets:01.png?200|}} {{:wiki:projets:02.png?200|}}{{:wiki:projets:04.png?200|}} ---- ==== Capteur ==== * Carde Seeeduino Lotus * trois capteur groove - light sensor ==== Schémas ==== {{:wiki:projets:shema.png|}} ---- ==== Tutoriel ==== Brancher les capteur groove arduino à la carte seeeduino grâce aux câbles du capteur {{:wiki:projets:20190519_185914.jpg?200|}} Choisir les entrées analogiques A0 A2 A6 {{:wiki:projets:20190519_185939.jpg?200|}} ---- ==== 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 ==== * [[http://makerspace56.org/recuperer-une-valeur-analogique-arduino-avec-processing/]] * [[http://wiki.seeedstudio.com/Grove-Light_Sensor/]] * [[https://processing.org/]] * [[http://wiki.seeedstudio.com/Seeed_Arduino_Boards/?fbclid=IwAR0_Ez1RFzp38UfK_5nvkYddf24hPlwJHHSCr2FtH8YcSTSLSam1KDeO_t8]]