Arduino LilyPad

Содержание:

  • Обзор
  • Технические характеристики модуля
  • Подключение к компьютеру
  • Пример использования
  • Часто задаваемые вопросы FAQ

Платформа Arduino представлена не одной платой, а целым семейством плат, имеющих разные возможности и функциональность. Одна из самых необычных плат Arduino – Arduino LilyPad. Она была разработана и создана Leah Buechley совместно со SparkFun для использования с предметами одежды и текстиля. Arduino LilyPad можно пришивать к ткани и с помощью токопроводящих нитей подключать питание, датчики или исполнительные устройства. Электронная схема, собранная на ткани, включая саму плату Arduino LilyPad не боится стирки. Можно стирать вручную , естественно предварительно отключив питание.

Печатная плата LilyPad Arduino имеет форму круга диаметром около 50 мм. Плата выполнена на микроконтроллерах ATmega168V или ATmega328V. Напряжение питания платы в интервале от 2.7 до 5.5 В. При отрицательном питании или большем чем 5.5 В плата может выйти из строя.

Существует три варианта данной платы:

LilyPad Arduino 328 (рисунок 2) – на базе микроконтроллера ATmega328

Плата LilyPad Arduino 328

Рисунок 1. Плата LilyPad Arduino 328

LilyPad Arduino USB (рисунок 2) – наличие USB-порта для связи с компьютером и выхода для литиевой батареи, на базе микроконтроллера ATmega32u4

Плата LilyPad Arduino USB

Рисунок 2. Плата LilyPad Arduino USB

 

LilyPad Simple Snap (рисунок 3) – благодаря специальным контактам из кнопок может отстегиваться от схемы, содержит встроенный литиевый аккумулятор.

Плата LilyPad Simple Snap

Рисунок 3. Плата LilyPad Simple Snap

Рассмотрим плату LilyPad Arduino 328 – на базе микроконтроллера ATmega328 (рис. 4).  Плата  имеет 22 контакта. Контакты  « и «−» предназначены для питания платы. Остальные контакты аналогичны контактам Arduino Uno. Также на плате присутствуют штырьковые контакты для подключения переходника USB-Serial,  необходимого для загрузки скетчей из компьютера.

Плата LilyPad Arduino 328

Рисунок 4. Плата LilyPad Arduino 328


Технические характеристики Arduino LilyPad

  • Микроконтроллер – ATmega328V;
  • Количество цифровых контактов – 14(6 из которых могут использоваться как выходы ШИМ);
  • Количество аналоговых контактов – 6;
  • Рабочее и входное напряжение 2,7-5,5 В;
  • Флеш-память 16 Кб (2 используются для загрузчика);
  • ОЗУ 1 Кб;

Подключение к компьютеру

Для подключения платы LilyPad Arduino 328 к компьютеру USB – Serial преобразователь. Схема соединений на рис. 5.

Схема соединений LilyPad Arduino 328 и USB-Serial

Рисунок 5. Схема соединений LilyPad Arduino 328 и USB-Serial


Загрузка программ в LilyPad Arduino 328

Для загрузки скетчей из Arduino IDE на плату LilyPad Arduino 328 необходимо в меню Инструменты выбрать порт подключения платы LilyPad  и тип платы – LilyPad Arduino (см. рис. 6).

Рисунок 6. Настройки Arduino IDE для LilyPad Arduino 328

На дешевых переходниках USB-Serial отсутствует контакт DTR, который соединяется с выводом RESET Arduino и сбрасывает микроконтроллер перед загрузкой в него новой программы. Если данного контакта нет, при загрузке скетча на плату LilyPad Arduino происходит ошибка (рис. 7).

Ошибка при загрузке скетча на плату LilyPad Arduino

Рисунок 7. Ошибка при загрузке скетча на плату LilyPad Arduino

Рисунок 7. Ошибка при загрузке скетча на плату LilyPad Arduino

В таких случаях необходимо после нажатия кнопки Вгрузить, после компиляции скетча и появлением надписи Вгружаем.. нажать и отпустить кнопку сброса на плате Arduino.


Пример использования

Компания SparkFun Electronics предлагает  дополнительные устройства для совместного использования с контроллерами LilyPad Arduino. Вот некоторые из них:

  • LilyPad Button Board – кнопка;
  • LilyPad Light Sensor – светодиод;
  • LilyPad Temperature Sensor – датчик температуры;
  • LilyPad Accelerometer ADXL335 – акселерометр;
  • LilyPad MP3 – MP3-проигрыватель;
  • LilyPad XBee – для подключения XBee-устройств;
  • LilyPad Coin Cell Battery Holder  – плата для подключения батареи;
  • LilyPad Pixel (RGB LED модуль WS2812)

И много других.

Рассмотрим пример подключения к LilyPad Arduino нескольких модулей LilyPad Pixel, каждый из которых представляет собой RGB-светодиод WS2812, которым можно управлять с одного контакта Arduino. Кроме того, такие светодиоды можно соединять в цепочку и управлять каждым по отдельности. При отсутствие токопроводящей нити соединять модули LilyPad Pixel будем пайкой проводами.

Нам потребуются следующие компоненты:

  • плата Arduino LilyPad -1;
  • резистор 470 Ом – 1;
  • LilyPad Pixel – 10;
  • провод;
  • блок питания 5В.

Соединение деталей по схеме соединений на рис. 8.

Схема подключения для LilyPad Pixel

Рисунок 8. Схема подключения для LilyPad Pixel

Все модули LilyPad Pixel подключены друг к другу последовательно. Вход Din каждого их них подключается к выходу Do следующего. Сигнал управления должен поступать на первый из них. Команды управления подаются пакетами по 3 байта , по одному для каждого из трёх цветов ( Blue, Green, Red – они идут именно в таком порядке). Между пакетами идет пауза длительностью 50 мкс, пауза более 100 мкс означает конец передачи.

Контроллер первого модуля LilyPad Pixel берет себе первый пакет 3 байта, устанавливает свой цвет в соответствии с содержимым, следующий пакет пропускает далее, где его забирает второй, и так далее, пока в потоке не возникнет пауза в 100 мкс.

Приступим к написанию скетча. Для работы с светодиодами WS2812 имеется библиотека Adafruit_NeoPixel. Каждую секунду будем отправлять 10 новых пакетов для 10 модулей, цвет будем выбирать рандомно.

Содержимое скетча представлено в листинге 1.

Листинг 1

#include <Adafruit_NeoPixel.h>

// номер порта подключения первого модулея LilyPad Pixel

#define LED 4

// количество модулей

#define count 10

//создание объекта

Adafruit_NeoPixel ledsWS2812 = Adafruit_NeoPixel(count, LED, NEO_GRB + NEO_KHZ800);



void setup() {

ledsWS2812.begin();

// выключаем все модули - черный

ledsWS2812.show();

}

void loop() {

for(int i=1;i<= count;i++) {

// отправляем цвет для очередного светодиода

ledsWS2812.setPixelColor(i, pixels.Color(random(0,255), random(0,255), random(0,255));

}

ledsWS2812.show();

// пауза 1 секунда

delay(1000);

}

При желании можно реализовать световое анимационное шоу на базе подобных модулей.


Часто задаваемые вопросы FAQ

  1. Не загружается скетч на плату Arduino Lily Pad
  • Проверьте правильность подключения переходника USB-serial к плате Arduino.
  • Если на переходнике USB-Serial отсутствует контакт DTR, загрузка скетчей на плату Arduino осуществляется следующим образом: после нажатия кнопки Вгрузить, после компиляции скетча и появлением надписи Вгружаем.. нажать и отпустить кнопку сброса на плате Arduino.
  1. Модули LilyPad Pixel не зажигаются и не меняют цвет по программе
  • Проверьте правильность подключения модулей LilyPad Pixel.
  • Недостаточная мощность блока питания двигателя.
  1. Часть модулей LilyPad Pixel или все не зажигаются
  • Возможно перегорел один из модулей и поэтому пакеты дальше  него не проходят.