Мой персональный блог

Мой персональный блог

Мои разработки и не только…

Китайская машинка на шнурочке. Часть 1

Закончив с подарочной моделью решил немного отдохнуть от склейки и покраски и поработать паяльником. Дома давно валом лежат китайские игрушечные машинки разной степени убитости в ожидании, когда же до них наконец доберется паяльник. В этот раз паяльник добрался до красно джипа-бигфута с моторчиком, который отродясь был с проводным дистанционным управлением и питался батарейками формата АА. Движок там маленький, гадостный и прожорливый. Батареек ему никогда не хватало, да и кормить его полуубитыми никель-кадмиевыми аккумуляторами — значит менять их каждые 5 минут пробега. Решил перейти на литиевые аккумуляторы формата 18650. Благо их у меня от старых ноутбуков целая коробка. Они, конечно, уже не такие буйные как в молодости, но на 2 ампер-часа рассчитывать можно. Из актуальных вопросов к системе управления — ограничение разряда аккумулятора на уровне 3 вольта и контроль тока в цепи. Практика показывает, что при заклинивании этих моторчиков они начинают мнить себя обогревателями и через мои руки прошло несколько машинок с оплавленными пластиковыми держателями двигателей. И это все от полу-дохлых батарей. Рисковать и давать такому двигателю работать от аккумулятора, способного выдать до ампера, а то и больше, я не хочу.

Пока открытым остается вопрос индикации критических ситуаций — в первом наброске предполагается использовать небольшой динамик с матплаты, который будет пищать при нажатии кнопки, если напряжение питания меньше 3 вольт и пищать постоянно до выключения питания или разряда аккумулятора при превышении рабочего тока. Естественно двигатель в обоих случаях будет обесточен.

Для решения всех поставленных задач по прикидкам должно хватить одного контроллера AVR ATTiny13. Ног, правда, впритык — придется извращаться с опросом кнопок, особенно в свете того, что от проводного пульта идет двухпроводная линия. Для целей отладки я взял из запасов вариант в корпусе DIP, но в финальной версии будет стоять вариант в корпусе SOIC (или как он там правильно называется, визуально он от обычного SOIC’а отличается).

ATTiny13

ATTiny13

Заодно расчехлил и проверил свой программатор. Он неплохо себя показал при работе с ATMega48, судя по описанию — он достаточно универсальный. Контроллер определился без проблем, осталось написать собственно то, что туда будет заливаться. С учетом того, что часть схемы занимается преобразованием аналоговых величин в цифровые у меня есть два варианта настройки устройства — либо использовать подстроечные резисторы для принудительного определения коэффициентов передачи аналоговых цепей, чтобы исключить последующие операции с «магическими константами» в коде, либо снять значения коэффициентов передачи эмпирическим путем и потом просто рассчитать эти самые «магические константы». С учетом размеров и стоимости подстроечников — думаю обойдусь без них. В любом случае надо обеспечить некий механизм обратной связи для первоначальной настройки. Из лежащих на поверхности я вижу два варианта — писать циклически в EEPROM, а потом вычитывать значения программатором, либо написать программную эмуляцию UART и читать данные в реальном масштабе времени. Второе осложнено небольшим объемом памяти контроллера — всего килобайт. Но с учетом отсутствия необходимости в двухстороннем обмене — думаю уложится. Есть еще опасения в способности точно выдержать временные параметры — контроллер работает от встроенного генератора. Но для этого есть замечательное решение — логический анализатор. Если делать захват с его помощью, а не с помощью штатного COM-порта — требования к точности задержек снимаются.

Контроллер и программатор

Контроллер и программатор

В любом случае, что касается программного обеспечения — это сейчас приоритетное направление. Ну и плюс формальная разработка техзадания на устройство в целом, с учетом методов его взаимодействия с оператором.

Что касается аппаратуры — в интернете срисована и основательно переделана схема Н-моста, которая управляется двумя сигналами, т.е. «верхние» транзисторы открываются «автоматически» при открывании противоположных «нижних» транзисторов (схему я выложу отдельно, сейчас все еще ранний этап макетирования). Датчик тока — два резистора по 0,47 Ома в истоковой цепи «нижних» транзисторов с усилителем на LM358 (не то, чтоб оно было очень надо, но не помешает, да и усилков у меня целый мешок), напряжение питания меряется через обычный делитель. В обоих случаях используется ставшая у меня стандартной схема с RC-фильтром и диодным ограничителем на выходе. Не знаю на сколько опасно для контроллера входное напряжение на аналоговом входе выше, чем опорное, но экспериментировать не хочется.

Более-менее полным макет. Версия 1.0

Более-менее полным макет. Версия 1.0

Из интересных и пока неопробованных схемных решений — опрос двух кнопок по одному аналоговому входу и использование его же в режиме выходя для управления пищалкой через MOSFET. Кнопки я уже проверил — работают, пищалку еще не пробовал. Общее макетирование делалось на платах breadboard — замечательная, я вам скажу, вещь. Дико экономит время и запчасти. В качестве «мозга» пока используется Arduino — для быстрого прототипирования вещь достаточно удобная, хотя лично я реально ничего кроме самого «ардуиновского» загрузчика в ней не использую. В принципе то же самое можно было сделать на «голом» контроллере с загрузчиком. Но это я теперь такой умный, а когда я ее покупал — я этого еще не знал. Да и опять же — купить у нас ATMega328 в DIP’е малореально, а в TQFP — все равно надо будет придумывать какую-то плату-переходник. Кварц, опять же, куда-то паять надо. В общем купил и купил. И даже сейчас еще думаю — а не прикупить ли еще несколько штук Arduino Nano. Как раз для целей прототипирования.

В общем на данном этапе точно работает Н-мост (хотя и со странностями, но я предполагаю, что странности оттого, что в «верхних» плечах стоят разнотиные транзисторы, на рабочей плате будут одинаковые), точно работает опрос кнопок и съем показаний с датчика тока и напряжения. Осталось проверить работу пищалки и можно будет уже чертить финальную схему. А дальше уже дело за отладкой и программной частью. Надеюсь до конца недели справлюсь — ребенок проектом заинтересовался и даже 10 минут сидел на стуле поверх стула и наблюдал за процессом сборки схемы на макетке. Если проект затянется — интерес его, конечно, поугаснет, но пока пару раз в день наведывается и интересуется судьбой своей «ки» (машинки в переводе с детского).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>