Desarrollo de Drones?

Su construcción se ha realizado y su aplicación es grande, desde robots que nos entregan las compras, hasta robots con fines bélicos

Raspberri Pi?

La computadora más barata del mercado y sus diferentes aplicaciones como una excelente herramienta de desarrollo mecatrónico

PROGRAMACIÓN

El desarrollo de excelentes proyectos depende muchísimo de las habilidades de programación del diseñador, un mecatrónico debe conocerlas todas...

INSOMNIO DEL ESTUDIANTE

Para estudiar cualquier tipo de ingeniería debes estar preparado para acostumbrarte al desvelo, con un mínimo de 2 a tres horas al día de descanso es suficiente, animos a todos!!!

ARDUINO GEEK

Proyectos desarrollados en Arduino, su interfaz con Simulink, y union con otras tarjetas o shields para cumplir los objetivos del robot

viernes, 18 de abril de 2014

Distribuciones para Raspberry Pi




Estas son las distribuciones de linux que podemos montar en nuestra Raspberry Pi:

RASPBIAN


Probablemente la distribución más conocida y utilizada en Raspberry Pi y se basa en Debian, con todas las ventajas que ello conlleva. Podemos utilizarla desde la consola, a través de SSH, conectada a un monitor, o a través de un escritorio remoto con VNC. ¡Las posibilidades son muchas!

Página Web: http://www.raspbian.org/

PIDORA

pidora-logo-500px

Cuando entramos en su Web, nos dicen que es un Fedora Remix optimizado para Raspberry Pi. No confundamos Fedora Remix con distribución oficial de Fedora. Está en su versión 18. Personalmente, no la he probado, así que si alguien lo ha hecho, me encantaría que mostrase su opinión en los comentarios.

Página Web: http://pidora.ca/

MINIBIAN


Esta sí que la he probado y sólo puedo decir cosas buenas de ella. Es básicamente RaspBian en su versión más mínima, como dicen en su Web. Yo nunca utilizo la Raspberry Pi en modo gráfico, sino por consola, así que me conviene más MiniBian que RaspBian. Arranca rápidamente y no me ha dado hasta ahora ningún problema. Se instala exactamente igual que RaspBian.


ARCHLINUX ARM

archlinux arm

ArchLinux es una distribución Linux ligera, flexible y rolling release. Existe una gran comunidad detrás de esta distribución, de las mejores que he visto nunca. Esto se extiende a su versión para Raspberry Pi.



RASPBMC

Ya explicamos cómo instalar RaspBMC en Raspberry Pi. Es una distribución que nos facilita la creación de un centro multimedia para ver películas y series, escuchar música, ver fotos, etc. Funciona bastante bien y, con Transmission instalado para los Torrents es un lujazo.

Página Web: http://www.raspbmc.com/

OPENELEC

OpenELEC




Igual que RaspBMC, sirve para la creación de centros multimedia. Ofrece un muy buen rendimiento, aunque prefiero RaspBMC, que tiene más posibilidades que este, por lo menos cuando lo probé.



PIMAME

pimame_small


PiMAME es una de las distribuciones más geek que he visto. Se basa en RaspBian y está orientada al uso como máquina recreativa. 

miércoles, 12 de marzo de 2014

Open CV en Linux


OpenCV (Open Source Computer Vision Library) 

Es una biblioteca de código abierto que incluye varios cientos de algoritmos de visión por computador. Esta publicada bajo una licencia BSD, lo cual permite que sea usada libremente para propósitos comerciales y académicos. Es multiplataforma, existiendo versiones para Windows, GNU/Linux, Mac OSX, iOS y Android. Así como también, podemos encontrar interfaces para C, C++, Java y Python.

Posee una estructura modular, estando agrupadas la mayoría de funciones de la biblioteca en los siguientes módulos:
  • CORE: donde se definen las estructuras de datos básicas que utilizan el resto de módulos.
  • IMGPROC: módulo de procesamiento de imágenes, donde encontraremos funciones para el filtrado lineal/no lineal, transformaciones afines, conversión del espacio de color, histogramas….
  • VIDEO: modulo de análisis de vídeo que incluye algoritmos para la estimación del movimiento, extracción del fondo y seguimiento de objetos.
  • CALIB3D: Algoritmos básicos de visión múltiple como calibración de cámaras estéreo, correspondencia o reconstrucción 3D.
  • FEATURES2D: detectores de características, descriptores y comparadores.
  • OBJDETECT: detección de objetos e instancias de las clases predefinidas, como por ejemplo: caras, ojos, gente, coches….
  • HighGUI: todo lo relacionado a la interfaz gráfica de OpenCV y las funciones que permiten importar imágenes y vídeo.
  • GPU: algoritmos acelerados por hardware para distintos módulos OpenCV.
y algunos otros módulos de ayuda.

Cabe decir que es una biblioteca con muchas posibilidades y con una amplia comunidad de desarrolladores. Por lo que, aunque es compleja utilizar, normalmente encontraremos soporte y ayuda para cualquier problema que podamos tener.

Vamos a ver como instalarla en Linux.


INSTALACIÓN CON APT-GET


Si tenemos una versión actualizada de Ubuntu esta es la opción mas sencilla y rapida, ya que en las ultimas versiones de Ubuntu (a partir de la 12.04) o Debian podemos instalarla directamente desde apt-get.


Primero actualizamos:
y una vez estemos a la última podemos instalar la biblioteca en sí con:
Para poder usarla con Python necesitaremos instalar el siguiente paquete:
Por último, podemos bajarnos la documentación y algunos ejemplos de aplicaciones ya hechas con:

Como ves no tiene más complicación. A partir de aquí podemos probar algunos de los ejemplos que encontraremos en la documentación de OpenCV.


COMPILANDO E INSTALANDO LAS OPENCV

En el caso de que trabajemos con una versión de Ubuntu más antigua o con otro tipo de distribución Linux y no tengamos disponible el paquete, tendremos que compilar e instalar OpenCV nosotros mismos en nuestra máquina.


HERRAMIENTAS

Antes de nada necesitamos una serie de herramientas imprescindibles: 


  • build-essential (GCC 4.4.x) 
  • cmake 2.6 o superior (CMake es una herramienta multiplataforma de automatización de código) 
  • pkg-config (para manejar los flags del compilador, usado en la configuración)
Si queremos usar las OpenCV con Python y trabajar de manera mas avanzada con las imagenes que procesemos, deberíamos también instalar los siguientes paquetes:

  1. libgtk2.0-dev (archivos de desarrollo para la biblioteca de interfaces de usuario GTK+. Este es el backend por defecto para highgui) 
  2. python-dev (paquete de desarrollo para Python 2.6 o superior) 
  3. python-numpy (Numpy) 
  4. python-tk 
Los instalaremos con:

Ahora vamos con los paquetes que se utilizan para leer y escribir imágenes o vídeo en distintos formatos y mostrarlos en ventanas. No es necesario instalarlos, y de no hacerlo OpenCV usará las versiones por defecto que vienen con la biblioteca, pero en el caso de que algún módulo no funcione puede deberse a que no tiene el codec para leer el vídeo o algún problema relacionado con la falta de alguno de estos paquetes.


CÓDIGO FUENTE

Una vez tengamos todo listo procedemos con la descarga del código de OpenCV. Podemos obtenerlo de la web oficial o directamente desde Sourceforge. Las ultimas versiones ahora también están en GitHub. Cogemos el que más ganas nos de, en nuestro caso:

GitHub:

ó

Sourceforge:

COMPILACIÓN

Ahora vamos a generar el makefile que define que partes de OpenCV necesitan ser compiladas.

Ten en cuenta que la sintaxis de CMake es:
Creamos el directorio build y entramos:
Ahora configurarmos todo con lo que vayamos a trabajar de esta biblioteca y generar el makefile:
Comprueba que esto no te da ningún error. En caso de que sí, retrocede e instala los paquetes extra y ejecuta cmake de nuevo.

Ahora es momento de ir a por un café mientras compilamos OpenCV. Simplemente lanzamos make:
Por último, para instalar la biblioteca ejecutamos:

Este último paso no es necesario si usamos CMake en nuestros proyectos. Si no quieres instalarla en /usr/local, puedes usarla desde donde la has compilado.

CONFIGURACIÓN

Ahora vamos a configurar la ruta a OpenCV. Esto se especifica creando un archivo llamado “opencv.conf” en el directorio “/etc/ld.so.conf.d/”. En este archivo añadiremos en una nueva linea /usr/local/lib.
y configuramos la biblioteca ejecutando:

Esto crea los enlaces y el cache necesarios para las bibliotecas más recientes que se encuentren en los directorios especificados en los archivos de /etc/ld.so.conf/(en este caso OpenCV)

Otra opción es exportar la ruta a la variable de entorno LD_LIBRARY_PATH y enlazar dinamicamente con ldconfig
y en el caso de que no hayamos instalado OpenCV en "/usr/local/lib", que se encuentre en por ejemplo "~/OpenCV-2.4.5/build"
Como último paso nos queda establecer la variable de entorno PKG_CONFIG_PATH. Así que editamos "bash.bashrc":
y añadimos:

Ahora cierra la consola y abre una nueva, reinicia el ordenador o haz logout y después login de nuevo. De otra manera la configuración que acabamos de añadir en "bash.bashrc" no se cargará.

PROBANDO

Vamos a probar algún ejemplo que viene con el código. Para ello, primero nos vamos al directorio donde hayamos descomprimido OpenCV.
En este directorio encontramos varios ejemplos en C para las OpenCV. Para compilarlos todos usamos el script "build_all.sh".
Y probamos uno cualquiera como.
El programa deberá mostrar la siguiente imagen:
OpenCV Facedetect Lena
Esto es un ejemplo de detección facial con la famosa imagen de Lena. Si tenemos cámara en el ordenador podemos llamar simplemente al programa sin pasarle ningún parámetro y ver que hace:

Aprende a Programar tus propias aplicaciones