puerta-de-garaje-maker-4-4-programacion-de-arduino

Puerta de garaje Maker 4/4. Programación de Arduino

Continuo con la historia de la reparación de la puerta mi garaje. Recordaréis que a estas alturas se ha vuelto a romper el engranaje, tengo el techo como un queso de gruyer, y he metido horas por un tubo.

Parece que lo más sensato es, de una vez, darse por rendido. Asumir que los medios Maker dan para lo que dan, ir a comprar un mecanismo por 200€ y ya me preocuparé como me salto los 20cm de Porexpan y lo fijo al forjado. Total, ¡por un agujero en el techo más!

Y ya iba a comprarlo pero (y sé que va a sonar mega friky) me encontré esta imagen de Ironman perdido en el espacio, usando su casco para dejar un mensaje a Pepper. Y sé que es una tontería, pero me dije “macho, él no lo dejaría así”.

garaje-diy-arduino-30

Así que, ya por pura cabezonería y orgullo Maker… ¡volvemos a la fase del hardware! Que, en este caso, es volver a pegarse con la impresora 3D.

Back to hardware mode

Me pongo a imprimir un nuevo engranaje. Pero esta vez subo la temperatura “a to lo que da”. Además, aumento el solape entre líneas a un 10%. Y “de regalo”, aumento el flujo un 5%.

garaje-diy-arduino-31

El cabezal de la impresora iba como cuando untas Nocilla en pan Bimbo, dejando surco. Ahí sobraba plástico por todos lados, a casco porro.

Además quito el estriado y, en su lugar, caliento el eje y lo inserto a presión (y diría que el término técnico es “zunchado”, pero no sé si me atrevería a ser tan fino en algo que implicó varios martillazos).

Garaje-diy-arduino-24

Por otro lado, le hago un revenido a la pieza para eliminar tensiones residuales. Vamos, que cojo el reductor entero y lo meto en el horno durante 30 minutos. He leído mucho al respecto, y aún no he encontrado ningún estudio concluyente sobre el efecto. Pero oye, mal no hará.

Hasta aquí puedo hacer con mis medios. Lo siguiente sería mirar en un tornero, imprimirlo en poliamida o… mira, lo siguiente es comprarse el dichoso mecanismo de 200€.

Una consecuencia, antes el engranaje entraba deslizando, de forma que metías el engranaje en la cadena y posteriormente acoplabas el motor. Pero ahora el engranaje está unido al motor, así que tengo que desmontar el carril soltando el tensor que tiene al otro lado.

Voy a montar todo y, en el proceso, la tuerca del tensor se ha pasado de vueltas y ya no tensa, así que la cadena me queda “colgandera” y no la puedo tensar. Pero es que no se puede tener peor suerte.

Oye, de perdidos al río. Me hago unas piececitas imprimidas en 3D, de distintos espesores, que introduzco en el tornillo del tensor a modo de calce. Juego con los distintos espesores hasta que la cadena tiene la tensión que, a ojo, me da que tiene que tener.

Garaje-diy-arduino-26

Por otro lado, sigo queriendo mis soportes al techo. Así que busco las viguetas, y quito (y trago) porexpan por un tubo para poder sujetar las escuadras metálicas.

Por supuesto, eso significa que tengo que volver a diseñar e imprimir las piezas que agarran el carril. Además, ahora necesito dos escuadras en lugar de una para cada soporte, así que me hago unas piezas de plástico para que hagan de riostrar y le den rigidez.

Garaje-diy-arduino-25

Así, con más trabajo y más fines de semana dedicados, vuelvo a estar en disposición de hacer las pruebas. ¡Parece que funciona! No sé cuánto tiempo va a aguantar el nuevo engranaje, pero de momento ahí estamos.

Pasamos a la programación

La programación, versión 1, haciendo un diagrama de la máquina de estados. En general, tenemos 2 ciclos de trabajo.

garaje-diy-arduino-30

Al arrancar la máquina, no sabemos en qué posición estamos así que, como precaución, limitamos la velocidad de la puerta a la velocidad más baja.

Garaje-diy-arduino-31

Al detectar el cierre o el tope superior, pasamos al ciclo normal de trabajo.

garaje-diy-arduino-32

En el ciclo de trabajo normal sabemos la posición de la puerta a través del encoder. Por otro lado, monitorizamos las entradas manuales (el mando a distancia, un pulsador, etc), la corriente, y el tiempo del encoder.

En función de las distintas entradas, la máquina de estados pasa a un estado o a otro, según el esquema.

Garaje-diy-arduino-33

Además, tenemos el control de velocidad. Por un lado, tenemos una curva de aceleración, que se da siempre que la puerta inicia el movimiento. Por otro, tenemos unas zonas de deceleración que dependen de la posición absoluta de la puerta.

También tenemos el control de la corriente y el encoder, como medida antiatrapamiento.

Garaje-diy-arduino-34

Finalmente, tenemos el control del rele de las luces, y los temporizadores para su apagado, y para el cierre automático de la puerta cuando está arriba.

Resultado

Y el resultado… aquí lo tenéis. No sé si es un éxito de la filosofía Maker, o un ejercicio de cabezonería. Tampoco sé si el engranaje de reemplazo aguantará una semana, o toda la vida.

El control de velocidad y los anclajes hacen que el movimiento sea mucho más suave que antes. Además, suponen un pico de arranque muy inferior para el motor, que ha pasado de 9A con control todo o nada, a 3.5A.

La medición de corriente y el control del encoder hacen que la puerta pare en menos 50ms, bien si ocurre un choque con algo, o cuando cierra. Lo cual parece bastante seguro, seguramente más que el original.

Todo ello favorece, además de que el movimiento sea más suave y silencioso, a que el engranaje soporte menos esfuerzos, y alargue su vida.

Por último, ahora es WiFi. De momento sólo puedo abrir y cerrar, pero con tiempo (y con ganas) haré una página que te permita ver el estado de la puerta, y información de debug, etc.

En el futuro, se me ocurren muchas cosas más que poder añadir. Sustituir la luz de cortesía por un anillo de NeoPixel, controlar las luces de todo el garaje, añadir un sensor de ultrasonidos para saber si hay un coche aparcado o no, o poner un indicador que te ayude a aparcar. Pero, de momento, ya he dedicado mucho tiempo a la puerta del garaje, así que será para un futuro.

Bueno, hasta aquí la historia de mi garaje. Próximamente subiré todo el código a Github, y pondré un enlace en esta misma entrada.