Андрей Смирнов
Время чтения: ~20 мин.
Просмотров: 12

Arduino Attiny85: младшая линейка микроконтроллеров

ATtiny85 — это 8-битный AVR микроконтроллер фирмы Atmel, представитель семейства tiny. Микроконтроллеры данного семейства, как следует из его названия, являются младшими в линейке AVR: у них меньшее число линий ввода-вывода, меньший объем памяти и ограниченный набор периферийных устройств по сравнению с микроконтроллерами mega/XMEGA. Но это окупается их меньшей стоимостью и малыми размерами. Кроме того tiny микроконтроллеры имеют ту же производительность, что и старшие микроконтроллеры семейства mega. Это делает их отличным выбором для создания устройств, не требующих широкого набора периферии, где размер и цена микроконтроллера имеют значение: tinyAVR находят применение в портативных навигаторах, плеерах, сотовых телефонах, спортивных гаджетах, бытовой технике, электронных игрушках, пультах дистанционного управления, интеллектуальных датчиках и во многих других устройствах. Но вернемся к ATtiny85 и ознакомимся с характеристиками данного микроконтроллера.

Характеристики ATtiny85

  • Память программ (FLASH) — 8КБ
  • ОЗУ (SRAM) — 512 байт
  • Энергонезависимая память (EEPROM) — 512 байт
  • Тактовая частота — до 20МГц
  • USI (Universal Serial Interface) — универсальный последовательный интерфейс. Может использоваться в двухпроводном (I2C/TWI) и трехпроводном (SPI) режиме
  • 4-х канальный 10-разрядный АЦП
  • Аналоговый компаратор
  • 2 8-битных таймера-счетчика
  • Сторожевой таймер
  • 8 выводов, 6 из которых могут использоваться как линии ввода-вывода
  • Напряжение питания 2.7 .. 5.5В

Более подробная информация о микроконтроллере ATtiny85 приведена в даташите. Данных параметров вполне достаточно для решения ряда задач. И вы можете найти множество интересных проектов на базе ATtiny85, подтверждающих это (загляните, например, в мою публикацию Игральный кубик на ATtiny85). Также микроконтроллер поддерживает три режима энергосбережения для создания энергоэффективных устройств. Одним словом данный микроконтроллер заслуживает внимания, поэтому сегодня я расскажу о том, как программировать ATtiny85 в привычной нам среде разработки Ардуино.

Программирование ATtiny85 в IDE Arduino

Итак, программировать ATtiny85 будем в IDE Arduino, причем ее версия должна быть не ниже 1.6.4, а для прошивки нам потребуется программатор. В качестве программатора я буду использовать Ардуино Уно. Эта тема подробно описана в статье Arduino as ISP, поэтому сегодня не станем заострять на ней внимание. Можно использовать и другие программаторы, например, рассмотренный недавно USBasp. В этом случае пропустите следующий пункт и переходите к настройке IDE.

Подготовка программатора Arduino as ISP

Запускаем IDE Arduino, открываем скетч ArduinoISP (меню Файл > Примеры > ArduinoISP), подключаем Ардуино к компьютеру и загружаем в нее скетч. На этом плату Ардуино пока можно отложить, займемся настройкой IDE.

Добавление ATtiny85 в список плат IDE Arduino

В среде разработки Ардуино отсутствуют компоненты, необходимые для работы с микроконтроллерами tiny, поэтому сейчас нужно добавить их в IDE. Для этого скопируйте в буфер обмена следующую строку:https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json Теперь в IDE открываем меню Файл > Настройки и в появившемся окне нажимаем кнопку рядом с полем ввода дополнительных ссылок для Менеджера плат. В открывшемся окне вставляем скопированную ранее ссылку новой строкой. Нажимаем OK для сохранения изменений и выхода из настроек: Кстати, в окне ввода дополнительных ссылок можно перейти по ссылке под полем ввода, откроется страница https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls. На ней вы найдете большое количество ресурсов для поддержки различных плат и микроконтроллеров, в том числе и используемый нами пакет от David A. Mellis. Следующий шаг — установка файлов для поддержки ATtiny85. Переходим в меню Инструменты > Плата > Менеджер плат… Чтобы не искать в списке интересующий нас пакет, отфильтруем его, введя в текстовом поле слово tiny. Выбираем пакет attiny by David A. Mellis и нажимаем установить. После выполнения установки закрываем окно Менеджера плат:

Подключение ATtiny85 к программатору

Технология внутрисхемного программирования (ISP) использует линии интерфейса SPI. Поэтому выводы MOSI, MISO, SCK ATtiny85 подсоединяем к одноименным выводам Ардуино; вывод RESET ATtiny85 к цифровому выводу 10 Ардуино. Запитываем микроконтроллер от линий 5V и GND Ардуино. И, возможно, потребуется установить электролитический конденсатор между выводами Reset и GND Ардуино, чтобы предотвратить автоматическую перезагрузку. Ниже показаны распиновка микроконтроллера ATtiny85 и схема его подключения к Ардуино.

Загрузка скетча в ATtiny85

Откроем скетч Blink из стандартных примеров Ардуино (меню Файл > Примеры > Basics > Blink). Заменим в скетче текст LED_BUILTIN на 0 в трех местах, должно получиться:

voidsetup() {      pinMode(, OUTPUT); }  voidloop() {   digitalWrite(, HIGH);      delay(1000);                digitalWrite(, LOW);       delay(1000);              }

Теперь в списке плат выберем ATtiny25/45/85, конкретную модель микроконтроллера укажем в меню Процессор. В меню Clock выберем значение Internal 8MHz. И, поскольку в качестве программатора мы используем Ардуино, выберем значение Arduino as ISP в меню Программатор: Теперь всё готово для загрузки скетча в ATtiny85. Подключаем Ардуино к компьютеру, нажимаем кнопку загрузки и дожидаемся сообщения о завершении операции. Для проверки работы скетча подключим к микроконтроллеру светодиод: длинным выводом к PB0, коротким к GND. Светодиод начнет мигать, только интервал составит не 1 секунду, а 8 (при условии, что мы имеем дело с новым/чистым микроконтроллером). И вот почему: новые микроконтроллеры идут с завода с запрограммированным фьюзом CKDIV8 (Divide clock by 8), что приводит к делению тактовой частоты на 8. Поэтому сейчас мы сбросим данный фьюз, чтобы микроконтроллер работал на частоте 8МГц.

Изменение тактовой частоты ATtiny85

Работу с фьюзами я уже описывал в статье Что такое фьюзы. Чтение и запись фьюзов Ардуино. Тогда для работы с ними использовалась программа avrdude. Но сейчас для сброса фьюза CKDIV8 мы поступим проще: установка конфигурационных байтов входит в процедуру записи загрузчика, поэтому в IDE Arduino переходим в меню Инструменты и выбираем команду Записать загрузчик. В действительности запись загрузчика в микроконтроллер не произойдет, т.к. его просто нет в используемом нами пакете. Но зато будут перезаписаны конфигурационные байты, новые значения будут взяты из файла boards.txt, в них как раз бит CKDIV8 сброшен. Также будет очищена память программ, поэтому скетч нужно будет загрузить в микроконтроллер еще раз. После выполнения указанных действий ATtiny85 заработает на частоте 8МГц и светодиод начнет мигать с интервалом в 1 секунду. Микроконтроллер можно отключить от Ардуино и запитать от источника 3-5В. Когда вы в очередной раз захотите изменить тактовую частоту ATtiny85, нужно будет выбрать соответствующее значение в меню Инструменты > Clock и повторно выполнить команду Записать загрузчик. И, как вы можете видеть, в меню выбора частоты доступно значение 16МГц — оно получается умножением тактовой частоты внутреннего RC-генератора (8МГц). Этой опцией не могут похвастаться даже старшие микроконтроллеры семейства mega. Такой способ тактирования применен в плате Digispark, построенной на ATtiny85.

Вместо заключения

Как видите, программирование ATtiny85 в IDE Arduino не составляет труда. А после записи загрузчика оно станет еще проще и сможет быть выполнено без использования программатора. О том как это сделать читайте в статье Прошиваем загрузчик micronucleus в ATtiny85.

В этой статье я постараюсь подробно осветить все моменты, касающиеся прошивки Attiny85 в среде ArduinoIDE, и рассказать и некоторых граблях и трюках, через которые я прошел.

Основная цель затеи — «сжать» проекты, особенно там, где атмега328 является мощным оверкиллом — например не так много кода, или используется не более пяти выводов. Ну и сэкономить место и продлить работу от батареи (но о последним в следующих статьях).

Отличия attiny25 от 45 и 85 — объем памяти: 2, 4, 8 кб соответственно. Так же есть 13, 1 кб.

Из функций — пара независимых таймеров для ШИМ, 5(6) портов ввода вывода (6 потому что RESET тоже можно настроить, как порт ввода вывода, но для сброса понадобится специальное устройство), и самое приятное — внутренний кварц на 128 кГц, 1, 8 или 16 МГц, то есть внешний резонатор не нужен, а частоту работы можно изменить прямо в студии ардуино. Так же есть BOD-детектор (вырубает чип, если напряжение питания ниже определенного).

Порезал картинку, чтобы не получить по голове от неразглядевших. Оригинал

Итак, вы урвали у жадных китайцев себе пяток тинек85, надо их проверить, а то вдруг наебали. Не стушевавшись, втыкаем в бредборд и ищем первую ногу — она помечена точкой. Это сброс или ресет, соединяем ее с 10 портом UNO, ищем четвертую ногу, цепляем к земле, 5, 6, 7 цепляем последовательно к 11, 12, 13 портам. 8 к +5В. Поздравляю, сетап готов. Можно ещё воткнуть конденсатор между RESET и GND у уны, но (меня сейчас закидают) у меня все работает и так. Предполагаю, что кондей — защита от наводок.

Теперь пора навести порядок в студии — зайти в менеджер плат и набрать «attiny», после чего скачать среднюю позицию (больше вариантов и настроек, плюс впитала в себя другие варианты):

Установили, теперь надо залить в уно скетч из примеров под названием ArduinoISP, после чего уже можно начинать настраивать нашу тиньку к работе:

С завода все тиньки идут прошитыми на 8 МГц, для того чтобы поменять эту частоту на 16, или изменить что-либо из списка — надо перезаписать загрузчик, обычно занимает секунд 10. После перезаписи можно залить обычный Blink для проверки работоспособности и верности выбранной частоты, только надо поменять номер 13 пина на 3 или 4, поскольку остальные заняты.

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

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

Остальные содинения точно такие же, как в начале статьи, единственное — светодиод + 220 Ом резистор на 3 пине.

371438021226768-P-2845876.jpg

  • Цена: $2,29

То, о чем говорили большевики… хотя стоп. Это не совсем то, о чем говорили большевики. Это новый подход к прототипированию устройств на ATtiny85 в среде Arduino. А ATtiny85 — это как раз то, что отлично подходит для многих вещей, где полноценные Arduino-совместимые платы вроде Pro Mini, Uno и, тем более, Mega избыточны. Причем конкретно эта штука хороша тем, что на ней можно быстро, без паутины проводов и программаторов обкатать код, который потом будет трудиться в чем-то готовом. И, да, я сейчас именно о теме электронных конструкторов, а не о хардкорной микроэлектронике и низкоуровневом программировании, до которых вряд ли когда-нибудь доберусь.0_c63d4_3e224007_XL.jpg Небольшая политинформация. ATtiny85 — небольшой микроконтроллер с приличными возможностями и приятными особенностями, включая: — 8 КБ памяти для программного кода, 512Б памяти для исполняемого кода — 6 цифровых пинов — 4 входа ADC — 2 выхода PWM — аппаратное прерывание — частота от 1 МГц до 20 МГц — питание от 1,8В до 5,5В (в зависимости от модификации) — потребляемый ток — от 0,1 мкА при 1,8В в режиме максимальной экономии энергии — выпускается (помимо прочих) в миниатюрном SOIC8 и более удобном для начинающих DIP-корпусах Даташит на случай, если я что-то переврал. Вообще это семейство также включает ATtiny25 и ATtiny45 — c 2КБ (128Б) и 4КБ (256Б) памяти для программного кода (исполняемого кода) соответственно. Легко видеть, почему я отдаю предпочтение ATtiny85: максимум памяти. Казалось бы — этот контроллер идеальный кандидат в заместители Arduino, когда нужно миниатюрное, автономное и долгоживущее (от одного комплекта батарей) устройство. Например, так любимый нами всеми метеодатчик. Но есть и минусы. Напрямую этот контроллер к компьютеру не подключить. Нужен программатор или же его аналог, в который, правда, исключительно легко превращается обычная плата Arduino. Но если вы думаете, что на этом трудности завершаются — рано радуетесь. С программатором, предположим, да — завершаются (при условии, что есть нужная колодка). Но если его нет, а есть Arduino, то для каждой прошивки к ATtiny85 нужно подключать 6 (!) проводов. Конечно, со временем я научился делать это не за шесть операций, а всего лишь за четыре. Но все равно очень утомительно. И на этом фоне разработка парней из Digistump, которые придумали, как сделать так, чтобы ATtiny85 можно было без проблем программировать через USB, выглядит фантастически привлекательно. Решение, насколько я могу судить, комбинированное — немного согласующей обвязки для USB, плагин для среды Arduino и хитроумный бутлоадер (micronucleus tiny85) в микроконтроллере. По их собственным словам, штука работает на грани возможного, поэтому не факт, что будет всегда и на все сто процентов совместима с любым USB-оборудованием. Кроме того, минималистический подход в схемотехнике выливается в полное отсутствие защит: фактически перед нами голый микроконтроллер. Отсюда рекомендации: тщательно проверять полярность подключения питания и, по возможности, подключать контроллер к компьютеру через промежуточный USB-хаб. Чтобы в случае чего умер только хаб, а не порт компьютера. Несмотря на эти ограничения, получившаяся у них плата Digispark оказалась настолько хороша, что стала эталонным дизайном вроде Arduino. Благо схемы, рисунок платы и софт эти товарищи раздают совершенно бесплатно. По крайней мере только этим можно объяснить феноменальное количество всевозможных клонов Digispark в китайских магазинах. Клоны эти во многом идентичны, и различаются разве что конструктивом USB-разъема для подключения к компьютеру. Где-то он интегрирован на плату — как у плоских флешек. Где-то — реализован популярным microUSB. Второй вариант (о котором речь) мне кажется более рациональным. Во-первых, не надо беспокоиться о наличии свободного места для подключения платы. Во-вторых, при активной отладке не нужно постоянно теребить далеко не вечный разъем у компьютера или хаба. В третьих, постоянно подключенный к компьютеру кабель USB-microUSB можно использовать и в других целях. Итак, безымянная плата ATTINY85 Microcontroller Development Board на основе дизайна Digispark. Здесь мы видим самый обычный ATtiny85 20SU, то есть чип с рабочим диапазоном напряжений 2,7В — 5,5В и максимальной частотой 20 МГц в корпусе SOIC8. Пинов отрезали ровно девять штук — под число контактов. Не больше, не меньше:

Размеры платы примерно 18х22 мм. На плате, помимо прочего, размещается стабилизатор напряжения LM78L05. По этой причине питать контроллер можно двумя путями: напряжением до 5В при подключении к пину 5V и до 10В при подключении к пину Vin (через стабилизатор). В теории, если верить даташиту стабилизатора, он может выдержать и до 35В, но, вероятно, недолго.0_c63da_4600ebcf_XL.jpg Кроме удобного питания на плате удобно выведены и подробно подписаны пины контроллера. С лица — цифровые, со спины — по протоколу и аналоговым функциям. В общем, не заблудишься.
Для чего все это может пригодиться? Как и говорил — для прототипирования. То есть, для отладки железа и кода перед финальной сборкой. Например, с моими кривыми руками отладка может включать несколько десятков «заливок» кода в контроллер, что при упомянутых выше четырех операциях с проводами (что также подразумевает постоянный контроль правильности подключения) становится мягко говоря утомительным. Здесь же — подключил один провод, залил код, отключил — проверяешь. Не понравилось — для изменений нужен тот же один провод. Красота. Но для начала нужно подготовиться, что несложно. В первую очередь напаиваем гребенку для макетирования:0_c63dc_ba79d963_XL.jpg Теперь устанавливаем своеобразный плагин для среды Arduino (поддерживается начиная с версии 1.6.5). Процесс подробно описан в Wiki Digispark. Открываем настройки:0_c63c7_83020be4_XL.jpg Вставляем в поле Additional Boards Manager URLs строку :0_c63c8_bacdd42f_XL.jpg Переходим в меню Инструменты — Boards Manager:0_c63c9_e2dd96a7_XL.jpg В выпадающем списке Type выбираем Contributed, а затем щелкаем по Digistump AVR Boards, при этом появится кнопочка Install, которую и нажимаем:
Начнется скачивание и установка софта и драйверов. Говорим, что согласны на все:
Наконец все готово:0_c63ce_90209d71_orig.jpg Выбираем рекомендованную для начинающих плату Digispark (Default — 16,5mhz):0_c63d1_8e448c9a_XL.jpg Можно вбить классическую «мигалку» из примеров самих Digistump:0_c63cd_8e94bd70_XL.jpg В отличие от классических плат Arduino, эту плату не нужно подключать к компьютеру перед загрузкой прошивки. Наоборот, сначала нужно запустить загрузку из среды Arduino и дождаться приглашения к подключению контроллера. Вот теперь — можно. Таймаут на загрузку — 60 секунд:0_c63cf_6e776540_XL.jpg Связано это с особым режимом работы загрузчика: при старте контроллера он ждет загрузки кода через USB в течение 5 секунд, а потом переключается в режим исполнения имеющегося в памяти контроллера кода. Иными словами, если контроллер подключить к компьютеру до приглашения, то спустя пять секунд он начнет выполнять имеющийся код (если есть), а чтобы загрузить новый, нужно отключить и снова подключить плату к компьютеру. Загрузка пошла:0_c63d3_7de9ffde_XL.jpg Готово: При прототипировании также следует иметь в виду и другие важные отличия данной платы от Arduino. Пины 3 и 4 используются для USB, поэтому если они также необходимы в финальном проекте, то подключенную к ним для отладки периферию лучше отключать на время загрузки новой версии прошивки. Также надо иметь в виду, что к пину 3 подключен подтягивающий резистор 1,5К, необходимый для того же самого USB. Т.е. на этом пине по умолчанию будет далеко не ноль. Кроме того, пин 1 (физический) в Digispark, в принципе, доступен к использованию, в то время как у классического ATtiny25/45/85 он предназначен для сигнала Reset, который требуется при прошивке. То есть, следует иметь в виду, что с прицелом на простой перенос кода на ATtiny85 (например) нежелательно использовать пин 1 (физический) в своем коде. На всякий случай: нежелательно не равно «запрещено». По крайней мере, умельцы сообщают, что при использовании физического пина 1, впоследствии придется пользоваться уже не самым простым высоковольтным программатором. А помимо ограничений ATtiny85 (поддерживаются не все библиотеки и не все команды языка) есть и ограничение по памяти для программного кода, которой в версии Digispark 6КБ (а не 8КБ, как у «голого» ATtiny85). Для тех, кто задумывается об использовании данных плат в готовых устройствах сообщаю, что на примере «Пищаля» потребление в активном режиме при напряжении 5В — около 30 мА. В режиме предположительно максимально глубокого сна, на который я способен уговорить контроллер по советам умных людей — 13,38 мА. На примере «мигалки» получилось 30 мА при погашенном мигающем светодиоде и 35,5 мА — при горящем. Куда контроллер тратит такую уйму энергии — пока не понимаю. Но подозреваю, что это связано с довольно высокой тактовой частотой (что, впрочем, не объясняет аппетит во время сна). Где бы мне могла помочь эта плата? Да уже на самом деле в уйме, уйме мест, где работают крохи ATtiny85. Давайте считать.

Сигнализатор открытого дверного замка «Пищаль» (он же — «Трындец»)

Необходимость в этой штуке стала неотвратимой после того, как я стал систематически забывать закрывать входную дверь. Причин множество: сумки, мешающиеся коты, усталость в конце концов. Пищалка, батарейка, контроллер, микрик — ничего лишнего:0_c63e0_c0d9eac2_XL.jpg Об этой проблеме я вспоминал уже когда ложился спать, а вставать лишний раз только чтобы узнать, закрыта дверь или открыта, очень не нравилось. Итог — ATtiny85 с пьезокерамической пищалкой, микропереключателем и батарейкой CR2032. 0_c63de_82663ae5_XL.jpg И до умопомрачения простым кодом. Который просто включает пищалку примерно через пять минут после включения контроллера. А контроллер, как несложно понять, включается микропереключателем. На микропереключатель, в свою очередь, давит ригель замка.Код То есть, пока ригель давит — контроллер выключен. Перестал давить — контроллер включился. Ну а таймаут в 5 минут сделан, чтобы пищалка не мешала при так сказать обычном использовании двери.0_c63dd_885644a9_XL.jpg Иными словами, если забыть закрыть дверь, то через пять минут звуковой сигнал об этом напомнит. Ну почти как в холодильниках с подобной функцией. Отличие только в том, что «Пищаль» наблюдает за замком, а уж что там с дверью — это его не волнует. Ну и еще нюанс: при включении (считай открытии двери) контроллер издает однократный писк. Это чтобы знать, что конструкция работает, как и батарейка. Все идеально поместилось внутри дверной коробки. И уже неоднократно доказало свою пользу.

Автомат света «Артефакт»

Хотя я очень гордился простым решением для автосвета в гардеробе, когда свет включался контроллером по сигналу с беспроводного датчика открытия двери (из обычной беспроводной сигнализации), концепция себя изжила. Во-первых, сама конструкция подразумевала, что нельзя просто так открывать и закрывать дверь, поскольку каждое открытие-закрытие переключало свет. То есть, необходимо было контролировать положение двери. Неудобно. Во-вторых, со временем начались какие-то заскоки то ли у датчика двери, то ли у контроллера. В общем, срабатывать конструкция стала через раз, а причину я так и не нашел. Если что — батарейку в датчике менял, антенну крутил. Но что толку — до контроллера меньше полутора метров, а — не работает. Стало очевидно, что дороги назад нет: надо менять сам принцип. Под это дело купил в Fix price несколько различных светильников (на корпуса), разломал дачный фонарик на солнечной батарейке под датчик света, в хозяйственном подвале приобрел батарейные отсеки под элементы ААА, в запасах откопал резервный передатчик на 433 МГц и популярный датчик движения HC-SR501. Собрал все это воедино и вот именно здесь мне бы и понадобилась отладочная плата. Поскольку код я мучил довольно долго и сам замучился капитально, хотя задача не такая уж и сложная.Код Зато результат — симпатичная пирамидка, которая стоит на одной из полок и кажется, что ничего не делает. А на самом деле происходит следующее: контроллер спит до обнаружения движения, а когда его увидит, то оценивает уровень освещенности. Если света мало — включает, если много — ничего не трогает. Свет включается по радио, через выключатели Livolo. Если нет никакого движения в течение минуты с включения света, контроллер свет выключает, потому что считает, что люди уже ушли. И после этого сразу же засыпает для экономии энергии. Потребление в спящем режиме — около 60 мкА (с учетом датчика движения), в активном — около 8-9 мА. Плюс конструкции по сравнению с «глупым» датчиком двери и в том, что если вдруг забудешь, что внутри автомат света и включишь свет вручную, то при открытии двери свет не выключится — такова логика «Артефакта». Из той же логики растет недостаток: если свет включить вручную и не заходить, то свет не выключится, пока кто-то не зайдет.

Датчик протечек «Капель»

Это, если честно, не совсем удачная идея. То есть, железка удалась, но ее применение — нет. Дело в том, что в сантехническом шкафу однажды обнаружилась очень неприятная штука: ползучая протечка. Иными словами, соединение подтекало так, что это было особо незаметно, однако в итоге воды набралось столько, что стали возмущаться соседи снизу. После этого я стал регулярно заглядывать в сантехшкаф, внимательно осматривая соединения и его «дно», и параллельно думал о том, как бы автоматизировать процесс. Теоретически меня могла бы спасти «нечеткая логика», то есть не совсем традиционное использование обычного метеодатчика. Я рассуждал так: при протечке, которая не приводит к срабатыванию «затапливаемого» датчика, все же должна заметно повыситься влажность. И это повышение можно трактовать как сигнал к действию. Придумано — сделано. Благодаря популярному датчику температуры и влажности ATtiny85 превратился в «Капель». Аппарат на макетной плате простоял в сантехническом шкафу две недели. Этого мне хватило для сбора статистики по влажности, которая, как оказалось, гуляет там в довольно широких пределах. Но проблема оказалась не в пределах. Собственно, я для того и собирал статистику, чтобы понять порог срабатывания сигнализации. Проблема оказалась в том, что при натурном тесте (мокрая тряпка в сантехническом шкафу) влажность особенно не изменилась. В общем, от «Капели» я отказался, но метеодатчик, который может передавать данные на Народный Монитор через домашний контроллер — остался. Точнее, остался код, а вот сам прибор я разобрал, поскольку стал заниматься «Артефактом».Код

Корректор не только осанки «Позиционер»

Об этой штуке я рассказывал в цветах и красках. В применении к прототипированию хочу сказать, что здесь упрощенная загрузка кода мне тоже очень бы помогла, поскольку «Позиционер» я отлаживал как-то очень долго. Разумеется, что внутри у него все тот же самый ATtiny85.

На будущее

В планах, которые неизвестно когда сбудутся, переключатель освещения «Ротор». Очень хочется, знаете, такой портативный арт-объект с круглой, наподобие регулятора громкости в аудиотехнике, ручкой, вращение которой переключает свет во всей квартире. То есть, крутишь в одну сторону — сначала включается фоновый свет, потом половина верхнего, потом — вторая половина верхнего. Крутишь в другую — все гаснет в обратной последовательности. Даже заготовил концепт-версию кода под это дело. И успел вляпаться в борьбу с дребезгом контактов у энкодера, выяснив, что аппаратное подавление этой гадости очень эффективно. Однако до финала еще далеко. Возвращаясь к отладочной плате. Если спросите, купил бы я себе эту штуку сам, отвечу — однозначно бы купил. Собственно, уже и собирался. Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта. Используемые источники:

  • /2018/11/attiny85-getting-started.html
  • story/szhimaem_proektyi_ili_kak_zaprogrammirovat_attiny854525_s_uno_4348626
  • https://mysku.ru/blog/china-stores/36691.html

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации