Hackerspace textile, 19 rue Garibaldi 93100 Montreuil (Seine-Saint-Denis)

Outils pour utilisateurs

Outils du site


atelier:documentation:materiautheque:materiaux:electronique_textile:capteurs_textiles:1d:slider

Capteur de position linéaire

Un potentiomètre est un capteur de position linéaire.

Solution piézorésistive

Fermeture éclaire potentiomètre linéaire

Potentiomètre textile circulaire

Références de projets

Potentiomètre textile linéaire

Références de projets
Liste de matériaux
  • Matériau résistif (Velostat, eeonyx, etc)
  • Matériau conducteur (tissu conducteur)
Schéma électrique
    
   VCC (5V)
    |
    |                          (matériau résistif)
    **********************************************
                               (matériau conducteur)
    °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
    |
    |
    |-----------------> Analog_Pin A0                  
    |
    /
    \ R2 (10KOhm to 500KOhm) en fonction de la valeur de la partie résistive!
    /
    |
    |
   GND
Code Arduino
#include <elapsedMillis.h>

elapsedMillis timer;

const int SENSOR_PIN = A0;
const int INTERVAL = 60;

unsigned int valCapteur = 0;


void setup() {
  Serial.begin(19200);
  timer = 0;
}

void loop() {
  
  if (timer > INTERVAL) {
    timer = 0;
    valCapteur = analogRead(SENSOR_PIN);
    Serial.println(valCapteur);
  }
  
}
Code Processing
import ddf.minim.*;
import processing.serial.*; // importation de la librairie de communication serie

Minim minim;
AudioPlayer player;

//variables
Serial maConnection; // Crée un objet de communication série

int tension=0; // variable ou sera stockée la valeur de la tension
//affichage
int fenetreTemps = 12000; // temps pour parcourir la largeur de l'écran en millisecondes
int x = 0;
int y = 0;

void setup() {

  minim = new Minim(this);
  player = minim.loadFile("phoenix.mp3");

  size( 650, 400, P3D); // taille de l'ecran
  String NomDuPort = Serial.list()[ 0 ]; // récupère la première interface serie trouvée
  println( "connection a " + NomDuPort );
  maConnection = new Serial( this, NomDuPort, 19200 ); // création de la connexion série
  background( 255 ); // fond d'écran blanc
  // smooth( ); // lisser les dessins
  strokeWeight( 5 ); // largeur de trait
  stroke( 10 ); // couleur du trait gris
}


void draw() { //boucle de dessin principale

  //détermination du X actuel
  int oldx = x;

  // println(y);
  float volume = map(float(y), 50, 200, -50, 0);
  constrain(volume, -50, 0);
  println(volume);
  
  x = ( millis() % fenetreTemps ) * width/fenetreTemps;
  // println ( oldx + " " + x );
  if ( oldx > x ) {
    //reprise au debut de l'écran
    oldx = 0;
    background( 255 ); //fond d'écran blanc
  }
  //determination de la valeur de Y
  int oldy = y;
  y = int( map(tension, 0, 1023, 380, 20) ); // mise à l'échelle de la tension pour entrer dans l'écran
  line( oldx, oldy, x, y ); // dessine le trait

  if ( player.isPlaying() ) {
    text("Press any key to pause playback.", 10, 20 );
  } else {
    text("Press any key to start playback.", 10, 20 );
  }

  player.setGain(volume); // entre -50 et 50
}

void serialEvent ( Serial maConnection ) { // si des données arrivent par la connexion série
  String retour = maConnection.readStringUntil('\n'); // lit la donnée jusqu'à la fin de ligne
  if ( retour != null ) { //si le retour n'est pas vide
    retour = trim( retour ); // enlever les espaces
    tension = int( retour ); // converti le texte en nombre entier
  }
}

void keyPressed() {
  if ( player.isPlaying() ) {
    player.pause();
  }
  // if the player is at the end of the file,
  // we have to rewind it before telling it to play again
  else if ( player.position() == player.length() ) {
    player.rewind();
    player.play();
  } else {
    player.play();
  }
}

Solution Capacitive

Vous pourriez laisser un commentaire si vous étiez connecté.
atelier/documentation/materiautheque/materiaux/electronique_textile/capteurs_textiles/1d/slider.txt · Dernière modification: 2018/09/21 09:32 par maurin