Не так давно познакомился в Интернете с интересной разработкой от Digistump. Инженерам удалось создать, пожалуй, самую маленькую плату Arduino-совместимого контроллера на базе микроконтроллера Attiny85 – Digispark.

Digispark

Учитывая довольно скромные технические характеристики Attiny85, или как его иногда называют – «Тинька», (8-битный процессор от AVR – до 20 МГц, 8 Кб флеш памяти для программ, по 512 байт ROM и RAM, 6 цифровых PIN (3 PWM) и 4 аналоговых, I2C) особо сложных проектов не сделаешь, но минимальные размеры, мизерное энергопотребление и дешевизна, полностью компенсируют все имеющиеся недостатки.

Возможность использовать при прошивке обычный USB и программное обеспечение от Arduino появилась благодаря особому Bootloader-у. Оригинальный загрузчик под названием Micronucleus занимает 2 Кб из 8-ми, плюс — два цифровых PIN-а «уходят» под USB и … и вперед.


Мне в руки попала плата с обычным разъемом USB типа А, как у флешки, но есть вариант платы и под микро-USB, как кому нравится, других различий у этих плат нет.

Digispark Digispark

Все действительно работает на IDE старших версий начиная с Arduino IDE 1.6.5, как это и утверждают разработчики.

Замечу от себя, что установить драйверы для Digispark на Windows 10 мне так и не удалось. Пришлось достать старый ноутбук с XP, поставить Arduino IDE 1.6.13 и сделать все как советуют разработчики – заработало без проблем. Думаю, что и в Windows 7 будет аналогичный результат. О 8-й «Винде» имеется масса проблемных постов на форумах о Digispark, хотя лично сам не пробовал.

Порядок прошивки платы несколько отличается от привычной последовательности. Сначала нужно нажать кнопку «Отправить», подождать пока пройдет компиляция и снизу, в «черном окне», не появится приглашение на подключение платы для прошивки:

Running Digispark Uploader…
Plug in device now… (will timeout in 60 seconds)

Digispark

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

Starting the user app … running: 100% complete
>> Micronucleus done. Thank you!

Digispark

Теперь о плате. Около контактов имеется достаточно подробная информация что-где, но реальность несколько отрезвляет. Контактов для подключения внешних устройств 6, как собственно и у исходного Attiny 85.

Распиновка платы следующая:

Digispark

Но, следует помнить, что Р5 фактически недоступен, там оказался RESET Attiny 85. Логический «0» будет «железно» ресетить ваш контроллер. Как аналоговый вход (А0) Р5 будет работать, но до момента достижения уровня «0» (примерно 1-1,2 В).Р4 и Р3 заняты USB, и если к ним что-то подключать, то на время прошивки пины нужно освобождать. Как цифровые порты они работать будут. По личному опыту скажу, что как аналоговые (А2 и А3) они к использованию малопригодны, процесс идет как бы рывками. ШИМ на Р4 тоже работает криво. Таким образом, у неискушенного потребителя есть только три полноценно функционирующих вывода – Р0, Р1 и Р2. На Р1 «сидит» светодиод (как на 13-м выводе у обычной Ардуины).

UART на «борту» Digispark нет, посему любимый класс Serial ушел в небытие, и всю отладку придется продумывать заранее, без использования привычного «Монитора порта». При включении питания контроллер ждет загрузки 5 секунд, после чего запускает программу пользователя. Поначалу будет удобно, одновременно с запуском своей программы, зажигать светодиод на Р1. Это даст наглядную возможность убедится, что программа «пошла» и чудеса уже начались.

В плату сразу прошит стандартный Blink, он есть в примерах (Digispark_Examples/Start), и на первом этапе освоения можно «поиграться» с частотой мигания, выбирая в тексте строки для «Model A or Pro». На всякий случай приведу этот пример:

Далее нужно взяться за что-нибудь посложнее. Ну, хотя бы, покрутить моторчик ШИМ-мом через транзистор. В качестве транзистора возьмем стренький КТ805БМ (или его аналог). Схема подключения следующая:

Digispark

Скетч для Digispark

Digispark

Все работает «как часы». Следующие задачи ставим и усложняем уже самостоятельно.

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

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

шестнадцать − 8 =