martes, 4 de febrero de 2014

Órgano electrónico con arduino

Hacer un órgano electrónico con arduino es muy fácil, se puede hacer solo con un "Arduino uno", en el que deberemos asignar a cada nota un pulsador y un led para indicar cuando se acciona o también se puede utilizar una Tarjeta LKM 1638 en el que podremos indicar el nombre de la nota también.

En este caso lo he hecho con una tarjeta 1638:


La programación es simple, lo primero que hay que hacer siempre que se quiera trabajar con la tarjeta 1638 es incluir la librería:

#include <TM1638.h>


e indicarle que patillas de nuestro arduino vamos a conectar con la tarjeta, sin olvidar de llevar gnd y vcc:
TM1638 module (8, 9, 7); 
7=strobe.
8=entrada y salida de datos.
9=CLK.
 
Para hacer lo que son las notas, "debemos definirlas":
#define d1 1915
#define re 1700
Así con todas las notas, teniendo en cuenta que hay un "do mayor", por eso a uno lo definiremos como d1 y al otro como d2, el número que va detrás es la frecuencia de cada nota.

También definimos la duración de cada una de ellas, en este caso una "negra":
#define negra 400

La salida de nuestro arduino para el altavoz será la 11 (se le puede asignar cualquiera):
int altavoz = 11;



Después de declarar las notas, las entradas y sus tiempos, pasamos al programa en sí.
Si  se acciona el pulsador "X" , (en este caso el primero):
if (module.getButtons()==0b00000001){

Tiene que sonar el "do" en la salida del altavoz, con la duración de una negra:
 tone (altavoz, d1,negra); 

En el display se tiene que escribir "do":
module.setDisplayToString ("do",0,0);

Y cuando pasen 200 ms se borre:
 delay (200);
       module.clearDisplay();
      }


Habrá que hacer lo mismo con las demás notas:
Y así es como se hace un órgano (teclado) musical con Arduino y una tarjeta 1638.

lunes, 27 de enero de 2014

Marcador de baloncesto (con Tarjeta LKM1638 y Arduino)

En esta entrada explico como mi compañero de clase y yo hemos hecho un simulador de marcador de baloncesto con la tarjeta LKM1638 y un Arduino.



Descripción del funcionamiento:
A continuación vamos a explicar paso a paso como nosotros hemos pensado y hecho esta práctica, seguramente se podría haber hecho de otra forma y también estaría bien.
En primer lugar, como en todos los proyectos que se quieran hacer con el módulo  LKM1638 hay que agregar la librería con las funciones, poniendo #include <TM1638.h>, le hemos indicado que patillas del arduino funcionarán como I/O de datos, Strobe y CLK con; TM1638module(8,9,7);, además tenemos que declarar cierta variables; int suma; int centenas; int decenas; int unidades; int suma2; int centenas2; int decenas2; int unidades2;, estas variables digamos que nos definen las unidades, decenas y centenas que van a ir adquiriendo diferentes valores cuando se “sumen puntos”.



Terminado esto, llegamos al void setup(){ , en el que configuramos los displays para que se apagen, pasen dos segundos y los marcadores con sus distintas posiciones se pongan a cero (Con los puntos apagados) module.clearDisplay(); delay(2000);
  module.setDisplayDigit(0, 1, false);
  module.setDisplayDigit(0, 2, false);
  module.setDisplayDigit(0, 3, false);
  module.setDisplayDigit(0, 5, false);
  module.setDisplayDigit(0, 6, false);
  module.setDisplayDigit(0, 7, false);
Dentro del mismo setup hay que inicializar las variables que hemos declarado antes a cero;  suma=0; centenas=0; decenas=0; unidades=0; //suma2=0; centenas2=0; decenas2=0; unidades2=0;.







Ahora entramos en el void loop(){, digamos que ya es el programa en sí. Queremos que al accionar un pulsador, se sumen puntos, es decir; alguno de los equipos enceste, para eso introducimos
la instrucción de que al accionar un pulsador
if (module.getButtons()==0b00000001)
se encienda el led correspondiente del color que queramos, en este caso verde module.setLED(2,0);
y se acumule en este caso un punto suma=suma+1; decenas= suma/10; unidades=
suma-decenas*10;
y para que tenga en cuenta las centenas
if (decenas>=10) { centenas =1; decenas = decenas - 10;
module.setDisplayDigit(decenas,
2, false); module.setDisplayDigit(unidades, 3, false); module.setDisplayDigit(centenas,
1,false);
Esto último es para que aparezcan los valores de las unidades,
decenas y centenas que tienen que aparecer según se hayan incrementado.
También hay que hacer que los leds
correspondientes que se han encendido antes correspondientes al pulsador se
apaguen
delay(1000); module.setLEDs(0b0000000000000000);

Esto era para hacer la suma de las
canastas de un punto, con las de dos y las de tres se hace lo mismo, lo único
que cambia es el lugar del pulsador que hay que accionar y la suma que hacen; 2
y 3 puntos más cada uno.





Scratch for Arduino



Scratch es un entorno de programación gratuito, que fue desarollado por el MIT (Instituto Tecnológico de Massachusetts).

Se diferencia de los demás en que es un entorno más gráfico que permite a los principiantes que se están iniciando en el mundo de la programación hacerlo de forma sencilla.




En este caso vamos a usar S4A (Scratch for Arduino), que es una adaptación de Scratch para programar sobre Arduino. Con esto podremos hacer programas con entornos gráficos usando arduino como hardware controlando entradas como; potenciometros, pulsadores etc y salidas como; leds, zumbadores, altavoces etc.

 

miércoles, 15 de enero de 2014

Consumer Electronic Show

La CES (Consumer Electronic Show), es una feria internacional de electrónica de consumo que se celebra cada año en enero, en la ciudad de Las Vegas, Nevada, Estados Unidos.

En esta feria se enseñan nuevos productos electrónicos que podrán estar, o no, a disposición del consumidor, también es una buena oportunidad para dar a conocer un producto y cerrar acuerdos.


Y aprovechando que se ha celebrado hace poco la última, vamos a ver varios productos que se presentaron y que con un poco de suerte estarán a nuestra disposición a lo largo de este año.