Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3
Arduino MEGA ADK R3

Arduino MEGA ADK R3

Арт. 13275

4,540

менее 10 шт.

Описание

Модуль Arduino MEGA ADK R3

  • Микроконтроллер ATmega2560
  • Тактовая частота: 16 МГц
  • Flash память: 256 Кб, из которых 8 Кб использует загрузчик
  • ОЗУ память: 8 Кб
  • EEPROM память: 4 Кб
  • Рабочее напряжение: 5 В
  • Напряжение питания: 6 ~ 12 В
  • Цифровые входы/выходы: 70
  • ШИМ выходы: 15
  • Аналоговые входы: 16
  • Максимальный ток через каждый вход/выход: 40 мА, рекомендуемый: 20мА
  • Максимальный ток для выхода 3.3 В: 50 мА
  • Физическая кнопка сброса "Reset"
  • USB-Host контроллер: MAX3421E
  • USB-разъёмы:
    • USB-B (питание, программирование)
    • USB-A (внешние USB-устройства)
  • Световая индикация: питания, обмена данными RX,TX и пользовательского вывода D13
  • Размеры: 110 x 53 x 15 мм
  • Вес: 36 г

Введение в Ардуино

ARDUINO - комплекс разработчика, состоящий из микроконтроллерной платы и программы-редактора на основе упрощённой версии языка С++ для написания пользовательского исполняемого кода, с возможностью последующей прошивки в контроллер.

ARDUINO можно использовать для разработки автономных устройств или для подключения к программам обработки на вашем компьютере. ARDUINO MEGA может зарекомендовать себя даже при создании 3D-принтеров или роботов.

Открытое программное обеспечение ARDUINO IDE, необходимое для прошивки контроллеров AVR, можно загрузить бесплатно уже сейчас (поддерживаются ос Windows, Linux и Mac OS).

Основные шаги в создании проектов

  1. Разработка проекта "на бумаге" на основе вашей идеи;
  2. Предварительная "черновая" сборка электрической схемы;
  3. Написание программного кода и его прошивка в микроконтроллер;
  4. Анализ полученного результата, при необходимости - отладка отдельных частей проекта;
  5. Сборка законченного варианта конструкции.

Первый взгляд на MEGA ADK

Сначала была UNO - первая! В тоже время, технический прогресс и творческая фантазия не стояли на месте. Создаваемые проекты ширились в размерах и возможностях, количество используемых в конструкции расширений неуклонно росло. Неустанные требования в увеличении доступных для пользователя выводов для коммутации с другими Arduino-совместимыми устройствами привело к появлению контроллера MEGA. Естественно, предназначенный для UNO чип ATmega328 был просто не в состоянии обрабатывать такое количество контактов. Поэтому, инженеры-разработчики нашли альтернативный вариант интегральной микросхемы, обладающей увеличенным объёмом доступной памяти и готовой справляться с новыми объёмами ввода/вывода информации, успешно реализовав в представленном модуле.

Говоря простым языком, контроллерная плата MEGA ADK является расширенной версией UNO, не ущемлённая в основном функционале прародительницы, а наоборот - расширившая возможности коммутации, и дополненная USB-функционалом.

Особенности

Arduino Mega ADK (Accessory Development Kit) - электронная плата, основанная на микроконтроллере ATmega2560, содержащая 70 цифровых выводов, доступных для входящих/исходящих данных (15 из которых могут использоваться как выходы ШИМ), 16 аналоговых входа, 4 линии интерфейса стандарта UART, 1 линию интерфейса IIC/I2C, 1 линию интерфейса SPI, кварцевый резонатор на 16 МГц, разъём USB, разъём питания, ICSP коннекторы и кнопку аппаратного сброса "RESET".

Основная "изюминка" MEGA ADK - интегрированный USB-Host контроллер, собранный на микросхеме MAX3421E. Чип позволяет пользователям подключать через USB-порт и организовывать обмен данными между Arduino и различным устройствами на базе ОС Android 3.1+, такими как телефоны или планшеты. А также подключать и взаимодействовать с фотокамерами, клавиатурами, мышками или игровыми манипуляторами (геймпадами) - Wiimote, PS3 и другими. У разработчиков проектов на Arduino появилась прекрасная возможность воплощать свои идеи в собственных приложениях, написанных для Android, научив их контролировать или управлять платами на Arduino.

Отличиями от прошлых ревизий стали несколько изменений в элементной базе и размещении контактов. Arduino MEGA ADK R3 теперь содержит два дополнительных вывода SDA и SCL (интерфейс IIC/I2C), расположенных около вывода AREF. Кроме того, в модуле имеется два новых вывода рядом с круглым разъёмом подключения источников питания. Первый из них "IOREF", о котором мы расскажем чуть ниже, и второй, зарезервированный для будущих целей.

Mega ADK имеет на борту два регулятора напряжения, преобразующие входное напряжение в постоянные 3.3 вольта и 5 вольт, линии которых выведены на отдельные силовые контакты платы. Регуляторы позволяют подключать многоцелевые модули, называемые "шилд", дополняющие ваши проекты. В большинстве вариантов, для своей работы любой шилд может требовать питание либо 3.3 вольта, либо 5 вольт, а иногда и более высокое напряжение, получаемое из внешних источников питания.

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

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

  • датчики звука, капель и дождя, расстояния, обнаружения газов, температуры или освещённости;
  • беспроводные радиопередатчики GSM/GPRS, RFid, WiFi и Bluetooth;
  • символьные и графические дисплеи;
  • сервомоторы;
  • модули с кнопками или светодиодами;
  • часы реального времени;
  • Ethernet модули;
  • модули с реле разнообразных конфигураций;
  • картридеры SD и микро-SD карт памяти;
  • MP3-проигрыватели, звуковые усилители, FM-приёмники;
  • гироскопы, акселерометры, магнитометры и многие другие.

У MEGA ADK R3 нет своей операционной системы - доступность ресурсов полностью контролируется пользователем. Единственное программное обеспечение, которым обладает плата - "Загрузчик" - предварительно записано в интегральную микросхему ATmega2560. В его обязанности входит: инициализация системы, управление доступом к встроенной памяти при загрузке в микроконтроллер нового кода, а также запуск исполняемых программ.

В связующем звене, между USB-портом и центральным микроконтроллером, в ранних версиях был установлен устаревший по нынешним меркам ATmega8U2. Теперь с этой задачей успешно справляется абсолютно новый ATmega16U2, благодаря внедрению которого появилась возможность увеличились скорость работы системы.

Обзор платы, расположение компонентов

*картинка*

Память

  1. Энергонезависимая флеш-память объёмом 256 КБ, из которых 8 кБ выделено под загрузчик. Основная область для хранения исполняемого программного кода, записываемого в микроконтроллер при его прошивке;
  2. ОЗУ-память (SRAM) размером 8 КБ, предназначена для хранения переменных, создаваемых в процессе выполнения исполняемого пользовательского кода. ОЗУ-память зависит от питающего напряжения, при его отсутствии все данные удаляются;
  3. EEPROM-память объёмом 4 КБ. Относиться к разряду энергонезависимой памяти, доступной пользователю для хранения данных, независящих от основного кода. Доступ к памяти реализован в библиотеке EEPROM.

Питание

Подать питание плате MEGA ADK R3 можно проводным соединением через USB-порт или используя внешний источник питания. Определение и переключение на активный источник питания с самым высоким потенциалом происходит в автоматическом режиме.

К внешним (не USB) источникам относятся стационарные блоки питания, преобразующие переменное напряжение в постоянное, или батареи. Адаптеры питания могут подключаться к разъёму внешнего источника питания, имеющего размеры: внешний "минусовой" контакт 5,5мм, центральный штырьевой "плюсовой" контакт 2,1мм. Батареи можно соединять с выводами Vin (+) и GND (-).

Рекомендуемое производителем напряжение внешнего источника питания должно находится в интервале от 7 до 12 вольт. Питание платы напряжением менее 7 вольт может привести к нестабильной работы системы в целом. Питание с напряжением более 12 вольт неизбежно приведёт к перегреву электронных компонентов с последующим выходом из строя всего модуля.

Назначение выводов 8-контактной группы "Питание":

  • VIN - входящее напряжение внешнего источника питания;
  • 5V - исходящее напряжение, отрегулированное встроенным понижающим регулятором до 5 вольт. Основное рабочее напряжение всей цепи модуля. Используется для питания подключаемых внешних модулей;
  • 3.3V - исходящее напряжение, отрегулированное встроенным понижающим регулятором до 3.3 вольт. Используется для питания подключаемых внешних модулей;
  • GND - общий вывод, заземление;
  • RESET - служит для управляемого аппаратного сброса микроконтроллера. Физическая кнопка "Reset" позволяет выполнить сброс вручную;
  • IOREF - "информационный" вывод, соединённый с контактом 5V. Полноразмерные модули, установленные на плату и имеющие аналогичный ответный контакт, смогут определить рабочее напряжение контроллера, и, при необходимости, самостоятельно выбрать нужный им источник питания: 5 вольт, 3.3 вольта или дополнительный внешний.
  • Крайний 8-й вывод не задействован. Возможно, ему определят назначение в новых версиях платы.

Примечание! Старайтесь не запускайте ваши проекты (Arduino) при недостаточном питании. Плата MEGA ADK R3 может самостоятельно перезагрузиться, если к ней подключаются модули с высоким энергопотреблением: серво, моторы, большие экранные модули. Лучшим решением будет подключение таких модулей к внешним источникам напряжения. Простого USB-питания может оказаться не достаточно, особенно, когда сервопривод работает под нагрузкой.

Примечание! Телефоны или планшеты, подключенные к MEGA ADK через разъём USB-Host, могут использовать получаемое от платы питание для подзарядки собственных аккумуляторов, создавая дополнительную нагрузку на энергосхему модуля. При запитывании MEGA ADK через USB-кабель, максимальный допустимый ток ограничен до 500мА, в равной степени доступный для самой платы и для внешнего устройства. Встроенный в электрическую цепь MEGA ADK регулятор напряжения, на который приходит питание от внешнего источника, способен пропускать через себя ток до 1500 миллиампер, из которых 750 миллиампер доступно для Android-устройства и самой платы Arduino, ещё 750 миллиампер отводится для подключаемых к MEGA ADK датчиков или сенсоров. Поэтому, для достижения максимальной возможности модуля, желательно подключать внешний источник питания, способный обеспечивать необходимый ток не менее 1500 миллиампер.

Вводы и выводы

Плата MEGA ADK R3 обладает цифровыми выводами (контакты 0-53, А0-А15), работающими с логикой напряжений "1" и "0". Под единицей подразумевается входящее/исходящее напряжение +5 вольт, называемое высоким сигналом. Под нулём - входящее/исходящее напряжение 0 вольт, называемое низким сигналом. Каждый вывод имеет нагрузочный резистор (20-50 кОм), отключенный по умолчанию. Рекомендуемый ток отдельного вывода составляет 20 миллиампер, предельный ток - 40 миллиампер. Обращение к выводам в программном коде осуществляется операторами pinMode(), digitalWrite() и digitalRead().

Примечание! Избегайте превышения значения максимального тока, способного повредить микроконтроллер.

Некоторые выводы наделены аналоговым функционалом (А0-А15), позволяющим определять входящее напряжение в диапазоне от 0 до 5 вольт (по умолчанию), делящееся в цифровом соотношении на 1024 возможных значения (0..1023). В программном коде обращение к выводам осуществляется оператором analogRead(). Оператор analogReference() позволяет устанавливать границы измеряемого напряжения, возможные варианты:

  • DEFAULT: стандартное опорное напряжение 5 вольт
  • INTERNAL: встроенное опорное напряжение 1.1 вольта
  • EXTERNAL: напряжение внешнего источника, подключенного к контакту AREF

Примечание! При подключенном напряжении на выводе AREF необходимо использовать только тип EXTERNAL. В противном случае присутствует риск повреждения ATmega328.

В качестве примера: опорное напряжение - 5 вольт, на входе аналогового контакта - 2.5 вольта. Результат сравнения = 512.

В добавок, MEGA 2560 R3 оснащена пятнадцатью специализированными выводами, позволяющие настраивать исходящее напряжение каждого контакта в отдельности. Напряжение выводов регулируется в диапазоне от 0 до 5 вольт. Принцип регулировки основан на цифровой широтно-импульсной модуляции (ШИМ) с градацией цифровых значений в интервале от 0 до 255. Обращение к выводам в программном коде осуществляется оператором analogWrite().

Специальные функции:

  • Асинхронный последовательный интерфейс UART из 4х линий, выводы которого распределены попарно:
    • RX0 - контакт 0 и TX0 - контакт 1 (подключены к RX,TX чипа ATmega16U2)
    • RX1 - контакт 18 и TX1 - контакт 19
    • RX2 - контакт 17 и TX2 - контакт 16
    • RX3 - контакт 15 и TX3 - контакт 14
    Подключение других устройств к выводам осуществляется по схеме RX->TX, TX->RX.
  • Двунаправленный последовательный интерфейс TWI/IIC/I2C:
    • SDA - контакт 20 и SCL - контакт 21
    • SDA - контакт SDA и SCL - контакт SCL
    Линии запараллелены. Связь с другими устройствами поддерживается библиотекой TWI;
  • Последовательный периферийный интерфейс SPI:
    • SS - контакт 53
    • MISO - контакт 50
    • MOSI - контакт 51
    • SCK - контакт 52
    Выводы SS, MOSI, MISO продублированы на разъёме ICSP, расположенного рядом с микроконтроллером ATmega2560. Связь с другими устройствами по SPI-интерфейсу поддерживается библиотекой SPI; Коммутация с другими устройствами осуществляется по схеме SS->SS, SCK->SCK, MISO->MOSI, MOSI->MISO
  • ШИМ: выводы 2-13, 44-46 с разрядностью 8-бит;
  • Внешние прерывания:
    • INT0 - контакт 21
    • INT1 - контакт 20
    • INT2 - контакт 19
    • INT3 - контакт 18
    • INT4 - контакт 2
    • INT5 - контакт 3
    Каждый контакт можно настроить на генерацию прерывания по низкому уровню, по восходящему или спадающему фронту (задержка программы для предотвращения ложного прерывания в момент подачи питания), или на любое изменение уровня на входе вывода прерывания. Оперирует прерываниями программная функция attachInterrupt();
  • Светодиод L: отображает наличие сигнала высоко уровня (значение HIGH) для цифрового вывода 13. Гаснет при сигнале низкого уровня (значение LOW);
  • AREF - опорное напряжение, устанавливаемое оператором analogReference();

Группа из 6-ти контактов - ICSP

Разъём ICSP (внутрисистемное последовательное программирование) разработан для непосредственного программирования центрального микроконтроллера ATmega2560 с помощью внешних программаторов (USB ASP, AVRISP STK500 или другой с поддержкой интерфейса SPI) без использования внутреннего загрузчика. Обмен данными организован протоколом STK500v2. Данный способ применяется в тех случаях, когда требуется полный объём доступной флэш-памяти, или же использование USB-соединения нецелесообразно или неудобно.

USB хост MAX3421E

Микросхема USB-контроллера MAX3421E соединена с Arduino интерфейсной шиной SPI и использует следующие выводы:

  • Цифровые выводы: 7 (RST), 50 (MISO), 51 (MOSI), 52 (SCK). Пожалуйста, не используйте цифровой вывод 7 для прерываний, так как контакт задействован чипом MAX3421E.
  • Дополнительные, не имеющие самостоятельных выводов на плате: PJ6 (INT_MAX), PJ3 (GP_MAX), PH7 (SS).

К сожалению, официальных библиотек, разработанных для MEGA ADK, на данный момент не существует. Воспользуйтесь прилагаемым списком примерных библиотек для USB-контроллера MAX3421E, расположенным в разделе "Бибилиотеки".

С информацией о подключении, настройке и процессе разработке, можно ознакомиться здесь.

Защита USB

Для защиты USB-порта в схему Arduino MEGA ADK встроен самовосстанавливающийся предохранитель, защищающий от нагрузочных сверхтоков и токов короткого замыкания. В случаях, когда от USB-порта плата получает ток более 500мА, предохранитель срабатывает и размыкает цепь, отключая общее питание MEGA ADK. Цепь снова замыкается, когда потребляемый ток будет снижен до порогового значения или устранена причина короткого замыкания.

Распиновка (цоколёвка) платы MEGA ADK R3

*картинка*

Принципиальная схема платы

Первое подключение

Модуль ADK R3 имеет все необходимые компоненты для подключения, достаточно соединить его USB-кабелем с компьютером. На плате загорится зеленый светодиод "ON", информирующий вас о том, что MEGA ADK R3 подключена к питанию. Необходимый драйвер самостоятельно установится, после чего будет создан виртуальный COM-порт для обращения к модулю. На экране вы увидите сообщение

*картинка*

Теперь вы можете приступать к программированию контроллера ATmega2560.

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

Arduino MEGA ADK, ровно как и большинство плат, входящих в семейство ARDUINO, доступно программировать следующими способами:

• С помощью уже установленной вами оболочки программирования ARDUINO IDE в паре с USB-подключением.
• Подключив к плате внешние программаторы через интерфейс SPI.

Любая программа, написанная для ARDUINO, называется "скетч". Прежде, чем вы загрузите скетч, необходимо провести небольшую настройку редактора:

• В меню "Инструменты (Tools) / Плата (Boards)" панели управления редактором выберите ваше устройство: Arduino Mega ADK

• Указываем созданный при подключении COM-порт. В ОС Windows порты могут быть COM2, COM3 и т.д. На ОС MAC наименование порта может выглядеть как /dev/tty.usbserial-A6006hSc. Выбираем "Инструменты (Tools) / Порт (Port)" и выделяем COM...

*картинка*

Все настройки произведены. Теперь вы можете загружать скетч в контроллер Atmega2560. После нажатия кнопки "Загрузить" на плате замигают светодиоды RX и TX, показывающие передачу данных, а на экране компьютера появиться сообщение "Загрузка завершена" (Done Uploading). Ваша MEGA ADK R3 приступит к выполнению программного кода.

Программное обеспечение

  • adk_release_20110512.zip - датирована 12.05.2011г. Архив содержит исходные коды: DemoKit приложения для Android, DemoKit прошивки для Arduino, библиотеки Open Accesory Protocol и USB Host
  • adk_release_20120606.zip - датирована 06.06.2012г. Архив содержит исходные коды: DemoKit приложения для Android, DemoKit прошивки для Arduino, библиотеки Open Accesory Protocol и USB Host
  • USB_Host_Shield_2.0.zip - Архив библиотеки содержит:
    • USB ядро для устройств, основанных на MAX3421E;
    • Поддержка HID-устройств, FTDI, ADK, ACM, PL2303;
    • Поддержка Bluetooth HID-устройств;
    • Поддержка устройств хранения информации (жесткие диски и флэшки) MASS STORAGE;
    • Поддержка SPP-связи;
    • Поддержка контроллеров PS4, PS3, Wii, XBOX, XBOX360, XBOX ONE, PSBuzz (мыши, клавиатуры);
    • Поддержка MIDI