Tabla de contenido:

Twitter Watcher, el #twatch: 6 pasos (con imágenes)
Twitter Watcher, el #twatch: 6 pasos (con imágenes)

Video: Twitter Watcher, el #twatch: 6 pasos (con imágenes)

Video: Twitter Watcher, el #twatch: 6 pasos (con imágenes)
Video: twenty one pilots: Stressed Out [OFFICIAL VIDEO] 2024, Noviembre
Anonim
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch
Twitter Watcher, el #twatch

El reloj muestra los últimos temas de tendencia de Twitter en una pantalla LCD. Es un dispositivo de red independiente que se mantiene actualizado sin una PC. Fue increíble ver cómo #iranelection, Michael Jackson y otros eventos históricos pasaron mientras desarrollábamos el #twatch. Este Instructable documenta el hardware y el diseño de #twatch. Además de un indicador de tendencias de Twitter, el #twatch también es una mochila genérica con LCD ethernet. Mostrará listas de reproducción, estadísticas de PC y otra información con programas como LCD Smartie. También es actualizable por software, por lo que nunca está desactualizado. El #twatch es de código abierto, por lo que puede descargar nuestros diseños y crear el suyo propio. Seeed Studio tiene algunos paquetes de LCD ensamblados #twatch ethernet por $ 45, incluido el envío a todo el mundo. Consígalos mientras duren porque no haremos más pronto. Si te perdiste este proyecto, regístrate aquí para recibir notificaciones de futuros pedidos anticipados de #twatch. Lee este artículo con su formato original en DangerousPrototypes.com, más discusión en el foro #twatch. Enviaremos un PCB de #twatch gratis si eres el primero en tuitear el #twatch! Resumen del concepto El #twatch toma los últimos temas de tendencia de Twitter y luego carga algunos tweets para cada uno. Los temas de tendencia y los tweets se desplazan en una pantalla. El #twatch captura nuevas tendencias y tuitea cada cinco minutos para que siempre veas los últimos temas de tendencia. También agregamos un modo de mochila ethernet genérico, por lo que #twatch también puede mostrar estadísticas de PC desde un programa como LCD Smartie, más sobre esta función en la parte 2.

Paso 1: usándolo

Usándolo
Usándolo

El #twatch es fácil de usar.

  • Conéctelo a una red Ethernet doméstica con acceso a Internet. El #twatch requiere configuración de red automática (DHCP), esta es la configuración predeterminada en casi todas las redes domésticas modernas.
  • Enciendelo. El #twatch requiere una fuente de alimentación de CC de 6-7 voltios. Utiliza un enchufe de CC de 2,1 mm, el tipo más común. Las fuentes de alimentación de CC universales deben incluir un enchufe de 2,1 mm.
  • Ajusta el contraste. Las pantallas LCD cambian con la temperatura y la edad, use el tornillo de ajuste para ajustar el contraste de la pantalla.
  • El #twatch configurará la configuración de la red y comenzará a desplazarse por los últimos temas de tendencia y algunos tweets de cada uno. Es posible que deba ajustar el contraste nuevamente para obtener el efecto de desplazamiento más limpio.

Obtenga actualizaciones de #twatch en el blog de Dangerous Prototype.

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Usamos la versión gratuita de Cadsoft Eagle para hacer el circuito y la PCB. Descargue los archivos más recientes de la página de código de Google del proyecto. Esta sección perdió mucho formato en Instructables, puede ver la versión original aquí. Microcontrolador Ethernet PIC 18F67J60 El Microchip PIC 18F67J60 es perfecto para este proyecto porque combina una interfaz de red Ethernet y un microcontrolador de 41MHz (10MIP) en un paquete pequeño por solo unos pocos dólares. Solo viene en paquetes de 64 pines + TQFP, pero no tuvimos ningún problema para soldarlo a mano a una PCB profesional. El PIC requiere una fuente de alimentación de 3.3 voltios. La parte de Ethernet consume mucha energía, así que usamos un regulador gigante TO-220 LD117-3.3volt (VR1). Elegimos un regulador grande porque podría tener que disipar una gran cantidad de calor dependiendo de la fuente de alimentación de entrada. El regulador requiere un pequeño condensador de desacoplamiento de entrada (C15) y un gran condensador de salida de 10uF (C3). Hay un gran problema con estos chips: solo se pueden programar unas 100 veces. Eso dificulta el desarrollo, por lo que también diseñamos una versión de desarrollo del #twatch basada en un chip diferente. Más sobre ese diseño en un artículo futuro. Cada pin de alimentación PIC recibe un condensador de desacoplamiento de 0.1uF (C17-C23). El PIC tiene un regulador interno de 2.5 voltios para el microcontrolador y los núcleos de Ethernet, el regulador requiere un condensador de tantalio de 10uF (C1). El PIC se programa a través de un encabezado ICSP de 5 pines. El pin de reinicio MCLR se mantiene alto con una resistencia pull-up de 10K (R21), una resistencia adicional (R4) y un condensador (C16) recomendados por la hoja de datos brindan protección contra varias condiciones de reinicio accidental. La sección de Ethernet exige un cristal externo de 25MHz (Q1). Dos condensadores de 33pF (C4, C5) completan el circuito del oscilador. Usamos un conector ethernet con magnetismo integrado (J2). El conector es un HanRun HR911105A, proporcionado por Seeed Studio; asegúrese de obtener el mismo conector, un conector compatible o ajuste la PCB para un conector que pueda encontrar. La interfaz Ethernet requiere un circuito de terminación (R30-33, C10-11, L1) y una resistencia de polarización del 1% de 2.28Kohm (R7, no se muestra). LCD HD44780 de caracteres El reloj #twatch admite una pantalla LCD HD44780 de 4 líneas por 20 caracteres y 5 voltios "estándar" con una luz de fondo de + 5 voltios. Por lo general, puede encontrarlos por alrededor de $ 10 en eBay. Asegúrese de verificar que su LCD coincida con el pinout #twatch antes de conectarlo. La mayoría de las pantallas LCD son iguales, pero no todas. Casi todas las pantallas LCD de caracteres funcionan a 5 voltios, por lo que proporcionamos una fuente de alimentación de 5 voltios desde un regulador 7805 común (VR2, C14, C2). La pantalla LCD con luz de fondo podría usar una gran cantidad de corriente, por lo que usamos otro regulador To-220 grande. C12 es un condensador de desacoplamiento para la fuente de alimentación de LCD, pero los LCD ya tienen desacoplamiento integrado. No es necesario rellenar C12, solo lo incluimos en caso de problemas de estabilidad. Para una velocidad de actualización máxima, la pantalla LCD se controla a través de la interfaz completa de 8 bits. La mayoría de las pantallas LCD son partes de 5 voltios que requieren aproximadamente 4,25 voltios + para registrar un nivel alto en los pines de datos, pero el PIC 18F65J60 es solo una pieza de 3,3 voltios. Afortunadamente, el PIC tiene un montón de pines tolerantes a 5 voltios, por lo que podemos mantener la señal a 5 voltios con una resistencia pull-up de 10K (R10-R19) y luego conectarla a tierra cambiando la configuración de dirección del pin PIC. Esto generalmente se denomina salida de drenaje abierto. Algunas pantallas LCD más nuevas funcionan a 5 voltios, pero aún funcionan a niveles de interfaz de 3,3 voltios. El #twatch admitirá este modo si omite R10-19 para que no haya voltaje pull-up en los pines y cambie el firmware para cambiar el registro LAT en lugar del registro TRIS en HD44780.c. El contraste de la pantalla LCD está controlado por un voltaje de polarización, generalmente generado con un potenciómetro de 10Kohm. La PCB #twatch tiene huellas para una olla SMD de 3 mm económica (R2) y un segundo espacio para usar una olla de orificio pasante más grande (R2A). ¡Solo uno debe estar poblado! En caso de que haya ruido en la fuente de alimentación de todas las cosas de Ethernet, filtramos el voltaje de polarización a través de una pequeña perla de ferrita (L2). También incluimos un capacitor para filtrado adicional (C13), pero no lo usamos porque ninguno de los elementos es realmente necesario. El PIC conmuta un transistor (NPN1) a través de una resistencia limitadora de corriente de 240 ohmios (R3, no se muestra). Usamos un transistor que puede manejar 800mA + con una ganancia de 250hfe +, por lo que el PIC puede cambiar una carga grande con su máxima corriente de salida de pin de 20mA. R1 es una resistencia limitadora de corriente para la luz de fondo de la pantalla LCD, si es necesario. Usamos una resistencia de orificio pasante para que pueda disipar mucho calor con grandes luces de fondo, y porque es el tamaño más fácil de encontrar localmente y soldarlo usted mismo. Si su luz de fondo no requiere una resistencia, simplemente reemplace R1 con un trozo de cable. Nuestra pantalla LCD requería una resistencia de 3 ohmios para una fuente de alimentación de luz de fondo de 240 mA. Algunas luces de fondo usan mucha energía, por lo que colocamos los pines de suministro justo al lado de la fuente de alimentación y reforzamos el plano de tierra con un montón de VIA. Algunas luces de fondo de LCD de lujo requieren circuitos de control especiales, así que asegúrese de que el suyo use un suministro simple de + 5 voltios para evitar daños. Fuente de alimentación El #twatch requiere una fuente de alimentación de 6-7 voltios a través de un conector de alimentación de 2,1 mm (J1). Los enchufes de 2,1 mm son el tamaño más común y deberían venir con todas las fuentes de alimentación universal. Cuanto mayor sea el voltaje de suministro que utilice, más calor tendrá que disiparse de VR1 y VR2. Recuerde que el #twatch es un prototipo de tablero de aprendizaje, no es un producto comercial completo y probado. Tome las precauciones de seguridad adecuadas y no lo ejecute sin supervisión.

Paso 3: PCB y lista de piezas

PCB y lista de piezas
PCB y lista de piezas
PCB y lista de piezas
PCB y lista de piezas

Usamos la versión gratuita de Cadsoft Eagle para hacer el esquema y la PCB. Descargue los archivos más recientes de la página de código de Google del proyecto. La PCB es un diseño de 2 capas con pequeños rastros y separación (10 mil) alrededor del chip TQFP PIC de 64 pines. Preparamos gerbers y los enviamos al servicio de PCB de Seeed Studio para trabajos de código abierto. Los PCB adicionales de nuestro pedido están disponibles en la tienda de Seeed Studio. Si compra nuestros PCB adicionales, asegúrese de obtener el conector ethernet HanRun que se adapta a la placa. Dado que los orificios de montaje en las pantallas LCD de 20x4 varían, no intentamos encajar el PCB en los orificios de la pantalla LCD. Lo hicimos lo más pequeño posible, como la mochila LCD en serie de SparkFun, para que se mantenga alejado de los orificios originales. Como efecto secundario, no es demasiado incómodo detrás de una pantalla más pequeña como esta LCD de 16x2 en Adafruit. Lista de piezas Haga clic para obtener una imagen de ubicación a tamaño completo [PNG]. Parte | Valor | PaqueteIC1 PIC 18F67J60 TQFP-64C1-3 Condensador de tantalio de 10 uF, 10 voltios + SMC_AC4, 5 Condensador de 33pF 0805C10, 11, C14-23 Condensador de 0,1 uF 0805ICSP 5 x 0,1 "conector de clavija macho J1 Conector de alimentación SMD de 2,1 mm SMDJ2 HR911105A Conector de ferrita RJ1 RJ-45 perla, 200ma + 0805NPN1 NPN transistor, 250hfe +, 800ma + SOT-23Q1 25MHz SMD cristal HC49UPR2 (A) Resistencia de ajuste de una sola vuelta de 10K 3 mm SMD o agujero pasanteR3 Resistencia de 240 ohmios 0805R4-6 Resistencia de 390 ohmios 0805R7 2, Resistencia de 260 ohmios, 1% 0805 21 Resistencia de 10.000 ohmios 0805R30-33 Resistencia de 49,9 ohmios, 1% 0805VR1 LDO Regulador de 3,3 voltios (LD1117) TO-220VR2 7805T Regulador de 5 voltios TO-220HD44780-LCD 20x4 HD44780 LCD de caracteres

Paso 4: firmware

Firmware
Firmware
Firmware
Firmware
Firmware
Firmware

La última descarga completa del firmware #twatch se encuentra en la página de código de Google del proyecto. El código está escrito en C y compilado con el compilador de demostración Microchip C18. Pila TCP / IP y funciones de red base La pila TCP / IP "gratuita" de Microchip proporciona todas las funciones de red que necesitamos para existir en una red doméstica y obtener datos de Twitter. La pila es de código abierto y gratis como en cerveza, pero la licencia de Microchip prohíbe la distribución. Debido a problemas de licencia, solo estamos poniendo nuestro código fuente de dominio público en el proyecto Google Code SVN, aprenda cómo descargar y compilar la fuente aquí. La pila tiene un cliente de Protocolo de configuración dinámica de host que configura automáticamente la configuración de red utilizando DHCP servidor en su red local. El #twatch requiere un servidor DHCP, pero la gran mayoría de redes y enrutadores lo tienen habilitado. La dirección IP, la máscara, la puerta de enlace y el primer servidor DNS se muestran en la pantalla LCD hasta que haya datos válidos de Twitter disponibles. La pila también incluye el servidor de anuncios de Microchip. Cuando DHCP adquiere la dirección IP, el #twatch anuncia su dirección IP con un paquete de transmisión a todas las computadoras de la red local. Utilice la utilidad MCHPDetect.exe en el archivo del proyecto para ver estos paquetes. Finalmente, incluimos un servidor de ping (IMCP). Utilice cualquier cliente de ping para comprobar si el #twatch está activo en la red. Cliente TCP de Twitter El programa de seguimiento de tendencias de Twitter es un cliente TCP simple, similar a un navegador web, que extrae datos de servidores web. La API de Twitter nos proporcionará datos en una variedad de formatos. Usamos el formato JSON liviano porque es más fácil de decodificar para el chip PIC de bajo consumo, consulte JSONView si usa Firefox. Después de que #twatch configura automáticamente la configuración de red, el cliente TCP de Twitter toma el control y toma las tendencias actuales.. Busca a través de esta fuente de datos JSON y busca la etiqueta "nombre". Se copian hasta 10 temas de tendencia en un búfer de 225 bytes. Una matriz separada almacena la posición final de cada tema en el búfer para que podamos recuperar los temas en el siguiente paso. A continuación, el #twatch busca en Twitter 2 tweets para cada tema. Agrega cada tema al final de la URL de búsqueda JSON de Twitter, los caracteres especiales como los espacios y la puntuación están codificados en URL. El cliente TCP analiza los resultados de búsqueda y busca tweets que siguen la etiqueta "texto". Los tweets tienen múltiples capas de codificación. Decodificamos caracteres reservados HTML como y comercial (&) y comillas (") porque la pantalla LCD puede mostrarlos. Eliminamos los caracteres internacionales UTF8 porque la pantalla LCD HD44780 no los tiene en su conjunto de caracteres. Los tweets analizados y decodificados se almacenan en un búfer de 2100 bytes, una matriz adicional marca el comienzo y el final de cada tweet en el búfer. El espacio de RAM fue un gran problema en el chip 18F67J60, solo tiene alrededor de 4000 bytes en total, pero el búfer de 2100 bytes parece lo suficientemente grande como para manejar 20 de tamaño promedio tweets. Tomamos especial cuidado para protegernos contra problemas de memoria insuficiente y probamos el cliente en condiciones de RAM reducida para asegurarnos de que fallara correctamente durante los errores. Twitter es bien conocido por su tiempo de inactividad ocasional. Si el #twatch no puede conectarse a Twitter, muestra un mensaje de error de conexión y los reintentos dos veces. Si no puede conectarse después de tres intentos, espera cinco minutos antes de volver a intentarlo. Esto le da a Twitter la oportunidad de solucionar sus problemas sin ser golpeado por #twatch q El #twatch captura nuevas tendencias y tweets cada cinco minutos. Twitter pone un límite a la cantidad de consultas que puede realizar un cliente, así que tenga cuidado de actualizar más a menudo. Twitter permite 150 actualizaciones de temas de tendencia por hora y "significativamente más" consultas de búsqueda. Servidor TCP en modo mochila LCD de red El #twatch también puede mostrar información sobre el estado del sistema de programas como LCD Smartie. El #twatch tiene un servidor TCP en el puerto 1337 que acepta comandos formateados en Matrix Orbital. Esto también proporciona control sobre la luz de fondo de la pantalla LCD. Le mostraremos cómo redirigir LCD Smartie desde un puerto COM al servidor #twatch TCP en la segunda parte de nuestro artículo #twatch.

Paso 5: cargador de arranque para actualizaciones de firmware de red

Cargador de arranque para actualizaciones de firmware de red
Cargador de arranque para actualizaciones de firmware de red
Cargador de arranque para actualizaciones de firmware de red
Cargador de arranque para actualizaciones de firmware de red
Cargador de arranque para actualizaciones de firmware de red
Cargador de arranque para actualizaciones de firmware de red

El #twatch se puede actualizar desde una PC en la red local gracias al gestor de arranque de Internet de Microchip. Recuerde que los PIC ethernet 18F solo se pueden programar un promedio de 100 veces, por lo que las actualizaciones son algo limitadas. Todavía tenemos que quemar un chip, pero solo alcanzamos unos 55 ciclos durante el desarrollo. Si está utilizando un chip nuevo, deberá programar el cargador de arranque en el PIC18F67J60 a través del encabezado ICSP, luego puede cargar el #Ver firmware a través de la red. Programe twatchv2-bl-vxx. HEX en el chip con un programador PIC como un ICD2 o PicKit. Cuando el #twatch se enciende, el cargador de arranque se ejecuta antes de que se inicie el programa principal. El cargador de arranque busca una conexión entre los pines PGD y PGC del encabezado de programación, que se muestra en la imagen de arriba. Si encuentra una conexión, el cargador de arranque se hace cargo y espera a que se cargue un nuevo firmware. Existe una posibilidad muy pequeña de que el cargador de arranque se inicie accidentalmente incluso sin un puente entre los pines PGC y PGD. Esto no dañará el reloj, simplemente desconecte la fuente de alimentación y vuelva a intentarlo. La entrada accidental del cargador de arranque se puede evitar moviendo el puente sobre una posición para que conecte los pines PGD y GND. El cargador de arranque #twatch usa la dirección IP 192.168.1.123 y la máscara de subred 255.255.255.0. Su computadora también debe tener una dirección IP que comience con 192.168.1.xxx para comunicarse con el #twatch. Elegimos el rango 192.168.1.xxx porque es el valor predeterminado más común para los enrutadores domésticos. Si su computadora usa otro rango de direcciones IP, deberá ajustarlo temporalmente antes de poder realizar la actualización.

  • Asegúrese de que su PC esté en el mismo rango de IP y subred que el #twatch. Su PC debe tener una dirección IP en el rango 192.168.1.xxx y una máscara de subred de 255.255.255.0. La dirección IP predeterminada del gestor de arranque #twatch es 192.168.1.123, asegúrese de que ninguna otra computadora conectada al mismo enrutador ya use esta dirección.
  • Desenchufe la fuente de alimentación #twatch.
  • Coloque un puente entre los pines PGC y PGD.
  • Enchufe el cable de red, si es necesario, y enchufe la fuente de alimentación. La pantalla puede estar en blanco, tener bloques sólidos o basura.
  • Use una utilidad TFTP para enviar el nuevo firmware a la dirección IP #twatch, usamos TFTP.exe desde la línea de comandos de Windows.
  • La actualización TFTP informa de éxito o error.
  • Desenchufe la fuente de alimentación, retire el puente de actualización.
  • Vuelva a enchufar la fuente de alimentación. El #twatch debería comenzar a desplazarse por los tweets. Si el cargador de arranque se inicia en su lugar, coloque un puente entre los pines PGD y GND y vuelva a intentarlo.

Paso 6: Llevándolo más lejos, obtenga el suyo

Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo
Llevándolo más lejos, obtenga el suyo

Diseñamos el #twatch para hacer un uso completo de los recursos en un solo chip, un diseño ampliado agregaría funciones pero sería más costoso. El #twatch podría seguir su propio feed de Twitter. Necesitaría un pequeño servidor web para ingresar su inicio de sesión de Twitter y una EEPROM externa para almacenar la información de configuración. #Twatch también podría almacenar más tweets o información adicional sobre cada tweeter, como el nombre y la ubicación. Microchip no fabrica un controlador Ethernet integrado con más de 4K de RAM, pero podríamos agregar una SRAM externa para almacenar tweets y metainformación de tweets. El hardware actualizado podría agregar un encabezado de E / S para conectar botones con LCD Smartie. Un 20 caracteres por 4line LCD no tiene mucho espacio de visualización. Diseñamos la interfaz #twatch en torno a esta cantidad limitada de espacio. Un firmware actualizado podría manejar varios tamaños de pantalla. El cargador de arranque puede adoptar la dirección IP adquirida por DHCP. Una futura actualización del firmware de #twatch aprovechará esta función para facilitar las actualizaciones de red. La próxima semana cubriremos el servidor TCP compatible con LCD Smartie integrado en el # twatch. ¡Consiga uno! ¿Qué está publicando en tu #twatch? Si desea un #twatch o PCB ensamblado, aquí hay un par de opciones:

  • Seeed Studio tiene algunos paquetes de LCD ensamblados #twatch ethernet por $ 45, incluido el envío a todo el mundo. Consígalos mientras duren porque no haremos más pronto. Si te perdiste este proyecto, regístrate aquí para recibir notificaciones de futuros pedidos anticipados de #twatch.
  • Si desea construir el suyo propio, Seeed Studio está vendiendo los PCB adicionales #twatch v1 y v2 de nuestro pedido. Asegúrese de obtener un conector Ethernet de Seeed o asegúrese de encontrar uno que coincida con la PCB. Escribiremos sobre v1 en unos días, el esquema y la PCB están en el proyecto SVN.
  • Enviaremos un PCB desnudo #twatch v2 gratis a las 2 primeras personas que twitteen el #twatch.

Si desea participar, únase al proyecto de hardware abierto de Dangerous Prototypes en Google Code, o venga a chatear en el foro #twatch. La próxima semana le mostraremos cómo redirigir las estadísticas del sistema LCD Smartie al servidor TCP #twatch.

Recomendado: