En ocasiones veo… ¡el Wi-Fi!

Es sorprendente como a veces una buena idea, aun siendo muy simple, es suficiente para abrir la puerta a explorar cuestiones muy complejas. Este es el caso del experimento que os presento a continuación, el cuál me entusiasmó hace poco por su sencillez y lo interesante que resulta.

Su autor, un tal CNLohr (impronunciable), básicamente conecta un LED RGB al cada vez más conocido módulo de WiFi ESP8266 y lo configura de modo que el LED cambia de color en función de la potencia recibida por el dispositivo. Una vez hecho esto, ya solo queda jugar y fliparlo en colores ;P

Toda la información y recursos relacionados con el proyecto están disponibles y accesibles tanto desde la web del mismo, como desde su vídeo en Youtube donde lo presenta.

Lo primero que puede llamar la atención es como únicamente con pequeños giros en una posición estática, el LED ya cambia rápidamente de azul (buena señal) a verde (regular) o rojo (mala señal). Esto se debe a que las antenas no emiten y reciben igual en todas las direcciones. Cada antena tiene un patrón de radiación asociado que determina cómo se comporta en el espacio. Por lo tanto, en caso de que no supiésemos mucho sobre la antena de algún dispositivo, con una prueba similar a esta podríamos determinar la mejor orientación para su colocación, mejorando las comunicaciones.

folded_inv_f_farfield_large_anim
Ejemplo de patrón de radiación de una antena PCB para la banda de 2.4 GHz.
(No es exactamente la misma del ESP8266)

Por otra parte, se observa como con desplazamientos muy cortos también se producen grandes variaciones en la potencia de señal recibida y que estas no son aleatorias, es decir, que cada punto en el espacio recibe la señal con una calidad determinada y esta no varía significativamente en periodos cortos de tiempo, como se puede apreciar en el primer vídeo.

Para ver esto más claramente, nuestro amigo CNLohr realiza una serie de pruebas con fotos de larga exposición donde barre un cierto área con su dispositivo tratando de obtener así el mapa de cobertura en dicha superficie.

longexposure
Fotografía de larga exposición

Pese a que en los resultados de dicha prueba comienzan a intuirse posibles patrones, se considera que la calidad no es suficiente y se realiza otra prueba grabando un vídeo y montando a partir de él una imagen. En este caso, los resultados obtenidos son más claros, como podemos ver a continuación.

 

video
Fotografía compuesta a partir de un vídeo

El siguiente paso que da nuestro incansable amigo en aras de la precisión es instalar su dispositivo en una fresadora CNC para madera. En este caso, en vez de utilizar una cámara para capturar la potencia de señal recibida, lo que hace es ir guardando en cada posición del espacio el valor del RSSI medido y después representarlo por software. De este modo, realiza varias pruebas. Por una parte, escanea un área cuadrada de un metro de lado en pasos de un centímetro, logrando un resultado impresionante.

highres
Imagen 2D de un área cuadrada de 1 metro de lado escaneada a pasos de 1 cm.

Por otro parte escanea un volumen de 36 x 36 x 18 cm e implementa una herramienta para visualizar los datos. En ella es posible controlar algunos parámetros como un umbral a partir del cual quieres visualizar las medidas u otras opciones de coloración o densidades. De esta manera, se puede ver que zonas son aquellas con peor calidad de señal y como evolucionan en el espacio.

 

Alert: A partir de aquí ya no hay más fotos bonitas, se hablará de rayos, interferencias y cosas raras que tratan de explicar el tema de los colorines. Abstenerse somnolientos.

Para entender a qué se pueden deber esas zonas tan próximas entre sí donde la potencia de señal cae considerablemente debemos recurrir a la teoría. En primer lugar, el modelo de pérdidas de propagación en espacio libre nos dice que las pérdidas son independientes de la frecuencia de la onda y que aumentan con la distancia al cuadrado. Sin embargo, este modelo que es el que se emplea en la ecuación básica de Friis, no contempla ningún tipo de obstáculo próximo que pueda producir reflexiones o difracción, lo cual es algo irreal en una aplicación práctica y, por lo tanto, no nos sirve para lo que tenemos entre manos.

Por otra parte, el modelo de tierra plana tiene en cuenta, además de un rayo directo, un rayo reflejado que interfiere en el receptor.

2-Ray_Ground_Reflection

Si asumimos que la frecuencia de la onda transmitida es 2.45 GHz y que tanto transmisor como receptor se encuentran a 1 metro de altura, las pérdidas que introduce este modelo en función de la distancia tienen la siguiente forma.

3modelos1km
3modelos100m

 

Lo que sucede es lo siguiente. Si el punto de reflexión del rayo interferente se encuentra fuera de la primera zona de Fresnel, lo que ocurre cuando el transmisor y el receptor están relativamente próximos entre sí, la combinación de los rayos puede ser constructiva o destructiva, dependiendo de la diferencia de fase. Esto es lo que produce los denominados lóbulos de interferencia entre los rayos directo y reflejado, que oscilan alrededor del valor en el espacio libre. Estas variaciones reflejan el hecho físico del refuerzo o cancelación del campo, según las ondas incidente y reflejada se sumen en concordancia o en oposición de fase. Como la longitud de onda de la señal es de 12 cm aproximadamente, variaciones de esa magnitud en la distancia que recorre el rayo reflejado son las que producirán esas variaciones de base y, por lo tanto, esos lóbulos. Esto se corresponde con las áreas de mala calidad de señal que veíamos en las imágenes que capturaba nuestro amigo CNLohr. La diferencia es que en la realidad hay múltiples reflexiones, lo que hace que su análisis teórico sea prácticamente imposible mientras que con un dispositivo como el que hemos visto puede mapearse el entorno para tener una idea de qué está sucediendo. Como anotación práctica, si un día no pillas bien Internet en el portátil, piensa que tal vez (pueden ser otros motivos) no es necesario irte a otra habitación, y basta con desplazarlo unos centímetros para mejorar la conexión.

Por concluir lo anterior, si el punto de reflexión estuviese situado exactamente en el límite de la primera zona de Fresnel, la combinación sería constructiva, y coincidiría con el mínimo del último lóbulo. Por último, si se encuentra dentro de la primera zona de Fresnel, el enlace se considerará sin línea de visión (NLOS) y la combinación del rayo reflejado contribuirá siempre destructivamente. La distancia a partir de la cual esto sucede se puede calcular como: d=(12*ht*hr)/(longitud de onda) = 12/0.12=100 m. Como se puede observar en las imágenes anteriores, a partir de ese punto, el modelo decrece con la distancia a la cuarta, en vez de al cuadrado como sucede en condiciones de espacio libre.

Apuntes de diseño para carcasas impresas en 3D para circuitos electrónicos

Este articulo va enfocado a detalles concretos a la hora de hacer carcasas para placas de circuitos, como su fijación a la carcasa, protección y soporte mecánico.

Primero, dependiendo de la función de la placa de circuito, tendremos que ver qué requisitos ha de satisfacer la carcasas, puede ser simplemente recubrir el circuito para poderlo instalar en algún sitio, transportarlo, o puede ser más concreto cómo proteger del agua, polvo, de golpes, o proveer soporte mecánico para los conectores.

Dimensiones y tolerancias

A la hora de diseñar los huecos con el fin de que encajen las piezas, es importante ajustar las medidas dejando un margen o hueco extra para que puedan entrar bien teniendo en cuenta las tolerancias de impresión.
Aunque es muy dependiente de los ajustes que imponga el slicer a la hora de imprimir (grosores de capas, etc.), es bastante habitual que tras imprimir, el objeto sea ligeramente más ancho en todas las dimensiones, lo que lleva a que hay que tener en cuenta este ensanchamiento y un ligero margen para poder insertar las piezas. Esto es más notorio en bordes circulares (p.e. un hueco para un botón).

También tener en cuenta que no es lo mismo que encajen dos piezas de plástico que puedan haber sufrido este ensanchamiento, que encajar una placa de circuito, que se supone que las dimensiones finales son suficientemente precisas (si no lo son, pues mejor pedir a otra fab de PCBs…), en un hueco impreso en plástico.

dimensiones2 dimensiones1

En las impresiones que se realizan en el laboratorio (empleando la impresora BQ Witbox y el slicer Cura), un valor de margen de 0,5mm en cada dimensión suele llevar a un ajuste más o menos estrecho entre dos piezas de plástico, mientras que para un ajuste similar de una PCB en plástico puede ser suficiente con 0,3-0,25 mm. Estos valores son similares para otras impresoras comerciales (Ultimaker 2, Series 1).

Fijación (de la PCB a carcasa y tapas)

Para sujetar la placa a la carcasa, y las posibles tapas, se pueden emplear pestañas o tornillos.
Las primeras pueden ser por fricción, es decir, quedando comprimidas por la otra pieza; o porque encajan en un hueco realizado en la otra pieza. Debido a que suelen requerir un ligero voladizo en la impresión, requieren bastante cuidado al imprimir (y probablemente varios intentos hasta que se impriman bien), además de que, debido al método de impresión (capas), no suelen ser muy duraderas.
En cuanto a los tornillos, tenemos dos tipos que se pueden emplear fácilmente, los autoroscantes y los de tornillo-tuerca (sin punta). Los primeros se basan en formar la rosca en el primer atornillado, y sólo requieren un orificio cilíndrico de un radio similar, pero, por las baja resistencia del plástico impreso, no son muy fiables, especialmente si se ponen y se quitan varias veces.

Los tornillos de tornillo-tuerca pueden atornillarse sobre plástico de igual forma (y con similar fiabilidad), pero con estos se pueden emplear inserciones roscadas, que son unos casquillos metálicos con estrías en las que se enganchan transversalmente al tornillo, y que tienen las rosca del tornillo en la parte interior. Estos son los que proveen mayor resistencia y repetidos montajes.
A la hora de realizar el orificio para albergar la inserción roscada, suele ser recomendable hacerla lo más ajustada posible, e insertar la inserción calentándola con el soldador de manera que quede el plástico conformado las estrías y quede sujeta.

En estos, es típico usar métricas M2, M2.5 o M3 para fijar la placa, en cuanto a los orificios y clearance en la PCB, puede verse información aqui. Es también recomendable echar un ojo a las longitudes típicas de los tornillos en los distribuidores para evitar tener que cortarlos.

threaded insert 67 torx8589931425584623585

Tapas y juntas

Para las tapas, si no tenemos problemas de que no deba entrar polvo, agua o similares, es suficiente con una tapa simple, cerrada por pestañas o tornillos. Sin embargo, se pueden realizar dibujos de juntas en ambas piezas para cerrar mejor el conjunto o que queden mejor alineada tapa y caja. En la imágen se puede ver un par de ejemplos.

tapas1tapas2

En la de la derecha se puede, en la parte de abajo, hacer un hueco más profundo, y aplicar silicona líquida o similar para hacer una junta más segura.

Otros detalles

En cuanto a conectores, si vamos a tener alguno que se use intensivamente, podemos añadir elementos que alivien parcialmente el estrés mecánico. En conectores de conexión vertical (típicamente through hole), el esfuerzo suele en la PCB, flexionándola en cada ciclo, y podemos añadir apoyos alrededor del conector para que la carcasa sujete a la PCB y sufra menos. En conectores de conexión lateral, podemos hacer que la carcasa sujete el conector, tanto por detrás como en el marco exterior, para evitar que el estrés afecte solamente al cobre de la PCB (conectores SMD) o en los soportes plásticos del conector (thorugh hole).

conectores

En algunos casos, a la hora de imprimir, puede ser que se requieran detalles a la hora de general el gcode, como paredes ligeramente más gruesas (p.e. en las inserciones roscadas), o malla interna más densa (si tiene que soportar golpes), todo esto se configura en el slicer.

Una visión diferente de nuestro trabajo en proyectos y Git

El otro día reorganizando nuestros repositorio de trabajo di con una herramienta que hace años que descubrí pero que nunca había usado. Se trata de Gource, una herramienta de visualización de repositorios. Gource representa en forma de árbol animado las interacciones que los usuarios realizan sobre un repositorio. De esta manera podemos ver cómo evoluciona el trabajo, cuando fueron esos picos de actividad o qué partes del repositorio son las más actualizadas. Aquí os dejo algunos vídeos para que disfrutéis de esta hipnotizante herramienta:

Proyecto publicamos

Proyecto Carreteras

Proyecto Seth

Tesis jblesa

Artículo aceptado en la IWCMC 2015

El artículo “Controlling the Degradation of Wireless Sensor Networks”, enmarcado en la tesis de Alba Rozas y cuyos co-autores son los miembros del B105 Javier Blesa, Elena Romero y Alvaro Araujo ha sido aceptado en la International Wireless Communications and Mobile Computing Conference (IWCMC 2015).

En el artículo se presentan varias de las ideas iniciales de la tesis de Alba Rozas, cuyo objetivo principal es el desarrollo de algoritmos y estrategias para el aumento del tiempo de vida de las redes de sensores. En concreto, se propone el concepto de “degradación controlada” para referirse a los mecanismos destinados a controlar el deterioro de calidad de servicio que sufren estas redes cuando se acercan al fin de su funcionamiento.

La conferencia tendrá lugar en Dubrovnik, Croacia, del 24 al 27 de agosto de 2015. Esperemos que sea una gran experiencia y sirva para obtener nuevas ideas y aportes a la investigación de esta tesis y del grupo en general.

Dubrovnik, Croacia

Futbolín 2.0

Esta semana hemos comenzado con el desarrollo de un sistema completamente nuevo para el Futbolín. El sistema anterior, implementado en C++ y en un ordenador de escritorio, se trasladará a una Raspberry Pi y será desarrollado en Python. El nuevo sistema tendrá como prioridad tener alta mantenibilidad y ser fácilmente expansible.

El nuevo Futbolín utilizará Python 2.7, GTK+ 3 y Glade. Estos dos últimos nos permiten crear una interfaz gráfica de manera rápida, por medio de ficheros XML. La nueva base de datos del sistema se implementará en SQLite por su mejor desempeño con sistemas de bajos recursos.

A continuación se muestran capturas de pantallas de la nueva interfaz gráfica.

Screenshot - Characters

 

Screenshot - Match

La interfaz gráfica y la funcionalidad básica del sistema ya han sido desarrolladas. Las próximas tareas son integrar la aplicación a la nueva base de datos y a los sensores del futbolín.