Как я производил и продавал электронные бейджи. Часть 1. Проектирование и прототипирование платы
20 января 2024 г.<блок-цитата>
Я написал эту серию постов в первую очередь для себя или, по крайней мере, для того, кто пытается сделать что-то электронное для продажи. Если это вы, то я надеюсь, что это поможет вам в вашем путешествии! Если вы просто хотите увидеть конечный продукт, вы можете найти его по адресу https://hortus.dev/products/social-battery.
Пост длинный, поэтому я разбил его на части, чтобы было легче воспринимать. Это:
- Проектирование и создание прототипа платы (эта статья)
- Продажа прототипов через Интернет
- От прототипа к производству ол>
- Я особо не планировал, как буду программировать доски. Я только что вытащил контакты для программирования AVR и надеялся на лучшее. Этого было вполне достаточно для пяти прототипов, так как я мог прикрепить провода программирования с помощью крошечного кусочка припоя, но при масштабировании это быстро стало бы очень утомительным. ол>
Введение
Я хотел поэкспериментировать со службой сборки печатных плат JLC - хотя я проектировал и производил голые печатные платы перед размещением и пайкой компонентов вручную, у меня есть несколько будущих проектов, паять которые вручную будет непрактично из-за количества и размер компонентов.
Удивительно, насколько дешева эта услуга, если подумать о том, что с ней связано, но она все равно достаточно дорогая, поэтому может быть немного сложно передать свои деньги, а затем ждать, чтобы выяснить, не допустили ли вы какую-то ошибку, которая испортит конечный результат.
Я решил, что начну с чего-нибудь простого, с чего-то, что я мог бы опробовать не только в сборке печатных плат, но и в электронной коммерции. Мой план состоял в том, чтобы придумать небольшой предмет, который я мог бы реально спроектировать и отправить в производство менее чем за день, а затем, надеюсь, достаточно легко продать на таком рынке, как Etsy.
Я ожидал, что разработка и производство будут сложными, а размещение продукта на Etsy будет простым, но все оказалось наоборот, как вы увидите, если продолжите читать!
Продукт
Я быстро просмотрел Etsy, чтобы посмотреть, какие вещи, которые люди успешно продают, и которые я могу сделать. Я нашел пару примеров людей, делающих электронные значки — идеальный проект! В основном они состояли из светодиодов со случайным или заранее заданным режимом мигания на плате новой формы.
Мне они показались вполне приемлемыми, но я хотел попробовать что-то более интерактивное и значимое, что я мог бы продать за достаточно денег, чтобы получить разумную прибыль от небольшого количества первоначальных единиц.
Глядя на обычные значки, продаваемые на Etsy, я увидел кучу эмалированных значков «Социальная батарея» со скользящим индикатором. Они сразу же бросились мне в глаза как нечто, что а) я мог бы идентифицировать лично (люди бесконечно шутят о моей социальной батарее…), б) было бы очень весело в электронной версии и в) их было бы легко спроектировать — просто несколько светодиодов, переключатель и микроконтроллер, чтобы связать все воедино!
Проектирование и создание прототипа платы
Уверенный в своих силах, я составил быструю принципиальную схему в Kicad. Я решил использовать ATtiny13A — главным образом потому, что у меня под рукой было несколько процессоров из предыдущего проекта, а также потому, что у меня есть приличный опыт работы с подобными чипами.
Если вы не знакомы с ним, ATtiny13A — это небольшой 8-битный микропроцессор с 6 контактами ввода-вывода, принадлежащий семейству микроконтроллеров AVR. Он похож на чипы ATmega, которые исторически составляли основу большинства Arduino, за исключением того, что его возможности гораздо более ограничены.
Преимущество в том, что чипы ATtiny меньше и дешевле, поэтому, если вам не нужно много памяти или периферийных устройств, то они великолепны! (хотя, возможно, сейчас он немного устарел из-за бесконечного разнообразия доступных чипов ARM).
Я выложил печатную плату для своей схемы в KiCad, затем заставил ее выложить герберы и файлы сверления (которые используются для изготовления печатной платы), а также спецификацию материалов и файлы размещения (которые используются для сборки компонентов на печатную плату). . Я отправил их в JLC PCB, чтобы посмотреть, смогут ли они их правильно обработать.
Файлы спецификации и размещения нужно было немного изменить по сравнению со стандартными, чтобы привести их в правильный формат (оказывается, я сделал это на собственном горьком опыте, и для KiCad есть гораздо более простой плагин, который делает все идеально в один клик). р>
JLC PCB поддерживает довольно большую библиотеку компонентов, которые они хранят на складе для заказов на сборку. Однако в моем случае ATtiny13a не было в наличии, поэтому мне пришлось заказать их. Это было довольно просто, используя их глобальную службу снабжения. Мне удалось найти поставщика с лучшей ценой за необходимое мне количество, а затем позволить JLC PCB заказать их на склад от моего имени.
Пока я ждал, я решил, что с таким же успехом можно создать макет своего проекта и начать работать над кодом, и я рад, что сделал это, потому что сразу обнаружил проблему! В моей конструкции использовались пять контактов ввода-вывода, доступных на ATtiny13a, для прямого управления светодиодами (шестой использовался для контроля кнопки).
Чего я не осознавал/не запомнил с момента последней ошибки (да, это случалось раньше), так это того, что один из этих входов/выходов также является контактом сброса. Использовать его можно, но он не способен выдавать большой ток, и, подключая его к земле через светодиод, я держал чип в состоянии постоянного сброса.
Один из способов обойти это — сжечь предохранитель на чипе, который навсегда отключает функцию сброса вывода, превращая его в обычный ввод-вывод. Однако проблема в том, что вы можете запрограммировать чип только один раз (если только у вас нет высоковольтного программатора, которого у меня нет), и, учитывая мою склонность учиться вещам на собственном горьком опыте, это потенциально казалось довольно расточительным! р>
Другой вариант — найти способ сделать больше с меньшим количеством контактов, чтобы контакт сброса можно было оставить в покое. Этого можно добиться с помощью метода charlieplexing, который позволяет адресовать гораздо больше светодиодов, чем количество доступных контактов.
Затем вы можете сканировать эти светодиоды, включая и выключая их по отдельности с высокой частотой, чтобы создать впечатление, будто несколько из них включены одновременно, через постоянство видения.
В моем случае я подключаю четыре зеленых светодиода к 3 контактам, а красный светодиод — к выделенному контакту. Это не самый эффективный пример чарлиплексирования, так как я мог бы управлять всеми светодиодами с трех контактов, но сохранение красного цвета на выделенном контакте позволяет упростить код, когда дело доходит до программирования.
Я пересмотрел свою принципиальную схему и дизайн печатной платы, затем реэкспортировал необходимые файлы и отправил их в JLC PCB для изготовления и сборки первоначального набора из пяти прототипов.
Чуть больше недели спустя я получил свои прототипы и остался ими очень доволен! Было несколько вещей, которые, как я видел, мне нужно было изменить:
2. Шип для крепления сзади припаял к заземляющей площадке. Это было бы хорошо, если бы тепловая масса шипа и заземляющего слоя на плате не мешала хорошему соединению. Он также выступает очень близко к положительному металлическому корпусу держателя батареи, а это означает, что существует большая вероятность случайного короткого замыкания, если люди размещают/прикрепляют значок на/к проводящим поверхностям.
3. Минусовый контакт аккумулятора был недостаточно заметным, поэтому мне пришлось добавить к нему немного припоя, чтобы обеспечить хорошее соединение. Опять же — не конец света для малого количества прототипов, а боль, если придется делать это для нагрузок.
Все эти исправления были простыми в реализации. Я добавил подходящий заголовок для программирования, который можно было использовать с приспособлением для пого-штифтов для быстрого и повторяемого программирования.
Я отсоединил штырь от заземляющего слоя, чтобы он представлял собой отдельный небольшой отсоединенный медный островок, который легче нагревался и не вызывал короткого замыкания.
И я расширил отрицательный контакт аккумулятора, чтобы у него была большая площадь поверхности для надежного соединения.
Код довольно прост. Я отслеживаю режим, в котором находится значок, который представлен целым числом, которое уменьшается при каждом нажатии кнопки. Затем я зацикливаю и мигаю каждым светодиодом на своем пути, как того требует режим. Когда достигается режим 0, я возвращаю его к исходному номеру, а затем переводю ATtiny в спящий режим.
Повторное нажатие кнопки запускает прерывание, которое пробуждает чип и запускает весь процесс заново.
В целом, я был очень доволен результатами, а это означало, что пришло время посмотреть, смогу ли я их продать!
Вы можете прочитать о моем опыте в этом следующем посте этой серии.
Оригинал