Escribí esta serie de publicaciones principalmente para mí, o al menos para alguien que intenta hacer algo electrónico para vender. Si eres tú, ¡espero que esto te ayude en tu viaje! Si solo desea ver el producto final, puede encontrarlo en https://hortus.dev/products/social-battery .
Esta es una publicación larga, así que la he dividido en partes para que sea un poco más fácil de digerir. Estos son:
Quería experimentar con el servicio de ensamblaje de JLC PCB: aunque he diseñado y fabricado PCB desnudos antes de colocar y soldar los componentes manualmente, tengo algunos proyectos futuros en mente que no serán prácticos para soldar a mano debido tanto a la cantidad como Tamaño de los componentes.
Es sorprendente lo barato que es este servicio cuando piensas en lo que implica, pero sigue siendo lo suficientemente caro como para que pueda resultar un poco desalentador entregar tu dinero y luego esperar a descubrir si has cometido algún error que arruine el negocio. resultado final.
Pensé que comenzaría con algo simple, algo que pudiera probar no solo en el ensamblaje de PCB sino también en el comercio electrónico. Mi plan era idear un artículo pequeño que pudiera diseñar de manera realista y enviarlo para su fabricación en menos de un día y, con suerte, venderlo con razonable facilidad en un mercado como Etsy.
Esperaba que el diseño y la fabricación fueran la parte difícil y que publicar el producto en Etsy fuera fácil, pero fue todo lo contrario, como verás si sigues leyendo.
Hice un escaneo rápido de Etsy para ver los tipos de cosas que la gente vendía con éxito y que yo podía hacer. Encontré un par de ejemplos de personas que fabrican insignias electrónicas: ¡el proyecto perfecto! En su mayoría consistían en LED con un patrón de parpadeo aleatorio o preestablecido en un tablero con forma novedosa.
Me parecieron bien, pero quería probar algo un poco más interactivo y significativo que pudiera vender por suficiente dinero para obtener un margen razonable en una pequeña cantidad de unidades iniciales.
Al mirar las insignias normales que se venden en Etsy, vi un montón de pines esmaltados de 'Batería social' con un indicador deslizante. Inmediatamente me llamaron la atención como algo con lo que a) podría identificarme personalmente (la gente hace interminables bromas sobre mi batería social...), b) sería muy divertido como versión electrónica, y c) sería fácil de diseñar, solo una ¡Pocos LED, un interruptor y un microcontrolador para unirlo todo!
Confiado en mis habilidades, preparé un diagrama de circuito rápido en Kicad. Decidí usar un ATtiny13A, principalmente porque tenía algunos a mano de un proyecto anterior y porque tengo bastante experiencia con chips similares.
Si no está familiarizado con él, el ATtiny13A es un pequeño microprocesador de 8 bits con 6 pines IO y forma parte de la familia de MCU AVR. Es similar a los chips ATmega que históricamente han sido el núcleo de la mayoría de los Arduinos, excepto que sus capacidades son mucho más limitadas.
La ventaja es que la gama de chips ATtiny es más pequeña y más barata, por lo que si no necesitas mucha memoria o periféricos, ¡son geniales! (aunque posiblemente esté un poco anticuado ahora con la infinita variedad de chips ARM disponibles).
Diseñé el PCB para mi circuito en KiCad, luego hice que escupiera las gerberas y las limas de perforación (que se usan para fabricar el PCB), y la lista de materiales y los archivos de ubicación (que se usan para ensamblar componentes en los PCB). . Los envié a JLC PCB para ver si podían procesarlos correctamente.
La lista de materiales y los archivos de ubicación necesitaban algunos ajustes con respecto al valor predeterminado para obtener el formato correcto (resulta que lo hice de la manera más difícil y hay un complemento mucho más sencillo para KiCad que hace todo perfectamente con un solo clic).
JLC PCB mantiene una biblioteca bastante grande de componentes que mantienen en stock para pedidos de ensamblaje. Sin embargo, en mi caso, el ATtiny13a no estaba disponible, así que tuve que pedirlo. Esto fue bastante sencillo utilizando su servicio de abastecimiento global. Pude encontrar el proveedor con el mejor precio para la cantidad que necesitaba y luego dejé que JLC PCB los ordenara a su almacén en mi nombre.
Mientras esperaba, pensé que también podría probar mi diseño y comenzar a trabajar en el código, ¡y me alegro de haberlo hecho porque descubrí inmediatamente un problema! Mi diseño utilizó cinco de los pines IO disponibles en el ATtiny13a para controlar los LED directamente (el sexto se usó para monitorear el botón).
De lo que no me di cuenta/recordé la última vez que cometí este error (sí, ya sucedió antes), fue que una de esas IO también es el pin de reinicio. Puedes usarlo, pero no es capaz de suministrar mucha corriente y, al conectarlo a tierra a través de un LED, mantenía el chip en un estado de reinicio permanente.
Una forma de solucionar esto es quemar un fusible en el chip que deshabilite permanentemente la funcionalidad de reinicio del pin y lo transforme en un IO normal. Sin embargo, el problema con esto es que solo puedes programar el chip una vez (a menos que tengas un programador de alto voltaje, lo cual yo no tengo), y dada mi propensión a aprender cosas de la manera más difícil, ¡eso parecía potencialmente un desperdicio!
La otra opción es encontrar una manera de hacer más con menos pines para que el pin de reinicio pueda dejarse en paz. Esto se puede lograr utilizando una técnica llamada charlieplexing que le permite abordar muchos más LED que la cantidad de pines disponibles.
Luego puede escanear estos LED, encendiéndolos y apagándolos individualmente a un ritmo alto para que parezca que hay varios encendidos a la vez debido a la persistencia de la visión .
En mi caso, manejo los cuatro LED verdes desde 3 pines y el LED rojo con un pin dedicado. Este no es el ejemplo más eficiente de charlieplexing, ya que podría controlar todos los LED desde los tres pines, pero mantener el color rojo en un pin dedicado permite un código más simple cuando se trata de programación.
Revisé mi diagrama de circuito y diseño de PCB, luego reexporté los archivos necesarios y los envié a JLC PCB para fabricar y ensamblar un conjunto inicial de cinco prototipos.
Poco más de una semana después, recibí mis prototipos y ¡quedé muy satisfecho con ellos! Hubo algunas cosas que pude ver que necesitaba cambiar:
Realmente no había planeado cómo iba a programar las placas. Acababa de romper los pines de programación del AVR y esperaba lo mejor. Esto estuvo bien para cinco prototipos, ya que podía unir los cables de programación con una mínima cantidad de soldadura, pero esto se volvería muy tedioso muy rápidamente a escala.
La punta para el sujetador en la parte posterior se soldó a una plataforma de tierra. Esto habría estado bien, excepto que la masa térmica de la púa y el plano de tierra del tablero dificultaban hacer una buena unión. También sobresale muy cerca de la jaula metálica positiva del soporte de la batería, lo que significaba que había una buena posibilidad de que se produjeran cortocircuitos accidentales si las personas colocaban o fijaban la insignia sobre superficies conductoras.
El contacto negativo de la batería no era lo suficientemente prominente, así que tuve que agregarle un poco de soldadura para hacer una buena conexión. Nuevamente, no es el fin del mundo para una pequeña cantidad de prototipos, pero sí un fastidio si tuviera que hacer esto por mucho tiempo.
Todas estas fueron soluciones simples de implementar. Agregué un encabezado de programación adecuado que podría usarse con una plantilla de pin pogo para una programación rápida y repetible.
Desconecté la punta del plano de tierra para que fuera su pequeña isla de cobre desconectada la que se calentara más fácilmente y no causara cortocircuitos.
Y amplié el contacto negativo de la batería para que tuviera más superficie para hacer una conexión sólida.
El código es bastante simple. Llevo un registro del modo en el que se encuentra la insignia, que está representado por un número entero que disminuye cada vez que se presiona el botón. Luego hago un bucle y hago parpadear cada LED según lo dicta el modo. Cuando se alcanza el modo 0, lo restablezco al número original y luego pongo el ATtiny en modo de suspensión.
Al presionar el botón nuevamente se activa la interrupción que despierta el chip y comienza todo el proceso nuevamente.
En general, quedé muy satisfecho con los resultados, lo que significaba que era hora de ver si podía venderlos.
Puedes leer sobre mi experiencia al hacer esto en la siguiente publicación de esta serie .