Hola Habr! Les traigo a su atención una traducción del artículo
"Lámpara inteligente de bricolaje" de
Maciej Matuszewski .
Una guía paso a paso sobre cómo pasar de una idea inventada a un producto funcional.

Esperando contra la realidad

¿Alguna vez te has hecho las siguientes preguntas?
- ¿Puede el pegamento caliente arreglar TODO?
- ¿Es difícil fabricar equipos inteligentes?
- ¿Se puede verter hormigón en forma de cartón?
Si no, tal vez es hora. Pero si lo hiciste, ¡entonces bienvenido al club! Recientemente tuvimos un hackathon interno en
EL Passion , y tuve una idea difícil. ¡Haciendo una lámpara!
Lámpara inteligente.
Lámpara inteligente de hormigón.
Lámpara inteligente de madera / hormigón con tira de LED RGB ...
¡Y BLUETOOTH!
¡En dos días cortos del hackathon (con poca sobrecarga) lo hicimos todo!
Todo comenzó con la electrónica.
Hace unos dos meses, comencé a jugar con la electrónica. Quería ampliar mis horizontes, averiguar qué cables cortar en caso de un levantamiento de máquinas inteligentes, e ir más allá de mi conocimiento de Ingeniería Frontend. Creo que la mayoría de ustedes puede ser similar.
Comencé con lo básico, obtuve algunos componentes, miré los tutoriales y luego no pude decidir qué hacer a continuación.
¡Después de unos dos meses, recordé que se estaba preparando un hackathon!
También recientemente vi a
Stephanie Nemeth hablar en una conferencia donde mostró cosas fantásticas que puedes hacer con Arduino y la retroiluminación RGB. Entonces decidí que quiero hacer algo tan bueno como esto.
Pero quería hacer algo que fuera útil, funcional y que requiriera habilidades en bricolaje, programación y electrónica.
Me decidí por lo más obvio que se puede hacer con la ayuda de lámparas: lámparas. Y encontré el ensamblaje de bricolaje perfecto que quería emular.

Lámpara de bricolaje de un tutorial de youtube creadores de bricolaje
Ya tuve una idea. Ahora necesito un equipo.
Pitching - Team Building
Tres días antes del hackathon, generalmente tenemos una presentación donde presentamos nuestras ideas al resto de la empresa y reunimos a personas que trabajarán en nuestro proyecto. No soy un gran vendedor, así que el mío sonaba más o menos así:
Hmmm, entonces sí, quiero hacer una lámpara inteligente de concreto. Muchas gracias
A pesar de la falta de información, ¡mi equipo tenía cinco personas interesadas en unirse! Teníamos un conjunto impresionante de habilidades:
- Maciej: yo era el CEO del grupo. Planifiqué el ensamblaje, me aseguré de que tuviéramos todo lo que necesitábamos y ayudé a unir todas las partes (figurativa y figurativamente).
- Wojtek: asumió el cargo de jefe del departamento de electrónica. Planificó el circuito, creó un prototipo y trabajó con Yakub (iOS) para asegurarse de que Bluetooth funciona. También se aseguró de que no quemáramos el edificio.
- Ula - Jefe de hormigón del taller de carpintería y cola caliente. Se aseguró de que hiciéramos todo bien, cumplimos con los plazos y trabajamos en la carcasa de la lámpara de madera.
- Sí, equipo de mantenimiento. Apareció cuando más lo necesitábamos, y se aseguró de que nuestra parte "manual" del ensamblaje funcionara.
- Yakub es el jefe del departamento de desarrollo móvil. Asegúrese de que tenemos una increíble, nativa, multiplataforma, pero de hecho la única aplicación ios, porque quién usa Android para controlar la lámpara.
Compras
Miremos la lista de compras . Enumeré solo lo que usamos y lo incorporamos constantemente a la lámpara. No se tienen en cuenta todos los equipos adicionales, Arduino (creación de prototipos, código de carga en AVR) y los componentes que pirateamos.
Costo total: 159 zlotys (alrededor de 43 dólares estadounidenses).
Puede obtener todos los artículos a un precio más bajo, pero en nuestro caso fue bastante urgente.

Tableros, hormigón, papel de lija y otras cosas útiles.
Parte 1: cimientos de hormigón

La fase de construcción del proyecto fue una prueba emocionante. Las primeras dos horas pasamos discutiendo cómo hacer una base para concreto que cumpla con los siguientes requisitos:
- Deje espacio en la parte inferior para la electrónica.
- Deje dos agujeros para las perillas de matiz y saturación.
- Deja espacio para una mano de madera
Se nos ocurrió algo como esto:

Parece simple, pero no fue tan fácil de hacer. Para crear la base, utilizamos una caja de cartón, una gran cantidad de cinta gris, una caja de "magic mouse 2", dos pajitas de plástico y un poco de pegamento caliente.

Más tarde mezclamos y agregamos concreto.

No para personas con intolerancia a la lactosa, lo siento.
No queríamos que el apósito se deforme, por lo que usamos más cinta y cuatro litros de leche. También colocamos la base de madera en concreto para tener un lugar más tarde (aunque casi lo olvidamos). Todo esto es equivalente a una "solución rápida" en los sistemas de producción, pero como dicen:
Si parece estúpido pero funciona, no es estúpido
Gente inteligente
Esta cita se ha convertido en nuestro lema para el resto de la asamblea.
No tengo una imagen de la base inmediatamente después de sacarla del yeso, pero aquí está después de un poco de molienda y ya con la palanca de madera instalada. También agregamos pies de silicona para evitar que el concreto raye la encimera.

Parte 2: mano de madera

El soporte consta de dos partes separadas: la parte superior de la lámpara y la base con un cable en el interior. Los conectamos con un tornillo grande, para lo cual perforamos agujeros en las partes superior e inferior.

Milagrosamente, no quemamos la oficina.

Resulta que medir las cosas bien es difícil.
Comenzamos haciendo la parte superior del brazo.

Vista completa

La parte superior era bastante complicada porque requería un trabajo delicado con un soldador, pero comencemos con lo básico. Lo hicimos con tres piezas de madera, dos delgadas (laterales) y cuadradas. Primero, unimos todo, perforamos un agujero para el tornillo grande que mantiene unidas las partes superior e inferior. Después de un poco de molienda, para compensar el hecho de que las tablas estaban ligeramente curvadas, Ula se pintó la mano, y cuando se secó, continué y comencé a instalar tiras de LED en ella.
Lo primero que hice fue determinar cómo cortar la tira de LED. No queríamos poner una parte larga adentro, ya que no daría tanta luz, por lo tanto, midiendo cuánto encajamos, corté en tres tiras, cada una de las cuales tenía un tamaño de 35 cm. Luego solde el cable principal con la primera parte Tira de LED y utiliza un tubo termorretráctil para asegurar la conexión.

Los tubos termocontraíbles y las juntas de soldadura conectan dos tiras de LED.
Después de pegar la primera tira al árbol, me di cuenta de que había olvidado qué cables conecté a las salidas de Rojo, Verde, Azul y 12V +. Fue un pequeño revés, pero afortunadamente, teníamos un multímetro que nos permitía verificar las conexiones.
Lo siguiente que necesitaba hacer era soldar las dos tiras de LED en serie con la primera parte. Me tomó algo de tiempo, pero logré hacerlo, a pesar del soldador con punta de $ 8, que disminuyó con cada uso. Probamos esto conectando el cable a la placa y utilizando uno de los codificadores rotativos para cambiar el color.

El brazo inferior, como se muestra en la figura anterior, también era bastante complejo.


La parte inferior del brazo era complicada porque tuvimos que insertar el cable en su interior. Pensamos en cortarlo por la mitad, asignar un poco de espacio y luego plegarlo, pero será propenso a errores y llevará mucho tiempo. Al final, decidimos pegar tres piezas adicionales de madera para dejar espacio para el cable, como se muestra en el gráfico. Esta es también la razón por la cual la parte dentro de la base es un poco más estrecha.
Nos faltaban algunas partes, piezas de madera y un tornillo que nos uniera. Tomamos un breve descanso del trabajo y fuimos a la tienda a comprar todas estas cosas.
El color natural del pino no era tan bueno, por lo que Ula pintó las partes superior e inferior de la lámpara para que se volvieran un poco más oscuras. Lo dejamos secar por la noche, y al día siguiente lo enchufamos, ¡y se veía genial!

El proceso de pintura.

La ubicación de los cables dentro de la lámpara.
Parte 3: software de la aplicación iOS
No participé en el proceso de creación de una aplicación para iOS, por lo que no puedo dar una comprensión más profunda del código. Yakub tomó la iniciativa y entregó la solicitud de trabajo hasta el final del primer día. El segundo día, lo amplió agregando características más increíbles, como el soporte Ambilight, cuando la lámpara sincroniza los colores con ella durante la reproducción de video (demostración al final del artículo).
Hubo algunos problemas con la conexión Bluetooth, más precisamente, un módulo Bluetooth estaba conectado a iOS, pero no a Android, y el otro fue al revés. Ahora la lámpara solo funciona con iOS, pero para MVP es suficiente. Y el módulo Bluetooth se puede cambiar fácilmente si es necesario, ya que no está soldado en su lugar.
Código de la aplicación IOS
Según mi experiencia, puedo decir que la aplicación se ve impresionante, ¡y la velocidad con la que Yakub la proporcionó también es increíble!

Código Arduino / ATmega
Todo el código fuente abierto en GitHub . Puedes pasar por esto. No voy a entrar en los detalles técnicos profundos de cómo funciona esto. Wojtek, quien escribió la mayor parte del código, sería mejor para esto, así que creé una descripción general de cómo funciona todo. Un algoritmo simplificado es el siguiente:
Algoritmo de software de lámpara simplificado
Mudarse de Arduino a ATmega
Wojtek escribió la primera versión del código para Arduino, y luego la actualicé para que funcione en un chip ATmega normal. Las diferencias son mínimas ya que introduje solo dos cambios principales:
Eliminé una de las conexiones en serie: anteriormente teníamos una conexión en serie, que utilizamos para la depuración (impresión en la consola de la computadora) y la otra para Bluetooth. Cuando cambiamos a ATmega, ya no necesitábamos una depuración, lo que liberó dos pines y simplificó las conexiones.
Cambié la ubicación de los pines: para colocar mejor todo en el diseño, cambié la ubicación física, lo que requirió un cambio en los pines de referencia en el código.
Si está interesado, puede ver una solicitud de recibo, que contiene las diferencias de todos los cambios.
Parte 4: Electrónica
Nuestro plan era bastante ambicioso durante tan poco tiempo, pero, afortunadamente, Wojtek era bastante inteligente y solía jugar con la electrónica, por lo que era el "líder" en esta parte.

Comenzamos con los pasos de los niños, probando varias soluciones por prueba y error. Wojtek trabajó en el código y el circuito al mismo tiempo y comprobó cómo funciona todo. La parte electrónica de la lámpara consistía en:
- Microcontrolador - Cerebro
- Dos perillas con botones para controlar el brillo, el tono y la saturación.
- Módulo Bluetooth para control inalámbrico.
- Tira de LED para luz
Primero, usamos un Arduino en lugar de un microcontrolador independiente, y colocamos todo en el diseño para simplificar el proceso de desarrollo. Al final del segundo día, teníamos todo lo relacionado con el prototipo de placa. Bluetooth, codificadores rotativos y Arduino. Así es como se veía en la sesión de demostración:

También logramos grabar un chip Bluetooth ...
Parte 5: ¡hagámoslo más pequeño!
Después del hackathon, quería pasar un tiempo y apretar los componentes electrónicos para que encajen dentro de la lámpara para que el ensamblaje esté completo. Para comprimir la electrónica, tuve que:
- Reemplace Arduino con ATmega328
- Planificar conexiones en cartón
- Suelde el zócalo AVR para que podamos reemplazarlo si es necesario
- Elementos de soldadura no extraíbles (transistores, toma de CC, etc.)
- Ponlo todo junto
Comencé reemplazando el Arduino. Para hacer esto, necesitaba instalar el gestor de arranque en AVme ATmega (es lo mismo que en Arduino). Miré varios tutoriales sobre cómo instalar un gestor de arranque y cómo usar Arduino como programador ISP (le permite descargar software a un microcontrolador sin ningún hardware adicional). ¡Después de eso actualicé el código para usar contactos ligeramente diferentes y listo!

¡Arduino se desconectó con éxito!
Luego tuve que soldarlo todo en un pequeño cartón.
Esta fue la primera vez que trabajé con tarjetas de cinta, y no pude encontrar ningún software simple que me ayudara con el diseño de circuitos físicos, así que fui a una vieja escuela y lo planeé manualmente. Imprimí una hoja de papel con una cuadrícula punteada, donde los puntos eran agujeros en el cartón. Luego dibujé todas las conexiones y cómo deberían encajar según el esquema de diseño actual.

La planificación del circuito del circuito en sí me llevó más de una hora.
Para hacerlo más comprensible y visible, creé un gráfico que representa un diagrama en cartón.

Representación del esquema creado. En una versión real, tuve que ajustarlo un poco para que se adaptara a todos los componentes, pero parece un 90% más alto.
Después de unas diez horas de soldadura (todavía un principiante) y dos dedos quemados (no toque los componentes si algo huele mal), ¡pude hacer que funcione! Todo salió mejor de lo esperado.


Todas las partes combinadas. Los cables blancos son manijas, los cables pequeños con aislamiento negro son conexiones LED

Vista desde abajo. Usé un cable de cobre delgado para conectar las juntas

Si miras lo suficientemente cerca, puedes ver todo el pegamento que usamos.

Producto listo!
Vea una demostración completa donde hablaré sobre todas las características de esta lámpara. A pesar de varios problemas, por ejemplo, botones giratorios curvos y visualización incorrecta de colores, ¡esto funciona!


Para mí y, espero, para el resto del equipo, este fue uno de los proyectos de hackathon más agradables. Tanto el proceso como el resultado fueron increíbles, nos divertimos mucho y aprendimos mucho sobre el trabajo con madera, concreto y electrónica.
Si alguien quiere crear una lámpara similar o necesita información más detallada, ¡siéntase libre de comentar y preguntarme algo!