Paso 3: Programación de Edison (IDE de Arduino)
![](/static/image/loading.gif)
![](/static/image/loading.gif)
![](/static/image/loading.gif)
![](/static/image/loading.gif)
![](/static/image/loading.gif)
![](/static/image/loading.gif)
Los LEDs
El primer componente que tenemos que conseguir trabajo es la tira de LED. En este caso estamos utilizando una tira de 1 metro de APA102 que cuenta con 36 LEDs direccionables individualmente. Estamos usando éstos en lugar de las tiras más populares de WS2811/WS2812 porque usan cables separados para sus señales de reloj y datos. Las diferentes versiones del firmware Intel Edison tienen problemas que dificultan a la interfaz con las tiras de LED de 3 cables, utilizando las tiras de WS2811/WS2812 es problemático.
Para controlar la tira de LED necesitamos cuatro clavijas en el GPIO como se muestra aquí:
GND -> GND
DI--> PIN 11 (MOSI)
CI--> PIN 13 (reloj del SPI)
5V--> 5V
Lo importante aquí es identificar los pines apropiados en la placa Arduino de Edison. El Kit de Edison de Intel para la guía del Hardware de Arduino ( http://download.intel.com/support/edison/sb/ediso... ) identifica los alfileres como los necesarios para "Enviar datos SPI" (PIN 11) y "Control del reloj SPI" (PIN 13).
Ahora que se identifican los pines adecuados tenemos que escribir algo de código para los LEDs. Ninguna de las bibliotecas existentes como FASTLED o NeoPixel funciona con el APA102s y el Edison necesitaremos algunos código personalizado. La mejor explicación que he encontrado es en los foros de la comunidad de Intel aquí: https://communities.intel.com/message/335874#3358... . Básicamente, tenemos que crear un objeto Buffer y asignar los valores de color RGB por pasarlos a la memoria. Una vez que la tira de APA102 conectada a los pines según se describe, puede ejecutar el código siguiente para probar el sistema. Tenga en cuenta que dado que sólo estamos usando un par de LEDs en un momento en el proyecto final, no va a utilizar una fuente externa.
PANTALLA LCD
La pantalla que estamos utilizando es la "arboleda - luz de fondo LCD RGB". Viene como parte de la arboleda Starter Kit Plus de SeeedStudio y también está disponible por separado. Para conectar con el Edison vamos a usar el «Grove Base escudo» y uno de los cables de cuatro cables incluido. Una vez que se conecta debe descargar la librería de Arduino "Grove_LCD_RGB_Backlight" de: https://github.com/Seeed-Studio/Grove_LCD_RGB_Bac... . Entonces usted necesitará poner una copia del directorio "libraries" de la instalación del IDE de Arduino. Una vez que los archivos de la biblioteca en su lugar debe ejecutar "fade" o "HelloWorld" secuencias de comandos de ejemplo como se muestra en la imagen.
Servidor de red
El Edison de Intel viene con todas las características de un escudo de Arduino WIFI, para que ningún hardware adicional o protectores son necesarios para el lado de Arduino de la Edison tener acceso a los sistemas WIFI. Ahora solo necesitamos configurar para arriba y prueba de ellos. Para ello, a abrir el IDE Arduin y ejecutar el sketch de ejemplo "SimpleWebServerWIFI." Si la instalación del IDE de Arduino no viene instalada con los bocetos de "wifi", usted puede descargar desde github ( https://github.com/codebendercc/arduino-library-f... ). Ahora sólo tienes que personalizar el bosquejo SSID de la red (nombre) y una contraseña, y usted debe ser bueno.
Juntándolo todo
Ahora solo falta escribir un bosquejo que se utiliza todas las partes hemos apenas configuración. Aquí está el bosquejo que necesitarás:
https://github.com/nam37/weathergrid/BLOB/Master/W...
He intentado comentar el dibujo para contestar cualquier pregunta, pero aquí está una descripción rápida del bosquejo.
- Las líneas primero 70 o así definen las constantes requiere definen algunas variables necesarias y "incluyen" las bibliotecas necesarias.
- Las líneas a continuación 100 o así son los principales "bucle" del bosquejo. Aquí el servidor Web inicializado está esperando conexiones entrantes. Cuando se detecta una conexión, trata de identificarla como un tiempo en el código "PD" o como un código de temperatura "ZZ". Si encuentra cualquiera de ésos como entonces se encienden el LED apropiado o se muestra el mensaje apropiado en la pantalla LCD.
- El resto del bosquejo consiste en una colección de función que se usa para controlar los LEDs y la pantalla LCD.
Una nota sobre la persistencia...
Algunas versiones de firmware Intel Edison tienen un bug que se rompe Arduino sketch persistencia. Si usted encuentra que sus scripts de Arduino no son automáticamente se vuelve a cargar al reiniciar, entonces usted necesitará abordarlo. Hay un gran hilo en la comunidad de Intel Edison que aborda esta aquí: https://communities.intel.com/thread/77945