
inspiration : http://etextile-summercamp.org/swatch-exchange/haptic-crochet/
Ce capteur textile permet d’envoyer des données sur processing, pour créer des images.


matériel :
fil conducteur, matériau textile – ici le fil conducteur est tissé dans une maille
résistance 10M, pince croco & un arduino

branchement :
brancher la résitance sur les pin 2 et 4 (digital) de l’arduino, puis branchez la pince croco, reliée au textile et au fil conducteur, sur la résistance (côté pin 2)

codes :
il faut en premier lancer le code arduino, puis le code processing
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // ----------------------------------------------------------------- // code arduino // librairie pour le sensor #include <CapacitiveSensor.h> // librairie pour envoyer vers processing #include <Firmata.h> CapacitiveSensor cs_4_2 = CapacitiveSensor(4, 2); // 10M resistor between pins 4 & 2, pin 2 is sensor pin void setup() { cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); Firmata.begin(57600); } void loop() { long total1 = cs_4_2.capacitiveSensor(30); // envoyer la valeur à processing // le premier chiffre < 15 Firmata.sendAnalog(8, total1); delay(10); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | // ----------------------------------------------------------------- // code processing // déclarer arduino import processing.serial.*; import cc.arduino.*; Arduino arduino; // déclarer les variables int total1; float totalmap; float totalmap2; int a = 1; // coordonnée int x = 0; // exemple pour if int c = 0; // couleur float count = 0; float speed = 0.05; void setup() { size(1000, 1000); background(255, 255, 255); noFill(); // frameRate(10); // récupérer l'arduino arduino = new Arduino(this, Arduino.list()[0], 57600); } void draw() { // lire la valeur d'arduino avec firmata + print + map // avoir la même valeur que dans le code arduino - ici 8 total1=arduino.analogRead(8) ; println(total1); totalmap = map(total1, -6, 4000, 0, width); // dessiner des ellipses if (x < 2) { stroke (c); ellipse(a, totalmap, totalmap2, totalmap2); a = a + 1; totalmap2 = map(total1, 0, 4000, 1, 8); if (a > width) { c = c + 50; a = 0; } } else { ellipse(a, width/2, 5, 5); } } |
