Cartel de tránsito LED Home bricolaje (2 / 2 paso)

Paso 2:

Código fuente

Como es habitual, comenzaré con el código fuente en github. Aquí es un espejo de local, en caso de que el código fuente de una joya siguiente Muni parcheada está aquí.

Cómo ejecutar

Hay una pequeña documentación en el archivo README, y líneas de comandos de muestra están en el script de arranque del demonio de esta espec. básicamente, que selecciona una parada en nextmuni.com para averiguar tu ID de parada y ejecutar client/client.rb--stopId 12345. Como alternativa, puede ejecutar una consola mañana especificando hasta dos rutas y paradas en texto y agregar una URL para recuperar el tiempo fromweather.gov:

Notas de configuración PI

Durante la primera carrera, conecte el ratón, teclado y tarjeta Wi-Fi a través del concentrador USB. Seguimiento de la guía para comenzar a descargar la imagen inicial en la tarjeta SD. Arrancar él, instalar la distro basada en Raspbian Debian por defecto. Seleccione "automáticamente arrancar el entorno de escritorio al inicio" cuando le preguntó. Aunque usted no lo necesita, es la forma más fácil de configurar Wi-Fi. Una vez en el escritorio, seleccione "Configuración de Wi-Fi" en uno de los menús se accede a través de botón Inicio y configurar la tarjeta wi-fi que ha insertado para conectar al router. Asegúrese de que usted también configurarlo para wi-fi automáticamente durante el arranque. Configurar servidor SSH y asegúrese de que se inicia durante el arranque. Configurar un nombre de host, o escriba la dirección IP. Reiniciar y probar a SSH desde otro equipo. Si esto funciona, desconectar mouse, teclado y HDMI: no necesite más. Asegúrese de que se puede instalar sudo apt-get install git git descargar las fuentes y siga las instrucciones del README para instalar Runtime de lenguaje. Jugar con las opciones de línea de comandos de script para averiguar lo que desea ejecutar y configurar un demonio instalando el script de inicio. Una vez que suficiente confianza en la capacidad de recuperación de la configuración, esto montar en la pared.

Resultados

Así que ayudó la solución: dejó de correr como un niño Japon y comenzó a controlar mi procrastinación mañana, también. Como un bono, tenía una estadio de béisbol estimación de cuánto costaría los contribuyentes para programar este signo, y, por supuesto, yo tenía un montón de diversión, también. Por último, ahora tengo un elemento geek en mi salón... aunque se ve a los demás como una secuencia de precios de las acciones y no de tiempos de llegada de Muni.

Notas

El resto son menos "calientes" secciones, detallando mi experiencia con las herramientas que utiliza para el trabajo.

Ruby

Por defecto de frambuesa Pi Linux, como un derivado de Debian, contienen soporte decente para Ruby, incluyendo 1.9. que es un poco viejo ya, aunque. Toma Pi varios segundos en cargar el intérprete y una docena de joyas que necesitaba para este signo, pero es aceptable ya que el programa se inicia sólo una vez cuando el sistema está encendido.

Muestra del LED

Para el signo utiliza una API de Perl, por lo que sería natural para escribir el programa cliente en Perl, demasiado... no realmente. Mientras que tengo un montón de experiencia de programación en Perl, que haría mucho más bien prefiere escribir en un lenguaje más interesante, como Python o Ruby. Fue una de las razones por qué escribí un contenedor pequeño sobre la API Perl, por lo que pude exec este sencillo programa de cualquier otra lengua. Otra razón por qué escribí esta API era que el signo no es compatible con dos líneas de texto en su procesador de texto incorporado. El API le permite suministrar una línea de texto y el signo se hacerla feliz e incluso añadir algunos efectos, pero quería dos líneas en una fuente más pequeña en su lugar. API no tiene una función "procesamiento de imagen", pero la señal le permite crear sus propios glifos de la fuente e insertarlos en el texto. La idea obvia de impresión 16 x un 96 "símbolo" trabajado. La envoltura hace exactamente esto. La muestra también puede recorrer varias imágenes, al igual que el signo real Muni. API de esto hace muy fácil de programar: esto sucede automáticamente cuando envía varios mensajes. Integración con Pi fue: solo uso $sign -> send (dispositivo = > "/ dev/ttyUSB0"); en su programa. Hubo varios fallos, aunque. En primer lugar, cada glifo se centra automáticamente, a menos que sea mayor que 80 pixels de anchos, en cuyo caso es alineado a la izquierda. Bucle a través de diferente alineado mensajes mira mal, para obligar a todas las imágenes de que enviar a la muestra 16 x 96, acolchado con píxeles negros. En segundo lugar, hay ninguna manera para apagar la señal mediante programación. Para energía, necesito físicamente quitar la conexión USB y lo apague porque comienza a usar la batería de lo contrario. Intención del fabricante de la señal era probablemente que usted no vuelva a programa la muestra a menudo, por lo que se programe una vez y girar encendido y apagado manualmente. Pero somos programadores ¿no está funcionando alrededor de cosas nuestro pan de cada día? Muestra una imagen totalmente negra hizo el truco de convertir la señal "off". En tercer lugar, actualizar la señal cada 30 segundos para asegurar la predicción puntual, pero tarda 1-2 segundos para actualizar el signo. Supongo que esto es debido a que la muestra contiene su propio CPU y programación, o porque no intento jugar con enviar argumentos de la función. Aunque su plomería interna probablemente afecta a la velocidad de actualización, y he visto ejemplos de descarga de la sincronización y parpadeo de las lámparas a frambuesa Pi completamente con signos diferentes, de más bajo nivel, sería demasiado lento para mí a molestar con. También no sé cuánto durará el signo cuando es reprogramado dos veces un minuto. Hasta ahora, estoy muy feliz con el signo de brillante LED que utiliza y su API.

Representación de fuentes

Esperaba gastar tiempo cero en representación de fuentes, pero tardó mucho, mucho más de lo que esperaba. Bueno, planeaba escribir mi propio motor de renderizado de fuentes simple, pero varias rocas ocultas me estaban esperando debajo de la arena fina. En primer lugar, no pude encontrar una fuente de "trama" que es sólo un conjunto de mapas de bits. Terminé de descargar fuentes TTF de "pixelado" y hacerlas con la biblioteca FontConfig. No quería que la muestra tener una gran cantidad de dependencias, para pre-rendeded los glifos en mi Pi de manera lista para usar con este script y escribió una pequeña biblioteca para operarlas. Lo más divertido es que podría añadir fácilmente nuevos glifos, como indicadores de precipitación. También tomamos un montón de representación de fuentes para concedido, como alinear al centro, palabra envoltura, ajuste entre caracteres. Implementé algunas de ellas de una manera muy sencilla (en Ruby!) pero creo que un par más características me haría ragequit a favor de una biblioteca de renderizado de fuente real en lugar de otro.

Acceso a predicciones Muni

Otra razón por qué elegí Ruby fue la biblioteca Muni en Ruby, listo para su uso para obtener predicciones del sistema NextBus. O así que pensé: la biblioteca carece de algunas funcionalidades, tales como refinación rutas u obtener predicciones para todas las rutas de una parada (esto es lo que muestra un signo de Muni). También tiró en la pila de carril entera sólo para mostrar la cadena de tiempo bien formateado! (como convertir intervalo en segundos a la algo lujo como "durante 1 hora"). Fija algunas de estas cosas y liaron la joya con la fuente original para su conveniencia porque es más fácil que lo que se bifurcan y agregar un repositorio oficial.

Especificar routeConfig!

Al parecer, monitores Muni oficiales funcionan en los mismos términos: routeConfig es uno de los comandos de la API de servicio NextBus.

De todos modos, NextBus sistema dispone de una API bien, que es aparentemente libre de usar si el uso es limitado o distribuido entre clientes. Un spawn de este sitio, nextmuni.com está dedicado a SF Muni. Lo único que no encontré fue los nombres reales de los

Pronóstico del tiempo de recuperación

Oh, bien, aquí viene la parte fácil,"pensé cuando termine con todo lo demás y decidió lanzar en pronósticos del tiempo. Me equivoqué en una forma muy interesante. Resulta, predicción meteorológica que APIs no suelen ser gratis. Los sitios web que encontré en la parte superior de Google buscar los registros necesarios e incluyendo su clave personal para todas las llamadas API. Muchos tenían versiones gratuitas limitadas pero pago requerido para cada hora pronóstico--y estaba principalmente interesado en las condiciones en un lugar específico a una hora específica del día (tiempo de San Francisco no es muy estable). ¿No es que me opongo a pagar servicios de por sí, o a páginas web con apartado de análisis, pero no es necesario que gran parte de ellos a pagar, puedo hacer? Procedí con un servicio de weather.gov gobierno libre, que es realmente clase de fresco a pesar del diseño de la web del siglo pasado. El servicio se limita a los Estados Unidos, pero San Francisco Muni predicciones no son muy útiles fuera del país tampoco. Para usarlo, necesita proporcionar un enlace a tabla XML para su ciudad/área, que tendría este aspecto: http://forecast.weather.gov/MapClick.php?lat=37.77493 & lon =-122.41942 & FcstType = digitalDWML. No utilizar su API, ya que es un jabón auténtico, y no es nadie tiene tiempo para eso.

Artículos Relacionados

Hacer un cartel de acrílico LED

Hacer un cartel de acrílico LED

Hice esta muestra de acrílico del LED de mi vecino, quien es el dueño de "Tienda de la madera de Rob - guardería para adultos". ¡ Mira mi video y siga estas instrucciones para hacer uno tú mismo!Paso 1: Diseñar un logotipo y tallar en el acrílic
Su propia Galaxia, en un papel... Cartel con tinta conductora + LED

Su propia Galaxia, en un papel... Cartel con tinta conductora + LED

Me encontré con tinta conductiva en mi investigación y como un estudiante de diseño que empecé a cuestionar su uso en mis proyectos. Imaginaba un cartel con LEDs y tipografía donde la luz sería una ilustración del texto. Para este proyecto he elegido
Mini cartelera

Mini cartelera

Diseño de un cartel de Mini usando LED Lights(different colors), Arduino y tablero de pan. Pensamiento de la creación de un cartel de mini, que podría mostrar mi nombre ("Josh"). Se trata de una de las noches de la construcción (obligatorio usar
Dispositivo de interfaz para perros

Dispositivo de interfaz para perros

Este dispositivo permite que el perro nos deja saber cuando él está fuera del agua, por alertarnos con sonido y luz. Si están fuera de la sala y no se oye la melodía, la luz permanece encendida hasta que se restablezca para que podamos ver como camin
Iluminado de la muestra

Iluminado de la muestra

Después edificio un cartel que tira de LEDs (enlace) aún tenía unos pies de ellas a la izquierda. Decidí tratar de construir un tipo diferente de signo. En general estoy contento con el diseño y construcción de la misma, aunque le sugiero comprar la
Arduino + LEDs + ventilador = POV cartel de "Aplausos"

Arduino + LEDs + ventilador = POV cartel de "Aplausos"

VI estos dispositivos POV (persistencia de la visión) en otros Instructables y pensé me gustaría hacer uno y siempre he querido mi cartel de "Aplausos".  Siguiente mejora será hacer que vaya cada vez que entro en la habitación.  :)  Pues que dec
BRICOLAJE | 3 x 3 x 3 cubo del LED para Arduino Nano +

BRICOLAJE | 3 x 3 x 3 cubo del LED para Arduino Nano +

Hi todo el mundo!Mi nombre es RGBFreak y he creado un canal en YouTube hace poco.Me encanta el bricolaje y me gusta sobre todo LED, por lo que decidí hacer mi propia 3 x 3 x 3 cubo del LED!Usted necesitará los siguientes elementos para hacer este cub
Reloj de LED tránsito - no te pierdas ni el autobús otra vez!

Reloj de LED tránsito - no te pierdas ni el autobús otra vez!

Vamos a construir una pantalla de LED desplazamiento de horarios. Usted pudo haber visto uno de estos en su estación de metro o parada de autobús. Usted puede construir uno para el hogar ayudar a usted sabe exactamente cuánto tiempo le queda, sobre t
$25 bricolaje tira LED crece la luz

$25 bricolaje tira LED crece la luz

Quería una luz brillante para ayudar a iniciar mi semillero en primavera. Existen dos variaciones a este proyecto, con un disipador de calor y otro sin. Las fotos son para la versión de disipador de calor ya que es lo que hice.PiezasTira flexible del
Cartel de LED con controlador ATtiny45

Cartel de LED con controlador ATtiny45

Mi escuela secundaria tiene un programa donde los estudiantes pueden tutores de otros estudiantes. Me impliqué como una tutee, luego un tutor par. Todo el mundo que me he enseñado ha encontrado el programa realmente útil, así que decidí promover aún
BRICOLAJE 9 voltios LED emergencia/mochila flash de luz

BRICOLAJE 9 voltios LED emergencia/mochila flash de luz

Justo lo que necesita para una emergencia o un viaje de campamento! Es pequeño, es brillante se ejecuta uno de los más comunes y más versátil de la batería alrededor de 9 voltios. Usted puede encender y apagar y su tan pequeño que puede caber cualqui
BRICOLAJE casero Spy cámara con infrarrojos LED CCTV Webcam

BRICOLAJE casero Spy cámara con infrarrojos LED CCTV Webcam

BRICOLAJE casero Spy cámara con CCTV cámara web y visor en Color negro blanco tomar de viejo Handcam Sony de cámaras, papel, batería 18650, vieja Webcam infrarroja LED CCTV y fin de semana algunas veces...
LED de alta potencia bajo gabinete de iluminación bricolaje - buscando grandes y brillantes a sólo 23w!

LED de alta potencia bajo gabinete de iluminación bricolaje - buscando grandes y brillantes a sólo 23w!

En primer lugar, me explico que "LEDs de alta potencia" probablemente debería leer "LEDs de alta intensidad".  Por mis cálculos esta configuración entera utiliza acerca de 23w de electricidad.de todos modos, después de conseguir nuevos
BRICOLAJE cómo a hackear A disco duro a un oculto unidad Flash, LED luz, celular cargador y soporte

BRICOLAJE cómo a hackear A disco duro a un oculto unidad Flash, LED luz, celular cargador y soporte

sobre este proyecto:Este es un proyecto de bricolaje hack que permite reciclar su roto disco duro volver a vivir y convertirlos algo útil.Este es el diagrama esquemático completo:http://goo.GL/3Lt8hEste es el enlace al blog del proyecto:http://goo.GL