PDF de programación - Arduino - Práctica "Control de LED por medio del mouse"

Imágen de pdf Arduino - Práctica "Control de LED por medio del mouse"

Arduino - Práctica "Control de LED por medio del mouse"gráfica de visualizaciones

Publicado el 1 de Agosto del 2018
1.086 visualizaciones desde el 1 de Agosto del 2018
239,9 KB
7 paginas
Creado hace 10a (25/09/2013)
Los periféricos como mouse,
teclados, entre otros, cada día son
más comunes y la transmisión de
datos para estos por medio de
puerto USB se ha convertido en un
estándar. Para poder conectar
periféricos a Arduino se diseñó la
board host shield, la cual tiene un
socket USB hembra tipo A donde
podemos conectar periféricos con
puerto USB.



ARDUINO HOST SHIELD


Guía


Control de LED por medio del mouse

Objetivo de la práctica:
Encender y apagar un led usando los botones
de un mouse.



www.dynamoelectronics.com



Elementos a usar
 Host USB
 Arduino UNO
 Cable USB
 Mouse USB
 Fuente de alimentación


Se recomienda Usar
 Librería max3421e.h
 Librería usb.h
 Librería Max3421e_constants.h





¿Cómo funciona?

si

se

como


La USB host shield usa el integrado
Max3421e, el cual funciona como un
conversor de SPI a host USB, (el
mismo que usa la Arduino ADK).
Debido a ello, y a que los datos que
adquiera la board Arduino están en
protocolo SPI, el dispositivo que se
conecte a la shield enviará y recibirá
datos
estuviera
conectando a una computadora.
Esto implica que si el dispositivo se
conecta
o
autenticaciones, los mismos deben
ser enviados desde la Arduino uno
mediante la interface SPI. De esta
manera no
existir un
reconocimiento
automático del
dispositivo por parte de la board
Arduino sino que, por el contrario,
requiere que se programe de manera
adecuada el uso de
cualquier
dispositivo USB

datos

va

a

y

pide



Hardware y Conexiones

La Host shield, al igual que muchos otros sistemas open hardware viene sin
soldadura en los pines de conexión, esto se debe a que se espera que el usuario
decida qué tipo de conector es mejor para su aplicación, recomendamos soldar

regletas tipo Arduino para tener accesos a los pines de salida desde la parte superior.

La Host shield para Arduino se comunica con ésta a través de una comunicación SPI, y se
usan los siguientes pines en Arduino UNO D10 – CS, D11 – MOSI, D12 – MISO, D13 –
SCK


Conexiones
1. Conectar la host shield a la board Arduino Uno
2. Conectar una fuente de alimentación por el
jack de conexión
3. Conectar el mouse USB al puerto USB que se
encuentra en la Host shield.



Se requiere una fuente de alimentación externa debido a que se va a energizar
además de la Arduino UNO y la Shield. el mouse. La board tiene un switch de
ON/OFF al lado del conector USB, asegúrese de que esté en posición ON y que
el LED de color rojo este encendido.

Cuando se adquiere datos usando la USB host shield, se debe tener en cuenta que
la velocidad de transmisión de datos de USB es mayor que la SPI, por lo tanto no
se recomienda enviar gran cantidad de datos (USB a SPI) debido a que la board

Arduino no va a ser capaz de capturarlos y procesarlos.

www.dynamoelectronics.com





Programación

Se requiere descargar la librería de la USB host shield (click aquí). Luego de descomprimirla, se guarda el archivo
en la carpeta de librería de Arduino



www.dynamoelectronics.com







Tenga en cuenta que cuando conecte un dispositivo USB debe tener una librería apropiada para cada dispositivo,
esto debido a que cada uno tiene datos de configuración diferente


Haga Click Aquí para descargar el siguiente ejemplo de programación.


/*www.dynamoelectronics.com
Ejemplo de uso Host shield, usando las librerías max3421e.h
usb.h, Max3421e_constants.h con Arduino UNO, tenga en cuenta
que esta board solo funciona con Arduino UNO


Pines de Arduino
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 10
** Led - pin 6 conexión externa
Este ejemplo muestra en el monitor serial la posición relativa del mouse y el estado de los botones, adicionalmente al presionar el botón 1 se enciende un led conectado al
puerto 6 y presionando el botón 2 se apaga

Este ejemplo es de dominio público
Creado por Fabio Eraso - Dynamo Electronics
Basado en el ejemplo de Oleg Mazurov, Circuits At Home



*/
#include <max3421e.h> //incluyendo libreria IC
#include <usb.h> //incluyendo libreria USB
#include <Max3421e_constants.h> //Constantes
#define DEVADDR 1 //Constantes
#define CONFVALUE 1 //Constantes
MAX3421E Max;
USB Usb;
void setup() // Condiciones iniciales
{
Serial.begin( 115200 ); // Inicio interfase 115200
Serial.println("Start"); // imprime el incio
Max.powerOn(); // inicio de potencia en el Max
delay( 200 ); // Retardo 200ms
pinMode(6,OUTPUT); // Pin de led
}
void loop()
{
byte rcode; // Variable rcode
Max.Task();

www.dynamoelectronics.com





Usb.Task();
if( Usb.getUsbTaskState() == USB_STATE_CONFIGURING ) { // configurando mouse
mouse0_init();
}
if( Usb.getUsbTaskState() == USB_STATE_RUNNING ) { // tomando datos
rcode = mouse0_poll();
if( rcode ) {
Serial.print("Datos de mouse Error "); // si rcode existe entonces que imprima el tipo de error
Serial.println( rcode, HEX ); // impirmiendo el error
}
}
}
void mouse0_init( void ) //Rutina inicio mouse
{
byte rcode = 0; //Varaiable rcode variable de error
Usb.setDevTableEntry( 1, Usb.getDevTableEntry( 0,0 ) ); //copy device 0 endpoint information to device 1
/* Configurando dispositivo */
rcode = Usb.setConf( DEVADDR, 0, CONFVALUE ); // obteniendo datos Rcode
if( rcode ) { // si Rcode existe imprima el error
Serial.print("Error configurando el mouse: "); // imprime una señal de error
Serial.println( rcode, HEX ); // imprime el Rcode
while(1); // si hay error se queda
}
Usb.setUsbTaskState( USB_STATE_RUNNING ); //USB corriendo
return;
}
byte mouse0_poll( void ) /* toamando datos del mouse usando Get Report e imprimiendo los resulatados */
{
byte rcode,i;
char buf[ 4 ] = { 0 }; // Vector buffer datos mouse
static char old_buf[ 4 ] = { 0 }; // Vector buffer ultimos datos mouse
/* obteniendo datos mouse */
rcode = Usb.getReport( DEVADDR, 0, 4, 0, 1, 0, buf );
if( rcode ) { //error
return( rcode );
}
for( i = 0; i < 4; i++) { //buscando nuevos datos
if( buf[ i ] != old_buf[ i ] ) { //comparando datos nuevos y viejos
break;
}
}
if( i == 4 ) {
return( 0 ); //Si todos los datos son = retorna 0
}
/* Muestra de datos en la consola serial*/
if( buf[ 0 ] & 0x01 ) {
Serial.print("Buton 1 presionado "); // Se pulso el boton 1
digitalWrite(6,HIGH);
}
if( buf[ 0 ] & 0x02 ) {
Serial.print("Buton 2 presionado "); // Se oprimio el boton 2
digitalWrite(6,LOW);

www.dynamoelectronics.com





Pruebas

}
if( buf[ 0 ] & 0x04 ) {
Serial.print("Buton 3 presionado "); // Se oprimio el boton 3
}
// se imprime las posiciones del mouse
Serial.println("");
Serial.print("Eje X: ");
Serial.println( buf[ 1 ], DEC);
Serial.print("Eje Y: ");
Serial.println( buf[ 2 ], DEC);
Serial.print("Rueda: ");
Serial.println( buf[ 3 ], DEC);
for( i = 0; i < 4; i++ ) {
old_buf[ i ] = buf[ i ]; //copia en buffer
}
Serial.println("");
return( rcode );
}



1. Conecte una fuente externa
2. Conecte el mouse a la host shield
3. Mueva el interruptor a On y el led rojo se encenderá
4. Abra el monitor serial, donde debe aparecer datos como los

mostrados en la siguiente imagen

5. Pulse el botón derecho y el led se encenderá
6. Pulse el botón Izquierdo y el led se apagará


Video de funcionamiento Click aquí



www.dynamoelectronics.com





Links de interés



1. Llibreria y otros archivos https://github.com/felis/USB_Host_Shield_2.0
2. Ejemplos de uso http://www.circuitsathome.com/communicating-arduino-with-hid-devices-part-1

http://www.circuitsathome.com/arduino_usb_host_shield_projects

3. esquematico http://www.sparkfun.com/datasheets/DevTools/Arduino/USBHostShield-v13.pdf
4. Archivos Eagle http://www.sparkfun.com/datasheets/DevTools/Arduino/USBHostShield-v13.zip
5. Hoja de datos http://www.sparkfun.com/datasheets/DevTools/Arduino/MAX3421E.pdf



www.dynamoelectronics.com
  • Links de descarga
http://lwp-l.com/pdf12836

Comentarios de: Arduino - Práctica "Control de LED por medio del mouse" (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad