Привет, Хабр!

Хочу рассказать, как я разрабатывал и производил прототипы розетки с BLE интерфейсом. В первую очередь, хочется отметить, что устройство было выбрано для эксперимента – как практикум по конструированию и программированию (чтобы наточить карандаш для работы с 3D проектированием корпуса и печатной платы, и для того чтобы разобраться с функционированием BLE-стэка от TI). Дополнительной мотивацией стало наличие нескольких успешных проектов на кикстартере, разрабатывающих подобные устройства.

image

1. Функционал устройства


Изначально планировалось создать устройство, выполненное в форм-факторе обычного розеточного переходника, то есть наиболее малогабаритном, при этом устройство должно уметь:

— управлять нагрузкой (включение и отключение — без димминга);
— считать ток потребления;
— включаться и отключаться по таймеру/расписанию;
— отключаться при потере связи (когда пользователь условно покидает помещение).

2. Схемотехника и печатная плата


Схемотехника устройства довольно банальная – бестрансформаторный импульсный источник питания, интегральный датчик тока, связка отосимистор+симистор для коммутации нагрузки и мозги устройства SoC CC2541 от Texas Instruments. На момент выбора элементной базы это был, пожалуй, самый доступный чип с поддержкой Bluetooth LE, адекватными средствами отладки и разработки (СС-debugger, sensortag, CC2541-DK-mini) и проверенным, хоть и не самым удобным компилятором IAR.

Для проектирования схемотехники и печатной платы устройства был использован Altium designer версии summer 09, позже проект был перенесен в версию 14. Несмотря на общее знакомство и пару реализованных мелких проектов, здорово перейти с P-cad на Altium помогли уроки Алексея Сабунина. Очень советую.

Габариты устройства были определены исходя из требований форм-фактора – отсюда были определены и отрисованы габариты плат (сразу стало ясно, что на одну плату все компоненты не полезут – посему было решено делать две платы, соединеные через pls-pbs соединитель. Однако вопрос остался актуальным – поместятся ли все компоненты на платы, как их компоновать, чтобы компоненты с соседних плат не задевали друг друга, чтобы силовые элементы также не касались компонентов и чтобы вся начинка вписывалась в габарит устройства? На помощь пришел SolidWorks – на мой взгляд, наиболее адекватное средство 3D проектирования.

3. 3D проектирование и сборка устройства


Благо существует взаимная совместимость AD со средствами 3D проектирования посредством файлов формата .step. При этом примечательно, что только SolidWorks в версии 2014 sp3 cмог адекватно отображать цвета деталей, назначенные в Altium Designer. В чем проблема для меня до сих пор покрыто мраком. Итак, после отрисовки в 3D деталей корпуса и нескольких итераций изменения компоновки плат, сборка устройства стала выглядеть примерно следующим образом:

image

Теперь осталось только произвести устройство.

4. Первый прототип


Традиционно заказываю образцовые количества печатных плат в Резоните. Не то чтобы очень дешево, но всегда качественно и в срок, ну и промышленные партии производятся вполне по рыночной цене. Электронные компоненты покупаю также традиционно в двух местах – Компэле, где есть почти все, и местной Промэлектронике, где почти всегда можно докупить то, чего нет в Компэле. Отдельного внимания заслуживает первый опыт 3D печати деталей корпуса. Печать производилась знакомым по технологии FDM. Получилась удивительно позитивная рыжая розетка:

image

После пайки и сборки деталей:

image

Во время ожидания плат и электронных компонентов была начата работа над BLE профилем для устройства. Как оказалось, стек TI для BLE гораздо страшнее выглядит снаружи – реализация же собственных приложений особого труда не представляет, несмотря на относительно большой объем кода для 8051 платформы.

В итоге получилась вполне себе работоспособное устройство – оно действительно выполняет все заявленные функции, при том помещаясь в заявленный габарит. Однако несколько проблем и вопросов прототип все же оставил:

— как крепить детали корпуса между собой? Должно ли быть соединение разборным?
— как сделать заземление?
— как улучшить качество сигнала с датчика тока? Шумы ли это питания или же погрешность датчика тока непосредственно?

Продукт настолько понравился мне и моим знакомым, что решено было делать коммерчески упаковываемый продукт. Это предполагало решение вопросов:

— написание софта для смартфонов;
— корпус для серийного производства (для изготовления пресс-формы);
— увеличение максимальной коммутируемой мощности (до 2.5 кВт против 1,2 кВт).

5. Вторая итерация прототипирования


И первое, с чем следовало определиться – делать ли корпус разборным. Волею судеб, я не доверяю «защелкам» и подобным соединениям, так что вариант оставался по сути один – винтовое соединение. Но к сожалению, варианта как организовать такое соединение не нашлось. Пробовались несколько типов винтовых заклепок, но ни один из них не показал надежной фиксации в тонком пластике. За неимением иных вариантов, решено было делать новый корпус неразборным – с клеевым соединением. Кроме того, было добавлено несколько конструкционных элементов для установки и крепления заземления. В итоге сборка стала выглядеть примерно следующим образом:

image

Так же был переделан силовой тракт на максимальную нагрузку до 3кВт (по сути симистор в D2PAK сменил симистор в DPAK), что повлекло еще несколько операций компоновки печатной платы. Поскольку напечатанный по методу FDM ни т��чностью размеров, ни качеством поверхности похвастаться не мог, было решено печатать корпуса по технологии SLS. Заказ размещался в сервисе i.materialise.com (более бюджетном в сравнении с отечественными аналогами). Однако… Бесплатная доставка UPS имела и черную сторону – заказ пролежал на складе UPS в Москве 26! дней, чем нарушил все мои планы. Новая схемотехника так же дала сбой: элементарная ошибка (перепутанные местами контакты симистора) стоила мне кучи нервов и испортила всю внутреннюю эстетику прототипов. В же целом новые устройства выглядят таким образом:

image

image

image

Сейчас я занят очередной переработкой платы и поиском единомышленников для того, чтобы вывести продукт на рынок. В первую очередь нужны приложения для мобильных платформ. Присоединяйтесь!