Arduino:Знакомство с Arduino/Знакомство с Arduino Due

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

{{#setlogo:ArduinoCommunityLogo.png}}

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Знакомство с Arduino Due[1]

Чтобы подключить Arduino Due к компьютеру, понадобится USB-кабель с разъемом Micro-B. Этот кабель, с одной стороны, будет питать плату электричеством, а с другой, позволит ее программировать.

Подключите кабель разъемом Micro-B к так называемому «порту для программирования» на Due. Это USB-порт, который находится ближе к DC-разъему, т.е. разъему для питания переменным током. Чтобы загрузить скетч, открываем меню Инструменты > Плата (Tools > Board) и выбираем там Arduino Due (Programming Port). Затем выбираем нужный порт в меню Инструменты > Порт (Tools > Port).

На официальном форуме Arduino есть специальная ветка, посвященная Arduino Due.

Чтобы программировать на Due, версия IDE Arduino должна быть не старее 1.5. Загрузить ее можно отсюда.

Отличия от плат на базе ATmega

Использование Arduino Due почти ничем не отличается от использования других Arduino. Однако несколько важных отличий и функциональных расширений все же есть.

Контакты на Arduino Due расположены так же, как и на Arduino Mega 2560.

Питание

Микроконтроллеру, которым оснащена Arduino Due, нужно питание 3,3 вольт – это значит, что все датчики и прочие устройства можно будет питать только этими 3,3 вольтами. Если подключить более высокое напряжение (вроде 5 вольт, которыми обычно питаются Arduino), это приведет к повреждению Due.

Плата может питаться либо от USB-коннекторов, либо от DC-разъема. При использовании DC-разъема напряжение должно быть в пределах 7-12 вольт.

Arduino Due оснащена импульсным стабилизатором напряжения, чьи характеристики соответствуют требованиям для устройств с функцией USB-хоста. Благодаря этому Due может выступать в качестве источника питания для USB-устройства, подключенного к ее штатному USB-порту. То есть, по сути, служить USB-хостом. Однако для этого она сама должна быть подключена к источнику питания через DC-разъем.

USB-порты на Due

DueSerialPorts.jpg

Модель Arduino Due оснащена двумя USB-портами. Штатный USB-порт поддерживает CDC-коммуникацию (от Connected Device Class; означает то, что плата будет отображаться для ОС как виртуальный последовательный порт) через объект SerialUSB и подключен напрямую к микропроцессору SAM3X. Другой USB-порт – это порт для программирования. Он подключен к чипу ATMEL 16U2, который служит USB-UART преобразователем. Именно этот порт по умолчанию используется для загрузки скетчей и коммуникации с Arduino.

Преобразователь USB-UART подключен к первому UART’у микропроцессора SAM3X. Благодаря этому с портом для программирования можно взаимодействовать при помощи объекта Serial из языка Arduino.

USB-коннектор на штатном порте напрямую подключен к контактам USB-хоста SAM3X. Таким образом, благодаря штатному порту Due можно использовать и как клиентское периферийное USB-устройство (например, как мышь или клавиатура, подключенные к компьютеру), и как USB-хост, к которому могут быть подключены различные USB-устройства (вроде тех же мыши, клавиатуры или телефона на Andriod). Кроме того, этот порт можно использовать как виртуальный последовательный порт при помощи объекта SerialUSB в языке программирования Arduino.

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

Микроконтроллер SAM3X отличается от микроконтроллеров AVR тем, что перед тем, как снова его программировать, его flash-память должна быть очищена. Это можно сделать вручную – сначала секунду нажимать на кнопку очистки памяти, потом нажать на кнопку «Загрузка» в IDE Arduino, а после этого нажать на кнопку сброса.

Это скучная и монотонная процедура, однако ее можно автоматизировать. Но для каждого из портов это делается по-разному:

  • Штатный порт. Когда штатный порт, работающий на скорости 1200 бит/с, открывается и закрывается, это запускает процедуру т.н. «мягкой очистки»flash-память очищается, а плата перезагружается при помощи загрузчика. Если микроконтроллер во время этого процесса по какой-то причине зависнет, то процедура «мягкой очистки», скорее всего, не сработает, т.к. выполняется при помощи ПО внутри самого микроконтроллера.

В то же время, если штатный порт будет открыт/закрыт не на 1200 бит/с, а на какой-то другой скорости, то SAM3X сброшен не будет. Чтобы воспользоваться монитором порта и с его помощью увидеть, какие данные скетч будет отправлять в самом начале работы Due, в секцию setup() нужно вписать дополнительный код – благодаря ему SAM3X перед выполнением скетча будет ждать открытия SerialUSB-порта:

while (!Serial) ;

Если нажать на Due кнопку сброса (Reset), то будет сброшен и SAM3X, и USB-соединение. Если у вас во время этого разрыва будет открыт «Монитор порта», то для восстановления соединения его нужно будет закрыть и снова открыть.

  • Порт для программирования. USB-порт для программирования использует чип-преобразователь USB-UART, подключенный к первому UART’у микроконтроллера (а если точнее – к контактам RX0 и TX0). Кроме того, два контакта этого чипа подключены к контактам Reset и Erase на SAM3X. Таким образом, когда вы открываете порт для программирования, то перед самым началом коммуникации чип запускает последовательность Erase-Reset, тем самым очищая память SAM3X.

Это более надежная процедура, чем та, что имеется на штатном порте, и если микроконтроллер зависнет, она должна сработать лучше.

Чтобы настроить последовательную передачу данных через порт для программирования, нужно использовать объект Serial. Все скетчи, использующие последовательную коммуникацию на базе Uno, должны работать таким же образом. Порт для программирования на Due работает примерно так же, как последовательный порт Uno – в том отношении, что преобразователь USB-UART сбрасывает плату каждый раз, когда вы открываете коммуникацию через монитор порта (или другую последовательную коммуникацию).

Нажатие на Reset во время коммуникации через порт для программирования не оборвет USB-соединение с компьютером, т.к. сброшен будет только микропроцессор SAM3X.

USB-хост

Модель Due умеет служить USB-хостом для периферийных устройств, подключенных к ней через SerialUSB-порт. Более подробно читайте на странице о USB-хосте.

Когда Due выступает в качестве хоста, она еще и обеспечивает периферийное устройство электричеством. Поэтому мы рекомендуем подключить ее к питанию через DC-разъем.

Разрядности АЦП и ШИМ

Кроме того, в Due можно менять установленную по умолчанию разрядность для считывания и записи аналоговых данных (10 бит и 8 бит, соответственно). Она может поддерживать разрядность до 12 бит – и для АЦП, и для ШИМ. Более подробно читайте на соответствующих страницах – тут и тут.

Расширенная функциональность SPI

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

Установка драйверов

OSX

  • На OSX никаких драйверов устанавливать не нужно. В зависимости от версии ОС перед вами может появиться окно, спрашивающее, не хотите ли вы открыть сетевые настройки. Кликните на кнопку «Network Preferences…», а затем на «Apply». Плата Due будет показана как «Not Configured», но работать все же будет. После этого из «System Preferences» можно выйти.

Windows (тестировалось на XP и 7)

  • Загрузите Windows-версию IDE Arduino и распакуйте загруженный файл. Убедитесь, что структура распакованных файлов осталась нетронутой.
  • Подключите Due к компьютеру при помощи USB-кабеля через порт для программирования.
  • Когда плата будет подключена, Windows должна запустить процесс установки драйверов. Впрочем, самостоятельно найти драйвер она не сможет. Вам нужно будет помочь ей сделать это. Образно говоря, ткнуть ее в этот драйвер носом.
  • Нажмите кнопку «Пуск» (или клавиши  Win + X ) и откройте «Панель управления».
  • Кликните по пункту «Система и безопасность», потом по «Система» и, наконец, по «Диспетчер устройств».
  • Ищите секцию «Порты (COM и LPT)». Здесь должен быть открытый порт «Arduino Due Prog. Port».
  • Кликните по нему правой кнопкой и выберите пункт «Обновить драйверы...»
Win7DueInstall 1.png
  • Выберите пункт «Выполнить поиск драйверов на этом компьютере»
Win7DueInstall 2.png
  • Пройдите к папке, где находится загруженная и распакованная IDE Arduino. Найдите и выберите здесь папку Drivers (но не подпапку FTDI USB Drivers). Нажмите «ОК» и «Далее».
  • Появится предупреждение о том, что устанавливаемое ПО не проверялось на совместимость с Windows. Кликните «Все равно продолжить».
  • Теперь Windows займется установкой драйвера.
Win7DueInstall 3.png
  • Драйвер установлен. В «Менеджере устройств» должна появиться запись, схожая с «Arduino Due Programming Port (COM4)».
Win7DueInstall 4.png

Linux

  • Установка драйверов не требуется.

Установка ядра Arduino SAM

Если вы используете Arduino IDE версии 1.6.2 и новее, то вам надо будет установить ядро, поддерживающее Arduino Due. Инструкции для этой процедуры описаны в этом руководстве.

Загрузка кода на Due

С точки зрения пользователя процесс загрузки скетча на Due такой же, как и на других моделях Arduino. Мы рекомендуем использовать для этих целей порт для программирования, но вообще делать это можно через оба USB-порта. Для загрузки через порт для программирования нужно проделать следующее:

  • Подключите плату к компьютеру, подсоединив USB-кабель к порту для программирования на Due (это порт, находящийся ближе к DC-разъему).
  • Откройте IDE Arduino.
  • В меню Инструменты > Порт (Tools > Serial Port) выберите порт Due.
  • В меню Инструменты > Плата (Tools > Board) выберите Arduino Due (Programming Port).

Теперь на Arduino Due можно загружать скетчи.

Более подробно читайте на странице, описывающей оборудование платы.

См.также

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