Primera toma de contacto con el Andador: constaba de un Arduino Nano v2.2 genérico con cables de múltiples colores soldados directo a sus pines de salida. Muchos cables estaban desoldados y los pines estaban bastante oxidados. Además, la placa que portaba al Arduino había sido lavada con solvente (por razones desconocidas), destruyendo casi todas sus pistas.
El cableado pasaba por dentro de la estructura del Andador, pero en muchos casos los colores de los cables de salida no coincidían con los que entraban en la tubería.
Los sensores ultrasónicos SH-04 estaban apenas soldados, así como los motores vibradores. Los pines de los leds se encontraban firmes, pero no fue posible rastrear cuáles eran los cables que salían del Arduino que correspondían.
Luego de relevar el estado general, el equipo decidió llevar a cabo modificaciones sobre la infraestructura del desarrollo a fin de optimizar su funcionamiento y el mantenimiento general.
El cambio más significativo fue el reemplazo completo del cableado general, así como modificar la fuente de alimentación del prototipo (que originalmente pensaba ser mediante pilas) a un modelo tipo powerbank de 5v del tipo que habitualmente se usa para cargar teléfonos celulares.
Se definió que la nueva instalación eléctrica debía estar dispuesta por fuera de la estructura, a fin de poder llevar a cabo modificaciones de forma más cómoda, además de considerar escenarios de mantenimiento o reparación del prototipo.
Jueves 17
Se completó el desarme y se preparó un nuevo cableado con cables rezagos de cable Ethernet. El testeo de los sensores fue exitoso, no así el test de uno de los motores vibradores: con 5v directo no reaccionó. Se imprimieron en 3D carcasa a los SH-04 con posibilidad de regular el ángulo de ataque.
El Nano v2.2 daba la respuesta eléctrica que ordenaba el software cargado; sin embargo, la placa soporte donde estaba soldado estaba en pésimas condiciones. Intentamos sin éxito soldar sobre la misma, pero la inexistencia de pistas fue un conflicto insalvable, por lo que se deshicieron las soldaduras y Esteban Buniak se ofreció a retirar el Arduino de su placa.
A fin de salvar el problema con el Arduino, se armó una estructura de prueba con un Arduino Pro Micro de reemplazo. Estructurado sobre una protoboard y con un cableado modelo, se diagramó la estructura básica del nuevo código. Además, se verificó que el WS2812 (led RGB) precisa una galería específica de Adafruit (library Adafruit_Neopixel.h) por lo que sobre el ámbito de pruebas se cargó un programa básico de testeo de la galería y se verificó que los leds funcionan correctamente, además de corroborar que si son instalados en serie pueden comportarse como un array de leds. Se imprimieron en 3D monturas para los tres WS2812.
El versionado de código no se logró documentar.
Jueves 24
Con la instalación nueva con cables Ethernet se procedió a la reconexión con el Arduino Nano desoldado. Sin embargo, los sensores repentinamente dejaron de funcionar correctamente. Se revisó la instalación eléctrica completa, lo cual develó un nuevo conflicto: El uso de cables Ethernet se mostró como una decisión poco práctica para el prototipo y el quebradizo alambre interno generó múltiples conflictos en la instalación provisoria.
Luego de múltiples intentos y revisiones de cableado, logramos aislar el problema: los pines del Arduino Nano fallaban en entregar los pulsos que el software usaba para las mediciones.
Se realizó un programa sketch rápido iterando entre todos los pines, cambiando los valores de output a high (lo que provoca que los pines digitales entreguen 5v sostenidos). Las mediciones dieron como resultado que varios pares de pines no entregaban más de 1.5v, con intermitentes caídas hasta 1.3v. Verificamos que varios pines del Nano se encontraban muy dañados; posiblemente el paso del tiempo no le permitió resistir el stress recibido durante el desoldado de la placa original sobre la que estaba montado. Restará revisar si una limpieza profunda o un cambio de pines permite el salvado del controlador.
Se procedió a realizar una nueva instalación eléctrica, ésta vez usando cables multifilares, fichas housing dupont para las conexiones, el Arduino Micro Pro usado en los testeos como microcontrolador y una protoboard para el montaje de todas las conexiones, priorizando la modularidad para la instalación y reemplazo de piezas.
Además, se realiza una refactorizacion sobre el código del testeo del 17-8 a fin de proveer al programa de mayor cohesión. El código (Andador-code v1.0) se encuentra en la entrada correspondiente.
El diagramado del circuito se corresponde con el diagrama v1.0:
Jueves 31
Testeamos el nuevo Layout sobre el andador. Además de notar que los cables tenían una extensión algo excesiva, no hubo mayores inconvenientes en la presentación. Sin embargo, muchos de los pines no conectaban a fondo, propio de la arquitectura de pines y la ubicación del cableado respecto a los sensores. En varias oportunidades, los pines de los sensores ultrasónicos se desprendían o entraban en falso contacto, generando errores en las mediciones o desconexiones repentinas.
En los primeros momentos el sistema parecía funcionar exitosamente, sin embargo, se empezó a detectar problemas en las mediciones de los sensores de proximidad, que repentinamente comenzaban a disparar spikes o picos en las distancias de las mediciones, entregando datos aberrantes de forma aparentemente aleatoria.
Empezamos a monitorear qué sucedía sosteniendo los pines de conexión y las mediciones tendían estabilizarse, por lo que se procedió directamente a eliminar las fichas y soldar los sensores de forma directa al circuito.
Al energizar nuevamente el circuito, las deficiencias en las mediciones empeoraron, siendo prácticamente imposible devolver al andador a un modo operativo predecible debido a que el ruido introducido por las mediciones arruinaba el funcionamiento entero.
Se intentó entonces anular por software las mediciones aberrantes, pero éstas eran tantas, que el prototipo quedaba inútil, procesando y eliminando mediciones el 70% del tiempo funcional.
Finalmente, definimos reemplazar las soldaduras por pines dupont, reemplazar los cables que podrían estar comprometiendo el funcionamiento del prototipo e investigar con mayor profundidad la documentación relativa a los sensores SH-04 y los WS2812.
Septiembre 2017
Jueves 7
La documentación relativa a los WS2812 otorgada por Sparkfun nos ayudó a dar con la clave respecto a las mediciones aberrantes: el sistema de array de LEDs genera al momento de encenderse un pico de consumo mucho mayor del que era capaz de otorgar el Arduino (que estaba alimentando a todo el prototipo), generando que todo el sistema sufra de inanición eléctrica, y como consecuencia, provocando errores en las mediciones.
Para intentar saltar la limitación, procedimos a un cambio en la arquitectura del sistema, introduciendo una fuente de alimentación externa: Un powerbank que alimentara las lineas de corriente de la protoboard sobre la que se monta el circuito de conexiones primario.
Sin embargo, las mediciones desmesuradas seguían provocándose, principalmente sobre uno de los SH-04, por lo que se definió el reemplazo del sensor por un SRF-05. Curiosamente, las mediciones entregadas por este último se mantuvieron asombrosamente estables y casi sin aberrantes. Además se revisaron los ciclos de llamados a los sensores desde el software para intentar eliminar la posibilidad de overlapping entre pulsos de ultrasonidos (que un sensor tome la medición del otro).
Finalmente, se introdujo una resistencia de 3k Ohms en el pin data y un capacitor de 330F entre los pines VCC y GND de alimentación del circuito al array de Neopixels, a fin de suavizar todo lo posible el pico de consumo de los leds; la medida fue exitosa y el SRF-05 no volvió a dar errores de mediciones. Sin embargo, el segundo SH-04 si, por lo que se definió finalmente el reemplazo de ambos SH-04 por SRF-05.
Además, se definió descartar la introducción de motores vibradores en los manillares del andador, considerando que pueden provocar reacciones inesperadas en los usuarios, así como complicaciones innecesarias respecto al consumo eléctrico del prototipo.
Jueves 14
La nueva configuración no pasó los testeos sobre el prototipo. Las fichas, la disposición de los sensores y el cableado no contribuyen a la correcta medición, introduciendo exceso de ruido el sistema. También hay problemas con el cableado a los LEDs.
Entonces definimos retornar al modelo original, con sensores SH-04, revisando fuertemente las conexiones y los pines de conexión.
Revisado el sistema, fijando los sensores sobre el chasis del prototipo y regulando los ángulos, finalmente el andador funciona con buenas mediciones y el comportamiento respeta al programado.
Sin embargo, se descubrieron algunos puntos ciegos en el sistema y las mediciones sobre telas tienden a tener cierto delay.
Quedan por revisar detalles sobre el código, optimizar el uso de la energía y llevar a cabo una revisión completa del diseño y disposición de los elementos, a fin de mejorar la practicidad y estética del prototipo. El código (Andador-code v2.0) se encuentra en la entrada correspondiente.