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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Рис. 1. Плата Arduino Leonardo
Рис. 1. Плата Arduino Leonardo

Arduino Leonardo[1]

Arduino Leonardo – это микроконтроллерная плата на базе чипа ATmega32u4 (даташит). У нее 20 цифровых I/O контактов (из которых 7 можно использовать для выдачи ШИМ, а 12 – как входные аналоговые контакты), кварцевый генератор на 16 МГц, соединение типа micro USB, разъем для питания, ICSP-гребешок и кнопка сброса. Плата Leonardo оснащена всем необходимым для поддержки микроконтроллера; чтобы начать, просто подключите ее к компьютеру при помощи USB-кабеля или запитайте от адаптера, конвертирующего переменный ток в постоянный, или от батареи.

Leonardo отличается ото всех моделей-предшественниц тем, что ее чип ATmega32u4 имеет встроенный функционал для USB-коммуникации, что устраняет необходимость во втором процессоре. Это позволяет Leonardo отображаться на компьютере как мышь или клавиатура – вдобавок к виртуальному (CDC) последовательному/COM порту. Это влияет на поведение платы и в другом, и подробнее об этом можно прочесть на этой странице.

С чего начать

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

Нужна помощь?

  • Здесь можно почитать о ПО
  • Здесь – о проектах
  • Здесь можно запросить клиентскую поддержку о продуктах

Идеи для вдохновения

Руководства по созданию проектов на базе Arduino Leonardo можно найти на Arduino Project Hub – образовательной платформе официального сайта Arduino. Вот несколько проектов оттуда:

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

  • Микроконтроллер – ATmega32u4
  • Рабочее напряжение – 5 вольт
  • Входное напряжение (рекомендуемое) – 7-12 вольт
  • Входное напряжение (лимит) – 6-20 вольт
  • Цифровые I/O контакты – 20 шт.
  • Цифровые I/O контакты с поддержкой ШИМ – 7 шт.
  • Входные аналоговые каналы – 12 шт.
  • Максимальная сила тока на один I/O контакт – 40 миллиампер
  • Максимальная сила тока на контакт 3.3V – 50 миллиампер
  • Flash-память – 32 Кб (ATmega32u4), из которых 4 Кб используются для загрузчика
  • SRAM – 2,5 Кб (ATmega32u4)
  • EEPROM – 1 Кб (ATmega32u4)
  • Тактовая частота – 16 МГц
  • Длина – 68,6 мм.
  • Ширина – 53,3 мм.
  • Вес – 20 грамм

Распиновка

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

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

Питание

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

Внешнее (не USB) питание может идти или от адаптера, конвертирующего переменный ток в постоянный, или от батареи. Адаптер подключается к плате при помощи 2,1-миллиаметрового коннектора с центральным положительным контактом, или от разъема для питания на плате. Провода от батареи нужно подключить к контактам Gnd и Vin на коннекторе POWER.

Контакты для питания на Arduino Leonardo:

  • VIN – входное напряжение при использовании внешнего источника питания (в отличие от 5 вольт, идущих от USB-соединения или другого отрегулированного источника питания). На этот контакт можно, с одной стороны, подавать питание, а с другой, брать его оттуда, если напряжение подается на разъем для питания.
  • 5V – регулированный источник питания, используемый для питания микроконтроллера и других компонентов платы. Оно может идти или от контакта VIN через встроенный регулятор, или подаваться через USB или другой регулированный источник 5-вольтового напряжения.
  • 3V3 – напряжение 3,3 вольта, генерируемое встроенным регулятором. Максимальная сила тока, которую можно тянуть отсюда – 50 миллиампер.
  • GND – контакты для «земли».
  • IOREF – напряжение, на котором работают I/O контакты платы (т.е. VCC для платы). на Leonardo это 5 вольт.

Память

Чип ATmega32u4 имеет 32 Кб памяти для хранения скетчей (из них 4 Кб используются загрузчиком). Кроме того, он оснащен 2,5 Кб памяти типа SRAM и 1 Кб памяти типа EEPROM.

Запись и считывание с памяти EEPROM осуществляется при помощи библиотеки EEPROM.

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

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

  • Последовательная передача данных: 0-ой (RX) и 1-ый (TX) контакты. Используются для получения (RX) и передачи (TX) последовательных (TTL) данных при помощи чипа ATmega32u4. Обратите внимание, что для использования коммуникации типа USB (CDC) в Leonardo используется класс Serial, а для коммуникации типа TTL, которая осуществляется на 0-ом и 1-ом контактах, используется класс Serial1.
  • Интерфейс TWI: 2-ой (SDA) и 3-ий (SCL) контакты. Коммуникация типа TWI, осуществляемая при помощи библиотеки Wire.
  • Внешние прерывания: 3-ий (прерывание 0), 2-ой (прерывание 1), 0-ой (прерывание 2), 1-ый (прерывание 3) и 7-ой (прерывание 4) контакты. Эти контакты можно настроить на запуск прерывания при переходе в значение LOW, возрастающем/ниспадающем фронте импульса или изменении значения. Более подробно читайте в статье о функции attachInterrupt().
  • ШИМ: 3-ий, 5-ый, 6-ой, 9-ый, 10-ый, 11-ый и 13-ый контакты. Обеспечивают выдачу ШИМ при помощи функции analogWrite().
  • Интерфейс SPI: на гребешке ICSP. Эти контакты осуществляют коммуникацию типа SPI при помощи библиотеки SPI. Обратите внимание, что контакты SPI не подключены ни к одному I/O контакту, как это сделано на Uno, и доступны только на ICSP-коннекторе. Это значит, что если у вас есть «шилд», использующий интерфейс SPI, но НЕ ИМЕЮЩИЙ 6-контактного ICSP-коннектора, который можно было бы подключить к 6-контактному ICSP-гребешку на Leonardo, то этот «шилд» работать не будет.
  • Встроенный светодиод: 13-ый контакт. Если подать на этот контакт значение HIGH, светодиод включится, а если LOW, то выключится.
  • Входные аналоговые контакты: с A0 по A5 (там же, где у Uno), а также с A6 по A11 (на 4-ом, 6-ом, 8-ом, 9-ом, 10-ом и 12-ом контактах). Плата Leonardo имеет 12 входных аналоговых контактов, названных с A0 по A11, и каждый из них можно также использовать в качестве цифровых I/O контактов. Каждый из этих контактов поддерживает 10-битное разрешение (т.к. позволяет оперировать 1024 разными значениями). По умолчанию диапазон напряжения на этих контактах составляет от 5 вольт до «земли», однако его верхнюю границу можно поменять при помощи контакта AREF и функции analogReference().

На Leonardo есть и другие специализированные контакты:

  • AREF – эталонное напряжение для входных аналоговых контактов. Используется вместе с функцией analogReference().
  • Reset – сброс микроконтроллера. Чтобы сбросить микроконтроллер, на этот контакт нужно подать значение LOW. Как правило, используется, чтобы добавить на «шилд» кнопку Reset, потому что подключение «шилда» блокирует кнопку сброса на самой плате.

Смотрите также распиновку между контактами Arduino и портами чипа ATmega32u4.

Коммуникация

Плата Leonardo имеет несколько средств для коммуникации с компьютером, другими Arduino или другими микроконтроллерами. Во-первых, чип ATmega32u4 поддерживает последовательную передачу типа UART TTL (5-вольтовую), которая доступна на 0-ом и 1-ом контактах. Во-вторых, ATmega32u4 поддерживает последовательную (CDC) коммуникацию через USB, благодаря чему ПО на компьютере видит его как виртуальный COM-порт. Кроме того, ATmega32u4 функционирует в качестве устройства типа USB 2.0 с высокой пропускной способностью (full-speed), используя для этого стандартные USB/COM драйверы. На Windows понадобится файла формата *.inf.

В IDE Arduino есть монитор порта, позволяющий отправлять простые текстовые данные – и на плату Arduino, и от нее. Также на Leonardo есть светодиоды RX и TX, которые загораются при передаче данных по USB-соединению с компьютером (но не по последовательному порту на 0-ом и 1-ом контактах). Благодаря библиотеке SoftwareSerial для последовательной коммуникации можно использовать любой цифровой контакт Leonardo.

Кроме того, Leonardo поддерживает коммуникацию типа TWI (I2C) и SPI. Для упрощения работы с интерфейсом TWI в IDE Arduino есть библиотека Wire; подробней читайте в документации. Аналогичную функцию для интерфейса SPI выполняет библиотека SPI. Плата Leonardo отображается на компьютере как обычная мышь или клавиатура, и ее можно запрограммировать, чтобы управлять этими устройствами при помощи библиотек Keyboard и Mouse.

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

Плата Leonardo программируется при помощи IDE Arduino. Откройте ее, кликните по Инструменты > Плата > Arduino Leonardo (Tools > Board > Arduino Leonardo); тем самым вы выберете тип микроконтроллера, с которым будет работать IDE Arduino. О языке программирования Arduino читайте тут, а руководства смотрите тут. На чип ATmega32u4, которым оснащается Arduino Leonardo, уже записан загрузчик, который позволяет загружать на плату новый код без использования внешнего аппаратного программатора. Он коммуницирует через протокол AVR109. Вы, впрочем, можете программировать микроконтроллер в обход загрузчика – через ICSP-гребешок и программатор Arduino ISP (или похожее устройство). Более подробно читайте в этих инструкциях.

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

Плата Leonardo устроена так, что вам не обязательно нажимать кнопку сброса каждый раз перед загрузкой нового скетча – сброс выполняется при помощи ПО, запущенного на подключенном компьютере. Сброс активируется, когда виртуальный (CDC) последовательный/COM порт Leonardo открывается на скорости 1200 бод, а затем закрывается. В результате процессор сбрасывается, разрывая USB-соединение с компьютером (это значит, что виртуальный последовательный/COM порт исчезнет). После сброса процессора запускается загрузчик и остается активным в течение примерно 8 секунд. Загрузчик также можно инициировать, нажав кнопку сброса на Leonardo. Обратите внимание, что если на плату уже загружен скетч, то при запуске она, минуя загрузчик, перейдет сразу к скетчу.

Таким образом, система сброса в Leonardo устроена специфично, поэтому лучше позволить IDE Arduino инициировать сброс перед загрузкой скетча – особенно если вы, работая с другими платами, привыкли делать это сами. Если у IDE Arduino не получится выполнить сброс, вы всегда можете запустить загрузчик, нажав кнопку сброса на плате вручную.

Защита USB-порта от перегрузок

Плата Leonardo оснащена самовосстанавливающимся предохранителем, который защищает USB-порты вашего компьютера от коротких замыканий и перегрузок. Хотя у многих компьютеров есть собственная защита от подобных неприятностей, предохранитель добавляет к ней еще один слой. Если на USB-порт будет подано более 500 миллиампер, этот предохранитель автоматически прервет соединение, пока короткое замыкание или перегрузка не будут устранены.

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

Максимальная длина и ширина печатной платы Arduino Leonardo составляют 68,58 мм и 53,34 мм, однако USB-коннектор и разъем для питания могут немного выходить за эти границы. Кроме того, на плате есть 4 отверстия, позволяющие прикрепить ее к какой-нибудь поверхности или корпусу. Обратите внимание, что расстояние между 7-ым и 8-ым контактами составляет 4,06 мм, а между всеми остальными – 2,54 мм.

См.также

Внешние ссылки