Archivo de la etiqueta: soft circuits

Textiles Inteligentes en Galicia

10426594_820314404660453_1468479594226129006_nNuestros amiguit@s de la Asociación Cultural Trépia en Pontevedra, programan dentro de sus actividades en el mes de Julio, nuestro Taller Intensivo “Textiles Inteligentes. lilyPad, el micro-controlador para wearables”. Tres días del 10 al 13 de Julio.

Una oportunidad única de experimentar con las técnicas y herramientas necesarias para la elaboración de circuitos blandos susceptibles de ser programados mediante software libre.

Los alumnos han de adquirir un Kit de materiales básicos para alcanzar los objetivos mínimos del curso

 

Anuncios

liPov: El básico de Interacción textil que juega con la persistencia de visión

Sí lo sabemos, es un básico libre y extendido, pero lo consideramos indispensable a la hora de hacer presentaciones, porque con él mostramos técnicas y herramientas de forma atractiva y sencilla y la verdad, la gente no puede resistirse a jugar con él.

Estos son los materiales utilizados:

* 1 lilyPad ATMega 328

* Hilo conductor

* 8 micro- leds lilypad

* lilyPad FTDI adapter USB

* Un cable USB

* 1 Pila Lipo recargable

* 1 Adaptador mini USB-USB para Lipo

* Tela (2 tipos)

* Foam

* Hilo común

* Bastidor

* Esmalte de uñas transparente

* Agüjas

* alfileres

IMG_6198

IMG_6199

IMG_6205

IMG_6206

IMG_6209

IMG_6196

IMG_6225

Aquí os dejamos el code para que lo useis como querais, funcionando en Arduino IDE 023 :

// Lilypad Pov

//Programacion para control de app basada en POV con lilyPad
// 8 microleds verdes catodos conectados a pines digitales correspondientes
// anodos(-) conectados en serie entrando en pin digital 5 para facilitar la costura con el hilo conductor
// aplicable de distintas variantes para deteccion sensitiva
// por Pilu Caballlero, para codeFolkers i+d+s, Granada 2012.

#define NUM_ELEM(x) (sizeof (x) / sizeof (*(x))) // define el numero de elmentos X y su tamaño

int CODEFOLKERS[] = { // Mensaje en Binario que queremos introducir
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
1,0,0,0,1,0,0,0,
1,0,0,0,1,0,0,0,
1,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
1,0,0,0,1,0,0,0,
1,0,0,0,1,0,0,0,
1,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
1,0,0,0,1,0,0,0,
1,0,0,0,1,0,0,0,
1,1,1,1,1,1,1,1,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
1,0,1,0,1,0,0,0,
1,0,1,0,1,0,0,0,
1,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,
0,0,0,0,1,0,0,1,
0,0,0,0,1,0,0,1,
1,1,1,1,0,0,0,1,
1,0,0,1,0,0,0,0,
1,1,1,1,0,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
0,0,1,0,0,0,0,0,
0,1,0,1,0,0,0,0,
1,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
1,0,1,0,1,0,0,0,
1,0,1,0,1,0,0,0,
1,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
1,1,1,1,1,0,0,0,
0,0,1,0,1,0,0,0,
0,1,1,0,1,0,0,0,
1,0,1,1,1,0,0,0,
0,0,0,0,0,0,0,0,
1,0,0,1,1,0,0,0,
1,0,1,0,1,0,0,0,
1,1,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
0,0,1,1,1,1,0,0,
0,1,0,0,0,0,1,0,
1,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,1,
0,1,0,0,0,0,1,0,
0,0,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,1,1,0,0,0,
1,1,1,0,0,1,1,1,
1,0,0,0,0,0,0,1,
}; // espacio en blanco

int ledPin5 = 5; // Conexion de leds al pin digital 13
int ledPin12 = 12; //
int ledPin11 = 11; //
int ledPin10 = 10; //
int ledPin9 = 9; //
int ledPin8 = 8; //
int ledPin7 = 7; //
int ledPin6 = 6; //
int ground = 2; // conexion de led al pin digital 5 para falsear la tierra

int ledPinArray[8] = {5,6,7,8,9,10,11,12,};
int columnDelay;
int sizeWord = 0;
void setup() { // Inicia los pines digitales como salida
for(int i = 0; i < 8; i++){
pinMode(ledPinArray[i],OUTPUT);
}
pinMode(ground, OUTPUT);
digitalWrite(ground, LOW); // escribe el pin digtal 5 con valor bajo para falsear el pin y convertirlo en tierra

columnDelay = 2.5; // espera 2.5 milisegundos entre el flaseado de cada columna
Serial.begin(9600);
Serial.print(“Number of CODEFOLKERS: “);
Serial.println(NUM_ELEM(CODEFOLKERS));
delay(2000);
sizeWord = NUM_ELEM(CODEFOLKERS);
}

// el loop correra una y otra vez hasta agotar la bateria de arduino.

void loop(){
printWord(CODEFOLKERS);
delay(8); // Tiempo de espera entre cada display con la palabra itemmedia
}

void printWord(int wordVar[]) {

int numRows = sizeWord/8; // numero de columnas que es igual al tamaño de la palabra
for(int j = 0; j < numRows; j++) {
for(int i = 0; i<8; i++) {
digitalWrite(i+5, wordVar[i+j*8]);
}
delay(columnDelay);
}
}
// gracias a michael zoellner – march 2006

Y por aquí un ejemplito del resultado muy efectivo :

IMG_6323

IMG_6326

IMG_6321