martes, 16 de noviembre de 2010

Human Interface Device - HID

Los dispositivos de interfaz humana fueron poco a poco desarrollandose hasta ser lo que actualmente demuestran ser. Son como cualquier interfaz humana que comunica al ordenador con el humano y viceversa. Es decir, se trata de una comunicación de bidireccional o al menos es ese el propósito de estos dispositivos.

Además de ser dispositivos que nos van a permitir interactuar con las computadoras las cuales pueden ser entradas y salidas, y tener esa capacidad de cambiar de In a OUT dependiendo de las necesidades.

También buscan un ideal de comunicación, para esto se propuso un protocolo que deben seguir aquellos dispositivos que quieran ser parte de los HID. Dicho protocolo sirve para simplificar los procesos de instalación que antiguamente cada dispositivo requería en particular. Ahora, al ser parte del mismo protocolo se obtiene un reconocimiento seguro y portable.

"Un solo driver HID en la computadora parsea los datos y permite una asociación dinámica de datos de entrada y salida (I/O) con la funcionalidad de la aplicación. Este tiene habilitado la innovación rápida y proliferación de nuevos dispositivos de interfaz humana."

Los puntos más importantes que caracterizan a los dispositivos de interfaz humana son:
  • Compactos para ahorrar espacio de datos del dispositivo.
  • Permitir la aplicación de software para omitir información desconocida.
  • Ser extensible y robusto.
  • Soportar anidación y colecciones.
  • Autodescriptivo y así permitir aplicaciones de software genéricas.
Dispositivos HID comunes:
Dispositivos HID menos comunes:

No son dispositivos HID:

Codigo y conexiones en Arduino

void setup() {
pinmode (numpin, IN/OUT);
}

void loop(){
var=digitalread(x);
var2=digitalread(x);
var2=digitalread(x);
}

5 - HIGH - True
0 - LOW - False

Se tienen tres tipos de pines en la Arduino
a) Analog IN. Solo de entrada, (0-13).
b) P W M. Solo de salida, (0-13).
c) Digital. Entrada y salida. (22-53)
d) GND
e) 5V

lunes, 15 de noviembre de 2010

Leds parpadeantes programados en Arduino

Existen codigos de prueba y todas las clases que puede utilizar Arduino en su página que bien podrían en menos de un minuto hacer que una serie de leds parpadee al son del chachá.

Sin embargo es importante entender cómo funcionará desde su base. Al haber visto en practicas pasadas cómo funciona una onda senoidal en un osciloscopio y cómo hace comportar a un led podemos ahora hacerlo a partir de Arduino.


En el siguiente programa podemos observar un ejemplo de las líneas de codigo que se usan para compilarlas y subirlas al micro controlador del Arduino Mega.


Antes de comenzar es importante que cheques en qué puerto está siendo conectado el Arduino, para esto se tiene que ir a propiedades del dispositivo y ver qué puerto está conectado (com1, com2, com3, com4, com5). Después de esto vas a tools/serial port checas que el com sea el mismo que se recibe. Finalmente en tools/board se elige el tipo de arduino que utilizamos.


Usamos un ejemplo que ya viene en el programa en la sección de file/example con el nombre de “led”.


void setup() {
pinMode(22, OUTPUT); //numero de pin y se asigna si es OUT o IN. Existen Analogos, Digitales, PWM.
}

void loop() {

digitalWrite(22, HIGH); //manda la señal de encendido con HIGH
delay(1000); // un delay de 1000 ms

digitalWrite(22, LOW); // manda la señal de apagado con LOW
delay(1000); // un delay de 1000 ms
}


Al conectar el led de forma física podemos hacerlo de dos formas:


1.

Digitalwrite (12, HIGH);

Aquí se mandan 5V y se prende porque también va a tierra.


2.

Digitalwrite (12, LOW);

Aquí se mandan 0V y se prende porque se suminstra voltaje desde una fuente de poder. Se debe utilizar si se necesitan conectar muchos leds.


En clase hicimos la primera conexión.



Rebotes de los pushbuttons

Rebotes de los pushbuttons

El pushbutton parece no tener problema a la hora de apretarlo o no. En el display del oscilador podemos ver cuando está apretado y cuando no.

Sin embargo al apretar o no apretar existe un rango en el que parece que hay una conexión y en realidad no la hay, a estos pequeños errores, se les llama rebotes y se dan en cuestión de milisegundos, imperceptibles.

El rebote se debe a que las superficies de contacto no están 100% lisas, provocando que algunas partes hagan contacto antes que otras, dando como resultado que las partes salientes pasen contacto antes de que otros.

Para que esto no afecte, debemos estar consientes de este delay y tomarlo en cuenta a la hora de programar. Se debe verificar el estado antes de realizar la acción.

lunes, 1 de noviembre de 2010

Switch con Arduino

Un switch sirve para pasar corriente del origen hacia el destino.

El origen puede ser una pila, la corriente directa, o un generador de energía, y el destino puede ser un foco, o cualquier cosa que utilice energía, casi todas las aplicaciones que usamos diario, tienen esto, desde el apagador de la luz, hasta prender un coche.

Si la palanca esta en ON o 1, la energía pasa, si llegase a estar o lo pusiéramos en OFF o 0, la energía dejaría de pasar y el equipo, se apagaría.

Tierra=GND= - =false =0
Positivo= vcc (voltaje)= + = true =1
Corriente= positivo

En clase realizamos una prueba con el arduino y el switch y para esto lo que hicimos fue:

Conectar arduino un cable en algún pin de tipo output o salida (para transferir VCC)

El Arduino, es una plataforma programable, que básicamente es una placa sencilla de entradas y salidas. Este tipo de hardware, viene con un software que implementa el lenguaje de programación Processing/Wiring.