Мобильная версия Форум Arduino Документация Гарантийные условия 0 0
UA RU
График работы магазина:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 17.00
Вс: выходной
Каталог
Напиши статью и получи скидку!

Знакомство с Digispark

2017-01-05

Все статьи →

А. Чечин

Не так давно познакомился в Интернете с интересной разработкой от Digistump. Инженерам удалось создать, пожалуй, самую маленькую плату Arduino-совместимого контроллера на базе микроконтроллера Attiny85 – 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, как кому нравится, других различий у этих плат нет.

Все действительно работает на IDE старших версий начиная с Arduino IDE 1.6.5, как это и утверждают разработчики. Имеется довольно толковый гайд по настройке IDE и установке драйверов. Специально останавливаться на этой рутине смысла нет. Можно деже скачать уже настроенную IDE под любую операционную систему.

Замечу от себя, что установить драйверы для 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)

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

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

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

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

Но, следует помнить, что Р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". На всякий случай приведу этот пример:

// the setup routine runs once when you press reset:

void setup()

{

// initialize the digital pin as an output. pinMode(1, OUTPUT); //LED on Model A or Pro

}

// the loop routine runs over and over again forever:

void loop()

{ digitalWrite(1, HIGH); delay(1000);

// wait for a second digitalWrite(1, LOW); delay(1000); // wait for a second

}

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

Скетч для Digispark

int val; //для хранения текущего значения из аналогового порта

void setup()

{ pinMode(0, OUTPUT); //настраиваем порты pinMode(1, OUTPUT); digitalWrite(1, HIGH); //зажигаем после начала работы

}

void loop() { val= analogRead(A1); //читаем значение напряжения

val=map(val, 0, 1023, 0, 255); //пересчитываем пределы analogWrite(0, val); //отправляем на базу транзистора скорость вращения delay(2); //чуть-чуть подождем для корректной работы аналогового порта }

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

Всем – удачи в Новом Году!

Ваша оценка статьи:

Отлично
Хорошо
Удовлетворительно
Плохо
Очень плохо

Общая оценка:

Оценка "Знакомство с Digispark"
4 из 5
сделана на основе 15 оценок 15 клиентских отзывов.

Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
alexAndr
22.06.2024 19:18:24
схема хоть и простая,но автор умудрился даже в ней допустить ошибку.как и скетч.всего две строки,а работать не будет.вторая строка цикла void loop не будет выполняться,т.к. в начале строки стоит //может я устарел и компиляторы такое давно исправляют автоматически,но питание на процессор програмно не подтянется никак
Олег
05.01.2022 13:27:44
Дякую
Yuri
20.04.2021 18:18:41
3. Память: в последней версии библиотек Arduino стоит 6012 byte доступных для скетча. Хотя если перепрошить на последнюю версию micronucleus, то реально получим 6522. У них на сайте есть еще более оптимальная прошивка называется aggressive. Получаем еще плюс 600 байт. Т.е. уже кое-что. Ну надо только boards.txt подправить.4. Загрузка, это из минусов, MicroNucleus стартует и ждет загрузки в течении 20-30 сек. соотв. это надо учитывать при проектировании5. Ну а вообще большой плюс, что плата с обвязкой стоит не дороже самого контроллера. А на обвязке например уже есть готовые конденсаторы по питанию что немаловажно. Ну я вообще после экспериментов. Просто перепрошиваю ее без micronucleus. использую специальную клипсу, которая без проблем цепляеться к контроллеру. При желании всегда можно залить MicroNucleus обратно,
Юрий
20.04.2021 18:18:11
Спасибо за статью. Из собственного опыта бы еще добавил.1. Pin 3 не может работать как аналоговый нормально, только потому что по схеме подтянут на 5v резистором 1.5к . Соответственно это надо учитывать в схематике. Можно отвязать, но тогда будут проблемы с работой USB2. Pin 5, это стандартный reset attiny85. При желании можно перепрограммировать, путем установкой соотв. FUSE, и получим дополнительный порт. Только надо учесть, что потом невозможно будет перепрошить обычным способом. Только через высоковольтный программатор. Хотя это звучит только страшно. На самом деле. Это всего лишь подать на Pin 5 12вольт и записать новые FUSE
Ганс
31.12.2020 05:19:35
"установить драйверы для Digispark на Windows 10 мне так и не удалось" - х%рня, всё отлично работает
Програмист
15.12.2019 16:56:53
Все добре но ви забули особинносьть цьої плати , вона може на комп''ютері нажимати кнопки на клавіатурі і ворушити курсор миші. На мою думку більшісьтиь покупають цю плату іменно із цьої способності і маленькому розмері . Думаю буде продовження цієї статьті.
Игорь
18.01.2019 02:01:49
Написано много полезного. Но, для меня, как для пользователя, не имеющего опыт общения с digispark на Attiny 85, важно понимать нагрузочную способность выходов. Т.е. важно понимать, что можно подключать на выход, чтобы правильно составить схему.
Guest
03.01.2019 14:55:38
День добрый. На схеме (рисованной) питание на микроконтроллер не подается.
Guest
03.01.2019 14:24:43
День добрый. На схеме (рисованной) питание на микроконтроллер не подается.
Дмитрий
22.11.2018 09:57:53
Т.е. пятый пин в принципе можно использовать как аналоговый вход, только надо следить, чтобы сигнал меньше 2 вольт не опускался? По схеме он кстати не подтянут внешним резистором, у него внутренняя подтяжка? Нулевой пин как аналоговый вход работает?
Максим
18.10.2018 13:35:18
Класс, спасибо.p.s. вроде бы можно на тиньке отключить внешний reset и получить 1 пин "в подарок")
Михаил
25.07.2018 19:55:42
Весьма полезный и познавательный материал.Огромное спасибо автору.
Wlad
03.05.2018 15:05:54
Очень доступно, и с кодом
-
02.04.2018 12:46:49
-
26.03.2018 20:48:16
спасибо
оплата картами Visa и MasterCard