Particle tracking , fácil y barata (II)

11/11/2018 0 comentarios
Menear

Los nanoordenadores abren grandes posibilidades a la ciencia experimental de bajo presupuesto. Su empleo permite la implementación de una potente técnica con un presupuesto muy reducido.

Puesto que una de las características del científico es la curiosidad, me parece pedagógicamente muy acertado proponer proyectos de ciencia experimental, que incitan a aprender con un caso práctico. Por supuesto, deben ser sustanciosos en cuanto al contenido, y ejecutarse con poco dinero. El ingenio suple: a mí me inspiró mucho la sección Taller y Laboratorio (admiro a autores como Jearl Walker y Marc Boada). Ojalá esta entrada del blog esté a esa altura. Porque voy a mostrar cómo se puede implementar la técnica de Particle Tracking con menos de 100 euros.

El quid de la cuestión estriba en emplear un nanoordenador (les llaman así porque son la categoría inferior a los PC, o microordenadores). Ya hablé en este blog de la Raspberry Pi. Una cámara y algunos elementos más es todo lo que se necesita. El programa para llevar a cabo el método lo escribimos entre varios compañeros, y lo hemos colocado en un repositorio público. Vayamos por partes.

Objetivo.- Se trata de medir el período de un péndulo mediante Particle Tracking. El péndulo puede ser una bola de metal de más o menos 1 cm de diámetro colgada de un hilo de medio metro aproximadamente. La bola debe destacar sobre el fondo: yo lo he hecho con una bola negra, poniendo detrás una hoja de papel en blanco.

Hardware

He aquí el material empleado:

 hardware

Algunas cosas no son estrictamente necesarias: el cargador (izquierda) es como el de un teléfono móvil; la pieza blanca (centro, arriba) es un soporte que hicimos con una impresora 3D, pero se puede fabricar de cartón o de madera; y la carcasa (centro, abajo), de plástico transparente, es útil pero no imprescindible.
A la derecha se ve: una Raspberri Pi 3 Modelo B, una Pi Camera, una tarjeta micro SD con el sistema operativo (Raspbian) y un disco que viene con la cámara y sirve para enfocarla.
En muchas tiendas de electrónica tienen ese material. Se puede comprar por Internet: yo lo he pedido a RS. Aquí debajo indico en una tabla los productos, el código de referencia RS (con un enlace a la correspondiente página Web), y el precio [consultado en Noviembre de 2018].

Item Referencia (RS)

Precio

Cámara Raspberry, Módulo de vídeo V2
Daylight, 1 canal, CSI-2
913-2664 27.94
Raspberry Pi 3 Model B 896-8660 35.66
Carcasa para Raspberry Pi 908-4218  7.45
Fuente de alimentación Raspberry Pi 909-8126 10.50
NOOBS Raspberry Pi (micro SD, 16GB) 121-3897 15.72

Total: 97.27 euros.

También se necesita un teclado, un ratón y un monitor. Yo no los compré: los conseguí por el método del containing. Supongo que muchos lectores tendrán algún teclado y ratón. Y la Raspberry Pi tiene una salida HDMI que se puede enchufar a un televisor o monitor con esa entrada (o también a un monitor de ordenador con entrada VGA, pero se necesita un adaptador).

Una vez montada queda así:

Raspberri Pi Cam

Software

El NOOBS (New Out Of the Box System) que viene en la tarjeta micro SD instala automáticamente el sistema operativo en la Raspberry Pi junto con algunos programas gratuitos; uno de ellos es Python. Hay dos maneras de proceder.

(a) Se puede escribir un programa sencillo en Python para implementar el procedimiento. Por supuesto, es necesario saber un poco de programación, pero no es complicado. ¡Puede ser la oportunidad de aprender Python!

Los pasos son:

  1. Instalar la cámara. Puede verse el procedimiento aquí o aquí.
  2. Escribir un programa en Python que grabe un vídeo. Está explicado paso por paso aquí.
  3. Instalar scikit-image (un paquete de funciones para tratamiento de imágenes en Python, gratuito).

Con eso, se puede grabar un vídeo de una docena de oscilaciones; y después, hay leer el vídeo fotograma a fotograma, identificar el péndulo en cada fotograma y hallar su centro.

La desventaja de este método es que el programa es un poco lento: el procesamiento de cada imagen tarda varios segundos. Procesar 15 oscilaciones puede llevar un cuarto de hora.

(b) Se puede descargar el programa que hemos empleado nosotros. Es más rápido, porque utiliza las librerías OpenCV (gratuitas). El procedimiento de instalación es lento, y por eso lo hemos automatizado con unas instrucciones y unos ficheros de comandos que lo hacen automáticamente. Puede llevar cuatro o cinco horas (pero apenas necesita intervención del usuario). El repositorio está en Github y se llama rasptracking: https://github.com/FisUnav/rasptracking . Allí están las instrucciones y todo lo necesario. Se instala un programa llamado gpi que abre esta ventana:

Ventana GPi

(en el mismo repositorio hay un pequeño manual de empleo; está en inglés). El resultado es este (en la captura de pantalla se produce algún salto, pero es porque la Raspberry Pi no da más de sí; el tracking se lleva a cabo correctamente):

En fin, los colaboradores que trabajaron conmigo en este proyecto son Dariel Hernández, LuisFer Urrea e Ilberto Fonceca:

colaboradores

A partir de aquí pueden llevarse a cabo muchos otros proyectos. Por ejemplo, en vez de la cámara indicada hay otro modelo sensible al infrarrojo que puede detectar personas en la oscuridad: se llama Rasbperri Camera Pi Noir. ¿Quién se atreve a montarla en un dron?