Open softwear - Analog zipper

English version below.

Recentemente ho acquistato un libro molto interessante: "Open softwear", di cui si può scaricare gratuitamente una versione precedente (e beta) qui.
Ho acquistato online del filo da cucire conduttore e della stoffa conduttrice per fare qualche esperimento.
Dopo avere realizzato alcuni bottoni/interruttori di vario genere, ho provato con la analog zipper.
Seguendo le istruzioni (le stesse del pdf) è molto semplice arrivare ad avere una zip funzionante. In pratica quello che si ottiene è uno strano potenziometro ed una serie di valori letti da una delle porte analogiche di Arduino ed inviati alla porta seriale, visualizzati nell'apposita finestra "Serial Monitor" dello IDE di Arduino.
Come spiegato anche nel libro, questa non è una scienza esatta ed infatti ho dovuto sostituire la resistenza che nel libro veniva consigliata del valore di 10K Ohm, con una da 200 Ohm per avere una finestra di valori abbastanza ampia.


La spiegazione del libro si ferma qui ma, a questo punto, mi sono detta, dobbiamo fare qualcosa con i valori ottenuti ed ho pensato di visualizzarli graficamente attraverso Processing.
Qui c'è una piccola difficoltà tecnica, perché i valori che arrivano dalla porta seriale a Processing (usando l'apposita libreria), dovrebbero essere letti come una stringa di caratteri ASCII e convertiti in intero.
Avendo trovato questo post nel forum di Arduino, ho installato la libreria Firmata in Arduino ed usato le sue funzioni all'interno di Processing per un piccolo sketch dalla grafica molto semplice: si tratta di un cerchio che cambia dimensione, posizione e colore con continuità all'apertura e chiusura della zip.
Ecco il listato:

import processing.serial.*;
import cc.arduino.*;
Arduino arduino;
color off = color(256, 256, 256);
int i;
float c1;
float c2;
float c3;
float x;
float y;
float w;
float h;
float val;
void setup() {
size(800, 500);
arduino = new Arduino(this, Arduino.list()[0], 57600); // qui Banzi, nel forum di Arduino, riportava per il terzo valore, i baud, 115200

for (int i = 0; i <= 13; i++)
arduino.pinMode(i, Arduino.INPUT);
}
void draw() {
background(off);
val = arduino.analogRead(2);
c1 = 255 - val;
c2 = val;
c3 = val;
x = val * 2;
y = val;
w = val;
h = val;
color on = color(c1, c2, c3);
fill(on);
noStroke();
ellipse(x, y, w, h);
println(val);
}




I recently purchased a very interesting book, "Open Software", which you can download in a previous (and beta) version here.
I bought online sewing conductive thread and conductive fabric to make some experiments.
After making a few buttons / switches of various kinds, I tried making the analog zipper.
Following the instructions (the same as the pdf) is very easy to get to have a zip running. Basically what you get is a strange potentiometer and a series of values coming from one of the analog ports of Arduino and sent to the serial port, displayed in the window "Serial Monitor" in the Arduino IDE.
As explained in the book, this is not an exact science and in fact I had to replace the resistance that was recommended in the book of 10K ohm, with a 200 ohm one to have a wide enough range of values​​.


The explanation of the book stops here, but at this point, I said, we need to do something with the values ​​obtained and I thought I'd see them graphically through Processing.
Here is a small technical difficulty, because the values ​​that come from the serial port to Processing (using the appropriate library), should be read as a string of ASCII characters and converted to an integer.
Having found this post in the Arduino forum, I have installed the Firmata Arduino library and used its Processing functions within a small sketch with a very simple graphic: it is a circle that changes size, position and color continuously opening and closing the zipper.
You can see the code above.

Commenti

Post più popolari