Продолжение серии публикаций, посвящённых проекту "умные пайетки". Предыдущие части: 1, 2, 3, 4. В данной статье расскажу о том как мы переводили пайетки на китайские микроконтроллеры Padauk и применяли Миландр в устройстве управления матрицей электромеханических цветовоспроизводящих устройств.
Новая схемотехника пайеток
Основная статься расхода при производстве пайеток – электроника. Наибольшей стоимостью обладают микросхемы (микроконтроллер и драйвер двигателя). Было решено заменить интегральный драйвер на пару Н-мостов на полевых транзисторах, а ATtiny13 на 5 рублёвые микроконтроллеры, которые мы изучали в этой статье.
Поиск решения и тупиковая ветвь разработки
Поскольку габариты и масса устройства являются одним из важных параметров в этом проекте, я хотел уменьшить размеры платы настолько, насколько это возможно. На первых порах было принято решение использовать микроконтроллер PFC161 в корпусе SOT23-6. Однако получалось, что тогда на управление шаговым двигателем отводилось всего 2 свободных пина (2 пина – питание, 2 пина – вход и выход данных).
И этими двумя пинами необходимо было управлять двумя Н-мостами. Задачка непростая. Вспомнив, что каждый пин микроконтроллера может находиться в трёх состояниях (подтянут к +, подтянут к GND и HZ), была предложена схема следующая схема управления Н-мостом:
Вход key1_input подключается к пину микроконтроллера. Выходы key1_out и key2_out подключаются к Н-мосту. В состоянии по умолчанию key1_input «висит в воздухе», в это время выходы подтянуты к питанию через резисторы R12 и R9 соответственно. Потенциал баз транзисторов VT1 и VT2 одинаков и равен половине напряжения питания за счёт делителя R5 – R6. Номиналы этих резисторов выбраны большими, чтобы ток утечки был минимален. Транзистор VT1 и VT2 закрыты.
Когда на key1_input подаётся сигнал положительной полярности (подтягивается к +), потенциал эмиттера VT1 становится выше потенциала базы, что не позволят ему открытья. В то же время, потенциал эмиттера VT2 становится выше потенциала базы и так как это PNP транзистор, он открывается. Ток течёт по пути: key1_input – R3-эмиттер VT2 – коллектор VT2 – база транзистора VT3. В результате VT3 открывается и на выходе key1_out2 появляется низкий логический уровень.
Когда key1_input подтянут к GND, открывается транзистор VT1, а VT2 закрывается, в результате чего key1_output оказывается прижат к земле.
Таким образом, используя
три состояния пина микроконтроллера удаётся создать два сигнала для управления
Н-мостом. Принципиальная схема моста выглядит следующим образом:
В качестве микроконтроллера в отладочной плате использовался ATtiny13A-MMU:
Далее была разработана топология отладочной платы:
И изготовлен прототип, на котором можно отлаживать алгоритм управления шаговым двигателем:
При нажатии на одну кнопку шаговый двигатель должен поворачиваться на заданное количество шагов влево. При нажатии на другую кнопку – то же количество шагов вправо. Как ни странно такое решение работает и весьма стабильно.
Идея мне настолько понравилась, что я решил произвести дальнейшее усовершенствование схемы, сократив количество транзисторов. При использовании полевых транзисторов можно увеличить номиналы резисторов делителя напряжения, что ещё больше должно сократить ток утечки при работе устройства. Предложена обновлённая схема коммутатора и Н-моста:
Моделирование в пакете Multisim показало, что схема работает. Но до практической реализации не дошло. В конце концов мне показалось, что получается не очень эффективно... много транзисторов, много резисторов, много возни... Лучше уж использовать микроконтроллер с 8 пинами. Такая вот тупиковая ветвь разработки. Мне хотелось поделиться этими результатами и схемотехническими решениями, поскольку понимаю, что более не удастся их применить на практике…
Эксперименты с отладочной платой на базе PFC161-U08B
Микроконтроллер PFC161 в корпусе SOIC8 позволяет использовать по 2 пина для управления каждым Н-мостом. Для отладки прошивки и проверки схемотехнических решений была разработана отладочная плата на базе микроконтроллера PFC161. Подробнее про эту плату я рассказывал в публикации о микроконтроллерах Padauk. Поскольку в документации на данную микросхему был указан режим внутрисхемного программирования, я решил использовать именно его.
Под тем постом товарищ @N-Cube справедливо указал мне на недочёты в схемотехнике: отсутствие защитных диодов транзисторов, а также конденсаторов по питанию моста. Я решил не верить на слово, а посмотреть, что там твориться в линии питания при работе схемы.
Эксперимент: управление шаговым двигателем в полношаговом режиме. Сопротивление обмотки двигателя 30Ом. Сопротивление последовательно включенного резистора 10Ом. Напряжение питания моста 5В.
На отладочной плате в двух местах были сняты осциллограммы напряжений. Точка 1 – непосредственно на пине 3 микроконтроллера (VCC). Точка 2 – питание нижнего по плате Н-моста:
Как видно, напряжение питание МК колеблется с амплитудой 168 мВ. Среднее значение тока, потребляемого двигателем, составляет 230мА. Обратим внимание, на то, что количество пиков в два раза меньше, чем количество шагов, которое совершает двигатель.
Во второй серии экспериментов рядом с пинами питания микроконтроллера был установлен электролитический конденсатор 10 мкФ х 50 В.
Амплитуда броска напряжения на пинах микроконтроллера снизилась до 100 мВ, что уже неплохо.
Далее пробуем установить диоды (диоды Шоттки BAT42), гасящие броски ЭДС при переключении направления тока в обмотках двигателя.
Всё те же 100 мВ. Похоже внутренние диоды самих транзисторов самостоятельно справлялись с возложенными на них задачами. Хотя, возможно, что нужны более быстродействующие диоды.
Новая печатная плата
Прислушавшись к советам опытных товарищей, подкрепив их экспериментальными данными, было принято решение дополнить схему защитными диодами и парой танталовых конденсаторов ёмкостью 10мкФ. Была разработана новая схемотехника пайетки.
Предполагалось, что микроконтроллер будет программироваться перед монтажом, поэтому никаких разъёмов для подключения к программатору не предусматривалось. К тому же, как я успел заметить, программатор Padauk довольно капризный, в общем случае он не может «увидеть» микросхему, если к её выводам подключена хоть какая-то нагрузка. Печатную плату удалось уместить в габариты защитного купола пайетки, сохранив стек слоёв (два слоя, толщина платы 0,5мм):
Крупные полигоны по краям платы – линии питания. Они передают питание на следующие пайетки, поэтому минимальная ширина полигона составляет 2мм. Печатная плата заказывалась в «Резоните» по цене 3300 рублей за 12 плат с панелизацией (цена на август 2022). После сборки получаем вот такую красоту:
Печатная плата разрабатывалась под микроконтроллер PFC161 с перезаписываемой памятью. После отладки прошивки, он будет заменён на PMS152.
Технико-экономический расчёт
Произведено сравнения себестоимости комплектующих необходимых для изготовления одной пайетки. Все цены указаны для магазина LCSC (в долларах).
Первая таблица – текущая версия на базе микроконтроллера ATtiny13A и драйвера шагового двигателя STSPIN220.
Компоненты |
Количество |
Цена (от 1 шт.) |
Стоимость (от 1 шт.) |
Цена (от 100шт.) |
Стоимость (от 100шт.) |
ATtiny13-MMU |
1 |
1,77 |
1,77 |
1,33 |
1,33 |
STSPIN220 |
1 |
2,08 |
2,08 |
1,54 |
1,54 |
Шаговый двигатель |
1 |
0,27 |
0,27 |
0,27 |
0,27 |
Резистор 47кОм SMD0402 |
3 |
0,0037 |
0,0111 |
0,0037 |
0,0111 |
Резистор 220Ом SMD0402 |
2 |
0,0006 |
0,0012 |
0,0006 |
0,0012 |
Резистор 1кОм SMD0402 |
2 |
0,0007 |
0,0014 |
0,0007 |
0,0014 |
Резистор 100кОм SMD0402 |
1 |
0,0006 |
0,0006 |
0,0006 |
0,0006 |
Резистор 0,33Ом SMD0805 |
2 |
0,21 |
0,42 |
0,08 |
0,16 |
Конденсатор керамический 0,1мкФ 25В SMD0402 |
2 |
0,0012 |
0,0024 |
0,0012 |
0,0024 |
Конденсатор керамический 10мкФ 10В SMD0402 |
1 |
0,03 |
0,03 |
0,03 |
0,03 |
Конденсатор керамический 22нФ 25В SMD0402 |
1 |
0,0038 |
0,0038 |
0,0038 |
0,0038 |
Курс доллара (05.08.2022) |
60,26 |
Итого ($): |
4,53 |
Итого ($): |
3,29 |
Итого (Руб): |
273,45 |
Итого (Руб): |
198,73 |
Вторая таблица – новая версия электронного бока управления на базе микроконтроллера PMS152 с драйвером шагового двигателя на базе транзисторных Н-мостов.
Компоненты |
Количество |
Цена (от 1 шт.) |
Стоимость (от 1 шт.) |
Цена (от 100шт.) |
Стоимость (от 100шт.) |
PMS152-SO8 |
1 |
0,08 |
0,08 |
0,06 |
0,06 |
Шаговый двигатель |
1 |
0,27 |
0,27 |
0,27 |
0,27 |
Транзистор N-MOSFET 2N7002 |
8 |
0,017 |
0,136 |
0,017 |
0,136 |
Транзистор P-MOSFET BSS84 |
4 |
0,018 |
0,072 |
0,018 |
0,072 |
Диод Шоттки |
8 |
0,04 |
0,32 |
0,04 |
0,32 |
Резистор 47кОм SMD0402 |
8 |
0,0037 |
0,0296 |
0,0037 |
0,0296 |
Резистор 220Ом SMD0402 |
2 |
0,0006 |
0,0012 |
0,0006 |
0,0012 |
Конденсатор керамический 0,1мкФ 25В SMD0402 |
2 |
0,0012 |
0,0024 |
0,0012 |
0,0024 |
Конденсатор керамический 10мкФ 10В SMD0402 |
2 |
0,03 |
0,06 |
0,03 |
0,06 |
Курс доллара (05.08.2022) |
60,26 |
Итого ($): |
0,91 |
Итого ($): |
0,89 |
Итого (Руб): |
55,35 |
Итого (Руб): |
54,14 |
Как видно из таблиц, удалось добиться снижения себестоимости комплектующих почти в 4 раза! Хороший результат, уже годится для серии.
Конструкция пайетки
В целом, конструкция не претерпела никаких серьёзных изменений. Но рама теперь также печатается из PLA пластика. Это значительно быстрее, чем фрезеровка, вес детали получается меньше, чем при использовании стеклотекстолита или POM пластика. Жёсткость конструкции обеспечивается за счёт склеивания рамы и печатной платы.
А вот так это выглядит в собранном виде:
Решено было отказаться от использования разъёмных винтовых соединений при креплении заднего защитного купола. Теперь он приклеивается к раме. Это нисколько не портит эстетику, зато экономит время на закручивание этих винтов, снижает массу пайетки и её себестоимость. Из особенностей можно отметить, что теперь пайетка собирается отдельно и затем устанавливается в отверстие в креплении на ткани. Это упрощает сборку и настройку механики пайетки.
Прошивка для пайеток (PFC161-S08B)
Опыт эксплуатации показал, что идея внутрисхемного программирования микроконтроллера с малым количеством ножек не очень хорошая. Было решено сделать по другому: установить микросхему на переходник SOIC-DIP, подключать его в разъём на отладочной плате, а при необходимости извлекать и подключать в разъём на программаторе. Удобно, когда единственный способ отладки - перепрошивка контроллера... А когда нужно прошивать серию контроллеров, то их легко менять и проверять исправность работы.
Предполагалось управлять мотором в полношаговом режиме. То есть под напряжением различной полярности находятся одновременно две обмотки. Необходимо было добавить в алгоритм управления deadtime задержки, чтобы транзисторы в полумостах успевали закрываться и только потом открываться. В табличном виде последовательность логических состояний на выходах микроконтроллера выглядит следующим образом:
Я подумал, что хорошей идеей будет упаковать всё это в массив и поочерёдно выставлять в регистр данных порта микроконтроллера. Задержки между переходами от одного состояния пинов к другому будут чередоваться между DEADTIME_DELAY и PHASE_DELAY. Указатель постоянно хранит текущий шаг цикла, на котором остановился контроллер, поэтому никаких «запинок» быть не должно. Такой алгоритм управления позволяет более точно производить позиционирование положения ротора двигателя. В предыдущем варианте можно было задавать дискретность поворота равную одному циклу (одной таблице), то есть последовательности из 8 шагов (включая deadtime комбинации).
Массив перебирается в прерывании по таймеру. Использовался 8 битный таймер. Предел счёта задаётся в регистре TM2B. В прерывании текущая фаза выставляется в регистр данных порта A, происходит инкремент указателей, установка флагов и обновление регистра TM2B новым значением. Таким образом, управление двигателем становится независимым от обработки интерфейсных команд, которая производится в основном цикле и реализована в виде конечного автомата. В случае, когда не происходит обмен данными и не производится смена цвета, контроллер переводится в режим пониженного энергопотребления power-down. В этом режиме электронный блок управления пайеткой потребляет 1мкА.
Для определения временных интервалов при приёме команды используется 16 битный таймер. В микроконтроллерах PADAUK он сделан максимально простым. И не может выполнять никаких операций, кроме прямого счёта и вызова прерываний. Для того чтобы произвести сброс таймера при помощи команды STT15 value в его счётный регистр загружается значение 0. Чтобы проверить сколько насчитал таймер, из того же регистра извлекается значение командой LDT16 value.
Наличие 8 битного и 16 битного таймера предусмотрена и в контроллере PMS152 с OTP памятью, так что этот код может быть в дальнейшем партирован на него без необходимости вносить модификации.
Особенности спящего режима микроконтроллеров Padauk
Для перехода в режим пониженного энергопотребления есть специальная процессорная команда stopsys. После выполнения этой команды происходит остановка всех генераторов микроконтроллера, отключается память программ и немногочисленная периферия. Выйти из этого режима можно только при смене логического уровня на одном из пинов. И вот тут есть особенность.
Один и тот же микроконтроллер может выпускаться в различных корпусах с различным количеством выводов. Это не означает что как-то изменяется топология самого кристалла, просто при размещении этого кристалла в корпусе часть выводов не разваривается.
Для выхода из спящего режима (power-down) используются только внешние выводы микроконтроллера. Какие именно: определяется регистрами PADIER и PBDIER. Если в соответствующем бите стоит «1», то вывод используется для выхода их спящего режима. Причём, по умолчанию (после сброса контроллера) все биты устанавливаются в «1», то есть микроконтроллер просыпается от каждого шороха на пинах. Причём буквально!
У микроконтроллера PFC161 в корпусе SOIC-8 нет вывода PB7, но в регистре PBDIER есть соответствующий бит, разрешающий использовать его как источник события для пробуждения. Если PADIER = 0x00, а PBDIER = 0x80, то контроллер будет ловить наводки этим пином, в результате чего будет постоянно выходить из спящего режима.
Я долго не мог понять в чём дело. Контроллер вроде проваливался в power-down после команды stopsys, но амперметр показывал ток в районе 70мкА, что никак не соответствовало заявленным в даташите 1мкА. Оказалось, что я не верно настроил эти самые PxDIER регистры портов.
И ещё небольшая особенность: если сброшен бит в PxDIER, то даже если соответствующий пин настроен на вход, то с него не получается прочитать значение (в регистре данных постоянно 0). Не знаю в чём тут дело… просто есть такое наблюдение.
Ещё одно замечание по поводу режима пониженного энергопотребления. Чтобы выйти из этого режима, микроконтроллеру требуется некоторое время. При этом, пятый бит регистра MISC устанавливает время пробуждения микроконтроллера. По умолчанию оно равно около 3000 тактов внутреннего низкочастотного генератора (ILRC). Но есть возможность выбрать и режим, в котором пробуждение занимает всего 45 тактов. Чем отличаются два режима в даташите не сказано. Возможно, это как-то связано с временем выхода генератора на стабильную частоту при различных напряжениях питания. В целом, никакой нестабильности при быстром выходе из power-down режима не наблюдалось.
Частота ILRC равна 64кГц. 45 тактов – это около 700мкС. Не так уж много, но и не так уж мало. Был протестирован выход из спящего режима по восходящему фронту на линии данных (синий график). При выходе из спящего режима на пине PA6 устанавливается высокий уровень (жёлтый график). Как только на линии данных низкий логический уровень микроконтроллер снова переходит в спящий режим. Результаты экспериментов показали 640мкС. Что вполне соответствует расчётным значениям.
Центральный контроллер на базе K1986BE92QI
Центральный контроллер выполняет функции обмена данными между программным обеспечением определяющим поведение матрицы (софт верхнего уровня) и самой матрицей.
Функции центрального контроллера:
- принять от софта верхнего уровня требуемое состояния матрицы пайеток и подтвердить успешное выполнение команды;
- перевести матрицу в указанное состояние как можно быстрее;
- не допускать потребления матрицей чрезмерного тока путём контроля количества одновременно переключаемых пайеток.
Последний пункт реализуется с помощью алгоритма, который будет рассмотрен ниже.
Поскольку имелось желание и самое главное – возможность, в качестве вычислительного центра использовался микроконтроллер фирмы МИЛАНДР K1986BE92QI. Прошивка писалась в среде Keil uVision5. Отладка через китайский STlink v2.
Была разработана плата центрального контроллера, обеспечивающая перечисленный функционал. На плате размещается микроконтроллер, его обвязка, преобразователь USB-UART на CH340, датчик тока ACS712, EEPROM AT25320B, индикаторные светодиоды, кнопка управления, OLED дисплей на базе контроллера SD1306, разъём USB-C, разъём IDC6 для подключения матрицы. Для программирования микроконтроллера выведен разъём PLS4 под SWD программатор.
После подключения к USB, контроллер в течение 5 секунд ожидает подключение к софту верхнего уровня (экран загрузки на фото). Если этого не происходит, то включается демо-режим в котором контроллер передаёт команды на поочерёдное переключение пайеток в матрице с задержкой 200мС. Количество пайеток в матрице в этом случае берётся из памяти, как максимальный номер пайетки переключенной в предыдущей сессии.
Датчик тока ACS712 так и не заработал… что я только с ним не делал. Его я выпаивал из старенького китайского модуля с неизвестной историей. Ценник на новые микросхемы меня не порадовал, поэтому подумал, что обойдусь пока без него.
Также вариант контроллера был разработан на базе микроконтроллера ATmega328P. Это на случай, если использовать "Миландры" в дальнейшей работе не получится. Все схемы, платы и прошивки находятся в репозитории (ссылка в конце статьи).
Алгоритм переключения пайеток в матрице
Был оптимизирован протокол передачи команды пайеткам. Осциллограмма сигнала переключения первой пайетки в матрице на выходе центрального контроллера:
Для того чтобы не допустить потребление матрицей пайеток чрезмерного тока реализован алгоритм последовательного переключения пайеток. При этом, смена цвета матрицы происходит «волной». Для этого вводится задержка между переключениями. Фактически одновременно отдаётся команда на переключение только одной пайетки.
Предположительно это должно работать так:
А вот что получилось при испытаниях реальной матрицы пайеток (в ходе эксперимента использовалась матрица пайеток из предыдущей статьи, поэтому время переключения и передачи сигнала отличаются от представленных выше).
Зелёный график – информационный сигнал на входе матрицы пайеток. Жёлтый – напряжение на шунте (сопротивление шунта 0,8Ом 2%). Розовый – усреднение напряжения шунта по 20 точкам. Величина задержки между переключениями пайеток установлена равной 20мс.
Для начала посмотрим как переключается одна пайетка в матрице. Видно, что пиковый ток потребления равен 456мА. Время переключения 110мС.
Теперь попробуем смоделировать переключение нескольких пайеток.
Форма графика величины напряжения на шунте (тока потребления матрицы) очень напоминает теоретический. Даже характерные ступеньки проявляются. Итоговое время переключение матрицы составляет 244мс.
Можно заметить, что задержка между переключениями пайеток далека от 20мС, которые были заявлены в условиях эксперимента. Однако, если посмотреть на информационный сигнал, то промежутки между кадрами строго одинаковы и составляют 20мС. Дело в том, что на передачу одного кадра тратится время, сравнимое с временем установленной задержки. Это недостаток данного протокола, связанный тем, что микроконтроллер пайеток не может мгновенно выйти из спящего режима. Требуется время, равное почти 1мС. И это необходимо учитывать.
Теперь установим время задержки 100мС и посмотрим, как переключается матрица.
Матрица из 5 пайеток переключается за 614мс, при этом, пиковый ток потребления не превышает пикового тока потребления при переключении одной пайетки.
Программное обеспечение верхнего уровня (Processing)
В принципе программное обеспечение не претерпело серьёзных изменений, кроме того, что стало немного удобнее и теперь можно создавать матрицы бОльших размеров.
Также программа позволяет оценить пиковый ток потребления матрицы при различных характеристиках пайеток и времени задержки между переключениями. В исходных параметрах для расчётов можно указать ток спящего режима пайеток (sleep mode), ток, потребляемый микроконтроллером при трансляции информационного сигнала (work mode), пиковый тока потребления пайетки при смене цвета (color change mode) и время переключения пайетки (change color time). Эксперименты показали, что расчётные значения близки к действительности. Это функция позволяет подобрать режимы переключения для больших матриц. При подключении к контроллеру матрицы из его памяти читается время задержки (delay).
Собираем всё вместе
Слева предыдущий образец матрицы с контроллером на базе ATmega328P, справа новая матрица с контроллером K1986BE92QI.
Было решено поэкспериментировать с зазором между пайетками. Он был увеличен с 1 до 3мм. Как и ожидалось, это положительно сказалось на гибкости матрицы.
Планы разработки
На данном этапе у нас уже имеется:
пайетки с адекватной себестоимостью из доступных комплектующих
отработанная технология сборки отдельных пайеток
технология изготовления матрицы путём FDM печати на сетчатой ткани
прототип платья из напечатанных пайеток
Над чем предстоит поработать:
контроллер для управления матрицей с автономным питанием
доработка программного обеспечения для управления матрицей
В целом, можно закупаться комплектующими и переходить к изготовлению платья!
Ссылка на репозиторий с исходниками прошивок и схемами: https://github.com/ArtemMechanik/SmartSequins/tree/main/Mk.9
Комментарии (41)
N-Cube
02.01.2023 09:22+15Но зачем собирать из рассыпухи двойной H-bridge, когда готовый чип типа DRV8833 стоит дешевле вашей рассыпухи (центов 30 за штуку на али первый же лот)? И это еще мощный чип, можно поискать послабее и подешевле.
N-Cube
02.01.2023 09:56+4Вот даже нашел - чип DRV8833 отдельно стоит 10 центов. Причем питающее напряжение поддерживается до 10.8 вольта - так что в данном случае можно обойтись вообще без обвязки, достаточно лишь ограничивать программно скорость перемещения мотора (обеспечить плавное ускорение).
Elmot
02.01.2023 12:39+1Что-то мне подсказывает, что это подделка. На сайте TI цена ок 80 центов в партии 1000 шт
tzlom
02.01.2023 12:44+1На алике можно найти оригиналы дешевле чем у производителя - заводы избавляются от остатков огромных партий
N-Cube
02.01.2023 17:33Не обязательно подделка, но даже у TI доступна серия попроще DRV8832 от 70 центов (и пара долларов от одной штуки). Даже штучно если брать у TI и то получается гораздо дешевле в плане комплектующих, требуемой платы и монтажа.
Dark_Purple
02.01.2023 12:43+4Мост тоже нафик не нужон тем более что их два требуется для шагового мотора, готовый драйвер типа LV8481CS-TE-L-H решит кучу проблем. Да и мотор огромен, что-то такое надо, чтобы всё на одной тонкой плате замутить:
https://www.youtube.com/watch?v=TKG3wZza3Bo
Но ребята молодцы не здаются. ????????????????????????Dark_Purple
02.01.2023 13:45+1И вообще сюда просится кастомная электронная «бумага» или, что дешевле, монохромный ЖК (МЭЛТ например может сделать).
rPman
02.01.2023 15:29Подскажите о технологии производства кастомной электронной бумаги? какой вы ее видите?
У меня были идеи развить простую магнитную рисовалку:
— серия ячеек с опилками из железа и полупрозрачной стороной
— по периметру каждой 'нарисованы' кольцом проводники (то же самое на непрозрачном дне) — это электромагниты.
в результате пуская ток по кольцам на крышке железная крошка примагничивается к белой полупрозрачной пленке и делает ее серой
С точки зрения реализации это самое высокотехнологичное в данной конструкции — дешево реализовать токопроводящие контуры (две прозрачные пленки, на которые нанесена токопроводящий рисунок, в местах пересечений где контакт не нужен, дополнительно наносится изолирующей краской, все это склеивается, контакт обеспечивается механическим прижимом либо той же токопроводящей краской.
У данной технологии нет достоинства eink, так как для удержания пиксела нужно тратить энергию. Но можно поэкспериментировать с клеевой поверхностью внутри экрана и на дне, чтобы опилки прилипали к нему.
В оригинальной eink используется статика, но в больших размерах это сложно реализовать, как минимум будут высокие напряжения.
N-Cube
02.01.2023 15:07Два моста в одном корпусе вполне подходящее решение для шагового двигателя, тем более, когда микроконтроллер позволяет программно микростеппинг реализовать. А мост здесь не нужен, потому что шаговый двигатель на ток в пол-ампера и точностью поворота в доли градуса - это, мягко говоря, оверхед для поворота кусочков бумаги на половину или четверть оборота. Максимум - это электромагнит с двумя катушками (двумя позициями). Да хоть бы и обычный минидвигатель, достаточно физически ограничить угол поворота. Тогда сразу и столько ног микроконтроллера не нужно и ток нужен на пару порядков меньше…
MechanikArtem Автор
04.01.2023 19:46Спасибо за наводку, изучим микросхему!
Мотор на печатной плате мы рассматривали, но судя по экспериментам товарища с указанного канала, для того чтобы такой моторчик был более-менее эффективным, нужно делать катушечки на многослойной плате. А это влечёт за собой увеличение цены.
MechanikArtem Автор
04.01.2023 20:19Я попытался перестраховаться как можно сильнее и по минимому использовать интегральные микросхемы. Уж парочку транзисторов, полагаю, всегда можно будет купить :)
AKudinov
02.01.2023 12:34Автор, а не искали ли вы шаговый двигатель меньшей высоты, но большего диаметра? Тогда бы получилось всю конструкцию сделать более плоской.
SGordon123
02.01.2023 14:51если плоского хочется, надо шестеренки и набок, как я понимаю?
iliasam
02.01.2023 15:17Возможно, можно обойтись без шестеренок - просто обойтись трением.
Взять маленький мотор из телефона, насадить на его вал маленькое колесо из резины, которое прижать к краю цветного диска. Ось мотора должна быть перпендикулярна оси цветного диска.
Еще такие штуки плоскими могут быть: https://ru.wikipedia.org/wiki/Ультразвуковой_двигательMechanikArtem Автор
04.01.2023 19:53Пьезодвигатели - классная идея! Мы тоже с ними экспериментировали, но там проблема: нужно прикладывать высокое напряжение к пьезоактюаторам. Чтобы формировать высокое напряжение прямо на плате пайетки нужно много деталей, а транслировать высокое напряжение по проводам питания пайетки - не самая хорошая идея. Так что про пьезодвигатели пришлось забыть...
Elmot
02.01.2023 15:18+1Вообще можо попробовать сделать мотор прямо на плате.
https://hackaday.com/2020/12/11/microstepping-a-pcb-motor/
MechanikArtem Автор
04.01.2023 19:49Да, мы искали и нашли. Есть моторчики в двара шире и в два раза тоньше (4,5мм). Но они все продаются с уже насаженными на вал червячными передачами. Причём снять их довольно трудно. Пришлось отказаться от этой модели.
Elmot
02.01.2023 12:54+2Что-то у меня есть пдозрение, что у вас при перелючении мостов могут сквозные токи возникать. Вряд ли они такие, чтобы что-то сжечь, но на энергопотреблении наверняка сказывается.
Как выше посоветовали - возьмите интегральный драйвер мотора вместо транзисторов. Получите:
- снижение цены
- экономичность за счет контроля сквозных токов.
- снижение веса - вы же платье делаете, а не кольчугу
- проще пайка плат
- если драйвер хороший, то будет защита от КЗ в мотореMechanikArtem Автор
04.01.2023 19:55Для предотвращения сквозных токов, программно реализованы задержки при смене полярности напряжения обмотки.
rPman
02.01.2023 15:46+2поразительное упорство, восхищаюсь вами
какой получается вес итогового платья?
p.s. очень хочется вставить свое фи — обязательно ли плату размещать прямо в ячейке? питание все равно как то подавать надо, значит электрическое соединение между ячейками есть, а там какая разница, 2 провода или 3? вынести плату наружу, сделать ее общей для всего платья, минимизировать схему на местах (что то мне говорит что даже драйвера особого не нужно)…MechanikArtem Автор
04.01.2023 19:58Итоговый вес платья должен получиться 4-5кг.
Не совсем понял вашу мысль... между пайетками и так тянется три провода (питание и данные).Если делать общую плату, то как управлять работой каждой пайетки?
quaer
02.01.2023 17:11А схема сопряжения с мостом надежно работает?
Такое впечатление, что из-за емкостей тразисторов возможно перекрытие при переключении.
Elmot
02.01.2023 18:12Скорее всего так и есть, но поскольку тут не контроллер мощного мотора, провода тонкие (т.е. с заметным сопротивлением), то не очень критично.
DEM_dwg
03.01.2023 09:39+1Привет!
Не очень понимаю, а зачем шаговые двигатели и такая сложная система управления, может проще было сделать pcb motor(https://youtu.be/_-YDuCqEwuw).
Там тоже управление нужно конечно но можно обойтись малой кровью.
По крайней мере толщина вашего изделия сильно уменьшится.
bezdolgoff
03.01.2023 13:23Под каким-то вашим постом писал про двигатели от кварцевых часов. Они тонкие, горизонтальные и экономичные. Управление импульсами.
Чтобы крутить в 2 стороны нужно 2 катушки, как у двигателя от спидометра в авто.
bezdolgoff
03.01.2023 13:28+1Примерно так.
bezdolgoff
03.01.2023 15:39Но я бы подумал над механическим устройством смены направления движения.
Типа первый оборот моторчика по часовой крутит диск, а второй против.
Если уж решили делать механическую пайетку, то и механику по максимуму использовать.
MechanikArtem Автор
04.01.2023 20:06Да, помню, вы писали. К сожалению, не удалось рассмотреть возможность использования таких актуаторов. Пока что отложил идею до лучших времён...
RV3EFE
04.01.2023 12:30+1От меня плюс статье! Очень просто и местами элегантно. Про управление мостом, пока читал, как раз подумал в начале о более простой схеме, а ниже увидел её, класс!
Люблю подобные решения с механикой, за это отдельный респект автору.
zaboy
04.01.2023 20:14Заказывал себе в Китае беспроводные ценники на электронных чернилах. Внутри радиомодуль 2.4 ГГц, прямоугольный экран 2,2 дюйма, элемент питания. Стоимость 4$. Вариант с квадратным экраном 1,5 дюйма 3,5$. Можно программировать самому. Есть SDK, есть возможность организовать их в mesh-сеть. И никаких проводов.
SGordon123
Подскажите, а есть реальная ( или теоретическая) возможность сейчас все это упихать в одну невзрачную кляксу на плате? Ну т.е. заказать свой чип у нас? Сколько это может стоить, 100 миллионов?
cujos
Есть, на Микроне можно вместе с драйвером сделать на одно чипе. Стоить будет 4-6 млн за разработку+ 10-20 тыс за чип. Хотя если захотите сделать партию в 1000000 чипов, можно сделать и за ~100 миллионов.
MechanikArtem Автор
Теоретически конечно есть такая возможность. Я начинал проектировать функционал будущей микросхемы для пайеток на ПЛИС (чисто из любопытства). Но потом забросил...
Порядок цен будет очень высокий... Так что никакой целесообразности нету...