Arduino за 1$

в 18:06, , рубрики: Песочница, метки: ,

Arduino за 1$ - 1

В небольших «проектах выходного дня» я предпочитаю использовать Arduino. Причин тому две — чрезвычайная легкость программирования и отсутствие необходимости изготовления печатной платы (макетка + МГТФ). Например, понадобилось мне сделать контроллер для светодиодной ленты (питание от аккумулятора, контроль разряда, ШИМ-управление яркостью) — берется китайский клон Arduino Nano, три транзистора, еще немножко рассыпухи, несколько взмахов паяльником, полчаса топтания клавиатуры, и готово. Куда больше времени ушло на подбор корпуса, радиатора, установку разъемов и т.д.

В процессе «брожения» вокруг Arduino мне всегда хотелось минимизировать затраты. Поэтому только Aliexpress. Клон Arduino Nano — 3-4$. Pro mini (без USB) — 2-3$. А можно еще дешевле? Как оказалось, да. Для примитивных проектов (когда не нужно МНОГО входов-выходов), вполне годятся микроконтроллеры ATtiny. Так, например, в ATtiny 85 можно использовать пять выводов. На трех доступен АЦП, на двух — ШИМ. Стоимость этой мелочи — порядка 1$ (при покупке десятка).

Работать с ATtiny проще всего через ISP. Программатор, стало быть, нужен. Тоже китайский, чтобы работал как USBASP. Мне попался девайс, определяющийся как USB HID, что добавило перцу — для превращения этого чуда в USBASP потребовался второй программатор. В качестве ISP-программатора также можно использовать плату Arduino, но мы же не ищем легких путей.

Казалось бы, дальше все просто — подключаем к Arduino IDE описания ATtiny, выбираем программатор, заливаем bootloader, а затем — скетчи. Но не тут-то было.

AVRDude, работающий в составе Arduino, категорически отказывался записывать что-либо в ATtiny. Я перепробовал много всякого, обложил макетную плату сначала осциллографами и бубнами, затем — матами. Озарение через некоторое время пришло. В «голую» ATtiny надо прошить фьюзы, потому что в изначальном состоянии (на дефолтной скорости тактирования при программировании) она просто НЕ ПРОГРАММИРУЕТСЯ.

Волшебная строка AVRDude выглядела так:

avrdude -p t85 -c usbasp -U lfuse:w:0xC2:m -U hfuse:w:0xDF:m -U efuse:w:0xFF:m -B 5

После этого ATtiny 85 стала работать на 8 МГц с тактированием от внутреннего генератора и корректно прошиваться через Arduino IDE.

Что характерно, можно использовать и другие ATtiny, например, у 84-й больше входов-выходов. Но целесообразность уже сомнительна — стоимость их приближается к цене готовой Arduino Pro mini на базе ATmega.

Источник вдохновения (англ.)

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js