martes, 25 de marzo de 2014

Empezando con Arduino

En esta sexta sesión hemos empezado a programar con el IDE de Arduino.

Lo primero hemos visto el editor y después las semejanzas entre S4A y Arduino, hemos repetido alguno de los primeros programas: semáforo, led parpadeante para ir haciéndonos con el editor.

Para terminar hemos visto como generar una nota musical activando y desactivando un pin de salida digital conectado a un zumbador.

Aplicando una frecuencia de 261 ciclos podemos conseguir una nota Do, y para ello hemos creado este código:

void setup(){
  pinMode(8,OUTPUT);
}

void loop(){
   for(int i=0;i<135;i++){
    digitalWrite(8,HIGH);
    delayMicroseconds(1900);
    digitalWrite(8,LOW);
    delayMicroseconds(1900);
  }
  delay(1000);
}

Creamos un ciclo que dura 3.8 microsegundos durante 0.517 segundos (3.8*135), es decir una serie de notas Do con una duración de medio segundo y separadas entre si por un segundo.

Después de comprobar que suena hemos utilizado la función tone haciendo el programa más compacto.:

void setup(){
  pinMode(8,OUTPUT);
}
void loop(){
  delay(1000);
  tone(8,261,500);
}

Para terminar bajamos de Internet alguna melodía para probar.

En la próxima sesión intentaremos construir un dado digital.

martes, 18 de marzo de 2014

Quinta sesión: Puerta de garaje

En esta quinta sesión hemos querido programar y construir una maqueta de una puerta de garaje, en realidad una barrera de acceso para vehículos.

Lo primero hemos querido conocer los estado en los que se puede encontrar la barrera: abierta y cerrada son los más claros, pero también hemos visto la importancia del estado cerrándose ya que nos permite controlar si algo se interpone en el cierre de la barrera (si pasamos de abierta a cerrada directamente no podemos hacer control).

Hemos utilizado la variable estado para controlar el estado en el que se encuentra y en función de ese estado activar los actuadores necesarios. El cambio de estado de cerrada a abierta lo activa el pulsador, y el paso de estado abierta a cerrada lo activa el tiempo de espera con la berrera levantada.

Para abrir y cerrar la barrera se utiliza un servo con las instrucciones:

ángulo 0 para barrera cerrada
ángulo 90 para barrera abierta

El siguiente paso que no llegamos a completar fue incluir los estado abriendose y cerrandose y mover el servo más lentamente. En la izquierda vemos el código Scratch como hubiera quedado.

Empezamos con estado cerrada y al pulsar el pulsador el estado pasa  a abriendose, después se analizan los estados:

Si el estado es abriendose iremos ampliando el valor de ángulo hasta que llegue a 90 (este será el final de carrera para que la barrera se pare).

Si el estado es cerrandose iremos cambiando la variable angulo hasta que llegue a 0 (este será el final de carrera para parar la barrera).

Si el estado es abierta el sistema esperará unos segundo para cambiar a estado cerrandose.

En el estado cerrada no hace nada.


En el hueco "control de cierre" incluiremos las instrucciones que nos permitirán controlar que no hay nada que impida el cierre de la barrera, esto lo podemos hacer con un interruptor IR que se corte cuando un objeto se interponga en la bajada de la barrera. Vemos el posible código de control si ese sensor IR está conectado en el pin A0.