Un escudo personalizado para la hélice ASC - mando a distancia Infra-rojo - y múltiples dientes!

En mi primer proyecto se añadió una pantalla LCD de 2 líneas a la placa Arduino Shield Compatible (ASC).
(  )

En este proyecto también introducimos el uso de múltiples dientes, una característica única de la viruta de propulsor de la paralaje.

Pantalla LCD:
La pantalla está disponible en Radio Shack y sólo necesita tres hilos para ejecutar.

Detector de infrarrojos:
Ahora, para proporcionar control de usuario y entrada al sistema de ASC, vamos a añadir un detector de infrarrojos para
que puede utilizarse una unidad de control remoto TV universal común.  Este código utiliza el dispositivo de SONY
protocalls, así que establece el código remoto de TC en el primer código de SONY en su ' manual.

Estoy usando el chip detector de IR PNA4602. Parece mucho a un transistor de tres patas normal, pero no es.
Contiene filtros que hace muy fácil de utilizar con TV común y desmodulador de 38 KHZ de la en-viruta
mandos a distancia.    Cuestan unos $2 cada uno.
Todos los fascinantes detalles técnicos pueden encontrarse en frutas de Ada en: http://learn.adafruit.com/ir-sensor

Proto-Shield:
Para montar el detector, estoy usando un Seeed "Proto-escudo" de Radio Shack.
Es un poco excesivo para un pequeño circuito, pero crecerá más cosas en un futuro cercano.

Un encabezado de 3 x 2 hembra se instaló como un zócalo para el chip decodificador.
Es el detector de IR escondido en la esquina superior derecha debajo de ese lío de cables.

Puesto que los pines de Proto-escudo enchufe en las cabeceras de zócalo ASC no es factible utilizar
técnicas de envoltura de cable normal.  Que llevaría encima de demasiado de la longitud del perno,
lo que es cuestionable si el escudo podría ser conectado en el host Junta ASC en todos.
Por lo que estoy usando una técnica modificada - una simple envoltura alrededor del perno, después de la soldadura.
Es un trabajo delicado.  Pero por el momento. es sólo tres hilos, energía (3.3V), tierra, y
señal, así que no hay problema.  Ver la foto de los cables.

Software:
El software de la versión parcial de programa utiliza varios objetos de intercambio paralaje de objetos (OBEX).
Controlador remoto de IR: "IR_Remote.Spin"
Conductor del LCD: "serial_lcd.spin"
Números: "simple_numbers.spin"

Estos pueden descargarse el OBEX, pero he incluido en este archivo ZIP adjunto
a este Instructible.

Este programa demo Lee los códigos de control remoto y muestra los resultados en la pantalla LCD.
Esa parte es bastante simple y sencillo.

PERO...
¿Lo que si queríamos la pantalla LCD para apagar la luz de fondo después de unos segundos de inactividad?

Normalmente, utilizaría un manejador de interrupción para eso.
Una interrupción periódica constituiría la base de tiempo, y el controlador cuenta atrás determinar
Cuando llegó el momento de apagar la luz de fondo.

Pero la hélice no utiliza interrupciones.  Eso es lo que los dientes múltiples para.  Toma un poco de un
cambio de paradigma para envolver su mente alrededor de procesamiento en paralelo, pero bien vale el esfuerzo.

En este programa de demostración, hará girar apagado un pequeño procedimiento a otra corona.
Se proporciona una base de tiempo y conteo regresivo variable tiempo de espera.
Puede encontrar este código al final del programa de demostración.
Buscar - tiempo de espera de PUB .
Y tenga en cuenta que lo único que hace es esperar un segundo, entonces Compruebe ver si la variable LCDtime
es mayor que cero y disminuye si es.  Eso es todo /.

También, considere esto; ¿Qué pasa si se necesitan dos (o más) bases de tiempo completamente diferente?
Asignar cada tarea a un engranaje diferente y funcionan al mismo tiempo y totalmente independientemente uno del otro.
Sólo no consigue todo más simple.

Giro puede parecer un poco extraño al principio, pero es fácil de aprender y hace el trabajo bastante bien.

Pero recuerde que muesca define la estructura del programa y cambio de carelesly la
indentación cambiará totalmente el flujo del programa.  Así que ten cuidado de eso.

La Herramienta de la hélice (con toda la documentación) puede descargarse gratis de paralaje en:
http://www.Parallax.com/tabid/832/default.aspx

Código fuente de demostración:

{{ASC_LCD_IR_TimeOut.spin}}
CON
_CLKMODE = XTAL1 + PLL16X ' reloj de 80 Mhz
_XINFREQ = 5_000_000
Irpín = 23' IR receptor - perno de la hélice
LcdTimeOut = 10
LcdOn1 = $16 ' LCD; cursor off, parpadeo off
LcdLine0 = $80 ' mover a la línea 1, columna 0
LcdLine1 = $94 ' mover a la línea 2, columna 0
POL = 15' prueba de vida LED

OBJ
ir: "IR_Remote"
LCD: "serial_lcd"
NUM: "simple_numbers"

VAR
byte IRcode ' keycode de receptor IR aquí
byte LCDtime
IRcog largo
Stack1 largo [6] ' pila de espacio para LCDtimeout cog

PUB Init | frecuencia, índice, cog, lcode
' init LCD
Si lcd.start (0, 9600, 2)
LCD.putc(LCD#LcdOn1) ' sin cursor
LCD.CLS
LCD.Backlight(1)
LCD.Str (string (LcdLine0, "IR Remote"))

' Prueba de vida
dira [pol] ~ ~
! outa [pol]

' Iniciar el tiempo de espera
LCDTime: = LCDTimeout ' restablecer el tiempo de espera cada vez que se pulsa una tecla
cognew (tiempo de espera)

' Init control remoto
IRcog: = ir. Inicio (Irpín, ' Pin de IR receptor, dirección de variable

Si IRcog > 0
repetir
Si LCDtime > 0
LCD.backlight(1) ' encendido
otro ' agotado el tiempo de
LCD.backlight(0) ' girar if off
Si IRcode <> ir #NoNewCode ' tenemos un código de tecla
lcode: = IRcode
ir. Inicio (Irpín, ' configurado para el siguiente código
Si LCDtime: = 0' si estaba apagado,
LCD.backlight(1) ' encenderla
LCDTime: = LCDTimeout ' restablecer el tiempo de espera cada vez que se pulsa una tecla
LCD.gotoxy(1,1)
caso lcode
ir #one: lcd.str (string ("< 1 >))
ir #two: lcd.str (string ("< 2 >"))
ir #three: lcd.str (string ("< 3 >"))
ir #four: lcd.str (string ("< 4 >"))
ir #five: lcd.str (string ('< 5 >'))
ir #six: lcd.str (string ("< 6 >"))
ir #seven: lcd.str (string ("< 7 >"))
ir #eight: lcd.str (string ("< 8 >"))
ir #nine: lcd.str (string ("< 9 >"))
ir #zero: lcd.str (string ("< 0 >"))
ir #chUp: lcd.str (string ("chUp"))
ir #chDn: lcd.str (string ("chDn"))
ir #volUp: lcd.str(string("volUp"))
ir #volDn: lcd.str(string("volDn"))
ir #mute: lcd.str (string ("mute"))
ir #power: lcd.str(string("power"))
ir #last: lcd.str (string ("last"))
otros: lcd.str (string(""))

waitcnt ((clkfreq / 1000) * 30 + cnt)
! outa [pol]

PUB Tiempo de espera
REPEAT ' bucle para siempre
waitcnt (clkfreq + cnt) ' espera un segundo
Si bytes [= > 1' seguir contando
Byte [--' abajo

Artículos Relacionados

Como hacer escudos personalizados para sus microcontroladores

Como hacer escudos personalizados para sus microcontroladores

Microcontroladores como Arduinos son una gran manera para controlar tus proyectos de electronica. Pero siempre hay alguna forma de conectar los componentes externos a la tarjeta del microcontrolador. Jumper cables puede trabajo para esto, pero tener
Construcción de un escudo personalizado para el gángster Gadget propulsor plataforma

Construcción de un escudo personalizado para el gángster Gadget propulsor plataforma

Breadboards pueden ser rápidos para probar un circuito simple, pero son muy torpes a la hora de utilizar ese circuito.Así paso al siguiente nivel de prototipos de circuitos con un escudo personalizado como este para la plataforma de hélice de gángste
Infra rojo intervalometro para Canon EOS M o los Nikon D50

Infra rojo intervalometro para Canon EOS M o los Nikon D50

Me encantan los vídeos de lapso de tiempo.Así que cuando recibí mi primera cámara decente no podía esperar para hacer una. El proceso es bastante simple. Encontrar una visión interesante, tomar una foto cada pocos segundos, cuando tienes unos cien tr
Montaje del coche personalizado para tu smartphone

Montaje del coche personalizado para tu smartphone

archivos Cad están disponibles aquí: http://www.thingiverse.com/thing:24315No dude en modificar el diseño para adaptarse a su teléfono particular o coche._________________________________________________________Así, recientemente compré un Galaxy Not
Registros personalizados para un tocadiscos de juguete años 70

Registros personalizados para un tocadiscos de juguete años 70

me topé recientemente y viejo tocadiscos de juguete de Fisher Price en la década de 1970. Estoy seguro que muchos de ustedes reconocerán este icónico juguete y algunos de los mayores visitantes de Instructables bien puedan haber tenido uno. Como con
Hacer propio control remoto personalizado para su proyecto

Hacer propio control remoto personalizado para su proyecto

Hice un proyecto que utiliza un arduino y un IR eliminar biblioteca para controlar un par de cosas.Tan en este instructable le muestro cómo puede reutilizar un control remoto para su propósito en.Y no necesita algo de fantasía para hacer un control r
{EVAN} Como hacer gemelos personalizados para los caballeros

{EVAN} Como hacer gemelos personalizados para los caballeros

www.diyweddinggowns.comEsto va a ser un tutorial diy fácil de como hacer gemelos personalizados para los caballeros en el banquete de boda.¡ Disfrute!entrada de blog: http://youtiquebridal.wordpress.com/2012/04/02/how-to-make-custom-cuff-links-for-th
Cartulina Escudo antidisturbios para Airsoft

Cartulina Escudo antidisturbios para Airsoft

en este instructable (mi primera) mostrando mal es el más barato, más fácil y probablemente la mejor variación de un escudo hecho en casa, puede ser cualquier forma o tamaño y tendrá un costo de alrededor de cinco libras.Paso 1: Necesitarás:CartónCin
Smartitions: Crear particiones Lasercut personalizado para el envío!

Smartitions: Crear particiones Lasercut personalizado para el envío!

Vamos a decir que desea enviar un PC o un tarro de masón o un 3D impreso parte y el ser humano normal que es, no tienen gran volumen de cacahuetes del embalaje. Si usted puede modelar el objeto, puede hacer un entramado de cartón personalizado para p
Panel interruptor personalizado para un simulador de vuelo

Panel interruptor personalizado para un simulador de vuelo

este es mi primer instructable.  Si había pensado que tendría tomó fotos de todo el proyecto al tiempo que.Este instructable es sólo un ejemplo de cómo puede hacer un panel de interruptores personalizados para agregar algunos realismo a tu sim de vue
Escudo GPIB para "Engadino" ("Pinguino")

Escudo GPIB para "Engadino" ("Pinguino")

este instructable muestra cómo crear un escudo GPIB para "Engadino" y obtener como producto final un adaptador de USB a GPIB.Paso 1: ¿Qué es GPIB? Según la Wikipedia:" IEEE-488 es una especificación de bus de comunicaciones digitales de cor
Creación de una caja de tamaño personalizado para impresión 3D con OpenSCAD

Creación de una caja de tamaño personalizado para impresión 3D con OpenSCAD

En hybrislabs, hemos explorado IoT bastante y en algún momento nuestros prototipos se convirtió en pequeño e integrado, que hemos tenido la necesidad de crear cuadros personalizados para estos. Inicialmente utilizado 123D para la creación de los arch
Trineo de corte personalizado para Sierra de mesa

Trineo de corte personalizado para Sierra de mesa

Trineo de corte personalizado para Sierra de mesaPaso 1:Mi canal de youtube en: www.youtube.com/therandomwoodworker para mas contenido como este!El stock de corte transversal sled que vino con mi mesa vio realmente inexactos y un dolor para mí usar c
Panel interruptor personalizado para vuelo Sims (actualizado)

Panel interruptor personalizado para vuelo Sims (actualizado)

este es mi segundo instructable, más o menos una actualización de la primera.Este instructable es sólo un ejemplo de cómo puede hacer un panel de interruptores personalizados para agregar algunos realismo a tu sim de vuelo. ¿Este es el mejor? No, ni