01.09.2011

BlinkMuino

Поздравляю уважаемых читателей со всеобщим праздником - днем знаний (всеобщий он потому, что учиться никогда не поздно ;) и заодно очередная статья в цикле ArduinoCompatible.

Название: BlinkMuino
Процессор: ATtiny45/85
Тактовая частота: 8 МГц
Совместимость с ArduinoIDE: ограниченная
Совместимость с Shield-платами: нет
Авторы: Tobot
Страница проекта: http://todbot.com/blog/2011/03/22/blinkm-smart-led-as-the-smallest-arduino/
Дата первого упоминания: 22.03.2011




Эта крохотная плата называется BlinkM - или "умный" светодиод. Внутри находится ATtiny45 или ATtiny85 c прошивкой, способной изображать разнообразные световые эффекты на встроенном сверхъярком RGB-светодиоде. Но более того - разработчики предоставляют специальный Sequencer - софт, предназначенный для создания произвольных эффектов. В наличии библиотеки для языков программирования Java, C, Processing - так что поддержка весьма серьезная. Однако сразу замечу - лицензия на эту прошивку для персонального (читаем - некоммерческого) использования, и в исходниках они ее не раздают.

Соответственно, поэтому и родилась идея скрестить ее с Arduino. BlinkM+Arduino = BlinkMuino. Что мы имеем?
  • размер платы - всего 15х15 мм 
  • тактовая частота 8 МГц
  • 8К Flash (4К для ATtiny45)
  • 512 байт RAM (256 байт на ATtiny45)
  • 512 байт EEPROM (256 байт на ATtiny45)
  • 5 универсальных пинов ввода-вывода
Пины распределяются так:
  • 3 пина для сверхъярких светодиодов в едином RGB-корпусе
  • 2 цифровых пина  
  • 1 аналоговый пин (совмещен с цифровым)
Теоретически, если не нужно иллюминации, можно высвободить еще три универсальных пина за счет RGB-светодиода - они могут быть и аналоговыми, и цифровыми. Плохая новость состоит в том, что аппаратного последовательного порта у нас нет, скетчам придется довольствоваться эмулированным - SoftwareSerial. А для заливки скетчей, увы, придется использовать ISP-программатор:

В роли программатора может выступить и Arduino со скетчем ArduinoISP:


Дальше надо добавить поддержку BlinkMuino в ArduinoIDE - как это сделать для ATtiny подробно расписано здесь, единым файлом (дополнительное core, добавки в boards.txt) можно скачать тут. После этих манипуляций в скетчах можно будет использовать следующие конструкции Wiring:
  • pinMode()
  • digitalWrite()
  • digitalRead()
  • analogRead()
  • analogWrite()
  • shiftOut()
  • pulseIn()
  • millis()
  • micros()
  • delay()
  • delayMicroseconds()
Назначение пинов определяется следующим образом:


На видео ниже автор подробно объясняет принципы работы и в самом конце демонстрирует работу скетча, который отслеживает потенциометр и поварачивает на соответствующий угол серво.


Я согласен с идеей по поводу компактности - часто получается, что с успешной стадии Arduino-прототипизации проект переходит в следующую стадию - практической реализации. Для этого автор обычно берет в руки паяльник и воспроизводит схему Arduino minimum на макетной плате, избавляясь таким образом от всего лишнего. Остается по большому счету только сам MCU и резонатор на 16 МГц. И вот именно в этом случае применение одного ATtiny в DIP-корпусе со встроенным резонатором может выиграть пару-тройку квадратных сантиметров. Зато придется повозиться со стандартными библиотеками - большинство из них потребует небольшой правки. Стоит ли оно того? Тут каждый решает сам ;) В конце концов - чем больше вариантов, тем лучше. Стоит BlinkM менее 15 USD.

Использованы материалы со страницы http://code.google.com/p/blinkm-projects/wiki/BlinkMuino, картинки распространяются под лицензией CC-BY-NC 2.0

Комментариев нет:

Отправить комментарий