Instalando OpenCV para Python en Raspberry Pi

Básicamente he seguido estas instrucciones:

http://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/

Algunos errores que me he ido encontrando:

  • En el paso 9, en el cmake, he añadido esto: -D WITH_FFMPEG=OFF
  • Problemas con las ventanas. Bueno, si estás familiarizado con el mundo Linux probablemente esto no sea una novedad para ti. El caso es que al intentar ejecutar las aplicaciones OpenCV, al ejecutar alguna aplicación que abría una ventana gráfica, me saltaba un error. El problema estaba en que, aunque intenté transferir el control de las ventanas de la Raspberry al MAC abriendo el SSH con el parámetro -X, al no tener el sistema X11 instalado en el ordenador, se veía incapaz de transferirlas. Supongo que si hacéis el SSH desde otro Linux no tendréis este problema. Finalmente lo que hice fue conectar a la Raspberry a través VNC desde el MAC para que se cargue el entorno gráfico y de esta forma no tuve problemas en abrir las ventanas. Supongo que si el trabajo gráfico lo hacéis sin abrir ventanas, no debería dar problemas una ejecución a través de SSH.
  • He visto ejemplos por ahí que para abrir la cámara hacían uso del comando: cam=cv2.VideoCapture(0). A mí esto no me ha funcionado. En su lugar he hecho uso de la librería PiCamera. La he instalado tal y la uso tal y como aparece en esta web. http://www.pyimagesearch.com/2015/03/30/accessing-the-raspberry-pi-camera-with-opencv-and-python/ En la instalación no olvidar estar dentro del virtual environment y ejecutar pip install “picamera[array]”

Para ejecutar OpenCV, antes de entrar en python hay que:

source ~/.profile
workon cv

Evitar desconexiones WIFI en la Raspberry

Según cómo esté configurado el adaptador WIFI de la Raspberry es posible que entre en modo de ahorro de consumo y ya no vuelva a despertar. Para evitarlo se puede crear/editar el archivo

/etc/modprobe.d/8192cu.conf

y modificar los siguientes parámetros:

options 8192cu rtw_power_mgnt=0 rtw_enusbss=0 rtw_ips_mode=0

En esta web hay más información sobre estos parámetros.

http://www.miraspberrypi.es/2013/05/solucionando-problemas-con-la-wifi-en-la-raspberry-pi-y-chips-realtek-rtl8188cus/

Instalando WordPress en local

Cuando creamos un sitio nuevo en WordPress, lo normal suele ser no desarrollarlo directamente en el sitio en producción, es decir, en el servidor definitivo en el que va a quedar instalado, si no que tengamos un lugar aislado en el que ir programando antes de pasarlo a producción.

¿Por qué, te preguntarás? Bueno, básicamente por dos motivos. En primer lugar para que no entre un cliente o visitante en él y se lo encuentre hecho unos zorros, es preferible en este caso dejar una página de “Sitio en construcción” para avisar. Y en segundo lugar para no penalizar el posicionamiento en buscadores, piensa que Google va rastreando continuamente y es muy posible que mientras preparas tu sitio Google lo haya visitado. A saber qué es lo que se encuentra mientras desarrollamos…

Continue reading

Ejecución de comandos en segundo plano sobre Linux

A veces necesitamos lanzar aplicaciones que se mantengan en ejecución de forma permanente como si fueran servicios y no queremos mantener bloqueada la pantalla de terminal de usuario mientras ésta funciona, o bien queremos que aunque se cierre la sesión la aplicación siga en ejecución. Para ello tenemos varios comandos que nos serán útiles en función de lo que necesitemos.

Ampersand &

Añadiendo el ampersand al final de la ejecución del comando, conseguiremos que éste se ejecute en segundo plano. Por ejemplo:

./python mi-programa-en-python.py &

Continue reading

Poniendo en marcha nuestra Raspberry Pi

Una vez que hemos desembalado nuestra Raspberry Pi, procederemos a prepararla para ponerla en marcha. A continuación os damos pasos detallados para poder realizar los despliegues más comunes:

  1. Descargar la última versión de Raspbian de la web de Raspberry Pi.
  2. Flasheamos la tarjeta. Yo tengo un Mac y he seguido las instrucciones de esta web.
  3. Ampliamos el sistema de ficheros para que la Raspberry haga uso de toda la tarjeta SD. sudo raspi-config. Ahí elegimos la opción 1.- Expand filesystem.
  4. Descargamos todo el software que necesitemos con el comando wget url.

Instalando un servidor ftp en la Raspberry

En primer lugar descargamos el servidor vsftpd.

sudo apt-get install vsftpd

A continuación modificamos el archivo de configuración.

sudo nano /etc/vsftpd.conf

Descomentamos las siguientes líneas:

local_enable=YES
write_enable=YES

Por último reiniciamos el servicio.

sudo service vsftpd restart

Programando el Edison con Python

Empecemos a escribir código para Python.

Para empezar, queremos conectar nuestro Edison al portal GadgetCube.org para que suba datos al mismo a través de su API REST. Para ello haremos uso de la librería Requests para poder hacer las llamadas HTTP.

En segundo lugar, querremos acceder a los pins de la placa de pruebas de Edison. Para ello haremos uso de la librería libmraa, la cual permite el acceso mediante varios lenguajes de programación a los diferentes pins de entrada y salida de la placa.

Primeros pasos con el Intel Edison

En este artículo voy a exponer algunos de los aspectos básicos de las cosas que podemos hacer con el Intel Edison y de las herramientas de que disponemos.

Algunas de las cosas que aquí se explican también aparecen en la guía de iniciación de Sparkfun.

Para poder acceder al Linux Yocto de Intel Edison:

Escribir “screen /dev/cu.usbserial” y presionar “Tab” en el teclado y " 115200 -L". Enter (2 veces).
Introducir usuario "root".

Configuramos nuestra red wifi en el Linux de Edison:

https://communities.intel.com/docs/DOC-23246

Instalando el editor nano en Edison:

wget http://www.nano-editor.org/dist/v2.2/nano-2.2.6.tar.gz
tar xvf nano-2.2.6.tar.gz
cd nano-2.2.6
./configure
make
make install

Para poder acceder desde ssh sin password al Edison:

You have to edit the systemd service to allow shh without a password.

vi /lib/systemd/system/sshd.socket

In this file, comment out the line BindToDevice=usb0 with a #

Then reboot and you should be able to ssh without a password.

Apagado del Edison:

shutdown now

Otra de las cosas interesantes que podemos hacer es lanzar automáticamente una aplicación en el arranque de Edison. En este tutorial podrás averiguar como.

http://stephaniemoyerman.com/?p=41

Probando el Intel Edison

Después de unos días de espera ya tengo en mis manos el Intel Edison con el Arduino Breakout Kit. Impresiona abrir la cajita y ver en primer lugar el Edison, tan pequeño. En el kit vienen él con la Arduino Breakout Board y unos tornillos para fijar el Edison a la placa más otros cuatro tornillos con sus respectivos soportes de plástico que hacen a la vez de patitas para todo el conjunto. No viene ningún cable, así que tendrás que hacerte con un par de cables USB y con el cable de alimentación en función de lo que vayas a hacer. Para empezar, seguro que puedes tirar con los cables USB que tengas por casa.

Mi ordenador es un Mac, por lo que no pude seguir el tutorial normal de instalación que aparece en la web de Intel. En su lugar, encontré un post en la web de Intel de un usuario al que le estaré siempre eternamente agradecido.

https://communities.intel.com/docs/DOC-23193

Siguiendo los pasos al pie de la letra, la instalación con Mac funciona perfectamente. Solamente necesitarás descargar el IDE de Arduino de Intel y el Linux Yocto de la web de Intel. Tuve algún problema para formatear el Edison en FAT32, por lo que al principio traté de flashear con FAT16. Tal y como indica en el manual, no funcionó. En un segundo intento formateé con FAT32 y ya sí todo fue como la seda. Como curiosidad decir que al elegir el puerto en donde está el Edison en el IDE de Arduino, seleccioné el que parecía más lógico de todos, uno que ponía Edison_patatin_patatan. Pues no era ese el puerto, era uno de los otros dos, así que id con cuidado de no dejaros llevar por lo obvio.

Bueno, la sensación inicial que se me ha quedado con esta placa, vulgarmente, es que está todavía en bragas. A diferencia del Arduino Yun, el Intel Edison hace que te tengas que pelear más con la máquina. Recuerdo cuando configuré el Arduino Yun, gracias a su entorno web integrado se hacía muy sencillo la conexión a la red wifi, el establecimiento de la contraseña, etcétera. Además, está muy bien integrado con el IDE y todas las acciones son muy intuitivas. En cuanto a los sketch, no hay gran diferencia con respecto a los del Arduino UNO. En cambio, con el Edison no he tenido del todo esta sensación. He probado solamente el sketch blink, por lo que no sé qué ocurrirá cuando cargue otros sketch más complicados que tengan que acceder al sistema operativo o que hagan uso de sensores y shields avanzadas. Pero solamente ejecutando blink, ya recibes mensajes en la ventana de estado del IDE a los que los usuarios de Arduino no estamos familiarizados. Tampoco tengo muy claras como funcionarán esas integraciones con C, C++ y Python.

Además de esto, hay cosas que difieren de la forma de hacer con respecto Arduino Yun. Por ejemplo, el apagado de la placa tiene un procedimiento, cosa que no ocurre en Yun en la que simplemente se desenchufa. El terminal remoto que abrí con el Linux se quedó bloqueado en un momento dado y no sé si esto va a ser habitual o si tiene algo que ver con el uso del IDE. La documentación del Intel Edison está bastante bien para técnicos que controlen de programación a bajo nivel o de electrónica, pero es muy escasa para los neófitos. Tengo mis dudas de que este controlador sea la mejor alternativa para la comunidad de makers que no tienen mucho tiempo para profundizar en las tripas del aparato.

Resumiendo, por ahora los sentimientos son encontrados. Un aparato muy potente, que tiene muchísimas posibilidades pero que aparentemente no se va a dejar domar así como así. En las siguientes semanas voy a intentar integrar el Edison en Gadget Cube para que podáis interactuar con él, y voy a estar atento a las cositas que vayan saliendo en la comunidad para poder ir aprendiendo a manejarme con él. Os mantendré informados.

Instalando nuestra aplicación Django en AWS

Durante el desarrollo de GadgetCube he tenido que instalar la aplicación en el servidor AWS de Amazon. Para ello he seguido los siguientes pasos:

http://www.nickpolet.com/blog/deploying-django-on-aws/1/

A tener en cuenta, en mi caso olvidé inicialmente instalar el Django Rest Framework. Consultando el log de apache2 podéis averiguar si os falta algún paquete por instalar.

Algunas cosas que me he encontrado al instalar la aplicación:

  • En mi caso la aplicación tiene un API que valida usando Token. Esta validación por Token me funcionó en el servidor de pruebas pero no en el de producción. Buscando por ahí encontré que para que funcione esta validación en Apache, hay que poner en el archivo de Virtualhost de la aplicación (en mi caso el /etc/apache2/sites-enabled/app.conf) la línea: WSGIPassAuthorization On.

© 2016 raul tomas . me

Theme by Anders NorenUp ↑