Arduino:Продукты/Продукты Arduino/Плата Arduino Leonardo: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
 
(не показано 14 промежуточных версий 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


[[File:Arduino Leonardo1.jpg|center]]
[[File:Arduino Leonardo1.jpg|center|frame|'''Рис. 1.''' Плата [[Arduino Leonardo]]|alt=Рис. 1. Плата Arduino Leonardo]]


=Arduino Leonardo<ref>[https://www.arduino.cc/en/Main/ArduinoBoardLeonardo www.arduino.cc - Arduino Leonardo]</ref>=
=Arduino Leonardo<ref>[https://www.arduino.cc/en/Main/ArduinoBoardLeonardo www.arduino.cc - Arduino Leonardo]</ref>=


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


'''Leonardo''' отличается ото всех моделей-предшественниц тем, что ее чип '''ATmega32u4''' имеет встроенный функционал для '''USB'''-коммуникации, что устраняет необходимость во втором процессоре. Это позволяет '''Leonardo''' отображаться на компьютере как мышь или клавиатура – вдобавок к виртуальному ('''CDC''') последовательному/'''COM''' порту. Это влияет на поведение платы и в другом, и подробнее об этом можно прочесть на [[Arduino:Знакомство_с_Arduino/Знакомство_с _Arduino_Leonardo_и_Micro|этой странице]].
[[Leonardo]] отличается ото всех моделей-предшественниц тем, что ее чип [[ATmega32u4]] имеет встроенный функционал для USB-коммуникации, что устраняет необходимость во втором процессоре. Это позволяет [[Leonardo]] отображаться на компьютере как мышь или клавиатура – вдобавок к виртуальному ([[CDC]]) последовательному/[[COM порт]]у. Это влияет на поведение платы и в другом, и подробнее об этом можно прочесть на [[Arduino:Знакомство_с_Arduino/Знакомство_с _Arduino_Leonardo_и_Micro|этой странице]].


==С чего начать==
==С чего начать==


[[Arduino:Знакомство_с_Arduino/Знакомство_с _Arduino_Leonardo_и_Micro|Здесь]] можно найти всю необходимую информацию о том, как настроить плату, использовать '''IDE Arduino''' и т.д. Информацию и примеры об использовании интерфейса '''WiFi''' читайте в статье о [[Arduino:Библиотеки/WiFi|библиотеке WiFi]].
[[Arduino:Знакомство_с_Arduino/Знакомство_с _Arduino_Leonardo_и_Micro|Здесь]] можно найти всю необходимую информацию о том, как настроить плату, использовать [[IDE Arduino]] и т.д. Информацию и примеры об использовании интерфейса [[WiFi]] читайте в статье о [[Arduino:Библиотеки/WiFi|библиотеке WiFi]].


Нужна помощь?
Нужна помощь?
* [https://forum.arduino.cc/index.php?board=63.0 Здесь] можно почитать о '''ПО'''
* [https://forum.arduino.cc/index.php?board=63.0 Здесь] можно почитать о ПО
* [https://forum.arduino.cc/index.php?board=3.0 Здесь] – о проектах
* [https://forum.arduino.cc/index.php?board=3.0 Здесь] – о проектах
* [https://store.arduino.cc/index.php?main_page=contact_us&language=en Здесь] можно запросить клиентскую поддержку о продуктах
* [https://store.arduino.cc/index.php?main_page=contact_us&language=en Здесь] можно запросить клиентскую поддержку о продуктах
Строка 22: Строка 22:
==Идеи для вдохновения==
==Идеи для вдохновения==


Руководства по созданию проектов на базе '''Arduino Leonardo''' можно найти на [https://create.arduino.cc/projecthub/products/arduino-leonardo Arduino Project Hub] – образовательной платформе официального сайта '''Arduino'''. Вот несколько проектов оттуда:
Руководства по созданию проектов на базе [[Arduino Leonardo]] можно найти на [https://create.arduino.cc/projecthub/products/arduino-leonardo Arduino Project Hub] – образовательной платформе официального сайта [[Arduino]]. Вот несколько проектов оттуда:


<gallery mode="packed-overlay" widths=200px heights=200px>
<gallery mode="packed-overlay" widths=200px heights=200px>
Строка 33: Строка 33:
==Технические характеристики==
==Технические характеристики==


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


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


'''Плата Arduino Leonardo''' – это оборудование, изготовленное по принципу '''«open-source»'''. Вы можете создать на ее основе собственное устройство, используя файлы ниже:
Плата [[Arduino Leonardo]] – это оборудование, изготовленное по принципу ''«open-source»''. Вы можете создать на ее основе собственное устройство, используя файлы ниже:
* [[Media:arduino-leonardo-reference-design_3b.zip|Eagle-файлы в ZIP-архиве]]
* [[Media:arduino-leonardo-reference-design_3b.zip|Eagle-файлы в ZIP-архиве]]
* [[Media:arduino-leonardo-schematic_3b.pdf|Схема в PDF]]
* [[Media:arduino-leonardo-schematic_3b.pdf|Схема в PDF]]
Строка 58: Строка 62:
==Питание==
==Питание==


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


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


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


==Память ==
==Память ==


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


Запись и считывание с памяти '''EEPROM''' осуществляется при помощи [[Arduino:Библиотеки/EEPROM|библиотеки EEPROM]].
Запись и считывание с памяти [[EEPROM]] осуществляется при помощи [[Arduino:Библиотеки/EEPROM|библиотеки EEPROM]].


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


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


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


Смотрите также [[Media:arduinoleonardopinmappingtable.png|распиновку между контактами Arduino]] и [[Media:atmega32u4-arduinopinmapping.PNG|портами чипа ATmega32u4]].
Смотрите также [[Media:arduinoleonardopinmappingtable.png|распиновку между контактами Arduino]] и [[Media:atmega32u4-arduinopinmapping.PNG|портами чипа ATmega32u4]].
Строка 94: Строка 98:
==Коммуникация==
==Коммуникация==


'''Плата Leonardo''' имеет несколько средств для коммуникации с компьютером, другими '''Arduino''' или другими микроконтроллерами. Во-первых, чип '''ATmega32u4''' поддерживает последовательную передачу типа '''UART TTL (5-вольтовую)''', которая доступна на '''0-ом''' и '''1-ом''' контактах. Во-вторых, '''ATmega32u4''' поддерживает последовательную ('''CDC''') коммуникацию через '''USB''', благодаря чему '''ПО''' на компьютере видит его как виртуальный '''COM'''-порт. Кроме того, '''ATmega32u4''' функционирует в качестве устройства типа '''USB 2.0''' с высокой пропускной способностью ('''full-speed'''), используя для этого стандартные '''USB/COM''' драйверы. На '''Windows''' понадобится файла формата '''*.inf'''.
[[Плата 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-ом''' контактах). Благодаря [[Arduino:Библиотеки/SoftwareSerial|библиотеке SoftwareSerial]] для последовательной коммуникации можно использовать любой цифровой контакт '''Leonardo'''.
В [[IDE Arduino]] есть монитор порта, позволяющий отправлять простые текстовые данные – и на плату [[Arduino]], и от нее. Также на [[Leonardo]] есть светодиоды RX и TX, которые загораются при передаче данных по USB-соединению с [[компьютер]]ом (но не по последовательному порту на 0-ом и 1-ом контактах). Благодаря [[Arduino:Библиотеки/SoftwareSerial|библиотеке SoftwareSerial]] для последовательной коммуникации можно использовать любой цифровой контакт [[Leonardo]].


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


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


'''Плата Leonardo''' программируется при помощи [https://www.arduino.cc/en/Main/Software IDE Arduino]. Откройте ее, кликните по '''Инструменты > Плата > Arduino Leonardo (Tools > Board > Arduino Leonardo)'''; тем самым вы выберете тип микроконтроллера, с которым будет работать '''IDE Arduino'''. О языке программирования '''Arduino''' читайте [[Arduino:Справочник_языка_Arduino|тут]], а руководства смотрите [https://www.arduino.cc/en/Tutorial/HomePage тут]. На чип '''ATmega32u4''', которым оснащается '''Arduino Leonardo''', уже записан загрузчик, который позволяет загружать на плату новый код без использования внешнего аппаратного программатора. Он коммуницирует через протокол '''AVR109'''. Вы, впрочем, можете программировать микроконтроллер в обход загрузчика – через '''ICSP'''-гребешок и программатор [[Arduino:Продукты/Продукты_Arduino/Arduino_ISP|Arduino ISP]] (или похожее устройство). Более подробно читайте в [https://www.arduino.cc/en/Hacking/Programmer этих инструкциях].
[[Плата Leonardo]] программируется при помощи [https://www.arduino.cc/en/Main/Software IDE Arduino]. Откройте ее, кликните по Инструменты > Плата > Arduino Leonardo (Tools > Board > Arduino Leonardo); тем самым вы выберете тип [[микроконтроллер]]а, с которым будет работать [[IDE Arduino]]. О языке программирования [[Arduino]] читайте [[Arduino:Справочник_языка_Arduino|тут]], а руководства смотрите [https://www.arduino.cc/en/Tutorial/HomePage тут]. На чип [[ATmega32u4]], которым оснащается [[Arduino Leonardo]], уже записан загрузчик, который позволяет загружать на плату новый код без использования внешнего аппаратного программатора. Он коммуницирует через протокол [[AVR109]]. Вы, впрочем, можете программировать [[микроконтроллер]] в обход загрузчика – через [[ICSP-гребешок]] и программатор [[Arduino:Продукты/Продукты_Arduino/Arduino_ISP|Arduino ISP]] (или похожее устройство). Более подробно читайте в [https://www.arduino.cc/en/Hacking/Programmer этих инструкциях].


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


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


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


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


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


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


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


=См.также=
=См.также=
Строка 124: Строка 128:
<references />
<references />


{{Навигационная таблица/Arduino продукты}}
{{Навигационная таблица/Портал/Arduino}}
{{SEO
 
|Заголовок статьи=Arduino Leonardo
[[Категория:Продукты Arduino]]
|Ключевые слова=Arduino Leonardo, arduino leonardo, фквгштщ дущтфквщ, arduinoleonardo, leonardo, описание arduino leonardo
[[Категория:Arduino продукты]]
|Описание статьи=Arduino Leonardo – это микроконтроллерная плата на базе чипа ATmega32u4. У нее 20 цифровых I/O контактов (из которых 7 можно использовать для выдачи ШИМ, а 12 – как входные аналоговые контакты), кварцевый генератор на 16 МГц, соединение типа micro USB, разъем для питания, ICSP-гребешок и кнопка сброса. Плата Leonardo оснащена всем необходимым для поддержки микроконтроллера; чтобы начать, просто подключите ее к компьютеру при помощи USB-кабеля или запитайте от адаптера, конвертирующего переменный ток в постоянный, или от батареи.
[[Категория:Плата Arduino]]
|Изображение статьи для Open Graph=http://wikihandbk.com/ruwiki/images/c/c4/Arduino_Leonardo1.jpg
|Адрес страницы для schemaNewsArticle=<nowiki>http://wikihandbk.com/wiki/Arduino:Продукты/Продукты Arduino/Плата Arduino Leonardo</nowiki>
|Изображение статьи для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/c/c4/Arduino_Leonardo1.jpg</nowiki>
|Высота изображения статьи для schemaNewsArticle=500
|Ширина изображения статьи для schemaNewsArticle=375
|Дата публикации для schemaNewsArticle=2016-11-20
|Автор=Мякишев Е.А.
|Издатель=myagkij
|Логотип издателя для schemaNewsArticle=<nowiki>http://wikihandbk.com/ruwiki/images/6/61/Tech_geek_logo_1x.jpg</nowiki>
|Ширина логотипа издателя для schemaNewsArticle=60
|Высота логотипа издателя для schemaNewsArticle=45
}}

Текущая версия от 22:20, 21 октября 2023

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


Рис. 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 мм.

См.также

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