Программы

Проекты Arduino. Начало работы с Arduino Due

Проекты Arduino. Начало работы с Arduino Due

Что такое цифровая драм-машина или иначе бит-машина слышали наверное все. Совсем другое дело электромеханическая драм-машина, созданая норвежским композитором Koka Nikoladze. В ней звук формируется за счет механического воздействия. Машинка работает под управлением Arduino, который позволяет запрограммировать мелодию для исполнения.

Вы слышали про Arduino и вам хочется поскорее разобраться с ней, чтобы сделать свое устройство, робота или что там еще придумали. Помигать светодиодом вы сможете уже в первый вечер, но на создание более сложного гаджета уйдет куда больше времени. Впереди долгие недели и даже месяцы изучения программирования на C, поиск совместимых библиотек и модулей, костылей и превозмогания трудностей. Как ускорить процесс? Начните с Arduino совместимой платы, которую можно программировать на JavaScript.

Оригинал статьи на английском http://www.bunniestudios.com/blog/?p=2407

На фотографии готовые печатные платы для Leonardo

Самое интересное в лампе - это то, что она реагирует на приближение с помощью самодельного, и вообщем-то очень простого емкостного сенсора. Основной элемент, которого - лист фольги. На данный момент эта сборка лишь прототип, и все электронные компоненты и сенсор (тот самый лист фольги) никаким образом не интегрированы в сам светильник, но сама идея очень интересная.

Arduino, самодельная перчатка с 5-тью зашитыми датчиками изгиба, 5 сервоприводов HITEC HS-81 и механическая рука. Как все это работает можно посмотреть на видео. Arduino cчитывает данные с датчиков изгиба и управляет сервомоторчиками так, чтобы механическая рука повторяла движения кисти человека. Кстати, в первом видео автор использует готовый набор механики руки, который можно купить на ebay, правда без электронных компонентов и приводов. В другом проекте автор сделал подобную руку из подручных материалов.

В этом проекте автор покажет, как можно подключить полноцветную светодиодную матрицу 8x8 к Arduino. Сама матрица имеет 32 входа: 8 анодов, 8 катодов красного цвета, 8 зеленого и 8 синего. При этом для управления матрицей будут задействованы всего 3 выхода на Arduino. Никакой магии тут нет, а есть 4 сдвиговых регистра 74HC595.

Более подробно об использовании 74HC59 с Arduino можно почитать в инструкции Использование сдвигового регистра 74HC595 для увеличения количества выходов .

Один регистр дает нам 8 выходов, так как у нашей матрицы 32 входа, в проекте использована техника каскадирования сдвиговых регистров. Нам понадобится 4 регистра 74HC59, при этом количество подключений к Arduino не изменится и будут задействованы 3 выхода на Arduino. для управления. Питание осуществляется по USB, но можно подключить и автономное.

Съемка быстротекущих процессов, таких как падение капли, взрыв воздушного шарика, - очень непростое дело. Точно подгадать момент, когда нужно нажать на спуск затвора, без специальных устройств практически невозможно. Нет, можно, конечно, сделать сотню попыток, и в какой-то момент удача повернется к тебе. Но можно обойтись и без сотни шариков. Тут на помощь придет Arduino. Ниже описан процесс конструирования автоматического триггера на базе Arduino с реакцией на звук или пересечение луча лазерной указки.

Cтрого говоря, Arduino будет управлять не затвором камеры, а фотовспышкой. К сожалению, задержка реакции камеры на сигнал — в районе 20 миллисекунд, что для человеческого глаза не заметно, но все же дольше, чем можно себе позволить при съемке лопнувшего шарика. Поэтому съемка производится в темной комнате с выдержкой 10 секунд, а вот вспышка срабатывает именно в нужный момент. Так как в комнате практически нет освещения, то всё экспонирование фотографии произойдет именно в момент работы вспышки (около 1 миллисекунды).

Ещё одно готовое устройство от Arduino для конструкторов электронных игрушек, оригинальных и полезных конструкций, малых систем автоматизации. Примечательна установленным 32-битным микроконтроллером SAM3X8E ARM Cortex-M3. Оценим её возможности и возможные сферы применения.
Вид платы сверху


Разъёмы и выводы
  • 0-52. Расположены сверху и справа. Каждый из выводов может быть запрограммирован в качестве дискретного входа или выхода. Уровень напряжения выводов 3,3 В, ток в выходных цепях 3-15 мА, а во входных 6-9 мА.
  • Выводы (communication) 0, 19, 17, 15 (Rx) и 1, 18, 16, 14 (Tx) могут быть запрограммированы для обмена данными по последовательному интерфейсу с уровнем напряжения TTL (3,3 В) (RX – приём, TX – передача). На плате установлен преобразователь USB-UART, выполненный на микросхеме ATMega16U2, выводы которой подключены к выводам 0 и 1 платы. Интерфейс является USB-портом для программирования.
  • Выводы (PWM) со 2 по 13 можно сконфигурировать как аналоговые выходы с невысоким 8-битным разрешением. Вид выходного сигнала – ШИМ, а значит для подключения исполнительных устройств потребуется дополнительная согласующая схема.
  • Штыревой разъём SPI справа от микроконтроллера. Особенность этого интерфейса в том, что его нельзя использовать для внутрисхемного программирования, а исключительно для связи с другими устройствами.
  • Выводы CANRX, CANTX в самом низу, справа. Линии обмена данными по протоколу CAN. Протокол широко используется в бортовых сетях автомобилей, промышленной электронике.
  • Интерфейс связи TWI/I 2 C может быть подключен к выводам 20 (SDA), 21(SCL). Отметим, что к выводам на плате подключены подтягивающие резисторы 100 кОм, по умолчанию отключенные. Необходимо подключать резисторы при организации сетевого обмена.
  • Выводы А0–А11 внизу – аналоговые входы. Обрабатывающий сигналы с этих входов АЦП 12-битный, а значит входы могут использоваться в достаточно серьёзных приложениях. Стоит отметить, что конфигурация по умолчанию 10 бит, смена разрешения выполняется программным способом. Ещё одно замечание – для использования вывода AREF следует удалить из схемы резистор BR1.
  • На плате всего 2 полноценных 12-битных аналоговых выхода DAC1 и DAC2.
  • Вывод RESET при подаче низкого уровня инициирует перезагрузку контроллера.
  • Вверху, слева от вывода 13, расположен вывод AREF – опорное напряжение АЦП и выводы SDA1, SCL1 для интерфейса TWI1/I 2 C1.
В выводы могут устанавливаться платы расширения (шилды). Подключать можно весь спектр устройств Arduino: дисплеи, Ethernet-модули, клавиатуры и т.д. Создавая плату, компания обеспечила совместимость с устройствами расширения для других серий. Правда есть одно НО. Уровень напряжения на выводах не должен превышать 3,3 В. Информацию о рабочем уровне напряжения для плат расширения выдаёт выход IOREF, а подключаемая плата должна задействовать встроенный преобразователь уровня. Обращайте на это внимание при выборе шилда, если уровень 3,3 В не поддерживается, то подключать к Arduino Due устройство не рекомендуется.
Раз уж затронули тему уровней напряжения, то давайте разберёмся с питанием платы. Во-первых, внешнее питание на плату может быть подано либо от внешнего источника, либо от USB. Напряжение питание должно лежать в диапазоне 6-20 В, оптимальное – 7-12 В.
Выводы питающих напряжений находятся внизу, чуть левее микроконтроллера.
  • VIN – линия «+» внешнего источника питания.
  • 5V – напряжение +5 В, выдаваемое стабилизатором напряжения, максимальный ток Iмакс = 800 мА.
  • 3.3V - напряжение +3,3 В от того же стабилизатора, максимальный ток Iмакс = 800 мА.
  • GND – земля.
На плате установлены 2 USB-порта, предназначенные для обмена данными с компьютером или подключения поддерживающих интерфейс USB периферийных устройств.
Память
На плате размещены микросхемы оперативной памяти (SRAM) объёмом 96 кб, и флэш-памяти программ 512 кб. Адресное пространство единое для всей памяти. Стоит учесть, что есть возможность подключить внешнюю SD-карту, используя интерфейс TWI1/I 2 C1 и картридер.
Органы управления
На плате установлена кнопка Reset для стирания программы, записанной в ПЗУ.
Габаритные размеры
Плата имеет размеры 10,2х5,4 см, три крепёжных отверстия.

Сфера применения

Применение такого устройства будет оправдано:
  • Для обучения работе с микроконтроллерами школьников и студентов.
  • Для построения разнообразных роботов, квадрокоптеров или иных умных устройств конструкторами-любителями.
  • Для создания систем «Умного дома». Возможность создания локального пульта управления (на сенсорном дисплее или обычном и клавиатуре), достаточное количество входов-выходов для подключения датчиков и исполнительных устройств, возможность организации удалённого управления через Интернет – всё есть для реализации такого решения. В пользу его говорят и завышенные цены на готовые системы «умного дома». Можем посоветовать тем, кто решит использовать Arduino Due в этих целях, обратить внимание на бесплатную систему контроля и мониторинга Tesla Scada для ПК и мобильных устройств. Использование в качестве концентратора датчиков и интеллектуального устройства в системе интернета вещей (IoT). Готовые решения для Arduino есть у IBM. Это и библиотеки для Arduino IDE – Arduino Client for MQQT , и брокер для тестирования Mosquitto , и платформа IBM Internet of Things Foundtation .
Однако, стоит рассмотреть и ядро платы – 32-битный микроконтроллер, ведь именно он является главной «изюминкой» Arduino Due.

Как уже упоминалось выше, работа с платой возможна из-под Atmel IDE, но есть и собственная среда разработки IDE . Кроме того, необходимо разобраться как подключиться и отлаживать устройство.
Первый нюанс заключается в том, что для заливки новой прошивки требуется стереть старую во флэш-памяти.
Второй в используемом для загрузки USB-порте. На приведённом в начале статьи рисунке, слева можно увидеть 2 порта. Для программирования следует использовать нижний.
В остальном процесс создания проекта и отладки стандартен для устройств Arduino. Необходимыми предпосылками для успешной работы с устройством будет:
  • Формулировка задачи. Требуется определить какое устройство будет получено на выходе, какими функциями оно будет обладать.
  • Определение необходимых плат расширения. Для расширения функциональности и повышения удобства работы с готовым устройством могут потребоваться специальные шилды – дисплеи, внешняя память, модули связи и т.п. Помните про совместимость по уровню напряжения!
  • Состав оборудования определён, теперь необходимо всё увязать в единое устройство. Для этого, возможно, потребуется изготовить электронные платы сопряжения, подготовить шлейфы для связи, изготовить или купить конструкцию для размещения электронной начинки.
  • Подбор датчиков и исполнительных устройств, разработка подвижной конструкции. Для случаев летающих, ездящих, шагающих или плавающих устройств задача может быть очень нетривиальной.
  • Написание программы, загрузка её в плату, тестирование, отладка и удовлетворение от качественно проделанной работы.

    Arduino Due - это мощная Arduino, основанная на 32-битном ARM-процессореAT91SAM3X8E от Atmel. Он обладает тактовой частотой 84 МГц, а его 32-битная архитектура позволяет выполнять большинство операций на целыми числами в 4 байта за один такт.

    Характеристики Arduino Due

    • 96 Кб SRAM (оперативная память)
    • 512 Кб флеш-памяти (для хранения программы)
    • Прямой доступ к памяти (DMA) для задач, активно работающих с данными в памяти
    • 54 цифровых входов/выходов; 12 из них поддерживают ШИМ (PWM)
    • 4 аппаратных последовательных порта (UART)
    • 12 аналоговых входов
    • 2 цифро-аналоговых преобразователя (DAC) для 2 аналоговых выходов
    • 2 шины TWI / I²C
    • SPI-разъём
    • JTAG-разъём
    • Поддержка USB On The Go (USB OTG) для подключения других USB-устройств

    Внимание! В отличии от большинства плат Arduino, родным напряжением Arduino Due является 3,3 В, а не 5 В . Соответственно, выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Подача большего напряжения может повредить процессор! Будьте внимательны при подключении периферии: убедитесь, что она может корректно функционировать в этом диапазоне напряжений.

    Контакты Arduino Due

    • Цифровые входы/выходы: контакты 0–53. Работают на напряжении 3,3 В. В режиме выхода могут выдавать ток 3 или 15 мА (в зависимости от контакта); в режиме входа - принимать ток 6 или 9 мА (в зависимости от контакта). К контактам также подключены подтягивающие резисторы по 100 кОм, которые по умолчанию выключены, но могут быть включены программно.
    • Аппаратные последовательные порты (RX/TX): 0/1, 19/18, 17/16, 15/14. Передача данных осуществляется на уровне 3,3 В. Первая пара также соединена с чипом ATmega16U2, отвечающим за подключение через USB к компьютеру.
    • Широтно-имульсная модуляция (ШИМ/PWM): контакты 2–13. Дают возможность выдавать аппаратный шим с разрешением 8 бит (256 градаций).
    • SPI - отдельная группа контактов 2×3. На Arduino Due используется только для общения по SPI-интерфейсу с другими устройствами. Он не может быть использован для программирования контроллера, как на других Arduino. По расположению он в точности совпадает с расположением на , Arduino Mega 2560, Arduino Leonardo, а следовательно даёт возможность работы с платами расширения его использующими, таких как Ethernet Shield.
    • CAN-шина: контакты CANRX и CANTX. Позволяют использовать Arduino Due в автомобильных сетях. Поддержка с программной стороны пока не реализована производителем.
    • Встроенный светодиод: контакт 13 (L). Для простой индикации. В отличии от Arduino Uno и Mega, он поддерживает ШИМ.
    • Шины TWI/I²C: 20(SDA)/21(SCL), SDA1/SCL1. Для общения с периферией по синхронному протоколу, через 2 провода.
    • Аналоговые входы: контакты A0–A11. Принимают сигнал до 3,3 В. Большее напряжение может вывести процессор из строя. Аналоговые входы предоставляют разрешение до 12 бит (4096 градаций), хотя по умолчанию настроены на разрешение в 10 бит для совместимости со скетчами для других моделей Arduino.
    • Цифро-аналоговый преобразователь: контакты DAC1 и DAC2. Позволяют выдавать настоящий аналоговый сигнал с 12-битным разрешением (4096 градации), например, для устройств, связанных с обработкой звука.
    • Сброс процессора: RESET. Позволяет аппаратно перезагружать плату.
    • Входное напряжение: Vin. Выдаёт напряжение, поданное внешним источником, либо может являться входом для внешнего питания.
    • Стабилизированные 5 В: контакт 5V. Позволяет получать ровные 5 В и ток до 800 мА.
    • Стабилизированные 3,3 В: контакт 3.3V. Позволяет получать ровные 3,3 В и ток до 800 мА.
    • Общая земля: GND.
    • Опорное напряжение для плат расширения: IOREF. Платы расширения должны «советоваться» с этим контактом, чтобы правильно определять родное напряжение родительской платы. Arduino Due выдаёт на IOREF 3,3 В.

    Память Arduino Due

    • На борту SAM3X - 2 блока по 256 Кб флеш-памяти для хранения программы
    • Загрузчик (bootloader) располагается в отдельной памяти только для чтения и прошит на заводе Atmel
    • Оперативная SRAM-память поделена на 2 банка: 64 и 32 Кб

    Любая память доступна для последовательной адресации из программы. Содержимое флеш-памяти (программа) может быть очищено зажатием на несколько секунд кнопки Erase на плате.

    Коммуникация

    Arduino Due позволяет взаимодействовать с компьютером, другими Arduino, микроконтроллерами и различными устройствами вроде телефонов, планшетов, фотоаппаратов. Для этого плата предоставляет три аппаратных последовательных порта (UART/USART), две шины TWI/I²C, интерфейс SPI и USB-порт.

    Один USB-порт (programming) используется для прошивки Arduino Due. Он подключён к чипу ATmega16U2 на плате, который является мостом между USB и аппаратным портом SAM3X, используемым для программирования процессора и связи с компьютером.

    Второй USB-порт (native) может использоваться для связи с другими устройствами как в режиме slave (эмуляция мыши, клавиатуры), так и в режиме host (приём данных с фотоаппаратов, управление мышью, клавиатурой, телефоном).

    Совместимость

    Платформа по своему форм-фактору полностью совпадает с Arduino Mega 2560. Это означает механическую совместимость со всеми платами расширения для Arduino Mega, Arduino Uno, Arduino Leonardo.

    Однако, в силу того, что родным является напряжение в 3,3 В, а не 5 В, как на других моделях, стоит обязательно удостоверяться в возможности подключения платы расширения к Arduino Due.

    Питание, защита USB и принципы взаимодействия аналогичны другим моделям Arduino.

    Габариты Arduino Due

    Размер платы составляет 10,16 × 5,3 см (против 6,9 × 5,3 см базовой модели). Гнёзда для внешнего питания и USB выступают на пару миллиметров за обозначенные границы. На плате предусмотрены места для крепления на шурупы или винты. Расстояние между контактами составляет 0,1” (2,54 мм), но в случае 7-го и 8-го контакта - расстояние: 0,16”.

    Где купить Arduino

    Наборы Arduinoможно купить на официальном сайте и в многочисленных интернет-магазинах.

    Наиболее привлекательные цены, постоянные спецпредложения и бесплатная доставка на сайтах китайских магазинов

    Доброго времени суток!
    Уже довольно давно на досуге я занимаюсь всяческими электронными безделушками. Начинал с программирования тинек и мег в IARе, пока не понял что c Arduino дела обстоят намного проще. И вот совсем недавно обнаружил на просторах китайских магазинов копию Arduino DUE по цене чуть дороже небезызвестной Mega2560.

    Для тех, кто не знает что это и с чем его едят

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

    Arduino позволяет компьютеру выйти за рамки виртуального мира в физический и взаимодействовать с ним. Устройства на базе Arduino могут получать информацию об окружающей среде посредством различных датчиков, а также могут управлять различными исполнительными устройствами.

    Микроконтроллер на плате программируется при помощи языка Arduino (основан на языке Wiring) и среды разработки Arduino (основана на среде Processing). Проекты устройств, основанные на Arduino, могут работать самостоятельно, либо же взаимодействовать с программным обеспечением на компьютере (напр.: Flash, Processing, MaxMSP). Платы могут быть собраны пользователем самостоятельно или куплены в сборе. Программное обеспечение доступно для бесплатного скачивания. Исходные чертежи схем (файлы CAD) являются общедоступными, пользователи могут применять их по своему усмотрению.
    © arduino.ru


    Начинал свое знакомство с arduino я с покупки китайского аналога Mega2560. По началу игрался, подключал дисплеи, датчики, сервомоторы, пока как то раз не понадобилось по работе сделать девайс, считывающий напряжения с токового шунта и терморезистора, преобразующий все это дело в нормальный вид и выводящий на дисплей. Вот тут то и пригодилась ардуина, за 5 минут был написан скетч, подключен дисплей и плата переехала на работу. Конечно получилось из пушки по воробьям, но на тот момент это было самое быстрое решение. Потом я заказал с десяток ProMini по 100 рублей и хотел перенести на одну из них скетч, но как известно, нет ничего более постоянного чем временное и моя лень так и не дала мне этого сделать. Дома же пришлось довольствоваться сторублевыми платами, благо кроме количества выводов, памяти, и отсутствия USB-UART преобразователя они ничем особо от меги и не отличались.

    Но выводов стало нехватать и однажды бродя по просторам банггуда я наткнулся на Arduino DUE. Цена ее была чуть выше чем на Mega2560 и я незамедлительно ее купил. Основным отличием ее от других ардуин является то, что внутри у нее 32-х битный ARM микроконтроллер архитектуры Cortex-M3 работающий на частоте 84 МГц.

    Посылка добралась за 27 дней, плата была завернута в несколько слоев пупырки и упакована в типичный желтый китайский пакет.

    Вид спереди:


    Пайка выполнена аккуратно, но если приглядеться, заметны небольшие изъяны шелкографии.
    Как видно из фото данная плата обладает двумя разъемами microUSB. Один необходим для программирования, а через второй плата может общаться с внешним миром: читать флешки, эмулировать клавиатуру, мышь (сам пока этого не проверял). Также есть хитрая кнопка erase, нажатие на которую стирает флеш микроконтроллера.

    Вид сзади:

    Технические характеристики платы (взято с офф. сайта):
    Микроконтроллер: AT91SAM3X8E
    Рабочее напряжение: 3,3 В
    Входное напряжение (рекомендуемое): 7-12 В
    Входное напряжение (предельное): 6-20 В
    Цифровые Входы/Выходы: 54 (на 12 из которых реализуется выход ШИМ)
    Аналоговые входы: 12
    Аналоговые выходы: 2 (ЦАП)
    Общий выходной постоянный ток на всех входах/выходах: 50 мА
    Постоянный ток через вывод 3,3 В: 800 мА
    Постоянный ток через вывод 5 В: 800 мА
    Флеш-память: 512 КБ доступно всего для пользовательских приложений
    ОЗУ: 96 КБ (два банка: 64 КБ и 32 КБ)
    Тактовая частота: 84 МГц

    Все стандартные интерфейсы, такие как SPI, 1Wire, UART присутствуют.
    Более подробно можно почитать

    А вот и сам МК покрупнее:

    За его программирование отвечает 16-я мега с кварцем на 16 МГц:

    А тактируется он внешним кварцем:


    Как подсказал комрад Angrim, 84 МГц получаются умножением на 7 исходных 12-ти.

    Важной особенностью является то, что в отличие от других плат Arduino, Arduino Due работает от 3,3 В. Максимальное напряжение, которое выдерживают вход/выходы составляет 3,3 В.
    В принципе большинство датчиков могут работать от 3,3 вольт, но некоторые шилды работать не будут.
    В прочем всегда можно докупить вот такие штуки: благо 5V на плате имеется.

    Для написания скетчей и их заливки нужно скачать Arduino 1.5.8 BETA, с поддержкой DUE. Однако стоит отметить что не все библиотеки написанные под другие версии ардуино нормально работают с DUE. У меня библиотека работы с датчиком BMP180 нормально работавшая с мегой, выдавала нереальные данные, пришлось качать библиотеку от Adafruit. Также заметил что не всегда после подачи питания МК начинает исполнение программы, иногда нужно жать reset. Чей это глюк, бета версии IDE или китайской платы я не знаю.

    Тесты

    Сначала для проверки я залил скетч, опрашивающий датчик BMP180 и записывающий данные с него (давление и температуру) на флешку.


    Все заработало, правда, как я писал выше, пришлось использовать библиотеку Adafruit.

    Результат

    Ну и конечно, как же не воспользоваться встроенным ЦАПом!
    Для этого заливаем пример SimpleAudioPlayer, подключаем флешку с залитым waw файлом test.waw, а вывод DAC0 вместе с землей подключаем к усилителю. В моем случае в роли усилителя был портативный динамик, полученный по акции от Pringles. Выводы просто примотал к джеку двумя резисторами по 10 кОм т.к. на прямую динамик жестко перегружался.

    Радуемся музыке из колонки!


    Звук конечно так себе, все таки 12 бит дают о себе знать, но для ардуины очень даже не плохо!
    Теперь в планах прикупить цветной дисплейчик и погонять на нем видео.

    Ну и в качестве итога рассмотрим плюсы и минусы данной ардуины
    Плюсы:
    - Низкая стоимость
    - 32 битный контроллер и частота 84 МГц.
    - Наличие ЦАП 12 бит 1Msps
    - 12 битные АЦП
    - Собственный USB

    Минусы:
    - 3.3V рабочее напряжение (несовместимость с некоторыми шилдами/устройствами)
    - Несовместимость с некоторыми библиотеками.
    - Иногда после подачи питания нужно нажать reset чтобы программа запустилась

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

    Всем спасибо за внимание!

    Планирую купить +59 Добавить в избранное Обзор понравился +51 +107
    Общие сведения

    Arduino Due — плата микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3 (описание). Это первая плата Arduino на основе 32-битного микроконтроллера с ARM ядром. На ней имеется 54 цифровых вход/выхода (из них 12 можно задействовать под выходы ШИМ), 12 аналоговых входов, 4 UARTа (аппаратных последовательных порта), a генератор тактовой частоты 84 МГц, связь по USB с поддержкой OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка стирания.

    Внимание! В отличие от других плат Arduino, Arduino Due работает от 3,3 В. Максимальное напряжение, которое выдерживают вход/выходы составляет 3,3 В. Подав более высокое напряжение, например, 5 В, на выводы Arduino Due, можно повредить плату.

    Плата содержит все, что необходимо для поддержки микроконтроллера. Чтобы начать работу с ней, достаточно просто подключить её к компьютеру кабелем микро-USB, либо подать питание с AC/DC преобразователя или батарейки. Due совместим со всеми платами расширения Arduino, работающими от 3,3 В, и с цоколевкой Arduino 1.0.

    Расположение выводов Due повторяет цоколевку Arduino 1.0:

    • TWI: Выводы SDA и SCL расположены рядом с выводом AREF.
    • Вывод IOREF, который позволяет с помощью правильной конфигурации адаптировать присоединенную плату расширения к напряжению, выдаваемому Arduino. Благодаря этому платы расширения могут быть совместимы и с 3,3-вольтовыми платами типа Due и с платами на базе AVR, работающими от 5 В.
    • Неподключенные выводы, зарезервированные для использования в будущем.

    Преимущества ядра ARM

    На Due установлено 32-битное ARM ядро, превосходящее по производительности обычные 8-битные микроконтроллеры. Наиболее значимые отличия:

    32-битное ядро, позволяющее выполнять операции с данными шириной 4 байта за 1 такт (более подробную информацию смотри на странице int type).

    • частота процессора (CPU) 84 МГц.
    • 96 КБ ОЗУ.
    • 512 КБ флеш-памяти для хранения программ.
    • контроллер DMA, который разгружает центральный процессор от выполнения интенсивных операций с памятью.
    Схема, исходные данные и расположение выводов
    Характеристики

    Микроконтроллер

    AT91SAM3X8E

    Рабочее напряжение

    Входное напряжение (предельное)

    Цифровые Входы/Выходы

    Аналоговые входы

    12
    Аналоговые выходы 2 (ЦАП)
    Общий выходной постоянный ток
    на всех входах/выходах
    Постоянный ток через вывод 3,3 В 800 мА
    Постоянный ток через вывод 5 В 800 мА
    Флеш-память 512 КБ доступно всего для пользовательских приложений
    ОЗУ 96 КБ (два банка: 64 КБ и 32 КБ)
    Тактовая частота 84 МГц
    Питание

    Питание Arduino Due может осуществляться через USB соединитель или с помощью внешнего источника питания. Выбор источника питания выполняется автоматически.

    Внешним (не USB) источником питания может быть либо AC/DC преобразователь («wall wart» - адаптер в одном корпусе с вилкой), либо батарея. Адаптер подключается к разъему питания платы 2,1 мм штепсельной вилкой с центральным положительным контактом. Выводы батареи подключаются к контактам Gnd и Vin разъема POWER. Плата может функционировать при внешнем питании от 6 до 20 В. Но если напряжение питания опускается ниже 7 В, на выводе 5 В может оказаться меньше пяти вольт, и плата будет работать нестабильно. Если же подается напряжение более 12 В, может перегреться стабилизатор напряжения, что приведет к повреждению платы. Рекомендуемый диапазон напряжений - от 7 до 12 В.

    Ниже перечислены выводы питания:

    • VIN . Это входное напряжение для платы Arduino, когда она питается от внешнего источника питания (в противоположность 5 вольтам, поступающим через USB соединение или от иного регулируемого источника питания). Напряжение питания может подаваться на этот вывод, или сниматься с этого вывода в случае питания через разъем питания.
    • 5V . Данный вывод служит выходом регулируемого напряжения 5 В со встроенного стабилизатора на плате. Сама плата может питаться через разъем питания постоянного тока (7-12 В), либо через USB соединитель (5 В), либо через вывод VIN на плате (7-12V). Питающее напряжение через выводы 5 В и 3,3 В подается в обход стабилизатора и может повредить вашу плату. Мы не советуем так делать.
    • 3.3V . Питание 3,3 В, вырабатываемое встроенным стабилизатором. Максимальный выходной ток 800 мА. Стабилизатор также обеспечивает питание микроконтроллера SAM3X.
    • GND. Земляные выводы.
    • IOREF . Данный вывод платы Arduino обеспечивает опорное напряжение, при котором работает микроконтроллер. Верно сконфигурированная плата расширения может считать напряжение на выводе IOREF и выбрать соответствующий источник питания, или разрешить использование выходных преобразователей напряжения для работы с 5 В или 3,3 В.
    Память

    Флеш-память SAM3X составляет 512 КБ (2 блока по 256 КБ) для хранения программ. Загрузчик (бутлодер) записывается Atmel при производстве и хранится в специально отведенном для него ПЗУ. Доступный объем ОЗУ составляет 96 КБ в двух смежных банках - 64 КБ и 32 КБ. Вся доступная память (флеш-память, ОЗУ и ПЗУ) может адресоваться напрямую как плоское адресное пространство.

    Существует возможность стереть флеш-память SAM3X с помощью встроенной кнопки стирания. При этом из микропроцессора удалится текущая загруженная программа. Для стирания нажмите и несколько секунд удерживайте кнопку стирания при включенном питании платы.

    Входы и Выходы
    • Цифровые входы/выходы: выводы с 0 по 53
      Каждый из 54 цифровых выводов Due может использоваться в качестве входа или выхода, с помощью функций pinMode() , digitalWrite() и digitalRead() . Выводы работают от 3,3 В. Каждый вывод может выдавать (как источник) ток 3 мА или 15 мА, в зависимости от вывода, или получать (как приемник) ток 6 мА или 9 мА, в засимости от вывода. На них также имеются внутренние нагрузочные резисторы (по умолчанию они отключены) номиналом 100 кОм. Кроме этого, некоторым выводам назначены специализированные функции:
    • Последовательная линия: 0 (RX) и 1 (TX)
    • Последовательная линия 1: 19 (RX) и 18 (TX)
    • Последовательная линия 2: 17 (RX) и 16 (TX)
    • Последовательная линия 3: 15 (RX) и 14 (TX)
      Эти выводы используются для приема (RX) и передачи (TX) последовательных данных TTL (с уровнем 3,3 В). Выводы 0 и 1 соединены с соответствующими выводами последовательного контроллера ATmega16U2 USB-to-TTL.
    • ШИМ : выводы с 2 по 13
      На них реализуется 8-битный выход ШИМ с помощью функции analogWrite() . Разрешение ШИМ можно менять, используя функцию analogWriteResolution() .
    • SPI : разъем SPI (разъем ICSP на других платах Arduino)
      Данные выводы служат для связи по SPI с использованием библиотеки SPI . Сигналы SPI выведены на центральный 6-контактный разъем, который физически совместим с Uno, Leonardo и Mega2560. Разъем SPI можно использовать только для связи с другими устройствами SPI, но не для программирования SAM3X по технологии внутрисхемного последовательного программирования (ICSP). SPI на Due также имеет расширенные функции, доступные при использовании Расширенных методов SPI для Due .
    • CAN : CANRX и CANTX
      На этих выводах поддерживается протокол связи CAN, но пока его не поддерживают программные интерфейсы (API) Arduino.
    • " L " LED : 13
      Встроенный светодиод, подключенный к цифровому выводу 13. При высоком уровне сигнала на данном выводе, светодиод включается, при низком - выключается. Возможно также убавить яркость светодиода, поскольку вывод 13 одновременно является выходом ШИМ.
    • TWI 1: 20 (SDA) и 21 (SCL)
    • TWI 2: SDA 1 и SCL 1
      На данных выводах с использованием библиотеки Wire поддерживается связь по TWI.
    • Аналоговые входы: выводы с A 0 по A 11
      Плата Arduino Due имеет 12 аналоговых входов, каждый из которых может обеспечить разрешение 12 бит (т.е. 4096 различных значений). По умолчанию установлено разрешение 10 бит для совместимости с другими платами Arduino. Разрешение АЦП можно менять при помощи функции analogReadResolution() . Аналоговые ходы Due производят измерения от уровня земли до максимального значения 3,3 В. Приложение к этим выводам напряжения свыше 3,3 В вызовет повреждение кристалла SAM3X. Функция analogReference() на Due игнорируется.
      Вывод AREF подключен к аналоговому выводу опорного напряжения SAM3X через резисторный мост. Для активации вывода AREF необходимо отпаять с печатной платы резистор BR1.
    • DAC 1 и DAC 2
      На выводах ЦАП DAC 1 и DAC 2 предоставляются достоверные аналоговые выходы с 12-битным разрешением (4096 уровней) при помощи функции analogWrite() . Данные выводы можно использовать для создания аудиовыхода, используя при этом библиотеку Audio .

    Другие выводы:

    • AREF
      Опорное напряжение для аналоговых входов. Используется с функцией analogReference ().
    • Reset
    • По низкому уровню на этой линии происходит сброс микроконтроллера. Типичное применение вывода Reset - добавление кнопки сброса на плату расширения, которая перекрывает эту кнопку на микроконтроллере.
    Связь

    В 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 порт может также работать как USB хост для подключенных периферийных устройств: мыши, клавиатуры и смартфотонов. Чтобы использовать эти свойства, обратитесь к справочным страницам USB хост .

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

    Arduino Due можно запрограммировать с помощью программных средств Arduino (скачать). Более детальная информация содержится в .

    отличается от таковой для микроконтроллеров AVR, находящихся на других платах Arduino, поскольку необходимо стереть флеш-память перед тем как перепрограммировать её. Загрузка в кристалл управляется из ПЗУ контроллера SAM3X и запускается, только когда флеш-память кристалла пуста.


    Плату можно программировать через оба USB порта, хотя рекомендуется использовать порт программирования, в связи с тем, что он поддерживает стирание кристалла:

    • Порт программирования : Для использования этого порта выберите в Arduino IDE в качестве вашей платы "Arduino Due (Programming Port)". Подключите порт программирования платы Due (ближайший к разъему питания постоянного тока) к вашему компьютеру. Порт программирования использует микросхему 16U2 в качестве преобразователя USB-to-serial, соединенный с первым UARTом контроллера SAM3X (RX0 и TX0). Два вывода 16U2 подключены к выводам Reset и Erase SAM3X. Открытие и закрытие порта программирования, подключенного на скорости передачи 1200 бит в секунду, запускает процедуру «аппаратного стирания» чипа SAM3X, активирование выводов Erase и Reset на SAM3X перед установлением связи с UART. Это рекомендуемый порт для программирования Due. Аппаратное стирание более надежно, чем «программное стирание», которое происходит на собственном USB порте, и будет работать даже в случае повреждения главного микропроцессора.
    • Собственный порт : Чтобы использовать этот порт, выберите в Arduino IDE тип вашей платы "Arduino Due (Native USB Port)". Собственный USB порт подсоединен напрямую к SAM3X. Подключите собственный USB порт Arduino Due (ближний к кнопке Reset) к вашему компьютеру. Открытие и закрытие собственного порта при скорости передачи 1200 бит в секунду запускает процедуру «программного стирания»: флеш-память стирается и плата перезапускается с помощью загрузчика. Если главный микроконтроллер по какой-либо причине поврежден, то, вероятно, программное стирание не будет работать, так как эта процедура на SAM3X происходит полностью программно. Открытие и закрытие собственного порта на других скоростях передачи не вызовет сброса SAM3X.

    В отличие от других плат Arduino, использующих для загрузки avrdude, Due полагается на bossac.

    Токовая защита разъема USB

    На Arduino Due имеется самовосстанавливающийся предохранитель, назначение которого - защитить USB порты вашего компьютера от короткого замыкания и перегрузки по току. Несмотря на то, что в большинстве компьютеров есть встроенная защита по току, этот предохранитель дает дополнительную защиту. При токе через USB порт более 500 мА связь автоматически обрывается предохранителем до прекращения перегрузки или короткого замыкания.

    Физические характеристики и совместимость с платами расширения

    Максимальная длина печатной платы Arduino Due равна 4 дюйма, а ширина - 2,1 дюйма, без учета USB соединителей и разъема питания, которые выступают за приведенные габаритные размеры. Три отверстия под винты позволяют закрепить плату на поверхности или в корпусе. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 составляет 160 мил (0.16", 4,064 мм), не кратно промежуткам в 100 мил (2,54 мм) между остальными выводами.

    Arduino Due сделан совместимым с большинством плат расширения, разработанных для Uno, Diecimila или Duemilanove. Цифровые выводы с 0 по 13 (и соседние выводы AREF и GND), аналоговые входы с 0 по 5, разъем питания, разъем "ICSP" (SPI) расположены одинаково на всех платах. Более того, основной UART (последовательный порт) находится на тех же выводах (0 и 1).
    Пожалуйста, обратите внимание, что шина I 2 C расположена в Arduino Due на других выводах (20 и 21), не так как в Duemilanove / Diecimila (аналоговые входы 4 и 5).