Manual básico Arduino

18 01 2009




Arduino + sensor infrarojo SHARP

14 01 2009

s4022541 

operaciones lógicas con sensor Sharp conectado a placa Arduino Diecimila. Son dos leds conectados a una protoboard, cuyo patrón de intermitencia varía según los datos de proximidad capturados por el sensor infrarrojo.

video:

 

código:

int potPin = 0; // input pin análogo en donde está el potenciómetro

int potValue = 0; // valor leído del pot

int potValue2 = 0;

int led = 9; // pin PWM donde el LED stá encendido.

int led7 = 7;

//No 0 de PWM está en pin digital 9

 

void setup() {

  // inicializa comunicación serial a 9600 bps:

  Serial.begin(9600);

  pinMode(led7, OUTPUT);

  pinMode(led,OUTPUT);

}

 

void loop() {

  potValue = analogRead(potPin); // Lee el valor del pot

  // analogWrite(led, potValue/4); // PWM el LED con el valor del pot (dividido po 4 para

  //que quepa en un byte)

  delay(200);

  if(potValue<=100){

    digitalWrite(led7,HIGH);

    delay(100);

    digitalWrite(led7,LOW);

    delay(200);

    digitalWrite(led,LOW);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(20);

    digitalWrite(led,LOW);

    delay(50);

    digitalWrite(led7,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(10); // espera 10 millisegundos antes del próximo loop

  }

  if(potValue<=100){

    digitalWrite(led7,HIGH);

    delay(100);

    digitalWrite(led7,LOW);

    delay(200);

    digitalWrite(led,LOW);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(20);

    digitalWrite(led,LOW);

    delay(50);

    digitalWrite(led7,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(10); // espera 10 millisegundos antes del próximo loop

  }

  if(potValue<=100){

    digitalWrite(led7,HIGH);

    delay(100);

    digitalWrite(led7,LOW);

    delay(200);

    digitalWrite(led,LOW);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(20);

    digitalWrite(led,LOW);

    delay(50);

    digitalWrite(led7,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(10); // espera 10 millisegundos antes del próximo loop

  }

  if(potValue<=100){

    digitalWrite(led7,HIGH);

    delay(100);

    digitalWrite(led7,LOW);

    delay(200);

    digitalWrite(led,LOW);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(20);

    digitalWrite(led,LOW);

    delay(50);

    digitalWrite(led7,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(10); // espera 10 millisegundos antes del próximo loop

  }

  if(100<=potValue<=300){

    digitalWrite(led7,HIGH);

    delay(205);

    digitalWrite(led7,LOW);

    delay(205);

    digitalWrite(led,LOW);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(20);

    digitalWrite(led,LOW);

    delay(50);

    digitalWrite(led7,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(10); // espera 10 millisegundos antes del próximo loop

  }

  if(potValue>=300){

    digitalWrite(led7,HIGH);

    delay(100);

    digitalWrite(led7,LOW);

    delay(200);

    digitalWrite(led,HIGH);

    delay(200);

    digitalWrite(led,LOW);

    delay(100);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

  }

  else{

    digitalWrite(led,HIGH);

    delay(100);

    digitalWrite(led,LOW);

    delay(200);

    digitalWrite(led7,LOW);

    delay(200);

    Serial.println(potValue); //print o imprime el valor del pot en el debugger pane

    // (sección de depuración)

    delay(100); // espera 10 millisegundos antes del próximo loop

  }

}





Ej1 Processing

13 01 2009

Este código de Processing está desarrollado a partir de dos esferas que siguen la trayectoria del cursor del mouse, cuyo comportamiento es aleatorio en un rango determinado, y cuya posición está “amarrada” por lines y beziers.

Se condicionó el stroke de los objetos por su posición respecto al ancho: si se mueve el cursor al lado izquierdo de la pantalla, las lineas del rastro van desapareciendo, pero a la derecha de la misma, estos se van agregando o superponiendo.

código:

void setup(){
size(600,500);
background(255);
smooth();
noCursor();
}

void draw(){

stroke(#983900,80,0,20);
bezier(10,20,30,40,mouseX,mouseY,width,height);
line(mouseX,mouseY,0,height);
line(mouseX,mouseY,width,0);
noFill();
stroke(#61F76A,90,0,50);
ellipse(
random(mouseX-30, mouseX+30),random(mouseY-40,mouseY+40),30,50);
stroke(#4DDB9F,60,0,40);
ellipse(
random(width-50, width+50),random(height-10, height+10),mouseX,mouseY);
ellipse(height,width,mouseX,mouseY);
if (mouseX < width-200)
{
stroke(#4DDB9F,60,0,80);
ellipse(
random(mouseX-10,mouseX+10), mouseY-10,90,90);
}
else if(mouseX > width-200)
{
ellipse(mouseX-10, mouseY-10,40,40);
}
if (mouseX < width-200)
{
fill(255,50);
rect(0,0,width, height);
}
else if(mouseX > width-200)
{
fill(255,30);
rect(width,height,0,0);
}
}





Foldables & Wearables

13 01 2009

Este blog recopilará el trabajo iniciado en el taller Foldables & Wearables (http://www.artes.uchile.cl/uchile.portal?_nfpb=true&_pageLabel=cursos&url=49223) desarrollado por Carolina Pino, en la Facultad de Artes de la Universidad de Chile.