Modificación de Wiimote de inalámbrica para las personas con discapacidad (2 / 17 paso)

Paso 2: Programar el Arduino: transmisor


El transmisor de Arduino fue programado para que cuando uno o más de los interruptores conectados a la entrada-salida digital 2-13 presionó que algunas letra del alfabeto se transmitirían sin cables en serie. Por ejemplo, cambie 1 era que se fuera la letra "a" fue enviada inalámbricamente en serie. Si interruptor 1 iba a ser en la letra "b" fue envía inalámbricamente en serie. Si interruptor 2 era que se fuera, la letra "c" fue enviada inalámbricamente en serie. Si el interruptor 2 fue que se convirtió la letra "d" fue enviada. A continuación se muestra un ejemplo de la transmisión serie entera para 12 interruptores:
• Ejemplo 1: 1 y 3 son cerrada, todos los interruptores están abiertos
o "bcfgikmoqsuw"
• Ejemplo 2: 2, 3 y 5 son cerrada, y todos los interruptores están abiertos
o "adfgjkmoqsuw"

Abajo se encuentra el desglose de cómo fue programado el Arduino emisor.
1. Retire el escudo de Proto de Arduino que se elige como el transmisor. El microprocesador ATMEGA debe estar en la placa Arduino.
2. descargar el programa de Arduino desde la Web de Arduino (www.arduino.cc)
3. conectar el Arduino al ordenador mediante el cable USB.
4. Abra el programa de software de Arduino en el ordenador
5. seleccionados Tools -> Serial Port -> y seleccione el puerto COM que se refiere a la placa Arduino. Esto suele ser el primer puerto de COM en la lista.
6. Copie y pegue el código siguiente en la ventana de código de Arduino. Tenga en cuenta que este código es para la transmisión a una velocidad de 19200 baudios. Si necesita transmitir a una velocidad diferente que dondequiera en el código dice 19200, cambie a la velocidad deseada.

Este programa envía información de una radio MaxStream XBee.

serie está en el puerto 1
en es en el puerto 0

una entrada digital es en los puertos 2 a 13

int switchPin2 = 2;
int switchPin3 = 3;
int switchPin4 = 4;
int switchPin5 = 5;
int switchPin6 = 6;
int switchPin7 = 7;
int switchPin8 = 8;
int switchPin9 = 9;
int switchPin10 = 10;
int switchPin11 = 11;
int switchPin12 = 12;
int switchPin13 = 13;

un byte a enviar datos:
char thisByte2 = 0;
char thisByte3 = 0;
char thisByte4 = 0;
char thisByte5 = 0;
char thisByte6 = 0;
char thisByte7 = 0;
char thisByte8 = 0;
char thisByte9 = 0;
char thisByte10 = 0;
char thisByte11 = 0;
char thisByte12 = 0;
char thisByte13 = 0;
void setup () {}
Set pasadores para entrada y salida debidamente
pinMode (switchPin2, entrada);
pinMode (switchPin3, entrada);
pinMode (switchPin4, entrada);
pinMode (switchPin5, entrada);
pinMode (switchPin6, entrada);
pinMode (switchPin7, entrada);
pinMode (switchPin8, entrada);
pinMode (switchPin9, entrada);
pinMode (switchPin10, entrada);
pinMode (switchPin11, entrada);
pinMode (switchPin12, entrada);
pinMode (switchPin13, entrada);
poner en marcha la conexión serie con 19200-8-n-1-verdadero (no invertida):
Serial.Begin(19200);

por alguna razón parece ayudar a enviar primero un carácter arbitrario
a continuación, pausa para el tiempo de guardia antes de solicitar el modo de comando
Serial.Print("X");
Delay(1100);
poner el XBee en modo comando
Serial.Print("+++");
Delay(1100);
esperar una respuesta de lo XBee de 2000 ms, o iniciar
con la instalación si no hay respuesta válida viene

Si (returnedOK() == ' t ') {}
Si recibió una autorización continúe
}
Else {}
Setup(); de lo contrario volver atrás y vuelva a intentarlo configuración
}

configurar la bandeja de número de identificación (red de área personal)
Este ejemplo utiliza 0x3330, pero usted querrá elegir su propio
único número hexadecimal entre 0 x 0 y 0xFFFE
(observe la coma al final del comando que indica que seguirá otro comando)
Serial.Print("ATID3330,");
establece el alto de destino en 0 x 0
para seleccionar el modo de direccionamiento de 16 bits. Estas direcciones pueden
ser asignado y cambiado mediante el envío de comandos de un microcontrolador
Serial.Print("DH0,");
configurada en el bajo de destino (16 bits de dirección)
Este ejemplo utiliza 0 x 0 para enviar y 0 x 1 para recibe sin embargo
quieres elegir tus propios números hexadecimales entre 0 x 0 y 0xFFFE

Serial.Print("DL1,");
salir del modo de comando (note que utilizamos Serial.printLN aquí dar un salto de línea que completa la secuencia de comandos)
Serial.println("cn");

los comandos anteriores también se pueden enviar en una sola línea, con un solo mando con comas:
Serial.println("ATID3330,DH0,DL1,CN");

la línea de comandos anterior también podría ser enviada como comandos separados, por volver a emitir el comando AT:
Serial.println("ATID3330");
Serial.println("ATDH0");
Serial.println("ATDL1");
Serial.println("ATCN");

esperar una respuesta de lo XBee de 2000 ms, o iniciar
con la instalación si no hay respuesta válida viene

Si (returnedOK() == ' t ') {}
Si recibió una autorización continúe
}
Else {}
Setup(); de lo contrario volver atrás y vuelva a intentarlo configuración
}

}

void loop () {}
leer el interruptor:
thisByte2 = digitalRead(switchPin2);
convertir a un valor ASCII legible, enviarlo por el puerto serie:
Delay(20);
Si (thisByte2 == 0) {}
thisByte2 = 'a'; }
Si (thisByte2 == 1) {}
thisByte2 = 'b';}
Serial.Print(thisByte2);

thisByte3 = digitalRead(switchPin3);
Delay(20);
Si (thisByte3 == 0) {}
thisByte3 = 'c'; }
Si (thisByte3 == 1) {}
thisByte3 = había ';}
Serial.Print(thisByte3);

thisByte4 = digitalRead(switchPin4);
Delay(20);
Si (thisByte4 == 0) {}
thisByte4 = 'e'; }
Si (thisByte4 == 1) {}
thisByte4 = 'f';}
Serial.Print(thisByte4);

thisByte5 = digitalRead(switchPin5);
Delay(20);
Si (thisByte5 == 0) {}
thisByte5 = 'g'; }
Si (thisByte5 == 1) {}
thisByte5 = 'h';}
Serial.Print(thisByte5);

thisByte6 = digitalRead(switchPin6);
Delay(20);
Si (thisByte6 == 0) {}
thisByte6 = 'i'; }
Si (thisByte6 == 1) {}
thisByte6 = 'j';}
Serial.Print(thisByte6);

thisByte7 = digitalRead(switchPin7);
Delay(20);
Si (thisByte7 == 0) {}
thisByte7 = 'k'; }
Si (thisByte7 == 1) {}
thisByte7 = 'l';}
Serial.Print(thisByte7);

thisByte8 = digitalRead(switchPin8);
Delay(20);
Si (thisByte8 == 0) {}
thisByte8 = estoy '; }
Si (thisByte8 == 1) {}
thisByte8 = ' n ';}
Serial.Print(thisByte8);

thisByte9 = digitalRead(switchPin9);
Delay(20);
Si (thisByte9 == 0) {}
thisByte9 = ' o '; }
Si (thisByte9 == 1) {}
thisByte9 = 'p';}
Serial.Print(thisByte9);

thisByte10 = digitalRead(switchPin10);
Delay(20);
Si (thisByte10 == 0) {}
thisByte10 = 'q'; }
Si (thisByte10 == 1) {}
thisByte10 = 'r';}
Serial.Print(thisByte10);

thisByte11 = digitalRead(switchPin11);
Delay(20);
Si (thisByte11 == 0) {}
thisByte11 = de '; }
Si (thisByte11 == 1) {}
thisByte11 = ' t ';}
Serial.Print(thisByte11);

thisByte12 = digitalRead(switchPin12);
Delay(20);
Si (thisByte12 == 0) {}
thisByte12 = 'u'; }
Si (thisByte12 == 1) {}
thisByte12 = 'v';}
Serial.Print(thisByte12);

thisByte13 = digitalRead(switchPin13);
Delay(20);
Si (thisByte13 == 0) {}
thisByte13 = 'w'; }
Si (thisByte13 == 1) {}
thisByte13 = 'x';}
Serial.Print(thisByte13);

}

char returnedOK () {}
Esta función comprueba la respuesta en el puerto serie para ver si era un "OK" o no
char incomingChar [3];
char okString [] = "OK";
char el resultado = ' n ';
int startTime = millis();
mientras que (millis() - startTime < 2000 & & resultado == ' n ') {/ / usar un tiempo de espera de 10 segundos
Si (Serial.available() > 1) {}
leer tres bytes de entrada que deben ser "O", "K", un salto de línea:
para (int i = 0; i < 3; i ++) {}
incomingChar [i] = Serial.read();
}
Si (strstr (incomingChar, okString)! = NULL) {/ / comprobar si la respuesta es "OK"
Si (incomingChar [0] == ' o ' & & incomingChar [1] == 'K') {/ / comprobar si los dos primeros caracteres son "OK"
resultado = ' t '; T retorno si "OK" fue la respuesta
}
Else {}
resultado = 'F'; de lo contrario volver F
}
}
}
volver a resultado;
}

7. una vez que el código ha sido copiado en la ventana de código de Arduino, seleccionar "Compile" para verificar que no hay ningún error en el código. Si no hay errores presentes Pulse "Añadir al botón de la placa de E/S".
8. una vez que el código se ha subido a la placa Arduino, desconecte el cable USB y vuelva a colocar el ProtoShield (incluye el módulo Xbee). Ahora termine subiendo el código para el Arduino emisor.

Artículos Relacionados

Modificación de Wiimote para las personas con discapacidad

Modificación de Wiimote para las personas con discapacidad

este instructable le mostrará cómo recablear el botón del Wiimote para botones más grandes para que las personas con discapacidad serán capaces de utilizar eficazmente el Wiimote por no tener a los pequeños botones en el Wiimote. Los botones que será
Perro bebe del tazón de fuente señalización de nivel de agua para las personas con discapacidad visual

Perro bebe del tazón de fuente señalización de nivel de agua para las personas con discapacidad visual

Tareas que parecen obvio para nosotros pueden ser un verdadero desafío para una persona con discapacidad visual. Comprobar si está vacío el depósito de agua de su perro guía era un desperdiciador de tiempo y físicamente exigente trabajo para invident
Un hacker para las personas con discapacidad de mano

Un hacker para las personas con discapacidad de mano

Este es un instructivo que le muestre cómo puede hacer un tajo para las personas que tienen algún tipo de dificultad con sus manos. Usted podrá modificar esta tabla para adaptarse más a una persona ya que algunas personas pueden tener artritis y otra
Cartera para las personas con espasticidad

Cartera para las personas con espasticidad

Yo quería hacer una cartera para las personas con espasticidad. Podría ser útil porque no pueden mantener cosas con sus manos así que por qué no hacer una cartera que se ajusta alrededor de su muñeca.Paso 1: La carpeta 'perfecta'Imaginemos una carter
Facilitar una DS Lite a mango para las personas con pobre

Facilitar una DS Lite a mango para las personas con pobre

mi abuela tiene un agarre débil, porque ella tenía poliomielitis cuando era pequeño.Pero a ella le gusta jugar Braintraining en el DS.Esto es lo que he hecho para que sea más fácil para ella jugar al juego.  Voy a llevarlo hasta ella en Navidad.(Mi p
Trapo apretando la ayuda para las personas con sólo un brazo funcional

Trapo apretando la ayuda para las personas con sólo un brazo funcional

Para una persona que sólo tiene un brazo funcional algunas acciones cotidianas a veces pueden ser difíciles. La acción de exprimir un trapo es un ejemplo de este fenomenal. El movimiento de sacar típico utilizado para secar un trapo requiere dos mano
(8) que era fácil micro interruptor o CW fallo para permitir que las personas con discapacidad

(8) que era fácil micro interruptor o CW fallo para permitir que las personas con discapacidad

conocí a un operador de Radio aficionado que es Quadriplegic.Él no puede usar sus manos para exprimir el pepinillo (mic).Lo mejor que puedes hacer es pivotar su brazo para dejar caer su mano sobre la mesa.Por lo tanto, hice un interruptor Mic, que pu
Brazo robótico para personas con discapacidad

Brazo robótico para personas con discapacidad

brazo robótico en las estadísticasUn brazo mecánico es robótica, generalmente programable, con funciones similares a un brazo humano. Los enlaces de un manipulador de tal están conectados por uniones permitiendo el movimiento de rotación (tal como en
Tablero de comunicación para personas con discapacidad

Tablero de comunicación para personas con discapacidad

La incapacidad para hablar o expresarse puede ser frustrante y puede producir un grave obstáculo en una relación paciente-médico. Este dispositivo simple y de bajo costo permite a las personas con discapacidad para comunicarse con cuidadores y provee
Hacer la Web más accesible para personas con discapacidad

Hacer la Web más accesible para personas con discapacidad

informes indican que por lo menos 2,1 millones de unos 54,4 millones de estadounidenses con discapacidades usar el Internet. Para personas con discapacidad, acceder y experimentar completamente materiales presentados en Internet a menudo pueden ser d
Mejor configuración inalámbrica para DD-WRT TP-LINK TL-WR841ND V10

Mejor configuración inalámbrica para DD-WRT TP-LINK TL-WR841ND V10

Mejor configuración inalámbrica para DD-WRT TP-LINK TL-WR841ND V10
Programa de carga inalámbrica para Arduino sin cable USB

Programa de carga inalámbrica para Arduino sin cable USB

Programador de Arduino Wireless está diseñado para cargar el programa desde tu PC/laptop a Arduino board solo por Bluetooth.Ahora que puede actualizar el programa a las placas Arduino que incluida en la caja o estuche sin ningún gato del usb, usted n
GESTO asistida interruptor remoto CONTROL para personas con discapacidad

GESTO asistida interruptor remoto CONTROL para personas con discapacidad

Muchas personas con incapacidad física causaron ya sea por enfermedad y lesión no puede interactuar con el ambiente exterior. Fácilmente no puede participar en el acto más simple de interacción con el mundo exterior. Tecnología asistiva que fue desar
Ejercicios de fuerza y acondicionamiento físico para personas con discapacidad

Ejercicios de fuerza y acondicionamiento físico para personas con discapacidad

ser voluntario con una organización llamada AccesSports que tiene actividades que los más ágiles de atletas desafiantes y trae estos deportes a niños y adultos con discapacidad. La emoción inherente a cada deporte es sólo una parte de la experiencia