сравнение плат – обзор 2022 года от Суперайс
В 2003 году был создан первый прототип устройства. Он лишь отдаленно напоминал современные платы микроконтроллеров. Устройство было названо в честь короля Ардуина, итальянским конструктором Массимо Банци. Развиваясь и совершенствуясь, «Arduino» быстро стало брендом аппаратно-программных средств, с помощью которых можно автоматизировать несложные системы.
В основе аппаратной платформы «Ардуино» лежит программируемый контроллер ввода и вывода. Его достоинством является – универсальность, модульность и не высокая цена. Выражаясь другими словами, «Arduino» – это миникомпьютер, который можно запрограммировать для выполнения определенных действий.
Материал обновлён 07.11.2022
Время чтения: 16 минут
В этой статье рассмотрим:
- Общие сведения
- Микроконтроллер
- «Принцип бутерброда»
- Интерфейсы передачи данных
- Преимущества платформы
- Сравнение различных плат
- Arduino UNO vs Mega
- Arduino Due
- Arduino Nano vs Pro mini
- Leonardo
- Arduino-совместимые платы
- Специализированные Arduino-платы
- Микроконтроллеры ESP
- Порядок работы с платой Arduino. Первые шаги
- Подключение
- Программирование
- Документация
- Заключение: какую плату Arduino выбрать
- Сравнение плат Arduino в таблице
Сравниваем контроллеры на базе Ардуино, подключаем и программируем
Arduino открывает широкие возможности по автоматизации различных устройств и процессов, также он идеален для всех тех, кто увлечен робототехникой и электроникой. При этом пользователю не обязательно быть программистом и обладать специальными знаниями, достаточно иметь желание и творческую идею. С помощью этой аппаратной платформы можно автоматизировать как элементарные процессы, так и создать сложные системы управления.
Микроконтроллер Arduino UNO.Общие сведения
Микроконтроллер
В основе любой платы лежит микроконтроллер (МК). Он содержит в себе процессор, оперативную (ОЗУ) и энергонезависимую памяти (ПЗУ), а также снабжен модулями, осуществляющими обмен аналоговыми и цифровыми сигналами. Такие характеристики позволяют создавать компактные одноплатные устройства – микрокомпьютеры. Наличие множества контактов ввода/вывода позволяет легко подключать к плате самые разные устройства и механизмы: сенсоры, датчики, моторы и модули управления и обмена данными.
Arduino Nano, распиновка.Большинство моделей конструируется на базе чипов ATmega. В первую очередь это связано с их невысокой ценой и невысокой производительностью, но достаточной для большинства проектов. Наибольшее распространение получили микроконтроллеры: ATMEGA328P, ATMEGA168P и ATMEGA2560.
Однако если требуется обработки большого массива данных или работа с графической информацией, в этом случае требуется большая производительность. Для таких проектов требуются платы с процессорами семейства Cortex-3М (AT91SAM3X8EA) или микроконтроллеры серии ESP.
«Принцип бутерброда»
Для подключения внешних устройств используются штыревые разъемы. При этом все платы, одного модельного ряда, имеют стандартную последовательность расположения контактов, это позволяет создавать универсальные модули для упрощения сборки проектов. Фактически модули насаживаются друг на друга как в бутерброде. Такое свойство (модульность) является одним из основных преимуществ.
Шилд расширения для подключения TFT экрана.Интерфейсы передачи данных
Для обмена данными с периферией или другими платами используются такие протоколы как: UART, IIC (I2C) и SPI.
UART (Univsersal Asynchronos Reciever-Transmitter) – универсальный асинхронный протокол передачи данных. Для его отведено два контакта (обычно 0 и 1) маркируемых RX и TX, а также GND (земля). Протокол позволяет передавать данные со скоростями до 115200 бод, однако чаще используется стандартная скорость в 9600 бод. У плат Mega и Due присутствует три дополнительных аппаратных UART. Они располагаются на выводах с 14 по 19.
I2C (Inter-Integrated Circuit) – межсхемная шина последовательной передачи данных. В протоколе задействовано два контакта SDA (Serial Data) и SCL (Serial Clock). В платах УНО под шину выделены контакты A4 и A5, а также пара контактов у USB разъема. У MEGA и DUE, под IIC, выделены контакты 20 (SDA) и 21 (SCL). Протокол поддерживает передачу данных со скоростью до 100 кГц, а также параллельное подключение до 127 устройств.
SPI (Serial Peripheral Interface) – последовательный интерфейс присоединения периферийных устройств. Это четырёхпроводной протокол передачи данных. В нем задействованы контакты MISO (Master In Slave Out), MOSI (Master Out Slave In), SCK (Serial Clock) и SS (Slave Select). При чем так как SPI не поддерживает адресацию, то подключить можно только одно устройство. Однако есть решения для аппаратной поддержки протокола и увеличения числа подключенных устройств. На SPI выделены контакты 10, 11, 12 и 13, на ArduinoMEGA и ArduinoDUE – с 50 по 53. Также контакты дублируются отдельной 6-пиновой колодкой разъема ICSP
Распиновка платы Arduino UNO. Распиновка платы Arduino MEGA.USB (Universal Serial Bus) – универсальная последовательная шина подключения периферийных устройств. Обмен данными через USB используется во многих устройствах и Ардуино-платы не являются исключением. Через порт USB передается питание для самой платы, а также данные для ее прошивки. За работу протокола USB отвечает: в оригинальных платах – микроконтроллер ATmega16U2, а в неоригинальных – контроллеры серии Ch440.
Arduino-контроллеры могут иметь как классические USB Type-B разъем, так и другие его модификации: Mini, Micro и даже Type-C.
Ардуино Нано с разъемом MiniUSB (слева), а также Ардуино УНО с разъемом USB type-B (справа).Преимущества платформы
Ардуино-совместимые микрокомпьютеры обладают следующими преимуществами:
- невысокая цена;
- возможность самостоятельной сборки;
- универсальность и модульность;
- доступность для непрофессионального пользователя;
- большое количество информации в сети: обучающие ролики, обзоры, пошаговые инструкции;
- множество сообществ, где можно получить ответы на интересующие вопросы;
- наличие дополнительного оснащения (периферии): кнопки, датчики, индикаторы и дисплеи, а также другие устройства и аксессуары, обеспечивающие взаимодействие контроллера с окружающим миром;
- простой процесс разработки системы и ее отладки;
- множество универсальных стартовых наборов и роботизированных конструкторов.
Сравнение
Модельный ряд контроллеров очень разнообразен, но все же из их множества можно выделить пять классических: DUO, Mega, UNO, Nano, Micro, а также ряд специализированных. Давайте взглянем на их различия. А в качестве «эталона» будем отталкиваться от характеристик Ардуино УНО приведенных в таблице ниже.
МК | Тактовая частота | Flash-память | ОЗУ | ПЗУ | Рабочее напряжение | Цифровые выходы | Выходы с ШИМ | Аналог. выходы | Размер |
---|---|---|---|---|---|---|---|---|---|
ATmega328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 14 | 6 | 6 | 69х54 мм |
Arduino UNO R3 (ATMEGA16U2 + MEGA328P) имеет 14 цифровых входов/выходов, 6 из которых могут использоваться как выходы ШИМ, а также есть 6 аналоговых выходов.
В данной плате применяется чип Atmega16U2, который позволяет превратить плату в любое USB-устройство: от мышки до внешнего диска.
Питание подается по USB или от внешнего источника питания, в качестве которого может использоваться аккумуляторная батарея или сетевой АС/DC-адаптер. Рекомендуется источник питания с напряжением в диапазоне 7-12 В. Объем флеш-памяти составляет 32 КБ.
Контроллер может быть присоединен к компьютеру, другой плате или к другому микроконтроллеру. Для этого он оснащен всем необходимым.
Обратите внимание, что запрещается превышать допустимые величины силы тока! Для одного любого вывода ток не должен быть более 40 мА. Ток для одной группы выводов не может быть более 100 мА. Ток для всего микроконтроллера не должен превышать 200 мА.
Arduino UNO или Mega
Если в классической УНО задействован микроконтроллер ATmega328P, то в Меге его старший брат – ATmega2560. МК отличается увеличенной памятью: флэш-память – 256 КБ, ОЗУ – 8 КБ, ПЗУ – 4 КБ, а также существенно большим числом входов/выходов: 54 цифровых (из них 15 с ШИМ (широтно-импульсная модуляция)), а также 16 аналоговых. За счет большего числа контактов плата на 50% длиннее (102 х 54 мм).
Сравнение моделей UNO и Mega.Микроконтроллер включает в себя загрузчик, который облегчает установку новых программ без использования дополнительных программаторов. Работа с платой начинается с ее подключения к компьютеру посредством USB-кабеля, а, нажав на кнопку перезагрузки, вы сможете перезагрузить систему в случае непредвиденного сбоя.
Arduino Due
Due – это ТОП версия среди всей линейки классических плат. В этой модели используется микропроцессор SAM3X на основе ARM ядра Cortex-M3. Он имеет рабочую частоту в 84 МГц, флеш-память на 512 КБ и ОЗУ на 96 КБ. Плата имеет аналогичный Mega-версии размер и столько же цифровых пинов, 12 из которых могут использоваться как выходы с ШИМ. Аналоговых контактов – 12 шт.
Отличительной характеристикой DUE является ее питание. Оно составляет всего 3,3 В, что требует особого внимания при подборе периферийных устройств. Размеры Due аналогичны УНО.
Плата Ардуино Due.Arduino Nano vs Pro mini
Нано и Про Мини – две компактные версии для разработки миниатюрных устройств. Их размеры и вес позволяют создавать компактные и автономные DIY устройства.
Ардуино Нано имеет размер 18 х 43 мм и аналогичные UNO характеристики по числу входов/выходов, а также объему памяти. Также существует версия Nano на базе ATMega168P. Она имеет аналогичные ATMega328P характеристики, но урезанную в 2 раза память. За счет меньшего объема памяти, платы на основе ATMega168 дешевле примерно на 30%.
На плате расположен стабилизатор 5 В и загрузчик, позволяющий платформе перепрошивать саму себя. Можно не использовать загрузчик, а запрограммировать микроконтроллер через ICSP-выводы. Кнопкой RESET производится перезагрузка в случае непредвиденного сбоя. Плата подключается к компьютеру через miniUSB-кабель.
Arduino Pro Mini имеет еще более компактные размеры – 18 х 33 мм. Чтобы достичь этого, пришлось отказаться от контроллера шины USB. Поэтому для загрузки кода программы в Про Мини требуется внешний UART-контроллер (программатор). Pro mini питается через кабель FTDI или от источников питания через имеющиеся выходы (Vcc/RAW).
Платы микроконтроллеров: Nano (слева) и Pro Mini (справа).Leonardo
Leonardo внешне выглядит как классическая UNO. Но так ли это на самом деле? Чем отличается классическая Arduino UNO от Arduino Leonardo? Давайте разбираться в этом.
Во-первых, типом используемого микроконтроллера. На Леонардо установлен ATMEGA32U4. Его отличительной особенностью является наличие встроенного USB контроллера.
Во-вторых, у платы 20 цифровых входов / выходов, что на 6 больше, чем у классической УНО, а также на четыре больше аналоговых (12 входов / выходов).
В-третьих, полностью переработана схематика платы. Это связано и с меньшими размерами основного МК и с отказом от внешнего UART-контроллера.
В-четвертых, заменен USB вход с типа-А на более популярный MicroUSB.
В-пятых, Leonardo длиннее на 5 мм.
При всем при этом, расположение контактов аналогично, что позволяет использовать на Леонардо любые шилды, совместимые с Уно.
Программируемый контроллер Leonardo R3.Arduino-совместимые контроллеры
Аналоги Ардуино получили широкое распространение по всему миру. Их не стоит бояться или специально игнорировать. Основной причиной популярности таких устройств является цена. Она минимум в пять раз ниже чем у оригинального устройства. Причинами этого является:
- оптимизация электрической схемы;
- дешевое производство;
- низкая стоимость комплектующих;
- массовое поточное производство.
Часто не специалисту сложно различить оригинальную модель и аналог. Это и не удивительно – китайское производство находится на очень высоком уровне. Поэтому вы не столкнетесь с проблемами подключения, программирования или эксплуатации устройства. Даже расположение и последовательность пинов не отличается. Это позволяет, при необходимости, легко заменить оригинальную плату производителя на аналог и обратно.
Аналоги DUE и MEGA: платы DDcduino DUE 2012 R3 (слева), а также DDcduino MEGA2560 R3 (справа).Аналоги Pro mini и Nano: платы DDcduino Pro mini (слева) и DDcduino Nano V3.0 (справа).Платы LY-F2 (слева) и ZYduino UNO R3 (справа).Специализированные модели
Для управления роботизированными устройствами необходимы специальные модули-драйверы. Однако они существенно увеличивают габариты и перекрывают доступ к другим разъемам. Поэтому были разработаны специализированные контроллеры с выходами для подключения шаговых двигателей, например, серия UNO PRO. Старшая модель этой серии также оснащена встроенным Bluetooth модулем для дистанционного управления.
Специализированные контроллеры UNO PRO 2M (слева) и UNO PRO 4M (справа).Микроконтроллеры ESP
Микрокомпьютеры на базе ESP – следующий уровень проектирования устройств. Плата-контроллер строится на базе процессоров ESP8266 с частотой 80 МГц или ESP32 имеющей рабочие частоты от 80 до 240 МГц. Микрочипы ESP имеют встроенный модуль Bluetooth, увеличенную флеш-память, а также другой дополнительный функционал.
Программирование их может осуществляться аналогично Arduino-платам, через специализированную IDE. При этом, ряд моделей имеют типоразмер и распиновку, схожую с устройствами, построенными на базе чипов ATmega.
Платы-контроллеры на базе: ESP D1 UNO R3 (слева) и D1 R32 (справа).Порядок работы и первые шаги
Подключение Arduino
Управление и обмен данными с Ардуино осуществляется через последовательный (serial) порт, он же – разъем USB. Контроллер подключается к компьютеру с помощью обычного USB-кабеля. При этом на нем загораются светодиодные индикаторы, свидетельствующие о подаче питания и начальном обмене данных.
Подключенный Ардуино-контроллер с «горящими» светодиодами.Windows может сразу не обнаружить ваше устройство. В этом случае следует предварительно установить драйверы. Они могут идти в комплекте к плате (на компакт-диске) или же можно скачать их по первой попавшейся ссылке из поисковика. Также драйвер установится в процессе инсталляции среды программирования.
Программирование
Для программирования Ардуино-совместимого контроллера необходима интегрированная среда разработки (IDE – Integrated Development Environment). Чаще всего используется ArduinoIDE. Данная среда поддерживает множество как оригинальных, так и неоригинальных плат, является бесплатной, а также непрерывно совершенствуется разработчиками. Помимо ArduinoIDE, есть и другое программное обеспечение (ПО), например, Scratch, Snap4Arduino, XOD, Ardublock, mBlock, а также другие.
Окно интегрированной среды разработки ArduinoIDE.На данный момент актуальная версия среды ArduinoIDE – 2.0.0. Перед скачиванием можно выбрать операционную среду (Windows, Linux или macOS), а также ее разрядность. После того как файл будет скачен, запустите его и следуйте рекомендациям установщика.
Чтобы начать работать с платой «Arduino», при первом запуске программы, необходимо выбрать модель программируемого контролера, с которым будет производиться работа, например, «Arduino UNO». После этого можно начать написание проекта.
ArduinoIDE. Выбор модели платы.Среда программирования уже имеет базу типовых программ (скетчей) с подробным описанием работы. Для этого можно воспользоваться вкладкой «Примеры» и выбрать подходящий скетч. После выбора, то откроется программный код, который в случае необходимости можно проверить на ошибки, отредактировать или дополнить.
ArduinoIDE. Выбор скетча из базы примеров.После проверки и компиляции программный код загружается на контроллер, на котором загораются светодиодные индикаторы, свидетельствующие об исправной работе платы.
Документация
Если нужно найти техническую документацию на программируемый контроллер, то это можно сделать на официальном сайте компании https://www.arduino.cc/. Для этого достаточно зайти во вкладку «Product» и выбрать нужную модель контроллера. На сайте документация представлена в полном объеме, включая электрические схемы, что позволяет разобраться, в функционировании контроллера, а также назначении тех или иных контактов.
Примеры решений и техническую помощь нужно искать на специализированных форумах. Найти их несложно через любую поисковую систему.
Какая Arduino лучше?
Можно точно сказать, что для начинающих конструкторов лучшим решением всегда будет плата Arduino UNO. Несмотря на то, что она считается одной из самых бюджетных, ее функционал достаточен для реализации большинства проектов. UNO входит во многие наборы конструкторов, позволяющих легко приступить к изучению принципов электроники и основ робототехники. УНО абсолютно стандартная, а также одна из самых популярных плат, можно сказать, что она является «лицом» компании «Arduino».
Контроллер на ATMega328P Ардуино УНО.Выбирая модель, прежде всего, следует обратить внимание на технические характеристики, а именно:
- на базе какого микроконтроллера создана плата. От этого будет зависеть скорость ее работы и производительность;
- номиналы входного и выходного напряжения платы влияют на возможность присоединения модулей;
- количество и вид входов/выходов на прямую влияет на количество присоединяемых устройств;
- объем флеш-памяти важен при написании больших программ и обработке массива данных;
- размер платы актуален при конструировании миниатюрных проектов.
Таблица сравнения плат Ардуино
Для большего удобства выбора мы свели основные характеристики контроллеров, предлагаемых нашей компанией, в единую таблицу. Надеемся, она поможет вам с выбором необходимого устройства.
Наименование | Микроконтроллер | Рабочая частота | Флэш память | Объём ОЗУ | Объём ПЗУ | U раб | U пит | Цифровые входы/выходы |
---|---|---|---|---|---|---|---|---|
DDcduino DUE 2012 R3 | AT91SAM3X8EA | 84 МГц | 512 КБ | 96 КБ | - | 3,3 В | 7-12 В | 54 |
DDcduino MEGA2560 R3 | ATMEGA2560-16AU | 16 МГц | 256 КБ | 8 КБ | 4 КБ | 5 В | 6-20 В | 54 |
UNO PRO M4 | ATMEGA328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 3,3/5 В | 3-12 В | 14 |
LY-F2 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-9 В | 14 |
UNO PRO 2M | ATMEGA328P | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 3,3/5 В | 3-12 В | 14 |
DDcduino Nano V3. 0 | ATMEGA328P-AU | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
Leonardo R3 | ATMEGA32U4 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 20 |
Arduino Nano V3. 0 | ATMEGA328P-AU | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-12 В | 14 |
XTWduino UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 5-9 В | 14 |
DDcduino Pro mini | ATmega328P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
Pro mini | ATMEGA168P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
Nano V3. 0 | ATMEGA168P | 16 МГц | 16 КБ | 1 КБ | 0,5 КБ | 5 В | 5-12 В | 14 |
ZYduino UNO R3 | ATmega328 | 16 МГц | 32 КБ | 2 КБ | 1 КБ | 5 В | 7-9 В | 14 |
Что такое Arduino?
Что такое Arduino? Формально это торговая марка, под которой выпускаются официальные платы и программы. Название Arduino идёт от одноименного названия забегаловки в Италии, где создатели любили пропустить по рюмочке. С точки зрения использования, Arduino – это платформа для разработки электронных устройств, точнее их прототипов и макетов. Включает в себя железо (платы) и софт (среда разработки).
Семейство Arduino – несколько моделей так называемых отладочных плат. Отладочная плата представляет собой как ни странно печатную плату, на которой стоит микроконтроллер (далее МК) – та самая штука, которую мы будем программировать. В младших платах Arduino используются микроконтроллеры AVR (UNO, Nano, Mega, Leonardo), в современных моделях стоят более мощные ARM Cortex для более серьёзных проектов.
Ардуино является открытой платформой, поэтому модельный ряд постоянно пополняется неофициальными платами от других производителей, такие платы называют “Arduino-совместимыми”. С ними можно работать в официальной программе Arduino IDE, писать на том же языке с тем же набором команд и даже использовать те же библиотеки! В качестве примера: это платы Teensy, платы на базе МК esp32 и esp8266 (Wemos, NodeMCU), различных китайских клонов и так далее.
Рассмотрим, из чего состоит платформа и какие задачи она решает.
Железо (аппаратная часть)
Как собрать электронное устройство на базе МК? Нужно:
- Сделать печатную плату, ибо сам МК очень маленький и паять его неудобно.
- Обеспечить тактирование МК (те самые мегагерцы, как в обычном компьютере) – подключить тактовый генератор.
- Добавить необходимую обвязку: фильтры по питанию, кнопку перезагрузки, некоторые МК требуют подключения резисторов к определённым пинам, и так далее.
- Подключить остальные компоненты проекта: расположить их на плате или предусмотреть штекеры.
- Обеспечить стабильное питание схемы, возможно даже в широком диапазоне питающего напряжения.
- Некоторые МК нужно “настроить” при помощи программатора.
- Загрузить прошивку при помощи программатора.
Звучит сложно, именно поэтому ребята из Arduino решили объединить всё это на одной плате: уже настроенный микроконтроллер и всё необходимое для его работы, стабилизатор напряжения, и самое главное – программатор, он тоже расположен на плате и для загрузки прошивки достаточно просто подключить USB кабель! Ноги МК выведены на рейку с пинами (стандартный шаг 2. 54 мм), что позволяет работать с платой на брэдборде (макетная плата) и быстро подключать к ней любые компоненты. Изначально сложную задачу упростили до электронного “конструктора”, именно поэтому Arduino стали настолько популярны.
Софт (программная часть)
Как запрограммировать МК? Нужно:
- Написать прошивку (при помощи любого текстового редактора).
- Скомпилировать прошивку (для AVR – при помощи бесплатного консольного компилятора avr-gcc).
- Загрузить прошивку в МК (для AVR – при помощи консольной утилиты avrdude).
Для этого у Arduino есть своя IDE (Integrated Development Environment) – интегрированная среда разработки Arduino IDE. Она представляет собой текстовый редактор, умеет компилировать и загружать код. А также менеджер библиотек и поддержку неофициальных плат. Таким образом весь процесс прошивки сводится к одному щелчку по кнопке загрузить: никаких настроек, никаких плясок с бубном, ничего лишнего. Подробнее об Arduino IDE мы поговорим в отдельном уроке.
Также к программной части можно отнести:
- “Язык” Arduino, который на самом деле является просто встроенной библиотекой. У всех Arduino-совместимых плат есть одинаковый набор функций, поэтому проект можно практически без изменений перенести с одной платы на другую.
- Библиотеки, которые в сотни упрощают работу с модулями и прочими железками. Для Arduino-среды существует около 5000 библиотек, которые охватывают все Arduino-модули и некоторые микросхемы. Также среди библиотек можно найти различные интересные алгоритмы обработки данных и прочие полезные штуки.
Простота и удобство разработки в совокупности с огромным множеством плат на разных МК и набором библиотек на все случаи жизни сделало Arduino самой простой и удобной платформой для изучения робототехники и создания прототипов электронных устройств.
Программирование
На каком языке программируется Arduino? Многие называют его “упрощённый C++“, “разновидность C++“, “язык Ардуино“, сами Arduino называют его “Arduino Wiring“. Но на самом деле язык здесь – обычный C++ (си-плюс-плюс) со всем соответствующим ему синтаксисом и возможностями, операторами и прочими инструментами (версия C++17). Но есть пара моментов:
- Среда Arduino IDE слегка меняет стандартный вид программы на C++ и действительно упрощает понимание для новичка. В то же время Arduino IDE не заставляет писать программу “по-Ардуиновски”, можно оформить её как обычную программу на Си (объявить
int main(){}
и писать свой код). - Arduino IDE автоматически подключает в код библиотеку Arduino.h, которая содержит базовый набор функций для работы с МК, а также некоторые константы и математические функции, которые пришли из открытого фреймворка Wiring.
- В AVR Arduino используется компилятор avr-gcc, в котором нет стандартных для компьютерной разработки
std::
библиотек. Но зато есть свои библиотеки, ориентированные на работу с микроконтроллером.
Дополнительно в Arduino IDE нам доступно:
- Встроенные библиотеки для работы с интерфейсами связи и памятью.
- В папке с программой лежит набор стандартных библиотек: для LCD дисплея, шагового мотора, сервопривода и некоторых других железок.
- [Только для AVR Arduino] Вместе с компилятором идёт набор низкоуровневых библиотек для AVR (сон, progmem, watchdog и многие многие другие).
- Работа с микроконтроллером “напрямую” при помощи регистров.
- Можно писать на ассемблере, взяв под контроль каждый такт работы МК.
Если вы научитесь свободно программировать Ардуино и вдруг перейдете к разработке программ на том же C++ в более взрослых средах разработки, вы будете неприятно удивлены большим количеством дополнительного кода, который придется писать руками. И наоборот, если умеющий в C++ человек посмотрит на типичный ардуино-код, он скажет “да как это вообще работает?”. Компилятор в Arduino IDE настроен на максимальную всеядность и прощение ошибок, потому что это обучающая платформа.
Библиотеки
Жизнь рядового ардуинщика неразрывно связана с библиотеками, потому что огромное комьюнити за годы своего существования сделало огромное количество этих самых библиотек на все случаи жизни и для всех продающихся датчиков и модулей. Библиотека это набор файлов с кодом, которым мы можем пользоваться просто ознакомившись с документацией или посмотрев примеры. Такой подход называется “черным ящиком”, мы можем даже не догадываться, насколько сложный код содержится в библиотеке, но будем с лёгкостью пользоваться возможностями, который этот код даёт. Купили модуль – нашли библиотеку – открыли пример – всё, результат достигнут.
Чистый Си? Писать без библиотек?
Очень многие считают, что эффективный код нужно писать без библиотек, чистым полотном. Это полнейшая чушь, потому что:
- Современные микроконтроллеры имеют достаточно памяти для того, чтобы разработчик мог позволить себе сэкономить время и использовать готовые инструменты. Более того, серьёзные разработки делаются с использованием операционных систем реального времени, которые сами по себе являются огромной тяжёлой библиотекой. Никто не пишет на ассемблере, за окном не 1980 год.
- Компилятор “вырежет” неиспользуемый код из библиотеки.
- Если писать крупный проект чисто голым кодом – это будет полотно на несколько тысяч строк, в котором невозможно будет разобраться. Программу разбивают на файлы – по сути на те же самые библиотеки! Некоторые алгоритмы и части программы изначально удобно обернуть в независимую библиотеку и использовать в том числе для других проектов, чтобы не писать заново. Так что писать без библиотек невозможно в принципе, неважно скачаете ли вы её с интернета или напишете сами.
- Если у вас в проекте одна кнопка – нет большой разницы, описывать её вручную или использовать библиотеку. Но как только появляется ещё одна кнопка – с точки зрения памяти гораздо эффективнее использовать библиотеку, потому что код обработки не будет дублироваться. К этому мы вернёмся в уроке про создание крупных проектов.
- Если вы новичок, то в 99% библиотека из интернета будет написана и оптимизирована в разы лучше, чем ваш код.
Возможности
Зачем учиться работать с Ардуино и электроникой в целом?
- Это невероятно интересное, техническое, развивающее мозги и относительно дешёвое “DIY” хобби с бесконечным количеством идей и способов их реализаций
- Возможность создания узко-специальных электронных устройств и станков, аналогов которым нет в продаже или они слишком дорогие. В том числе для личных нужд или работы (знакомый ювелир сделал себе контроллер для муфельной печи, который стоит очень дорого).
- Возможность создания уникальных устройств с целью выхода на краудфандинг и запуска своего бизнеса.
- Отличная практика в программировании и электронике, особенно перед обучением на соответствующую специальность.
- Возможности в целом: автоматизация, автоматическое регулирование процессов, дистанционное управление, мониторинг различных величин, носимые и стационарные электронные устройства различного назначения.
Хейтеры платформы
В мире серьезных программистов и разработчиков очень не любят Ардуино. Почему? Рассмотрим несколько популярных негативных комментариев о платформе.
- В среде Arduino IDE работа с микроконтроллером упрощена настолько, что ардуинщику вообще ничего не нужно знать о его архитектуре и о том, как он вообще программируется и настраивается: все сделано в виде готовых и понятных функций.
- С каких пор удобство и простота стали плохими? Для новичка это единственный способ познакомиться с миром робототехники без изучения кипы документации и получения соответствующего образования. Ардуино создана в первую очередь для обучения, и во вторую – для быстрого и удобного создания прототипов электронных устройств, это её фишка.
- Это всё конечно хорошо, но скрытый за ширмой дружелюбного “Ардуино Вайринга” код ужасает: за безобидными на первый взгляд функциями кроются полотна кода, который что-то проверят, перепроверяет, перенастраивает уже настроенное и делает многие другие на первый взгляд ненужные вещи. Это безобразие работает очень медленно и занимает кучу места!
- Да, стандартные функции имеют кучу защит от
дуракановичка, они тяжёлые и медленные. Но новичок и не сможет написать такой код, где скорость и память будут настолько критичны! А если понадобится, то к этому времени он уже будет в состоянии писать код оптимально и найдёт на моём сайте или в другом месте в Интернете быстрые аналоги Ардуино-функций или напишет их сам. И ещё один момент: ядро Ардуино устроено так, что обеспечивает совместимость кода и библиотек для всех Ардуино-плат. Начали делать проект на Arduino NANO и памяти/ног стало не хватать? Переносим проект на Arduino MEGA и продолжаем работать. NANO оказалась слишком велика для проекта? Переносим на ATTiny85, даже не открывая документацию: большинство библиотек работают на всех Ардуино-совместимых платах, это очень жирный плюс, хоть и в ущерб производительности и памяти.
- Да, стандартные функции имеют кучу защит от
- Стандартные функции из Arduino.h описывают незначительную часть всех возможностей и настроек, которые есть в микроконтроллере.
- А никто и не обещал вам HAL! Возможности МК раскрываются при использовании библиотек (см. список библиотек), благо сообщество у платформы действительно огромное. Также всегда можно научиться работать с даташитом и регистрами и настраивать всё что угодно и как угодно вручную.
- Arduino IDE “скрывает” от пользователя важные низкоуровневые настройки.
- И правильно делает! Одна ошибка – и можно остаться с заблокированным МК. При желании через Arduino IDE можно и фьюзы прошить, и под другие частоты настроить, об этом читайте вот в этом уроке.
- Ардуино для детей! Серьёзные дяди работают с “голым камнем”.
- Всё верно, для детей и домохозяек. Плата Ардуино задумана для создания макетов, прототипирования, её можно рассматривать как часть электронного “конструктора” для обучения. На плате есть вся необходимая обвязка, почему не использовать её даже как сердце готового проекта?
- Arduino IDE для детей! Серьёзные дяди работают во взрослых средах разработки.
- Верно, но есть небольшой нюанс: Arduino IDE официально бесплатная, после простой установки (Далее, Далее, Далее, Готово) она сразу готова к работе: достаточно выбрать плату из списка и начать писать код. Взрослые среды разработки требуют взрослого подхода и порог вхождения для работы с ними несоизмеримо высок. Помимо непростой установки и настройки вас ждут расширенные настройки самого микроконтроллера в ручном режиме, чтение документации и даташитов, “взрослый” интерфейс и множество нюансов в самом программировании и настройках компилятора. Времени на изучение этого всего уйдёт много, а нормальных уроков вы скорее всего не найдёте.
- Ардуинщики ходят по замкнутому кругу, они никогда не разовьются дальше мигания светодиодом.
- Платформа ничем не ограничивает разработчика, но если он сам не захочет – не разовьётся.
- На Ардуино нельзя создать что-то реально сложное и интересное.
- Скажите это ЧПУ станкам (прошивка GRBL), 3D принтерам (прошивка Marlin), квадрокоптерам и самолётам (прошивка Ardupilot) и многим другим крупным проектам.
- А STM32 лучше! И в разы мощнее! И возможностей у неё больше! И она дешевле!!!
- Да, да, да. Но не забывайте про порог вхождения и размер сообщества с контентом, библиотеками и примерами “для новичков”, а также о сложности работы с STM в целом. Посмотрите видосы вот на этом канале и сравните происходящее с Arduino. Что касается возможностей и скорости работы – для большинства любительских проектов Arduino (ATmega328/2560) будет более чем достаточно, особенно если уметь писать оптимальный код.
- Качество кода “из Интернета” просто ужасное.
- Да, из-за простых, но понятных стандартных примеров аудитория ардуинщиков выросла очень быстро и буквально завалила интернет своими проектами, завлекая тем самым в это хобби других новичков. 99% учебных примеров, примеров работы с библиотеками и модулями написаны простенько и ужасно неоптимально: int переменные для всего подряд, вездесущий delay, блокирующие циклы и прочее, помимо богомерзких ардуино-функций. Люди берут эти примеры как основу и продолжают дальше писать так же. Но эти люди стоят на пороге очень большой двери под названием робототехника. Перешагнув через этот порог, отбросив все кривые примеры и научившись грамотно выстраивать структуру своего кода, они попадают в мир безграничных возможностей для творчества и исследования, мир бесконечно интересных и разнообразных проектов на Arduino. Для этого я и пишу данные уроки.
Что ещё хочется сказать по поводу негатива от “профессионалов” – в большинстве случаев они просто завидуют: в “их время” для создания даже простенького проекта на базе микроконтроллера нужно было потратить огромное количество времени на изучение документации на английском языке на конкретную модель МК, на все остальные железки и микросхемы в проекте, научиться работать в недружелюбной среде разработки, развести и спаять плату, купить дорогой программатор и прочее прочее. А в наше время можно купить плату за 150р, воткнуть её в USB, запустить программу вида “блокнот с кнопкой Загрузить” и начать кодить с использованием огромного количества готовых библиотек и примеров для практически любых железок на рынке, а на любой свой вопрос можно найти ответ в гугле. Реально, у ребят просто пригорает одно место =)
Видео версия
Полезные страницы
- Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макросы, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
- Поддержать автора за работу над уроками
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
Arduino Due — Официальный магазин Arduino
Код: A000062 / Штрих-код: 7630049200487
42,00 €
| /
Arduino Due — первая плата Arduino, основанная на 32-битном микроконтроллере ARM. С 54 цифровыми входами/выходами, 12 аналоговыми входами, это идеальная плата для мощных крупномасштабных проектов Arduino.
##цена##
Расширьте свои возможности, добавьте в корзину: €0,00
Обзор
Плата Arduino Due представляет собой плату микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3. Это первая плата Arduino, основанная на 32-битном микроконтроллере ARM. Он имеет 54 цифровых входа/выхода (из которых 12 могут использоваться как выходы ШИМ), 12 аналоговых входов, 4 UART (аппаратные последовательные порты), тактовую частоту 84 МГц, соединение с поддержкой USB OTG, 2 ЦАП (цифро-аналоговый) , 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка стирания.
Внимание! В отличие от большинства плат Arduino, плата Arduino Due работает при напряжении 3,3 В. Максимальное напряжение, которое могут выдержать контакты ввода/вывода, составляет 3,3 В. Подача напряжения выше 3,3 В на любой контакт ввода-вывода может повредить плату.
Плата содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью кабеля micro-USB или включите адаптер переменного тока в постоянный или аккумулятор, чтобы начать. Due совместим со всеми шилдами Arduino, которые работают от 3,3 В и совместимы с распиновкой Arduino 1.0.
Due соответствует распиновке 1.0:
- TWI : контакты SDA и SCL, расположенные рядом с контактом AREF.
- IOREF : позволяет прикрепленному экрану с правильной конфигурацией адаптироваться к напряжению, обеспечиваемому платой. Это обеспечивает совместимость экрана с платой 3,3 В, такой как платы на базе Due и AVR, которые работают от 5 В.
- Неподключенный контакт, зарезервированный для использования в будущем.
Информацию о гарантии на плату можно найти здесь.
Начало работы
В разделе «Начало работы» вы можете найти всю информацию, необходимую для настройки платы, использования программного обеспечения Arduino (IDE) и начала работы с программированием и электроникой.
Нужна помощь?
- О программном обеспечении на форуме Arduino
- О проектах на форуме Arduino
- На самом продукте через нашу службу поддержки клиентов
Эта плата поставляется с припаянными разъемами. Плату без заголовков можно найти по этой ссылке.
Технические характеристики
Микроконтроллер | АТ91САМ3С8Э |
Рабочее напряжение | 3,3 В |
Входное напряжение (рекомендуется) | 7-12 В |
Входное напряжение (пределы) | 6-16 В |
Контакты цифрового ввода/вывода | 54 (из них 12 обеспечивают выход ШИМ) |
Аналоговые входные контакты | 12 |
Аналоговые выходные контакты | 2 (ЦАП) |
Суммарный выходной постоянный ток на всех линиях ввода-вывода | 130 мА |
Постоянный ток для контакта 3,3 В | 800 мА |
Постоянный ток для контакта 5 В | 800 мА |
Флэш-память | 512 КБ всего доступно для пользовательских приложений |
ОЗУ | 96 КБ (два банка: 64 КБ и 32 КБ) |
Тактовая частота | 84 МГц |
Длина | 101,52 мм |
Ширина | 53,3 мм |
Вес | 36 г |
Соответствие
Для этой платы предоставлены следующие декларации соответствия:
Для получения дополнительной информации о наших сертификатах посетите docs. arduino.cc/certifications0002 Arduino Due — это аппаратное обеспечение с открытым исходным кодом! Вы можете создать свою собственную плату, используя следующие файлы:
ФАЙЛЫ EAGLE В .ZIP СХЕМЫ В .PDF FRITZING В .FZPZ РАЗМЕР ПЛАТ В .PDF
Схема выводов
Загрузите полную схему выводов в формате PDF здесь.
Средство просмотра интерактивной доски
Питание
Питание Arduino Due может осуществляться через разъем USB или от внешнего источника питания. Источник питания выбирается автоматически.
Внешнее (не USB) питание может поступать либо от адаптера переменного тока в постоянный (настенный), либо от аккумулятора. Адаптер можно подключить, вставив штекер 2,1 мм с центральным положительным контактом в разъем питания на плате. Выводы от аккумулятора можно вставить в контактные разъемы Gnd и Vin разъема POWER.
Плата может работать от внешнего источника питания от 6 до 20 вольт. Однако при подаче менее 7 В на контакт 5 В может подаваться менее пяти вольт, и плата может работать нестабильно. При использовании более 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 до 12 вольт.
Контакты питания следующие:
- Вин. Входное напряжение платы Arduino при использовании внешнего источника питания (в отличие от 5 вольт от USB-соединения или другого регулируемого источника питания). Вы можете подавать напряжение через этот контакт или, если подаете напряжение через разъем питания, получить к нему доступ через этот контакт.
- 5V . Этот контакт выводит регулируемое напряжение 5V от регулятора на плате. Плата может питаться от разъема питания постоянного тока (7–12 В), разъема USB (5 В) или контакта VIN платы (7–12 В). Подача напряжения через контакты 5 В или 3,3 В обходит регулятор и может повредить вашу плату. Мы не советуем.
- 3V3 . Питание 3,3 В, генерируемое бортовым регулятором. Максимальный потребляемый ток составляет 800 мА. Этот регулятор также обеспечивает питание микроконтроллера SAM3X.
- ЗЕМЛЯ . Заземляющие штифты.
- ИОРЕФ . Этот контакт на плате Arduino обеспечивает опорное напряжение, с которым работает микроконтроллер. Правильно сконфигурированный экран может считывать напряжение на выводе IOREF и выбирать соответствующий источник питания или включать преобразователи напряжения на выходах для работы с 5 В или 3,3 В.
Память
SAM3X имеет 512 КБ (2 блока по 256 КБ) флэш-памяти для хранения кода. Загрузчик предварительно записан на заводе Atmel и хранится в специальной памяти ПЗУ. Доступная SRAM составляет 96 КБ в двух смежных банках по 64 КБ и 32 КБ. Ко всей доступной памяти (Flash, RAM и ROM) можно обращаться напрямую как к плоскому адресному пространству.
Можно стереть флэш-память SAM3X с помощью встроенной кнопки стирания. Это удалит текущий загруженный скетч из MCU. Чтобы стереть, нажмите и удерживайте кнопку Erase в течение нескольких секунд, когда плата включена.
Вход и выход
- Цифровой ввод/вывод: контакты с 0 по 53
- Каждый из 54 цифровых контактов на Due можно использовать как вход или выход с помощью функций pinMode(), digitalWrite() и digitalRead(). Они работают от 3,3 вольта. Каждый контакт может обеспечить (источник) ток 3 мА или 15 мА, в зависимости от вывода, или получить (приемник) ток 6 мА или 9 мА, в зависимости от вывода. У них также есть внутренний подтягивающий резистор (по умолчанию отключен) на 100 кОм. Кроме того, некоторые контакты имеют специальные функции:
- Серийный номер: 0 (RX) и 1 (TX)
- Серийный номер 1: 19 (прием) и 18 (передача)
- Серийный номер 2: 17 (прием) и 16 (передача)
- Серийный порт 3: 15 (RX) и 14 (TX) Используется для приема (RX) и передачи (TX) последовательных данных TTL (с уровнем 3,3 В). Контакты 0 и 1 подключены к соответствующим контактам микросхемы ATmega16U2 USB-to-TTL Serial.
- ШИМ: контакты со 2 по 13 Обеспечить 8-битный выход ШИМ с помощью функции AnalogWrite(). разрешение ШИМ можно изменить с помощью функции AnalogWriteResolution().
- SPI: Заголовок SPI (заголовок ICSP на других платах Arduino) Эти контакты поддерживают связь SPI с использованием библиотеки SPI. Штыри SPI выведены на центральный 6-контактный разъем, который физически совместим с Uno, Leonardo и Mega2560. Заголовок SPI можно использовать только для связи с другими устройствами SPI, а не для программирования SAM3X методом внутрисхемного последовательного программирования. SPI of the Due также имеет расширенные функции, которые можно использовать с методами расширенного SPI для Due.
- CAN: CANRX и CANTX Эти контакты поддерживают протокол связи CAN, но еще не поддерживаются API-интерфейсами Arduino.
- Светодиод «L»: 13 К цифровому контакту 13 подключен встроенный светодиод. Также возможно уменьшить яркость светодиода, потому что цифровой контакт 13 также является выходом PWM.
- TWI 1:20 (SDA) и 21 (SCL)
- TWI 2: SDA1 и SCL1. Поддержка связи TWI с использованием библиотеки Wire. SDA1 и SCL1 можно контролировать с помощью класса Wire1, предоставляемого библиотекой Wire. В то время как SDA и SCL имеют внутренние подтягивающие резисторы, SDA1 и SCL1 их не имеют. Для использования Wire1 необходимо добавить два подтягивающих резистора на линии SDA1 и SCL1.
- Аналоговые входы: контакты от A0 до A11 Due имеет 12 аналоговых входов, каждый из которых может обеспечивать 12-битное разрешение (т. е. 4096 различных значений). По умолчанию разрешение показаний установлено на 10 бит, для совместимости с другими платами Arduino. Можно изменить разрешение АЦП с помощью функции AnalogReadResolution(). На контактах аналоговых входов Due измеряется напряжение от земли до максимального значения 3,3 В. Подача напряжения более 3,3 В на контакты Due приведет к повреждению микросхемы SAM3X. Функция AnalogReference() игнорируется в Due.
Вывод AREF подключен к аналоговому опорному выводу SAM3X через резисторный мост. Чтобы использовать вывод AREF, резистор BR1 необходимо отпаять от печатной платы.
- DAC1 и DAC2 Эти контакты обеспечивают настоящие аналоговые выходы с 12-битным разрешением (4096 уровней) с функцией AnalogWrite(). Эти контакты можно использовать для создания аудиовыхода с помощью аудиобиблиотеки.
Обратите внимание, что выходной диапазон ЦАП фактически составляет от 0,55 В до 2,75 В.
Другие контакты на плате:
- AREF Опорное напряжение для аналоговых входов. Используется с AnalogReference().
- Сброс Установите на этой линии НИЗКИЙ уровень для сброса микроконтроллера. Обычно используется для добавления кнопки сброса к экранам, которые блокируют кнопку на плате.
См. также сопоставление контактов Arduino и портов SAM3X:
СООТВЕТСТВИЕ PIN SAM3X
Связь
Arduino Due имеет ряд средств для связи с компьютером, другим Arduino или другими микроконтроллерами и различными устройствами, такими как телефоны, планшеты , камеры и так далее. SAM3X предоставляет один аппаратный UART и три аппаратных USART для последовательной связи TTL (3,3 В).
Порт программирования подключен к ATmega16U2, который предоставляет виртуальный COM-порт для программного обеспечения на подключенном компьютере (для распознавания устройства машинам Windows потребуется файл .inf, но машины OSX и Linux распознают плату как COM). порт автоматически). 16U2 также подключен к аппаратному UART SAM3X. Последовательный порт на контактах RX0 и TX0 обеспечивает связь Serial-to-USB для программирования платы через микроконтроллер ATmega16U2. Программное обеспечение Arduino включает в себя последовательный монитор, который позволяет отправлять простые текстовые данные на плату и с платы. Светодиоды RX и TX на плате будут мигать при передаче данных через микросхему ATmega16U2 и USB-подключение к компьютеру (но не при последовательной связи на контактах 0 и 1).
Собственный порт USB подключен к SAM3X. Это позволяет осуществлять последовательную (CDC) связь через USB. Это обеспечивает последовательное соединение с Serial Monitor или другими приложениями на вашем компьютере. Это также позволяет Due эмулировать USB-мышь или клавиатуру на подключенном компьютере. Чтобы использовать эти функции, см. справочные страницы библиотеки мыши и клавиатуры.
Собственный USB-порт также может выступать в качестве USB-хоста для подключенных периферийных устройств, таких как мыши, клавиатуры и смартфоны. Чтобы использовать эти функции, см. справочные страницы USBHost.
SAM3X также поддерживает связь TWI и SPI. Программное обеспечение Arduino включает библиотеку Wire для упрощения использования шины TWI; подробности см. в документации. Для связи SPI используйте библиотеку SPI.
Программирование
Due можно запрограммировать с помощью программного обеспечения Arduino Arduino (IDE). Подробнее см. в справочнике и руководствах.
Загрузка скетчей в SAM3X отличается от загрузки микроконтроллеров AVR на других платах Arduino, поскольку перед перепрограммированием необходимо очистить флэш-память. Загрузка в чип управляется ПЗУ на SAM3X, которое запускается только тогда, когда флэш-память чипа пуста.
Любой из USB-портов можно использовать для программирования платы, хотя рекомендуется использовать порт программирования из-за того, как обрабатывается стирание чипа:
- Порт программирования: чтобы использовать этот порт, выберите «Arduino Due (ProgrammingPort)» в качестве платы в Arduino IDE. Подключите порт программирования Due (ближайший к разъему питания постоянного тока) к компьютеру. Порт программирования использует 16U2 в качестве чипа USB-to-serial, подключенного к первому UART SAM3X (RX0 и TX0). 16U2 имеет два контакта, подключенных к контактам Reset и Erase SAM3X. Открытие и закрытие порта программирования, подключенного со скоростью 1200 бит/с, запускает процедуру «жесткого стирания» микросхемы SAM3X, активируя контакты стирания и сброса на SAM3X перед обменом данными с UART. Это рекомендуемый порт для программирования Due. Это более надежно, чем «мягкое стирание», которое происходит на собственном порту, и оно должно работать, даже если основной MCU вышел из строя.
- Собственный порт: чтобы использовать этот порт, выберите «Arduino Due (NativeUSBPort)» в качестве платы в Arduino IDE. Собственный порт USB подключен непосредственно к SAM3X. Подключите собственный USB-порт Due (ближайший к кнопке сброса) к компьютеру. Открытие и закрытие собственного порта на скорости 1200 бит/с запускает процедуру «мягкого стирания»: флэш-память стирается, а плата перезагружается с загрузчиком. Если MCU по какой-то причине вышел из строя, вероятно, процедура мягкого стирания не будет работать, поскольку эта процедура полностью выполняется программно на SAM3X. Открытие и закрытие собственного порта с другой скоростью передачи данных не приведет к сбросу SAM3X.
В отличие от других плат Arduino, которые используют avrdude для загрузки, Due использует bossac. Исходный код прошивки ATmega16U2 доступен в репозитории Arduino. Вы можете использовать заголовок ISP с внешним программатором (перезаписывая загрузчик DFU). Дополнительную информацию см. в этом руководстве, предоставленном пользователями.
Защита USB от перегрузки по току
Плата Arduino Due имеет сбрасываемый предохранитель, который защищает USB-порты вашего компьютера от короткого замыкания и перегрузки по току. Хотя большинство компьютеров обеспечивают собственную внутреннюю защиту, предохранитель обеспечивает дополнительный уровень защиты. Если на USB-порт подается более 500 мА, предохранитель автоматически разорвет соединение до тех пор, пока короткое замыкание или перегрузка не будут устранены.
Физические характеристики и совместимость с экраном
Максимальная длина и ширина печатной платы Arduino Due составляют 4 и 2,1 дюйма соответственно, при этом разъемы USB и разъем питания выходят за прежние размеры. Три отверстия для винтов позволяют прикрепить плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми контактами 7 и 8 составляет 160 мил (0,16 дюйма), что даже не кратно 100 мил расстояния между другими контактами. Diecimila или Duemilanove.Цифровые контакты с 0 по 13 (и соседние контакты AREF и GND), аналоговые входы с 0 по 5, разъем питания и разъем “ICSP” (SPI) находятся в одинаковых местах. Далее основной UART (последовательный порт ) находится на тех же контактах (0 и 1). Обратите внимание, что I2C не расположен на тех же контактах на Due (20 и 21), что и на Duemilanove/Diecimila (аналоговые входы 4 и 5) .
Узнать больше
- ARDUINO DOCS Для получения полной технической документации, руководств и многого другого посетите Arduino Docs
Получите вдохновение
##заголовок## ##субтитры##
##текст##
читать далееArduino Leonardo с разъемами — Официальный магазин Arduino
Скидка 20%
Код: A000057 / Штрих-код: 8058333491141
Исходная цена €21,60
Текущая цена €17,28
| /
Классическая плата Arduino, которая может работать как мышь или клавиатура.
##цена##
Расширьте свои возможности, добавьте в корзину: €0,00
Обзор
Arduino Leonardo — это плата микроконтроллера на базе ATmega32u4 (техническое описание). Он имеет 20 цифровых входных/выходных контактов (из которых 7 могут использоваться как выходы PWM и 12 как аналоговые входы), кварцевый генератор 16 МГц, соединение micro USB, разъем питания, разъем ICSP и кнопку сброса. Он содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью USB-кабеля или включите адаптер переменного тока в постоянный или аккумулятор, чтобы начать работу.
Leonardo отличается от всех предыдущих плат тем, что ATmega32u4 имеет встроенный интерфейс USB, что устраняет необходимость в дополнительном процессоре. Это позволяет Leonardo отображаться на подключенном компьютере как мышь и клавиатура в дополнение к виртуальному (CDC) последовательному / COM-порту. Это также имеет другие последствия для поведения правления; они подробно описаны в разделе Начало работы с Arduino Leonardo.
Сопутствующие платы
Если вас интересуют платы со схожим функционалом, на Arduino вы можете найти:
- Arduino Leonardo без разъемов
- Ардуино Микро
Начало работы
Найдите вдохновение для своих проектов с доской Leonardo на нашей учебной платформе Project Hub.
Страница «Начало работы с Arduino» Leonardoppage содержит всю информацию, необходимую для настройки платы, использования программного обеспечения Arduino (IDE) и начала работы с программированием и электроникой.
В разделе «Учебники» вы можете найти примеры из библиотек и встроенных скетчей, а также другую полезную информацию, которая поможет расширить ваши знания об аппаратном и программном обеспечении Arduino.
Нужна помощь?
Посетите форум Arduino, чтобы задать вопросы о языке Arduino или о том, как создавать собственные проекты с помощью Arduino. Если вам нужна помощь с вашей платой, пожалуйста, свяжитесь с официальной службой поддержки пользователей Arduino, как описано на странице «Контакты».
Гарантия
Здесь вы можете найти информацию о гарантии на вашу плату.
Технические характеристики
Микроконтроллер | ATmega32u4 |
Рабочее напряжение | 5В |
Входное напряжение (рекомендуется) | 7-12 В |
Входное напряжение (пределы) | 6-20 В |
Контакты цифрового ввода/вывода | 20 |
ШИМ-каналы | 7 |
Аналоговые входные каналы | 12 |
Постоянный ток на контакт ввода/вывода | 40 мА |
Постоянный ток для контакта 3,3 В | 50 мА |
Флэш-память | 32 КБ (ATmega32u4), из которых 4 КБ используются загрузчиком |
ОЗУ | 2,5 КБ (ATmega32u4) |
ЭСППЗУ | 1 КБ (ATmega32u4) |
Тактовая частота | 16 МГц |
Длина | 68,6 мм |
Ширина | 53,3 мм |
Вес | 20 г |
Соответствия
На эту плату предоставлены следующие декларации о соответствии:
CE
UKCA
REACH
Для получения дополнительной информации о наших сертификатах посетите docs. arduino.cc/certifications
9004s Schematic OSH6 Documentation
6 Arduino Leonardo — аппаратное обеспечение с открытым исходным кодом! Вы можете создать свою собственную плату, используя следующие файлы:
ФАЙЛЫ EAGLE В .ZIP СХЕМЫ В .PDF
Схема выводов
Загрузите полную схему выводов в формате PDF здесь.
Interactive Board Viewer
Узнать больше
- ДОКУМЕНТЫ ARDUINO Для получения полной технической документации, руководств и многого другого посетите документацию по Arduino
Получите вдохновение
##заголовок##
##субтитры##
##текст##
читать далее Часто задаваемые вопросы
Питание
Arduino Leonardo может питаться через соединение micro USB или от внешнего источника питания. Источник питания выбирается автоматически.
Внешнее (не USB) питание может поступать либо от адаптера переменного тока в постоянный (настенный), либо от аккумулятора. Адаптер можно подключить, вставив штекер 2,1 мм с центральным положительным контактом в разъем питания на плате. Выводы от аккумулятора можно вставить в контактные разъемы Gnd и Vin разъема POWER.
Контакты питания:
- VIN. Входное напряжение платы Arduino при использовании внешнего источника питания (в отличие от 5 вольт от USB-подключения или другого регулируемого источника питания). Вы можете подавать напряжение через этот контакт или, если подаете напряжение через разъем питания, получить к нему доступ через этот контакт.
- 5В. Регулируемый источник питания, используемый для питания микроконтроллера и других компонентов на плате. Это может происходить либо от VIN через встроенный регулятор, либо от USB или другого регулируемого источника питания 5 В.
- 3В3. Питание 3,3 В, генерируемое бортовым регулятором. Максимальный потребляемый ток составляет 50 мА.
- Земля. Заземляющие штифты.
- ИОРЕФ. Напряжение, при котором работают контакты ввода/вывода платы (т. е. VCC для платы). Это 5В на Леонардо.
Память
ATmega32u4 имеет 32 КБ (4 КБ используются для загрузчика). Он также имеет 2,5 КБ SRAM и 1 КБ EEPROM (который можно читать и записывать с помощью библиотеки EEPROM).
Ввод и вывод
Каждый из 20 цифровых входов/выходов Леонардо может использоваться как вход или выход с помощью функций pinMode(), digitalWrite() и digitalRead(). Они работают от 5 вольт. Каждый контакт может обеспечить или получить максимум 40 мА и имеет внутренний подтягивающий резистор (по умолчанию отключен) на 20-50 кОм. Кроме того, некоторые контакты имеют специальные функции:
- Серийный номер: 0 (RX) и 1 (TX). Используется для приема (RX) и передачи (TX) последовательных данных TTL с использованием аппаратных возможностей последовательного интерфейса ATmega32U4. Обратите внимание, что на Leonardo класс Serial относится к связи USB (CDC); для последовательного интерфейса TTL на контактах 0 и 1 используйте класс Serial1.
- TWI: 2 (SDA) и 3 (SCL). Поддержка связи TWI с помощью библиотеки Wire.
- Внешние прерывания: 3 (прерывание 0), 2 (прерывание 1), 0 (прерывание 2), 1 (прерывание 3) и 7 (прерывание 4). Эти контакты могут быть настроены для запуска прерывания по низкому значению, нарастающему или падающему фронту или изменению значения. Дополнительные сведения см. в описании функции attachInterrupt().
- PWM: 3, 5, 6, 9, 10, 11 и 13. Обеспечьте 8-битный вывод PWM с помощью функции AnalogWrite().
- SPI: в заголовке ICSP. Эти контакты поддерживают связь SPI с использованием библиотеки SPI. Обратите внимание, что контакты SPI не подключены ни к одному из контактов цифрового ввода-вывода, как на Uno. Они доступны только на разъеме ICSP. Это означает, что если у вас есть экран, который использует SPI, но НЕ имеет 6-контактного разъема ICSP, который подключается к 6-контактному разъему ICSP Leonardo, экран не будет работать.
Светодиод- : 13. Встроенный светодиод подключен к цифровому контакту 13. Когда на контакте ВЫСОКОЕ значение, светодиод горит, когда на контакте НИЗКИЙ, он выключен.
- Аналоговые входы: A0-A5, A6-A11 (на цифровых контактах 4, 6, 8, 9, 10 и 12). Leonardo имеет 12 аналоговых входов, обозначенных от A0 до A11, каждый из которых также может использоваться как цифровой ввод/вывод. Контакты A0-A5 находятся в тех же местах, что и на Uno; входы A6-A11 подключены к контактам цифрового ввода/вывода 4, 6, 8, 9, 10 и 12 соответственно. Каждый аналоговый вход обеспечивает разрешение 10 бит (т. е. 1024 различных значения). По умолчанию аналоговые входы измеряют от земли до 5 вольт, хотя можно изменить верхнюю границу их диапазона с помощью вывода AREF и функции AnalogReference().
На плате есть еще пара контактов:
- AREF. Опорное напряжение для аналоговых входов. Используется с AnalogReference().
- Сброс. Установите на этой линии НИЗКИЙ уровень, чтобы перезагрузить микроконтроллер. Обычно используется для добавления кнопки сброса к экранам, которые блокируют кнопку на плате.
См. также сопоставление контактов Arduino и портов ATmega32u4.
Связь
Леонардо имеет ряд средств для связи с компьютером, другим Arduino или другими микроконтроллерами. ATmega32U4 обеспечивает последовательную связь UART TTL (5 В), которая доступна на цифровых контактах 0 (RX) и 1 (TX). 32U4 также обеспечивает последовательную (CDC) связь через USB и отображается как виртуальный COM-порт для программного обеспечения на компьютере. Чип также действует как полноскоростное устройство USB 2.0, использующее стандартные драйверы USB COM. В Windows требуется файл .inf. Программное обеспечение Arduino включает в себя последовательный монитор, который позволяет отправлять простые текстовые данные на плату Arduino и с нее. Светодиоды RX и TX на плате будут мигать, когда данные передаются через USB-соединение на компьютер (но не при последовательной связи на контактах 0 и 1). Библиотека SoftwareSerial позволяет осуществлять последовательную связь на любом из цифровых контактов Leonardo. ATmega32U4 также поддерживает связь I2C (TWI) и SPI. Программное обеспечение Arduino включает библиотеку Wire для упрощения использования шины I2C; подробности см. в документации. Для связи SPI используйте библиотеку SPI. Леонардо выглядит как обычная клавиатура и мышь, и его можно запрограммировать для управления этими устройствами ввода с помощью классов Клавиатура и Мышь .
Программирование
Leonardo можно запрограммировать с помощью программного обеспечения Arduino (скачать). Выберите «Arduino Leonardo» в меню «Инструменты» > «Плата» (в соответствии с микроконтроллером на вашей плате). Для получения дополнительной информации см. справочник и учебные пособия. ATmega32U4 на Arduino Leonardo поставляется с предварительно записанным загрузчиком, который позволяет загружать новый код без использование внешнего аппаратного программатора. Он взаимодействует с использованием протокола AVR109 . Вы также можете обойти загрузчик и запрограммировать микроконтроллер через заголовок ICSP (In-Circuit Serial Programming) с помощью Arduino ISP или аналогичного; подробности см. в этих инструкциях 9.0003
Автоматический (программный) сброс и запуск загрузчика
Вместо того, чтобы требовать физического нажатия кнопки сброса перед загрузкой, Leonardo сконструирован таким образом, что его можно сбросить с помощью программного обеспечения, работающего на подключенном компьютере. Сброс запускается, когда виртуальный (CDC) последовательный / COM-порт Leonardo открывается на скорости 1200 бод, а затем закрывается. Когда это произойдет, процессор перезагрузится, разорвав USB-соединение с компьютером (это означает, что виртуальный последовательный/COM-порт исчезнет). После перезагрузки процессора запускается загрузчик, который остается активным около 8 секунд. Загрузчик также можно запустить, нажав кнопку сброса на Leonardo. Обратите внимание, что при первом включении платы она перейдет прямо к пользовательскому скетчу, если он есть, а не к запуску загрузчика.
Из-за того, как Леонардо обрабатывает сброс, лучше всего позволить программному обеспечению Arduino попытаться инициировать сброс перед загрузкой, особенно если вы привыкли нажимать кнопку сброса перед загрузкой на другие платы.
Внешнее (не USB) питание может поступать либо от адаптера переменного тока в постоянный (настенный), либо от аккумулятора. Адаптер можно подключить, вставив штекер 2,1 мм с центральным положительным контактом в разъем питания на плате. Выводы от аккумулятора можно вставить в контактные разъемы Gnd и Vin разъема POWER.
Контакты питания:
Из-за того, как Леонардо обрабатывает сброс, лучше всего позволить программному обеспечению Arduino попытаться инициировать сброс перед загрузкой, особенно если вы привыкли нажимать кнопку сброса перед загрузкой на другие платы.