INTRODUCCIÓN
La mayoría de los contenidos de la Intel Edison parecen estar centrados en la implementación con la placa de desarrollo Arduino. Con el lanzamiento de la línea de productos en bloque de SparkFun para la Edison, se vuelve práctico el uso de la menor cantidad de hardware para acceder a los recursos de la Edison.
Este tutorial le mostrará como escribir en C++ en la Edison sin usar el IDE Arduino o suponiendo que la Edison se encuentra montada en la placa de desarrollo Arduino.
COMPONENTES A USAR
Vamos a hacer esto bastante simple; vamos a demostrar la funcionalidad mas básica de la Edison sin necesidad de usar un hardware de lujo. Usted encontrará más ejemplos relacionados a hardware en tutoriales para bloques individuales.
- Paquete de inicio de la Intel Edison- Necesitará el bloque de consola como mínimo para llevar a su Edison a la red de WiFi local.
- Bloque base de la Intel Edison (opcional)- Puede encontrar que el estado de su red WiFi es inaceptable; en ese caso, se puede conectar al puerto OTG en el bloque base para acceder a la Edison a través de un interfaz de red RNDIS USB. Esta es una actualización muy recomendada, la cual le permitirá actualizar la imagen Flash en la Edison.
- Paquete de hardwares de la Edison-Una será suficiente para crear la pila Edison/Console/GPIO.
CADENA DE HERRAMIENTAS: ECLIPSE
Aquí hay dos enfoques para escribir el código C++ en la Edison: Usando el IDE Eclipse que proporciona Intel o ir a “barbones” usando GCC y la línea de comando directamente en la Edison.
USANDO EL ENTORNO ECLIPSE
Intel a elaborado guías para la instalación del IDE Eclipse en Macintosh, Linux, y Windows.
Una vez lo instale y arranque, vuelva aquí y para caminar a través de la conexión de la Edison y el IDE, para luego cargar un ejemplo en el programa. Las instrucciones de aquí están incompletas y sin trabajo adicional, usted no será capaz de arrancar programas en la Edison.
CONECTANDO LA EDISON
Con el fin de conectar se a la Edison, necesita tener algún tipo de canal TCP/IP abierto. Esto puede ser ya sea a través del puerto USB-OTG de la Edison o sobre su red de Wifi local. Necesitará saber que dirección IP es; usted puede encontrar mas información en el tutorial “Primeros pasos en la Edison”.
Una vez haya descubierto la dirección IP de la Edison, conéctela:
Al igual que en la imagen de arriba, haga click en “Remote System Explorer”, en la esquina superior derecha.
La ventana de la IDE debería mostrar algo como esto. En el lado izquierda hay un recuadro llamado “Remote Systems” con dos entradas: “Local” y “galileo”. Borre la entrada galileo (haga click en él y apriete la opción “delete”).
Ahora crearemos una nueva entrada. Haga click en el botón “Define a connection to remote system”.
Elija “SSH Only”, y haga click en “next”.
Ingrese la información para su dispositivo, como se ve en la imagen de arriba. Haga click en “Finish” (no en “Next”). La ventana se cerrará, y un nuevo ítem aparecerá en la lista.
Seleccione la conexión “Edison” que usted creo, debería ver una lista de opciones en el extremo inferior izquierdo. En el “Default user name field”, usted puede poner “root”,de lo contrario, te pedirá un nombre de usuario cuando se conecte y lo use, para conexiones futuras.
Use la opción “Connect” en el menú contextual (haga click derecho para PC y Linux, y para Mac haga click en CMD). Esta acción abrirá la ventana…
Corrobore la dirección IP, luego ingrese su contraseña (si usted tiene alguna). Si nunca has iniciado sesión y configurado su Edison, el valor predeterminado puede ser “root” y la contraseña puede dejarse en blanco.
Chequee y cerciórese que en la ventana propiedades, en el extremo inferior izquierdo diga “Some subsystems connected” debajo el estado de conexión. Puede necesitar clickear en el botón”Refresh information of selected system” en la parte superior.
¡Ahora puede leer, escribir y correr algún código con el IDE Eclipse!.
CADENA DE HERRAMIENTAS: LÍNEA DE COMANDO
Me gusta usar la línea de comando; me da más opciones para mi elección de editor y generalmente funciona más suavemente sobre mi sistema de Eclipse. Aquí le indicamos cómo llegar allí.
La mayor parte de la cadena de herramientas que están instalada en la Edison: “GCC”, “make”, y “vi” vienen con la instalación. Sí, “vi”, no “vim”, y no, no hay otra opción. Hago mi edición en el PC y luego empujo los archivos a la Edison vía SCP o rsync para la compilación.
Si a usted le gusta como a a mí, la idea de la edición de código de forma remota a través de “vi”, te hará temblar. La versión de “vi” para Edison es muy simple, no soporta la separación de archivos o mas tipos de búsqueda y reemplazo. Por lo tanto, usted necesitará alguna manera de llevar los archivos hasta su Edison una vez que los haya creado en algún equipo de desarrollo.
RSYNC
La opción multi-plataforma es rsync. Debería estar en su ordenador Mac o Linux ¡ahora ya!. Se puede encontrado para Windows, si usted se encuentra usando Cygwin.
No voy a entrar en el uso de rsync aquí; el cual esta cubierto de forma extensa en otro lugar, siendo sencillo su uso con Edison.
WINSCP
WinSCP es un programa solamente para Windows que ofrece actualizar a cambio de sincronización sobre SCP. Lo he utilizado ampliamente, y es en general bastante bueno en la detección y mantención de sus archivos actualizados. La desventaja es que requiere las bases de tiempo de los dos sistemas para estar sincronizado, por lo que tendrá que asegurarse de que NTP de Edison está configurado correctamente para su zona horaria (la pista: / usr / share / timeinfo tiene muchos archivos locales; copie el mejor para usted, en el archivo /etc/localtime, y utilice el comando sync para forzar una actualización del tiempo.
¡HOLA, MUNDO!
Ahora es el momento de probar el clásico programa “Hola, mundo!” (no el clásico “parpadeo”) tanto en “Eclipse” y “via”.
ECLIPSE
La versión Edison Eclipse que tenemos viene con su propio programa “Hola, mundo!”. Eso es bueno, pero en realidad no te enseña nada acerca de iniciar un nuevo proyecto por su cuenta, ¿verdad?
¡Arranca Eclipse y empecemos!
Comenzaremos con un proyecto que fue proporcionado por Intel. Francamente, es una gran molestia tratar de obtener todos los valores de creación y las variables correctas del entorno.
Vamos a comenzar con el proyecto de ejemplo “2_cpp_helloworld”. Ese proyecto, junto con todos los demás, vive en el directorio “-ideo-iotdk (platform)/iot-devkit/workspace” .
Para copiar ese proyecto, usted necesitará abrirlo y que todos los otros proyectos en el área de trabajo estén cerrados. El camino más fácil de hacer es abrir el proyecto, abrir el menú contextual y elegir “Close unrelated Projects”. Que cerrará todos los otros proyectos en el área de trabajo. Ahora usted puede hacer una simple operación de copiar/pegar, con ese proyecto seleccionado, para obtener una ventana que muestre al como esto:
Puede cambiar el nombre al que usted quiera, y guárdelo donde quiera, pero será mas simple si usted cambia el nombre a “sparkfun_helloworld” y lo almacena en la ubicación predeterminada.
Esto debería aparecer ahora en la ventana “Project Explorer”. Puede cerrar el proyecto original “2_cpp_helloworld”, esto sólo ocupa espacio. Tengo las sub-pestañas abiertas; hay un par de cosas para notar al respecto. En primer lugar, el archivo fuente y los archivos binarios siguen ahí y todavía se llaman “2_cpp_helloworld”. Eso está bien, pero vamos a eliminarlos de todos modos.
También notarás que la sección “includes” tiene varias entradas. Vamos a dejarlas intactas, porque esa es toda la magia que hace que el trabajo binario para Edison, en lugar de utilizar la acción incluida por su sistema de desarrollo. Añadiremos las librerías de Sparkfun a la carpeta.
Antes de hacer eso, vamos a eliminar el archivo “2_cpp_helloworld.cpp” del proyecto. Sólo tienes que seleccionar, y pulsar la tecla “delete”. Supongo que ciertamente se podría dejar el archivo en su lugar, y simplemente modificarlo, pero quiero que le muestre el proceso de agregar un archivo de origen a partir de cero.
El menú contextual para la sub-rama “src” en este proyecto (¡no la sub-rama “debug/src”) le dará la opción de crear un nuevo archivo de origen:
Después de crearlo (todos los archivos predeterminado están bien; el nombre usado será “helloworld.cpp”), su ventana IDE se debe ver mas o menos así:
Ahora, !escribiremos algún código!.
Aquí esta el código para el programa en cuestión:
Ponga ese código en su archivo, guardelo, y elija la opción “Build Project” y entre al menú “Proyectos”. Noté que tenía que hacerlo un par de veces antes de solucionar todos los símbolos que incluye Eclipsee; No sé por qué es así, pero una vez hecho, parece pegarse.
Ver la entrada en la ventana de la consola, que indica “Build finished”. También note que la pestaña “Problems” se encuentra vacia; si algo detuvo la construcción, quejese aquí.
Esto no es un paso más antes de ejecutar el programa: usted tiene que decirle a Eclipse que desea ejecutar el programa de forma remota, no localmente. Como era de esperar, el binario que acaba de compilar para Edison probablemente no se ejecutará localmente.
El menú contextual para el contenido binario en una entrada llamada “Run As”. Hay dos opciones: “Local C / C ++ Application” y “Run Configurations …” abra el “Run Configurations dialog”. Se verá como esto:
Puede que necesite seleccionar “Remote C / C ++ Application” en el lado izquierdo, haciendo click en el botón “New launch configuration”, para luego ver las opciones mostradas en la figura de arriba. He encajonado las áreas de interés: asegúrese de que el menú desplegable “Connection” tenga seleccionado la conexión a la Edison ( o cual sea su nombre) y que el campo “C / C ++ de aplicación” tiene la ruta de acceso al archivo bin. Usted puede elegir dónde colocar el archivo de la Edison en el campo “Remote Absolute File Path”; He elegido “/home/root”, ya que va a ser fácil de encontrar si voy a ir a través de una consola más tarde y “/home” tiene el espacio libre más disponible de la Edison. ¡No te olvides de incluir el nombre del ejecutable en este campo!
Por último, usted tiene la opción de ejecutar algunos comandos antes de invocar el binario que usted acaba de enviar a la Edison. El comando que aparece aquí, “chmod 755 ./sparkfun_helloworld”, le dice a Linux en la Edison que ese archivo es un ejecutable, permitiendo que se ejecute.
Haga clic en “Apply”, luego “Run”, para ver un poco de magia en el marco de la “consola”, ¡parte inferior de la IDE!
De aquí en adelante puede guardar, cambiar y hacer click en “Run”, cosas que de deberían trabajar a las mil maravillas.
CONSOLA
El proceso para la consola es mucho más fácil; de hecho, en general, cuando se trabaja con programas más pequeños en la Edison, realizar las cosas mediante la consola es el camino más fácil. Los proyectos más largos pueden ser más difíciles de manejar, y en ese caso, Eclipse probablemente tome el sartén por el mango.
El código para el programa es el mismo; de hecho, si realizó el proyecto Eclipse anterior, puede simplemente copiar ese archivo a la Edison usando su método de copia favorito.
Puede ver que los contenidos de los archivos son los mismos. En la línea de comando, invoque g++, y luego ejecute el binario que se produjo.
Para archivos mas pequeños, esta bien, pero ¿ que pasa con los proyectos más complejos? ahí es donde entra en juego Cmake. Cmake utiliza una sintaxis para determinar como se construye, une archivo múltiples y librerías en un proyecto. A continuación, genera un archivo que puede arrancar para hacer la construcción actual. No voy a profundizar demasiado en Cmake aquí; Me reservo ese material para un tutorial posterior.