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

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

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


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

Самое первое – убедитесь, пожалуйста, что у вас установлено ядро SAMD. Это делается при помощи менеджера плат, встроенного в IDE Arduino.

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

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

Для программирования Zero необходимо использовать IDE Arduino версии 1.6.5 и выше.

Внимание

Микроконтроллер на Arduino Zero работает на 3,3 вольтах, т.е. на его входные и выходные контакты ни в коем случае нельзя давать свыше 3,3 вольт. Поэтому, подключая к Zero датчики и прочие устройства, будьте предельно осторожны. Более высокое напряжение – вроде 5 вольт, которое, как правило, используется на других моделях Arduino – может повредить Zero.

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

Модель Arduino Zero имеет ту же распиновку, что и Arduino Uno, и если смотреть в целом, то программирование Zero осуществляется примерно так же, как и на других Arduino. Однако некоторые важные отличия и функциональные расширения все же присутствуют.

Напряжение

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

Плату можно питать либо от USB-коннекторов, либо от DC-разъема (6-20 вольт).

Arduino Zero оснащена импульсным регулятором напряжения, совместимым с характеристиками USB-хоста. Если использовать в качестве USB-хоста штатный USB-порт, это подразумевает, что плата будет давать питание периферийному устройству вроде мыши или клавиатуры.

USB-порты Arduino Zero

Zero Usb Ports.jpg

Arduino Zero имеет два USB-порта. Штатный порт поддерживает CDC-коммуникацию (от Connected Device Class; означает то, что плата будет отображаться для ОС как виртуальный последовательный порт) через объект SerialUSB и подключен напрямую к микропроцессору SAMD21. Другой USB-порт – это порт для программирования. Он подключен к ATMEL EDBG, встроенному программатору и отладчику, который также может служить конвертером USB-коммуникации в последовательную коммуникацию. Кроме того, он по умолчанию используется для загрузки скетчей и коммуникации между компьютером и Arduino.

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

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

Штатный порт

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

Открытие и закрытие штатного порта на скорости, отличной от 1200 бит/сек, не сбросит SAMD21. Чтобы иметь возможность воспользоваться монитором порта и видеть, что ваш скетч делает в самом начале работы, в этот скетч – точнее, в блок setup() – нужно добавить вот эту строчку:

while (!Serial) ;

Если нажать на Zero кнопку Reset, это сбросит процессор SAMD21, а вместе с ним и последовательную USB-коммуникацию. Если в это время будет открыт монитор порта, то для возобновления коммуникации его нужно будет закрыть, а потом открыть опять.

Порт для программирования

USB-порт для программирования подключен к Atmel EDBG – встроенному программатору и отладчику. Порт для программирования дает полный доступ к SAMD21. К примеру, вы можете использовать EDBG для записи загрузчика или доступа ко всему содержимому flash-памяти. Помимо этого, EDBG ведет себя как конвертер USB-коммуникации в последовательную коммуникацию, подключенный к первому последовательному интерфейсу SAMD21. Самый безопасный способ программирования SAMD21 – как раз при помощи порта для программирования. К примеру, он работает даже в том случае, если не отвечает скетч, запущенный на главном процессоре.

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

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

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

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

OSX

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

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

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

Со штатным USB-портом процедура та же, однако в «Менеджере устройств» плата будет отображаться как «Неизвестное устройство».

Linux

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

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

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

Для загрузки через порт для программирования нужно проделать следующее:

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

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

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

Обучение

Вот несколько обучающих статей, которые позволят сделать с помощью Arduino Zero пару интересных штуковин:

См.также

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