Дорогие друзья! Обращаем ваше внимание, на то, что наш интернет-магазин переехал в новый офис,
расположенный по адресу Васильковская 30. Пожалуйста ознакомьтесь с картой.
В связи с переездом, 24.07 интернет магазин "Ардуино в Украине" будет работать с 14:00. Благодарим за понимание!
(098) 067-12-26 Киевстар (098) 067-12-26   Киевстар
(066) 142-24-48 Vodafone (066) 142-24-48   Vodafone
(098) 067-12-26 Lifecell (063) 642-36-59   Lifecell

График работы магазина:

Пн-Пт: 10.00 - 19.00

Сб-Вс: выходные

г. Киев, ул. Васильковская, 30
ст.м. "Васильковская"

Каталог

Блочное шифрование в IoT

Исторически сложилось, что для IoT (Internet of Things) на базе ZigBee сетей в первую очередь стояла цель минимизировать энергопотребление, потому вопрос безопасности остался без внимания. В данной статье предлагается пример безопасной IoT системы с

Комплекс домашней автоматизации (Часть 2)

Следующим этапом разработки комплекса домашней автоматизации стал проект уличной метеостанции.

Генератор радиошума в диапазоне 2.4 ГГц

Генераторы шума обычно используются для научных экспериментов и для тестирования приемо-передающего или антенного оборудования, но еще с помощью них, можно улучшить уже существующую беспроводную инфраструктуру.

Комплекс домашней автоматизации (Часть 1)

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

Роутер на Raspberry Pi 3 с дисплеем

В проекте используются Raspberry Pi 3 и OLED (SSD1306 128x64 I2C или SPI). Для корпуса используется акриловый «сэндвич», так как так наглядней, и обычный 5-вольтовый источник питания силой тока около 0,5 А (этого вполне достаточно: устройство потребляет
Напиши статью и получи скидку!

Знакомство с 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); //чуть-чуть подождем для корректной работы аналогового порта } 

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

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

оплата картами Visa и MasterCard