Как настроить смартфоны и ПК. Информационный портал

Проекты Arduino. Китайская Arduino DUE

Общие сведения

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

Внимание: в отличие от других плат Ардуино, рабочее напряжение Arduino Due составляет 3.3В. Соответственно, максимальное напряжение, которое могут выдержать его выводы, равно 3.3В. Подача на вывод большего напряжения (например, 5В) может привести к выходу платы из строя.

В состав устройства входит все необходимое для обеспечения работы микроконтроллера; для начала работы достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля. Arduino Due совместим со всеми платами расширения, работающими от 3.3В, и соответствует требованиям распиновки 1.0:

  • Выводы SDA и SCL (TWI) расположены возле вывода AREF.
  • Присутствует вывод IOREF, позволяющий платам расширения подстраиваться под рабочее напряжение Ардуино. Благодаря этому, платы расширения могут быть совместимы как с 3.3В-Ардуино (подобными Due), так и с 5В-Ардуино на основе микроконтроллеров AVR.
  • Предусмотрен свободный вывод, зарезервированный для будущих целей.

Преимущества использования ядра ARM

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

Схема, исходный проект и расположение выводов

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

Микроконтроллер AT91SAM3X8E
Рабочее напряжение 3.3В
Напряжение питания (рекомендуемое) 7-12В
Напряжение питания (предельное) 6-16В
Цифровые выводы 54 (из них 12 могут работать как ШИМ-выходы)
Аналоговые входы 12
Аналоговые выходы 2 (ЦАП)
Суммарный выходной ток всех выводов (максимальный) 130 мА
Максимальный выходной ток вывода 3.3V 800 мА
Максимальный выходной ток вывода 5V 800 мА
Flash-память 512 КБ в полном объеме доступна пользовательским программам
SRAM 96 КБ (два банка памяти: 64 КБ и 32 КБ)
Тактовая частота 84 МГц

Питание

Arduino Due может быть запитан от USB либо от внешнего источника питания - тип источника выбирается автоматически.

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр - 2.1мм, центральный контакт - положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.

Напряжение внешнего источника питания может быть в пределах от 6 до 20 В. Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства. Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.

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

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

Память

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

Кнопка удаления, расположенная на плате, позволяет очистить Flash-память микроконтроллера SAM3X и стереть текущую загруженную программу. Для этого необходимо нажать и удерживать ее в течение нескольких секунд.

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

  • Цифровые входы/выходы: выводы 0 - 53
  • Интерфейс SPI: выводы SPI (на платах Ардуино разъем ICSP)
  • Интерфейс CAN: выводы CANRX и CANTX

Данные выводы поддерживают протокол связи CAN, однако на данный момент его реализация в Arduino API пока отсутствует.

  • "L" светодиод: вывод 13

Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW - выключается. Помимо этого, яркость свечения светодиода можно регулировать, поскольку вывод 13 может работать как ШИМ-выход.

  • Интерфейс TWI 1: выводы 20 (SDA) и 21 (SCL)
  • Интерфейс TWI 2: выводы SDA1 и SCL1

Другие выводы на плате:

  • AREF

Опорное напряжение АЦП. Используется функцией analogReference() .

  • Reset

Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения.

Связь

Arduino Due предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами, а также с различными устройствами, такими, как телефоны, планшеты, камеры и т.д. В микроконтроллере SAM3X есть один аппаратный UART и три аппаратных USART для реализации последовательных интерфейсов с TTL-уровнем напряжения 3.3В.

USB-порт для программирования на плате взаимодействует с микросхемой ATmega16U2, выполняющую роль USB-UART преобразователя, который при подключении к компьютеру определяется как виртуальный COM-порт. (Для корректной идентификации на Windows-системах потребуется.inf-файл, на системах с OSX и LINUX плата распознается автоматически). Микросхема 16U2 соединена с аппаратным приемопередатчиком UART микроконтроллера SAM3X. Для программирования микроконтроллера через микросхему ATmega16U2 используются выводы RX0 и TX0. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).

В микроконтроллере SAM3X также реализована поддержка последовательных интерфейсов TWI и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI используйте библиотеку SPI.

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

Процесс загрузки программ в микроконтроллер SAM3X отличается от процесса прошивки AVR-микроконтроллеров, используемых в других платах Ардуино. Особенность SAM3X заключается в том, что для его перепрошивки требуется предварительно очищать Flash-память контроллера. Такая необходимость обусловлена тем, что процесс загрузки программы контролируется загрузчиком в ПЗУ SAM3X, который запускается только при условии отсутствия программы во Flash-памяти микроконтроллера.

Таким образом, любой из USB-портов может использоваться для прошивки платы. Тем не менее, рекомендуется использовать USB-порт для программирования ("Programming Port" на рисунке) в силу некоторых особенностей процесса очистки памяти микроконтроллера:

  • Порт для программирования: Для использования этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Programming Port)". Подсоедините Due к компьютеру, соединив USB-кабель c разъемом для программирования (расположенным ближе к разъему питания). Порт для программирования взаимодействует с микросхемой 16U2, выполняющей роль преобразователя USB-UART. Микросхема 16U2 в свою очередь соединена с первым UART микроконтроллера SAM3X (выводы RX0 и TX0), а также управляет его выводами Reset и Erase. При открытии и закрытии порта на скорости 1200 бод, на выводах Erase и Reset формируется активный уровень, что приводит к очистке памяти микроконтроллера. Таким образом, срабатывает так называемая процедура "аппаратной очистки" перед взаимодействием с UART SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора. Именно поэтому для прошивки Arduino Due рекомендуется использовать порт для программирования.
  • Штатный USB-порт: Для использование этого порта в среде разработки Arduino IDE в качестве рабочей платы выберите "Arduino Due (Naive USB Port)". Штатный USB-порт соединен непосредственно с микроконтроллером SAM3X. Подсоедините Due к компьютеру, соединив USB-кабель со штатным USB-разъемом (расположенным ближе к кнопке сброса). Открытие и закрытие порта на скорости 1200 бод приведет к срабатыванию процедуры "программной очистки", во время которой очищается flash-память, перезагружается микроконтроллер и стартует загрузчик. Поскольку эта процедура выполняется исключительно программой самого микроконтроллера SAM3X, то в случае зависания последнего процесс очистки может не произойти. При этом открытие/закрытие штатного порта на различных скоростях не поможет перезагрузить микроконтроллер.

В отличие от других плат Ардуино, для программирования которых используется avrdude, процесс прошивки Arduino Due осуществляется с помощью программы .

Исходный код прошивки микроконтроллера ATmega16U2 доступен в репозитории Ардуино . Прошить микроконтроллер можно через разъем для внутрисхемного программирования ISP с помощью внешнего программатора (в этом случае затрется DFU-загрузчик).

Защита USB от перегрузок

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

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

Максимальная длина и ширина печатной платы Arduino Due составляет 10.2 см и 5.4 см соответственно, с учетом USB-разъемов и разъема питания, выступающих за пределы платы. Три крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

Arduino Due спроектирован таким образом, чтобы обеспечивать совместимость с большинством плат расширения для Uno, Diecimila или Duemilanove. Расположение основных выводов платы полностью эквивалентно: цифровые выводы 0 - 13 (а также смежные выводы AREF и GND), аналоговые входы 0 - 5, разъем POWER и разъем "ICSP" (SPI) - все выводы расположены на одинаковых расстояниях друг относительно друга. Кроме того, линии основного приемопередатчика UART соединены с одними и теми же выводами (0 и 1). Пожалуйста, обратите внимание, что номера выводов I2C на Arduino Due (20 и 21) отличаются от выводов Duemilanove / Diecimila (аналоговые входы 4 и 5).

Подробная инструкция по работе с Arduino Due (на англ.)

Общие сведения

Arduino Nano - это полнофункциональное миниатюрное устройство на базе микроконтроллера ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), адаптированное для использования с макетными платами. По функциональности устройство похоже на Arduino Duemilanove, и отличается от него размерами, отсутствием разъема питания, а также другим типом (Mini-B) USB-кабеля. Arduino Nano разработано и выпускается фирмой Gravitech.

Схема и исходный проект

Связь

Arduino Nano предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega168 и ATmega328 есть приемопередатчик UART, позволяющий осуществлять связь по последовательным интерфейсам посредством цифровых выводов 0 (RX) и 1 (TX). Микросхема FTDI FT232RL обеспечивает связь приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт (драйвера FTDI включены в пакет программного обеспечения Ардуино). В пакет программного обеспечения Ардуино также входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных компьютеру через USB на плате будут мигать светодиоды RX и TX. (При последовательной передаче данных посредством выводов 0 и 1 данные светодиоды не задействуются).

ATmega168 и ATmega328 в Arduino Nano выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 ( , ).

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

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Nano спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов микросхемы FT232RL, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega168 или ATmega328 через конденсатор номиналом 100 нФ. Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.

Однако эта система может приводить и к другим последствиям. При подключении Arduino Nano к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Arduino Nano активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.

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

Доброго времени суток!
Уже довольно давно на досуге я занимаюсь всяческими электронными безделушками. Начинал с программирования тинек и мег в 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 к компьютеру понадобится USB-кабель типа Micro-B. USB-кабель необходим как для питания, так и для прошивки устройства.

Один конец кабеля с разъемом micro-USB вставьте в разъем для программирования Arduino Due (находится возле разъема питания). Для прошивки скетча необходимо в среде программирования Ардуино IDE из меню Tools > Board выбрать пункт Arduino Due (Programming port), а также из меню Tools > Serial Port выбрать соответствующий последовательный порт.

Основные отличия от плат на основе микроконтроллеров ATMEGA

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

Печатная плата Due похожа на модель Arduino Mega 2560.

Напряжение

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

Устройство может быть запитано, как от USB, так и от разъема питания. Во втором случае, напряжение питания должно лежать в диапазоне от 7В до 12В.

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

Последовательные порты на Arduino Due

В Arduino Due есть два USB-порта. Штатный USB-порт (обозначен на рисунке, как Native ) соединен непосредственно с процессором SAM3X и поддерживает последовательную CDC-связь через объект SerialUSB . Второй USB-порт - это порт для программирования (обозначен на рисунке, как Programming port). Он подключен к контроллеру ATMEL 16U2, выступающего в роли USB-UART преобразователя. По умолчанию для загрузки программ и взаимодействия с Ардуино используется порт для программирования.

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

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

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

Микроконтроллер SAM3X отличается от AVR-микроконтроллеров тем, что перед перепрошивкой его флеш-памяти, ее содержимое сперва необходимо стереть. Чтобы сделать это вручную, необходимо где-то на секунду зажать кнопку очистки памяти, нажать кнопку Upload в среде Ардуино, а затем нажать кнопку сброса.

Чтобы не повторять эту процедуру каждый раз, она была автоматизирована и может выполнятся программно как через штатный порт, так и через порт для программирования:

Штатный порт

Процедура программной очистки (т.н. "soft-erase") автоматически активируется при закрытия порта, открытого на скорости 1200 бит/с. При это очищается флеш-память контроллера, устройство сбрасывается и стартует загрузчик. Если по какой-либо причине во время этого в процессоре произойдет сбой, то вероятнее всего soft-erase не произойдет, поскольку эта процедура выполняется программно самим контроллером.

Открытие и закрытие штатного порта на скоростях, отличных от 1200 бод, не приведет к перезагрузке контроллера SAM3X. Для того, чтобы использовать программу Serial Monitor для наблюдения данных, отправляемых вашим скетчем, необходимо добавить несколько строк кода в программный блок setup(). Такой фрагмент заставит контроллер SAM3X дождаться открытия порта SerialUSB перед выполнением основной программы:

While (!Serial) ;

Нажатие кнопки сброса на Arduino Due приводит не только к перезагрузке SAM3X, но и к сбросу USB-соединения. В случае, если программа Serial Monitor открыта, то после разрыва соединения необходимо закрыть и заново открыть ее для восстановления сеанса связи.

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

USB-порт для программирования взаимодействует с USB-UART преобразователем Ардуино, который в свою очередь соединен с первым UART`ом микроконтроллера SAM3X (а именно, с выводами RX0 и TX0). Причем микросхема USB-UART преобразователя управляет также выводами Reset и Erase главного микроконтроллера. При открытии последовательного порта, USB-UART преобразователь перед тем, как обмениваться данными с UART`ом контроллера, формирует на выводах Erase и Reset активный уровень сигнала, что приводит к очистке памяти SAM3X. Этот способ более надежен, чем "программная очистка" при использовании штатного USB-порта, и работает даже в случае зависания процессора.

Для программного взаимодействия с этим портом в среде разработки Ардуино используйте объект "Serial". Аналогично построена работа с USB-портом и на Arduino Uno, поэтому все программы, написанные для Uno, будут так же работать и на Due. Кроме того, порт для программирования Arduino Due ведет себя так же, как и последовательный порт Uno, в том плане, что USB-UART преобразователь в составе устройства сбрасывает главный контроллер при каждом открытии последовательного порта.

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

USB-хост

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

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

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

В Arduino Due есть возможность изменять разрядность для считывания и формирования аналоговых величин (которые, по умолчанию, равны 10 и 8 битам, соответственно). Максимальная разрядность АЦП и ШИМ составляет 12 бит. Для получения дополнительной информации см. описание функций analogWriteResolution() и analogReadResolution() .

Расширенные возможности SPI

Установка драйверов для Arduino Due

OSX

  • В операционной системе OSX установка драйверов не требуется. В зависимости от установленной версии ОС, при подключении устройства к компьютеру должно появится диалоговое окно, предлагающее открыть Сетевые настройки (“Network Preferences”). Кликните "Network Preferences...", дождитесь появления окна и нажмите кнопку "Apply". Arduino Due появится в системе под статусом "Not Configured", но при этом будет работать нормально. Теперь можно выйти из системных настроек.

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


Linux

Прошивка программы в Arduino Due

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

Для прошивки своей программы через порт для программирования, сделайте следующее:

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

После выполнения указанных действий можно прошивать в Ардуино свою программу.

Лучшие статьи по теме