Arduino lilypad примеры использования

Arduino LilyPad

Одна из самых необычных плат Arduino – Arduino LilyPad. Она была разработана и создана Leah Buechley совместно со SparkFun для использования с предметами одежды и текстиля.

Обзор платы LilyPad 328

Платформа 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

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

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

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

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

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

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

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

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

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

Рисунок 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).

Рисунок 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.

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

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

Ардуино ЛилиПад: распиновка, характеристики

Плата Arduino LilyPad и аналоги ► LilyPad Simple, Lilytiny Lilypad – это линейка плат Ардуино с существенными отличиями в характеристиках, схеме, питании.

Arduino LilyPad и другие аналоги, например, LilyPad Simple и Lilytiny Lilypad – это отдельное направление линейки плат Ардуино. По своим основным характеристикам – количеству портов, частоте процессора и питанию плата Arduino LilyPad схожа с микропроцессором Arduino Nano, но есть существенные различия в конструкции и назначении платы, о которых расскажем далее более подробно.

Arduino LilyPad: распиновка платы

Плата LilyPad 328P производится в нескольких вариантах – со встроенным портом micro-USB, который используется на большинстве современных смартфонов. Есть более бюджетная версия без встроенного micro-USB порта, которую прошивают через программатор, как Arduino Mini. В основе платформы может быть установлен микроконтроллер ATmega168 или более мощный микроконтроллер ATmega328.

Arduino LilyPad распиновка платы на русском

LilyPad Simple Snap — еще одна разновидность данной линейки, которая имеет контакты на печатной плате в виде заклепок. Что довольно удобно, так как плата может отстегиваться перед стиркой. Подключение Arduino LilyPad к источнику питания может производиться от компьютера или другого устройства через порт micro-USB, при его наличии, или через порт VCC от блока питания, аккумулятора или батареи.

Lilytiny LiLypad ATtiny85 — упрощенная версия LilyPad на базе микроконтроллера ATTiny85, имеющая 8 КБ Flash памяти. Предназначена для создания проектов LilyPad Arduino с использованием текстиля и одежды. Плата LilyTiny LiLypad легко пришивается к верхней одежде токопроводящей нитью и может быть использована в роли управляющего микроконтроллера для светодиодов и других датчиков.

Характеристики Arduino LilyPad 328P

  • Микроконтроллер: ATmega328p
  • Количество цифровых входов/выходов: 20
  • Портов с поддержкой ШИМ: 6
  • Количество аналоговых входов: 6
  • Контактов для аппаратного прерывания: 2
  • Объём Flash-памяти: 32 кб
  • Объём SRAM-памяти: 2 кб
  • Объём EEPROM-памяти: 1 кб
  • Тактовая частота: 8 МГц
  • Напряжение питания: 2,7–5,5 В
  • Максимальный ток через контакт ввода/вывода: 40 мА
  • Диаметр LilyPad Arduino: 50 мм
  • Толщина печатной платы LilyPad: 0,8 мм
Читать еще:  Ka3842 схема блока питания

LilyPad Arduino: схема электрическая

LilyPad 328P: порты ввода вывода, питание

Arduino LilyPad имеет 9 портов ввода/вывода общего назначения, из которых 6 портов могут быть использованы, как ШИМ выводы. Для подключения к плате аналоговых датчиков имеется 6 портов, подключенных к АЦП. Сама плата Arduino Lily Pad изготовлена в виде круга диаметром 50 мм, высотой не более 4 мм и весом около 8 грамм. Допустимое напряжение источника питания от 2,7 до 5,5 Вольт.

Схема распиновки платы LilyPad Arduino

Порт VIN, который есть на большинстве плат Ардуино, на данной плате отсутствует. На плате отсутствует стабилизатор напряжения, поэтому при большем напряжении, чем 5,5 Вольт или смене полярности источника питания, плата LilyPad Arduino 328 может выйти из строя. Для программирования платы используется среда Arduino IDE, которую можно бесплатно скачать на официальном сайте www.arduino.cc.

Разновидности плат Arduino Lilytiny LiLypad ATtiny85

Arduino LilyPad примеры использования

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

Arduino:Продукты/Продукты Arduino/Плата LilyPad Arduino SimpleSnap

LilyPad Arduino SimpleSnap – это микроконтроллерная плата, предназначенная для использования в носимой электронике (в частности – в текстильных материалах, где встроены различные электронные компоненты). Она похожа на LilyPad Arduino Simple, но отличается тем, что оснащена встроенной литий-полимерной батареей и вместо сквозных отверстий имеет токопроводящие застежки. Используя в своем проекте такие же застежки, вы можете прикрепить к нему Lilypad Arduino SimpleSnap, а затем снять – чтобы помыть или использовать в другом проекте. LilyPad Arduino SimpleSnap имеет 9 цифровых I/O контактов для ввода/вывода данных. Кроме того, она оснащена специальной цепью для зарядки батареи. Плата базируется на чипе ATmega328.

Плата LilyPad Arduino SimpleSnap разработана Лиа Бьючли (Leah Buechley) и компанией SparkFun Electronics.

О гарантии можно почитать тут.

С чего начать

На этой странице можно найти всю необходимую информацию о том, как настроить плату, использовать IDE Arduino и т.д. Кроме того, SparkFun Electronics предлагает ряд аксессуаров, которые можно использовать вместе с платами LilyPad Arduino.

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

  • Микроконтроллер – ATmega328
  • Рабочее напряжение – 2,7-5,5 вольта
  • Входное напряжение – 2,7-5,5 вольта
  • Цифровые I/O контакты – 9 шт.
  • Цифровые I/O контакты с поддержкой ШИМ – 5 шт.
  • Входные аналоговые контакты – 4 шт.
  • Максимальная сила тока на один I/O контакт – 40 миллиампер
  • Flash-память – 32 Кб (из которых 2 Кб используются загрузчиком)
  • SRAM – 2 Кб
  • EEPROM – 1 Кб
  • Тактовая частота – 8 МГц
  • Диаметр – 36 мм.

Документация

LilyPad Arduino SimpleSnap распространяется по принципу «open-source». Вы можете создать на ее основе собственную плату, используя файлы ниже:

На плате есть переключатель, работающий в разных режимах. Если плата отключена от FTDI-адаптера и питается от встроенной батареи, этот переключатель включает/выключает плату. То есть если он находится в положении ON, микроконтроллер получает питание, и плата работает, а если в OFF, то микроконтроллер питания не получает. Если плата подключена к FTDI-адаптеру, то она включена постоянно: если переключатель в положении ON, микроконтроллер получает питание от батареи, а если в OFF, то от FTDI-адаптера.

Основным источником питания для платы является встроенная литий-полимерная батарея. Кроме того, LilyPad Arduino Simple оснащена чипом MCP73831, предназначенным для зарядки батареи. Если плата подключена к FTDI-соединению, то оно будет заряжать батарею, причем независимо от положения переключателя. Кроме того, во время зарядки батареи будет гореть светодиод, находящийся рядом с переключателем. Когда батарея полностью зарядится, зарядка автоматически прекратится.

Из-за наличия в плате цепи для зарядки батареи к FTDI-коннектору нельзя подключать устройства вроде Bluetooth-модема.

Программирование

Плата LilyPad Arduino SimpleSnap программируется при помощи среды разработки IDE Arduino. Откройте ее и кликните на Инструменты > Плата > LilyPad Arduino (Tools > Board > LilyPad Arduino). Более подробно читайте на ознакомительной странице.

Чип ATmega328 на LilyPad Arduino SimpleSnap идет уже с записанным загрузчиком, который позволяет загружать на плату новый код при помощи IDE Arduino.

У платы LilyPad Arduino SimpleSnap нет USB-коннектора и встроенного адаптера, конвертирующего USB-данные в последовательные данные. Чтобы программировать плату, вам нужно использовать FTDI-совместимый адаптер вроде Arduino USB 2 Serial Micro.

Входные и выходные контакты

У платы LilyPad Arduino SimpleSnap меньше цифровых I/O контактов, чем у LilyPad Arduino Main Board. Их всего 9, а также 1 открытый контакт для +5V постоянного тока и 1 контакт для «земли».

Каждый из 9 цифровых I/O контактов LilyPad Arduino Simple можно использовать и в качестве входного, и в качестве выходного контакта – при помощи функций pinMode(), digitalRead() и digitalWrite(). Они работают на 3,3 вольтах. Каждый контакт может получать/отдавать не более 40 миллиампер и имеет встроенный подтягивающий резистор (по умолчанию отключен) на 20 кОм. Кроме того, некоторые контакты имеют специальные функции:

  • ШИМ: контакты 5, 6, 9, 10 и 11. Поддерживают выдачу 8-битной ШИМ при помощи функции analogWrite().
  • Входные аналоговые контакты: c A2 по A5. Каждый из них можно использовать в качестве цифрового I/O контакта. Кроме того, все они поддерживают 10-битное разрешение (т.е. могут работать с 1024 разными значениями). По умолчанию вольтовый диапазон на этих контактах составляет от «земли» до 5 вольт, но верхнюю границу этого диапазона можно поменять при помощи функции analogReference().

Автоматический (программный) сброс и инициализация загрузчика

Плата LilyPad Arduino SimpleSnap устроена таким образом, что вам необязательно нажимать на кнопку сброса перед загрузкой скетча – сброс выполняется при помощи ПО на компьютере, к которому подключена плата. Впрочем, загрузчик можно по-прежнему инициировать нажатием на кнопку сброса на самой LilyPad Arduino SimpleSnap.

Из-за того, как в LilyPad Arduino SimpleSnap устроена система сброса, лучше позволить IDE Arduino инициировать сброс перед загрузкой скетча. Если IDE Arduino не сумеет сбросить плату, вы всегда сможете запустить загрузчик, нажав на кнопку сброса самостоятельно.

Физические характеристики

LilyPad Arduino SimpleSnap выполнена в виде круга диаметром 50 мм. Толщина печатной платы составляет 0,8 мм, а в местах, где к плате присоединены электронные компоненты – 3 мм.

Стойкость к мытью

Поскольку LilyPad Arduino SimpleSnap имеет встроенную батарею, помыть ее не получится. Если все же помыть ее, это испортит и плату, и батарею. То есть перед мытьем оставшейся части проекта плату лучше снять.

Arduino: выбор платы, подключение и первая программа

    Планы обучения, 20 марта 2019 в 13:35

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

Читать еще:  Dns подставка для ноутбука

Из чего состоит Arduino?

На аппаратном уровне это серия смонтированных плат, мозгом которых являются микроконтроллеры семейства AVR.

Платы имеют на борту всё необходимое для комфортной работы, но их функциональности часто бывает недостаточно. Чтобы сделать свой проект более интерактивным, можно использовать различные модули и платы расширений, совместимые с платформой Arduino. Сюда входят датчики (температуры, освещения, влаги, газа/дыма, атмосферного давления), устройства ввода (клавиатуры, джойстики, сенсорные панели) и вывода (сегментные индикаторы, LCD/TFT дисплеи, светодиодные матрицы).

На программном уровне платформа Arduino представляет собой бесплатную среду разработки Arduino IDE. Микроконтроллеры надо программировать на языке C++, с некоторыми отличиями и облегчениями, созданными для быстрой адаптации начинающих. Компиляцию программного кода и прошивку микроконтроллера среда разработки берёт на себя.

Существует также s4a.cat — сервис, базирующийся на Scratch, позволяющий более наглядно вести разработку на Arduino. Он подойдёт для обучения детей, а также если вы разово хотите создать простое устройство без изучения языка программирования Arduino и различных документаций. Для остальных же случаев лучше придерживаться традиционного процесса разработки.

Нужно ли уметь паять?

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

Макетная плата на 400 отверстий (имеются шины питания по бокам). Источник

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

Набор для изучения Arduino. Источник

Какие бывают платы

По производителю

Существуют как официальные версии плат Arduino, так и платы от сторонних производителей. Оригинальные платы отличаются высоким качеством продукта, но и цена тоже выше. Они производятся только в Италии и США, о чём свидетельствует надпись на самой плате.

На примере самой популярной платы Arduino UNO:

    Оригинальная плата. Поставляется только в фирменной коробке, имеет логотип компании, на портах платы — маркировка. Цена от производителя 20 €.

Оригинальная плата Arduino UNO. Источник

Плата Arduino UNO от стороннего производителя. Источник

По назначению

У платы UNO достаточно портов для реализации большинства проектов. Однако иногда возможностей UNO может быть недостаточно, а иногда — избыточно. По этой причине как оригинальный, так и сторонние производители выпускают большое количество плат, различающихся характеристиками микроконтроллера, количеством портов и функциональным назначением.

Различные платы Arduino. Источник

Самые популярные из них:

  • Arduino Nano — различие с UNO только в конструктивном исполнении. Nano меньше.
  • Arduino Mega — плата на базе мощного микроконтроллера. Имеет большое количество портов.
  • Arduino Micro — имеет встроенную поддержку USB-соединения, а потому может использоваться как HID-устройство (клавиатура, мышь, MIDI-устройство).
  • Arduino Ethernet — имеет возможность подключения к сети через Ethernet-провод. На плате также расположен слот для microSD карточки.
  • Arduino Mini — по характеристикам немного уступает UNO. Преимуществом платы является её миниатюрное исполнение.
  • Arduino Due — плата на базе 32-разрядного ARM микроконтроллера. Имеет преимущество в производительности по сравнению с остальными.
  • Arduino LilyPad — форм-фактор позволяет использовать плату в предметах одежды и текстиля.
  • Arduino Yún — «нужно было ставить линукс…». Имеет поддержку дистрибутива Linux, встроенную поддержку Ethernet и Wi-Fi, слот для microSD. Как и Micro, имеет встроенную поддержку USB-соединения.

Установка ПО

После выбора необходимой платы нужно установить бесплатную среду разработки Arduino IDE, которую можно найти на официальном сайте, а также, по необходимости, драйвер CH340.

Недавно открылась облачная платформа Arduino Create, которая покрывает большинство этапов разработки (от идеи до сборки). Вам не нужно ничего устанавливать на свой компьютер, всё необходимое платформа берёт на себя. В первую очередь — онлайн редактор кода.

В Arduino Create имеется доступ к обучающим материалам, проектам. Вы сможете общаться с профессионалами и помогать новичкам.

Среда разработки Arduino IDE

Особенности программирования на платформе Arduino

Программный код для Arduino принято называть скетчами (англ. sketches). У скетчей есть два основных метода: setup() и loop() . Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод loop() вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.

Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).

Любой пин работает с двумя логическими состояниями: LOW и HIGH , что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный АЦП, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме ШИМ (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.

Основные функции

Для базовой работы с платой в библиотеке Arduino есть следующие функции:

  • pinMode(PIN, type) — указывает назначение конкретного пина PIN (значение type INPUT — вход, OUTPUT — выход);
  • digitalWrite(PIN, state) — устанавливает логическое состояние на выходе PIN ( state LOW — 0, HIGH — 1);
  • digitalRead(PIN) — возвращает логическое состояние со входа PIN ( LOW — 0, HIGH — 1);
  • analogWrite(PIN, state) — устанавливает аналоговое напряжение на выходе PIN ( state в пределах от 0 до 255);
  • analogRead(PIN) — возвращает значение аналогового уровня сигнала со входа PIN (пределы зависят от разрядности встроенного АЦП. Обычно разрядность составляет 10 бит, следовательно, возвращаемое значение лежит в пределах от 0 до 1023);
  • delay(ms) — приостанавливает исполнение скетча на заданное количество миллисекунд;
  • millis() — возвращает количество миллисекунд после момента запуска микроконтроллера.

В остальном процесс программирования на Arduino такой же, как на стандартном C++.

Пишем первую программу

Вместо всем привычных Hello World’ов в Arduino принято запускать скетч Blink, который можно найти в ФайлПримеры01.BasicsBlink. Там же можно найти множество других учебных скетчей на разные темы.

Почти на всех платах размещён светодиод, номер пина которого содержится в переменной LED_BUILTIN . Его можно использовать в отладочных целях. В следующем скетче будет рассмотрен пример управления таким светодиодом.

Рассмотрим скетч Blink:

После написания необходимо «залить» скетч на микроконтроллер. Как уже говорилось, платформа Arduino берёт весь процесс прошивки микроконтроллера на себя — вам лишь необходимо подключить плату к компьютеру.

Перед прошивкой микроконтроллера нужно выбрать вашу плату из списка в IDE. Делается это во вкладке ИнструментыПлата. Большинство существующих плат уже там есть, но при необходимости можно добавлять другие через Менеджер Плат.

После этого нужно подключить плату Arduino к любому USB-порту вашего компьютера и выбрать соответствующий порт во вкладке ИнструментыПорт.

Теперь можно приступать к прошивке микроконтроллера. Для этого достаточно нажать кнопку Загрузка, либо зайти на вкладку СкетчЗагрузка. После нажатия начнётся компиляция кода, и в случае отсутствия ошибок компиляции начнётся прошивка микроконтроллера. Если все этапы выполнены правильно, на плате замигает светодиод с периодом и интервалом в 1 сек.

Читать еще:  Jump starter для автомобиля какой лучше

Обмен данными с компьютером

У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю — никаких дополнительных «плюшек» не требуется. Нам нужен класс Serial , который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе Serial существуют небезызвестные методы print() и println() . Рассмотрим следующий скетч:

В Arduino IDE есть Монитор порта. Запустить его можно через ИнструментыМонитор порта. После его открытия убедитесь, что Монитор работает на той же скорости, которую вы указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка « T for Tproger ». Обмен данными с компьютером можно использовать для отладки вашего устройства.

Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:

Прошиваем микроконтроллер и возвращаемся в Монитор порта. Вводим в верхнее поле 1 и нажимаем Отправить. После этого на плате должен загореться светодиод. Выключаем светодиод, отправив с Монитора 0 . Если же отправить символ T , в ответ мы должны получить строку « proger ».

Таким способом можно пересылать информацию с компьютера на Arduino и обратно. Подобным образом можно реализовать связь между двумя Arduino.

А как подключать модули?

Для работы с датчиками и модулями их изготовители создают специальные библиотеки. Они служат для простой интеграции модулей в вашу систему. Подключение библиотеки возможно с zip файла или с помощью Менеджера Библиотек.

Однако большое количество датчиков являются бинарными, т. е. считывать информацию с них можно простой функцией digitalRead() .

Осваиваем ATTiny85 и Lilypad, DigiSpark в частности

После изучения платформы Arduino на базе Uno и обзора множества носимых устройств, захотелось освоить мир компактных контроллеров и модулей, которым не нужны блок питания, макетка, куча проводов и которые выглядят как настоящие миниатюрные гаджеты.

Одно время была популярна платформа Lilypad, на которой собирались всякие носимые устройства. Сейчас хайп поутих, но все же китайцы наклонировали аналогичных устройств и успешно их продают за пару баксов. В качестве контроллера обычно выступает ATTiny85, но есть и модификации, а выглядит это симпатично:

Здесь все как обычно — чем больше пинов вам нужно, тем дороже и габаритнее это получится. На этой платке есть стабилизатор, позволяющий запитаться от источника до 20В. Стандартное питание от 2.5В до 5В (через USB). Сердцем устройства является 8-ми битный контроллер ATTiny85.

Этот малыш может делать очень многое, программируется из той же Arduino IDE, что и старшие братья, посредством USB-кабеля, предоставляет достаточно памяти, чтобы реализовать полезную программу, подробнее.

Для программирования этой платы вам потребуется: Arduino IDE, драйверы Digistump и небольшая настройка IDE, все описано здесь. У меня на Windows 8 драйверы не завелись (хотя пишут, что работать должно), я в итоге работал на Windows 10.

Есть интересная особенность — подключать плату к USB нужно только после того, как среда об этом попросила — в подвале/консоли Arduino IDE будет об этом сообщение. В это время среда автоматически ищет USB-порт, к которому подключена плата. С одной стороны это удобно, но с другой, приходится отключать остальные устройства из USB (у меня там была мышь), иначе не прошьет. Для повторной прошивки нужно отключить контроллер от USB и подключить снова, когда попросит среда… В целом это терпимо, если сравнивать с другими методами прошивки ATTiny85.

У контроллера есть три аналоговых входа и два цифровых выхода, включая ШИМ. Для разработки несложных устройств этого достаточно: плавно помигать светодиодами, попищать пьезодинамиком, снять показания акселерометра, фотоэлемента и т.п.

Все эти функции выполняются стандартными командами для Arduino, что конечно очень упрощает программирование. Об этом чуть позже.

Поскольку платка маленькая, то сразу захотелось сделать какой-то компактный автономный гаджет, который можно запитать батарейкой CR2032 (

200 мАч). Но как оказалось, платка потребляет

10 мА и батарейки не хватит даже на один день работы. “Шеф, все пропало…”

Стал разбираться в чем дело и выяснилось вот что.

  1. Контроллер умеет “засыпать”, то есть переходить в режим низкого энергопотребления. Режимов этих несколько, читайте даташит. Мне подошел режим “усыпления” с использованием сторожевого (watchdog) таймера. Контроллер просыпается раз в 8 секунд (можно и чаще) и накручивает счетчик, по которому можно организовать сон на любое по длительности время. Более того, на время сна нужно отключить периферию (АЦП в частности) и тогда потребление снизится до 4мА. Однако, все еще многовато.
  2. На плате установлен не очень эффективный стабилизатор напряжения. Если его удалить, то потребление платы снизится еще на 3 мА. Выпаивается он довольно легко.
  3. Еще, при включении платы можно заметить, что загорается светодиод. Пользы от него почти 0, так что смело отковыриваем и его, а в итоге получаем желанное потребление в 200 мкА. В десятке статей я читал, что кому-то удавалось снизить потребление до 3 мкА, но… больше ничего мне сделать не удалось — все что можно было отключить я отключил. В любом случае, это хороший результат и такой уровень потребления вполне приемлем.

Есть одна тонкость с отключением периферии перед режимом “сна”, об этом много пишут, но мало кто говорит как правильно это делать. У всех стандартный код, который у меня не работал. Возможно, проблема кроется в особенностях конкретной платы или реплики микроконтроллера. Перед отключением АЦП необходимо обнулить напряжение на выходах контроллера. Проще простого, однако, стандартные советы не работали. АЦП полностью не отключался. Методом проб был найден работающий способ отключения АЦП, пожалуйста, учтите это в своих программах.

Вот пример программной заготовки, которая погружает контроллер в “сон”, доводит потребление до 200 мкА и больше ничего полезного не делает, но об этом в других статьях.

Необычным образом дело обстоит и с отладкой программы. На этой платке нет стандартного вывода в последовательный порт, которым используется Arduino IDE. Разработчики пошли другим путем.

Есть готовый модуль , который позволяет организовать вывод отладочной информации в любое активное окно, например, в обычный Блокнот.

Например, чтобы вывести значение какого-то параметра, можно использовать такую функцию:

Теперь, сразу после заливки программы в контроллер, достаточно сделать активным окно Блокнота и в него польются значения, которые выводит программа. Дешево и сердито.

Было довольно интересно, но в следующий раз, я не хотел бы тратить время на все эти мелочи, чего и вам желаю.

Присоединяйтесь к сообществу разработчиков открытой инфраструктуры “умного дома”

Ссылка на основную публикацию
Adblock
detector