Микроконтроллер arduino. Критический взгляд на платформу Arduino: преимущества и недостатки

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

Содержание

Основные недостатки платформы Arduino

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

  • Упрощенные библиотеки, скрывающие детали работы с аппаратурой
  • Неоптимальное использование ресурсов микроконтроллера
  • Ограниченная среда разработки по сравнению с профессиональными IDE
  • Завышенная цена на компоненты экосистемы Arduino
  • «Расхолаживание» программистов, не стимулирующее глубокое изучение микроконтроллеров

Преимущества Arduino для начинающих

Несмотря на критику, автор признает определенные достоинства Arduino, особенно для новичков:

  • Низкий порог вхождения в мир микроконтроллеров
  • Возможность быстро реализовать простые проекты
  • Большое сообщество и обилие готовых примеров
  • Кроссплатформенность и простота установки среды разработки

Альтернативы Arduino для более глубокого изучения микроконтроллеров

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


  • Микроконтроллеры STM32 (ARM Cortex-M)
  • AVR микроконтроллеры напрямую, без Arduino
  • Микроконтроллеры PIC
  • Texas Instruments MSP430

Рекомендации по выбору платформы для проекта

При выборе микроконтроллерной платформы для проекта автор советует:

  • Оценить требуемую производительность и энергопотребление
  • Рассмотреть альтернативные варианты, не ограничиваясь только Arduino
  • Изучить документацию и возможности выбранного микроконтроллера
  • Использовать профессиональные среды разработки
  • Не переплачивать за готовые модули, если их можно собрать самостоятельно

Проблема завышенных цен на компоненты Arduino

Одним из главных недостатков экосистемы Arduino автор считает завышенные цены на компоненты и модули. Он приводит несколько примеров:

  • Простой делитель напряжения, продаваемый как «датчик» за $8-9
  • Матричная клавиатура из обычных кнопок по завышенной цене
  • Оптический датчик скорости мотора из светодиода и фототранзистора за $8

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


Ресурсы для самостоятельного изучения микроконтроллеров

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

  • Цикл статей «STM32F1xx — лечимся от ардуинозависимости вместе» на Хабре
  • Учебный курс по AVR микроконтроллерам на сайте easyelectronics.ru
  • Книга «Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С» (С. Ф. Баррет, Д. Дж. Пак)
  • Официальная документация производителей микроконтроллеров

Сравнение Arduino с другими платформами для разработки

Автор проводит краткое сравнение Arduino с некоторыми альтернативными платформами:

  • mbed — критикуется за высокую цену и ограниченные возможности онлайн-IDE
  • STM32 — отмечается как более мощная и гибкая альтернатива Arduino
  • AVR без Arduino — позволяет глубже изучить работу микроконтроллера
  • Профессиональные среды разработки (IAR, Eclipse, Keil) — предоставляют больше возможностей для опытных разработчиков

Влияние Arduino на развитие DIY-электроники

Несмотря на критику, автор признает положительное влияние Arduino на развитие любительской электроники:


  • Платформа сделала микроконтроллеры доступными для широкого круга энтузиастов
  • Благодаря Arduino реализовано множество интересных проектов
  • Выросло сообщество разработчиков и количество обучающих материалов
  • Arduino стала «мостиком» между простыми электронными конструкторами и профессиональной разработкой

Советы по оптимизации кода для Arduino

Для тех, кто продолжает использовать Arduino, автор дает несколько рекомендаций по оптимизации кода:

  • Избегать использования функции delay(), заменяя ее на неблокирующие альтернативы
  • Минимизировать использование операций с плавающей точкой на 8-битных контроллерах
  • Использовать прерывания вместо активного ожидания в циклах
  • Изучить возможности прямого управления регистрами микроконтроллера
  • Оптимизировать работу с последовательным портом, используя буферизацию и прерывания

Перспективы развития платформы Arduino

Автор не затрагивает напрямую вопрос о будущем Arduino, но можно предположить следующие возможные направления развития платформы:

  • Расширение линейки плат на базе более мощных микроконтроллеров
  • Улучшение среды разработки и отладочных инструментов
  • Оптимизация стандартных библиотек для повышения производительности
  • Интеграция с профессиональными средствами разработки
  • Развитие образовательных программ для постепенного перехода к более сложным платформам

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



какая платформа лучше? / Амперка

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

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

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

Arduino или Raspberry Pi? Микроконтроллер или микрокомпьютер?

Все платы для разработки можно разбить на две большие категории:

Платы на микроконтроллере
(MCU, MicroController Unit)
Одноплатные компьютеры
(SoC, System on a Chip)
Типичный представитель — Arduino
Типичный представитель — Raspberry Pi

Микроконтроллеры могут одновременно исполнять всего одну задачу и отлично с этим справляются. А одноплатные компьютеры исполняют программы в рамках операционной системы (чаще всего Linux), обладают большей производительностью и широкими мультимедийными возможностями.

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

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

Микроконтроллер Одноплатный компьютер
Производительность 1 ядро,
десятки-сотни МГц,
десятки КБ оперативки,
десятки-сотни КБ постоянной памяти.
1 или более ядер,
сотни-тысячи МГц,
сотни МБ оперативки,
гигабайты постоянной памяти.
Многозадачность Нет.
Но можно эмулировать.
Да.
Управляется ОС.
Удобство работы с интернетом

★☆☆

Обычно нужны дополнительные модули и глубокое знание протоколов.

★★★

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

★★★

Потребляет единицы-десятки мА. Возможны недели работы от батареек.

★☆☆

Потребляет сотни-тысячи мА. Заряда большого аккумулятора хватит от силы на десяток часов.
Скорость реакции в проектах, критичных к времени

★★★

100% контроль над временем и длительностью подачи сигналов.

★☆☆

Из-за многозадачности критический процесс может проспать своё время.
Выбор языков программирования

★☆☆

Ограниченный. Чаще C/C++.

★★★

Python, JavaScript, Bash и десяткии других: любые доступные в ОС.
Возможности для работы с видео, компьютерным зрением

☆☆☆

Не хватит мощности.

★★★

OpenCV, аппаратные видеокодеки, HDMI-выход.
Возможности для работы со звуком

★★☆

На мощных микроконтроллерах возможен синтез звука. Для работы с MP3/OGG/WAV нужны дополнительные модули.

★★★

Поддержка MP3/OGG/WAV на уровне ОС. Аудиовыход HDMI и/или разъём 3,5 мм.

Итак, в зависимости от своей задачи вы определились, нужен ли вам микроконтроллер или компьютер. Как решить какая именно плата подойдёт лучше всего?

Так как нет большого смысла сравнивать лицом к лицу микроконтроллеры и микрокомпьютеры, далее мы отдельно приведём преимущества и недостатки конкретных плат в рамках своего семейства.

Сравнение микроконтроллеров

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

Мы попытались сравнить платы, отталкиваясь от возможностей флагманской DIY-платформы Arduino Uno, так как платы именно этого семейства дали невероятный пинок развитию хобби-электроники во всём мире. Разные компании выпускают модули, сенсоры, платформы, дополнения с шильдами «Arduino compatible», «Designed for Arduino» и т.д. За этими словами стоит электронная и программная совместимость в первую очередь с Arduino Uno, а уж затем со всем остальным.

Как правило, с помощью ухищрений или дополнительных компонентов можно подключить что угодно и к чему угодно. Но ведь вам хочется сосредоточиться на своём проекте, а не на борьбе с электроникой? Поэтому волей-неволей хочется сравнить любую плату на микроконтроллере именно с Arduino Uno. Так и сделаем.

Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств.

Плюсы Arduino Uno

  • Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил».
  • Родное напряжение в 5 вольт, которое является стандартом де-факто, и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства.

Та же Arduino Uno, но с другим, слегка улучшенным микроконтроллером.

Плюсы Arduino Leonardo

  • Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые Serial-интерфейсы для USB и UART.
  • Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода.

Минусы Arduino Leonardo

  • Из-за небольших отличий распиновки от Arduino Uno возможна несовместимость с некоторыми платами расширения. Такие случаи, однако, редки, и в нашем магазине мы явно их прописываем.

Та же Arduino Leonardo, но произведённая нами, в России.

Плюсы Iskra Neo

  • Заметно дешевле оригинала.

Arduino Mini

Та же Arduino Uno, но в другом форм-факторе.

Плюсы Arduino Mini

  • Компактная. Всего 30×18 мм.

Минусы Arduino Mini

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

Та же Arduino Mini, но произведённая нами, в России.

Плюсы Iskra Mini

  • Заметно дешевле оригинала.
  • Есть в варианте с распаянными колодками и с незапаянными отверстиями.

Та же Arduino Leonardo, но в другом форм-факторе.

Плюсы Arduino Micro

  • Компактная. Всего 48×18 мм.

Минусы Arduino Micro

  • Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.

Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или на случай, если Arduino Uno перестала справляться.

Плюсы Arduino Mega 2560

  • В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ.

Минусы Arduino Mega 2560

  • Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм.

Одна из самых производительных плат Arduino на микроконтроллере Cortex-M3, аналогичная по форм-фактору Arduino Mega.

Плюсы Arduino Due

  • Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания.
  • Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.

Минусы Arduino Due

  • Родным напряжением для платы является 3,3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения.

Плата на ядре Espruino: её программируют на JavaScript.

Плюсы Iskra JS

  • JavaScript — язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно, если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе.
  • Мощный микроконтроллер Cortex-M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART — всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями.

Минусы Iskra JS

  • Несмотря на то, что родной уровень для платы — 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально.
  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo.

Плюсы Strela

  • Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи.
  • Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов.
  • 11 входов-выходов выведены в виде трёхконтактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения.

Минусы Strela

  • На плате не предусмотрены колодки для установки плат расширения Arduino.
  • Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo) необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке.

Arduino Yún

Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей».

Плюсы Arduino Yún

  • Плата оснащена Ethernet и Wi-Fi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо.
  • Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности — легко интегрироваться с социальными сетями и другими веб-сервисами.

Минусы Arduino Yún

  • OpenWRT — это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python.

Плата с мощным микроконтроллером Cortex-M4. Платформа программируется не через Arduino IDE, а через онлайн-среду mbed.org. Субъективно, она мощнее и стройнее Arduino IDE, хотя и не так распространена. Для пытливого ума — отличный выбор.

Плюсы STM32 Nucleo F401RE

  • Процессор на 84 МГц, 512 КБ постоянной и 96 КБ оперативной памяти. 50 портов ввода-вывода, из которых 16 аналоговых и 29 с ШИМ. Родной уровень напряжения — 3,3 В, но все пины толерантны к 5 В, поэтому проблем электронной совместимости с Arduino-периферией возникнуть не должно.
  • Колодки для плат расширения по конфигурации совпадают с Arduino Uno, поэтому на Nucleo можно поставить множество плат расширения от Arduino.
  • На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём, без ухищрений не будут работать.

Минусы STM32 Nucleo F401RE

  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Компактная плата с мощным микроконтроллером Cortex-M4. Программируется из привычной Arduino IDE.

Плюсы Teensy 3.2

  • Меньше Arduino Micro (35×17 мм), но почти столь же мощная, как Nucleo: процессор 72 МГц, 256 КБ постоянной и 64 КБ оперативной памяти, 34 порта ввода-вывода, из которых 21 могут быть аналоговыми, а 12 поддерживают ШИМ.
  • Teensy 3.2 очень энергоэффективна. У неё нет регулятора напряжения, но входным может являться любое от 3,3 до 5,5 В. Это же напряжение и будет логическим уровнем. В режиме сна плата потребляет всего 0,25 мА, что даёт возможность работать от аккумулятора несколько месяцев.
  • Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.

Минусы Teensy 3.2

  • Плата поставляется с нераспаянными контактами. Вам предстоит самостоятельно впаять штырьковые соединители или проводки.
  • Из-за большой разницы в архитектуре с классическими Arduino не все библиотеки для сторонней периферии могут работать из коробки.
  • Рабочее напряжение равно входному, поэтому плывёт по мере разряда батарейки. Это может оказаться важным при выборе периферии, если она рассчитана на какой-то конкретный вольтаж.

Netduino 2

Плата повторяет форм-фактор Arduino Uno, но имеет мощную начинку, достаточную для исполнения программ, написанных на платформе .NET. Netduino программируется на C# или любом другом .NET-языке в привычной любому .NET-разработчику среде Visual Studio. В качестве стандартной библиотеки предоставляется .NET Micro Framework.

Плюсы Netduino 2

  • В Visual Studio работает автодополнение, подсказки, контекстная помощь в MSDN и полноценный отладчик. Вам доступны breakpoint’ы, пошаговое исполнение кода, наблюдение за переменными. Отладка происходит без ухищрений, просто с подключённым USB-кабелем. Благодаря всему этому скорость разработки под Netduino в разы превосходит скорость разработки под другие платформы.

Минусы Netduino 2

  • На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём, без ухищрений не будут работать.
  • Из-за другой среды и экосистемы для программирования может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.

Netduino Plus 2

Плюсы Netduino Plus 2

  • Как Netduino, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей.

Минусы Netduino Plus 2

  • Те же, что и у Netduino 2.

Сравнение одноплатных компьютеров

Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.

Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.

Raspberry Pi 3 Model B

Один из самых популярных одноплатников. Четыре ядра по 1200 МГц, 1 ГБ оперативной памяти и полноценный Linux, основанный на Debian, помогут решить множество задач, требовательных к вычислительным ресурсам. Среди них можно выделить компьютерное зрение, обработку звука в реальном времени, создание веб-сервисов.

Плюсы Raspberry Pi 3 Model B

  • Тонны документации, уроков и готовых библиотек, огромное сообщество. Всё это просто не даст вам возможности сказать «не осилил».
  • Привычные порты HDMI, 3,5 мм аудио, 4 USB помогут с лёгкостью подключить монитор, колонки, клавиатуру, мышь и другие USB-устройства. Модули BLE и Wi-Fi на борту помогут соединить компьютер с другими устройствами без проводов.

Минусы Raspberry Pi 3 Model B

  • На плате нет АЦП, поэтому подключение аналоговых сенсоров возможно только с помощью внешних, дополнительных компонентов.
  • Предоставляется лишь 1 аппаратный ШИМ-канал, что усложняет работу с периферией, которая управляется ШИМ’ом.

BeagleBone Black

Микрокомпьютер, схожий с Raspberry Pi, который даёт больше благ, привычных для микроконтроллерных плат. Отличный выбор для проектов интернета вещей, когда необходимо управляться с множеством сенсоров и исполнительных устройств.

Плюсы BeagleBone Black

  • Мощная среда для разработки Cloud9 IDE. Вы просто заходите на BeagleBone через браузер и программируете на любимом языке, будь то Python, JavaScript (Node.js), Bash или любой другой язык Linux. Результат можно проверить мгновенно, а если что-то не заработало, использовать встроенный в среду полноценный отладчик.
  • На борту уже установлена флеш-память eMMC на 4 ГБ с операционной системой Linux. Память может быть увеличена внешней microSD-картой.
  • Широкие возможности по подключению периферии. 8 ШИМ-выходов и 7 аналоговых входов. Возможны аппаратные прерывания.

Минусы BeagleBone Black

  • Диковинный разъём microHDMI для подключения монитора. Для передачи звука используется он же.
  • Вычислительная мощность скромнее, чем у Raspberry Pi: 1 ядро на 400 МГц и 512 МБ оперативной памяти.

Полезные ссылки

Я презираю Arduino / Хабр

Я – выпускник специальности «Микроэлектроника и полупроводниковые устройства». За годы обучения я разработал множество устройств на микроконтроллерах, участвовал в конкурсах вместе со своей командой и являлся заведующим лабораторией встраиваемых систем. У меня есть мечта – создать в своей стране условия для разработки роботизированных систем и есть план её достижения, одним из пунктов которого является участие в подготовке большого количества профессионалов в этой области.


Я радуюсь, когда будущие инженеры создают свои устройства и расстраиваюсь, когда слышу, как кто-то говорит об использовании Arduino в них.

Это не первая моя статья на эту тему: у меня возникает желание написать такую сразу после прочтения фразы о безграничных возможностях платформы в DIY-топике на Хабре. У меня возникает желание написать об истинной цене деталей после прочтения статьи о покупке конструктора за $200 почти ничего не содержащего (уж простите, запамятовал где видел).


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

Благодаря Arduino увидело свет множество проектов, которые пылились в банках памяти мозга их авторов.

Честно признаюсь, я иногда и сам пользовался кодом, написанным для Ардуино (к примеру, фирма InvenSense производит модуль MPU6050, запустить нормально который получилось только у Jeff Rowberg).
Презираю я тех людей, которые, открыв для себя мир микроконтроллеров, не потрудились осмотреться в нём и тех, кто нагло наживается на подобных людях.

К нам в лабораторию заходил (и работал с нами) студент кафедры информационных технологий — поклонник Arduino. Человек тратил огромные деньги на покупку самих *дуин и модулей к ним. Я не без сожаления наблюдал, как будущий (я всё же надеюсь) создатель роботизированных систем не мог запустить ШИМ нужной частоты, хотя «лётных» часов работы с платформой он намотал немало.

Так вот, этот студент показал мне «измеритель уровня заряда батареи», или как-то так. Я специально нашёл его сейчас на ebay, где он называется «High Sensitivity Voltage Sensor Module -Arduino Compatible» и продаётся за $8.58. Вот он, на рисунке:

Кстати, центральный провод, который «+» — он просто висит в воздухе – всё сделано для максимального удобного подключения простого делителя напряжения, красная цена которому 2 цента за резисторы и 20 центов за разьём – это если в розницу покупать.

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

  1. Библиотеки. Я люблю библиотеки – я пишу свои классы и функции, или использую грамотно написанный код моих коллег – это существенно ускоряет мою работу. Библиотеки Arduino просты в освоении, но на этом их плюсы заканчиваются. К примеру, вы можете всю жизнь формировать задержки с помощью delay-функций и не иметь простейшего представления, как работает таймер на микроконтроллере — из таких минусов состоят все библиотеки Arduino.
    Я имею в виду то, что таймер и другая периферия в микроконтроллере реализована так, чтоб компенсировать его однопоточность прерываниями. А люди тратят процессорное время на декрементацию неиспользуемой переменной.
    Деление и использование чисел с плавающей точкой на восьмибитных контроллерах AVR – это то, к чему надо прибегать только в самых крайних случаях, когда без этого обойтись никак нельзя.
    Строка в последовательный порт не посылается с помощью конечного автомата с множеством пустых циклов ожидания флага опустошения буфера в основном теле программы – это опять же пустое расходование ресурсов – ведь есть прерывания.
    Да, в Arduino можно включить прерывания, но кто это делает?
    На Хабре есть хорошая статья о том, как ускорить работу библиотек Arduino. Меня она, если честно, поразила тем, что даже работники оборонной промышленности скатились до работы с платформой, но дать общие понятия о скорости работы этих библиотек она может.
  2. Среда разработки. Микроконтроллеры можно программировать в IAR, Eclipse, Keil и других, менее известных средах.

    А IDE Arduino является кроссплатформенным и с подсветкой синтаксиса.
  3. Мощность. Причём, как аппаратная, так и рассеиваемая. Разработка любой встраиваемой системы начинается с выбора компонентов в зависимости от требуемых функций. Для моргания диодом Atmega328 (или 2560) – слишком мощно, а для создания системы реального времени с алгоритмами обработки изображений – слишком слабо.
  4. Расхолаживание программистов. Программирование микроконтроллера не требует особых навыков и умений, но потратить пару часов и изучить работу нескольких периферийных устройств, тем самым размяв свои мозги, всё же придётся. Зачем это делать, если можно написать что-то вроде analogRead и digitalWrite?
  5. Цена. Тут уже вопрос не только к производителям Arduino и клонов: цены на контроллеры AVR в целом завышены. К примеру, Atmega2560 обойдётся вам в $10. За такие же деньги можно купить два STM32F103. Так получилось потому – что людям лень учить другие контроллеры, а по этим кругом множество материалов и примеров.

На Hobbyking, где любителей различных моделизмов обманывают так-же как и в других магазинах любителей ардуино, продавался как-то обычный конденсатор, под видом какого-то фильтра. Не смог его сейчас уже найти. С трёхпиновым разьёмом, естественно. Всего за 3 доллара.

Arduino Compatible Mini Motor Speed counter Sensor AVR PIC – заменяется светодиодом и фототранзистором, подключающимися к центральному контроллеру и двадцатью строчками кода. Он не стоит 7.98.

2*4 Matrix Keyboard Push Buttons AVR ARM Arduino Compatible – это просто кнопки, которые можно купить по цене 10 штук за доллар.

Есть один девайс в мире, который я ненавижу больше чем Arduino – это mbed. Его разработчики взяли контроллер LPC1768 (есть ещё на LPC11U24), припаяли его на плату с двумя стабилизаторами (о качестве разводки платы я говорить не буду), вывели половину ног наружу (вторая половина никуда не подключена, что очень раздражает), написали онлайн недо-IDE (впрочем, чуть лучше, чем у Arduino, хоть и требует подключения к интернету) и продают его за $64. Простите, но это уже совсем.

Что делать, если вы, вдруг, решили перестать топтаться на месте, и начать изучать микроконтроллеры?

  1. На Хабре был цикл статей «STM32F1xx — лечимся от ардуинозависимости вместе» — статьи хорошие и достаточно понятные, жаль, что автор забросил написание новых статей.
  2. Всех новичков посылают на easyelectronics.ru, где товарищ DIHALT публиковал учебный курс по микроконтроллерам AVR.
  3. «Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С» С. Ф. Баррет, Д. Дж. Пак – супер книга, помогает понять основы программирования на C для микроконтроллеров. Единственная проблема – вы вряд ли достанете микроконтроллеры Freescale, поэтому примеры придётся самостоятельно портировать примеры на AVR, PIC, MSP430 или любой другой контроллер.
  4. Перед покупкой чего бы то не было для своих устройств, почитайте об этом хотя-бы в Википедии — возможно эту же деталь можно купить дешевле, если назвать её по-другому.

Вообще знаете, что странно? Среди пользователей Arduino есть даже те, кто презирают Apple за их «направленность на

недалёкого

занятого-для-таких-мелочей юзера».

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

Что такое Arduino

Сейчас в мире людей, увлечённых техникой, наблюдается настоящая «ардуиномания». Этому маленькому загадочному устройству посвящены тысячи статей, сотни блогов и форумов. Так что же это такое — Arduino? И почему он обрёл столь большую популярность? Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.

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

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

С 2008 года в компании-разработчике начался раскол, выразившийся в существовании двух независимых ветвей развития и продаж под одной торговой маркой: одна на сайте arduino.cc, другая на arduino.org. Докризисные изделия на обоих сайтах продаются под одинаковыми названиями. Набор новых изделий на сайтах различается. Также существует две ветви Arduino IDE, поддерживающие разный набор плат и библиотек. Одинаковые названия и пересекающиеся номера версий IDE вносят путаницу. Тем не менее, говоря об Ардуино, обычно подразумевают первоначальную ветвь проекта на сайте arduino.cc.

Применение Arduino довольно разнообразно, его можно использовать, как и для простейших примеров, так и для довольно сложных механизмов, среди которых манипуляторы, роботы или производственные станки. Некоторые умельцы умудряются на основе таких систем делать планшеты, телефоны, системы наблюдения и безопасности домов, системы «умный дом» или просто компьютеры. Их даже можно использовать для создания примитивных систем виртуальной реальности. Всё благодаря довольной универсальной аппаратной составляющей и возможностям, которые предоставляет программирование Arduino.

Аппаратная часть

Под торговой маркой Arduino выпускается несколько плат с микроконтроллером и платы расширения (так называемые шилды). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).

Конструктив

Arduino и Arduino-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Arduino посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.

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

Миниатюрные клоны Arduino

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

Самый миниатюрный клон был выпущен под торговой маркой Femtoduino. Его размеры всего 15*20 мм, включая разъем micro USB, стабилизатор напряжения и полный комплект ввода-вывода Arduino UNO. Той же компанией выпущен самый нафаршированный миниатюрный клон под торговой маркой IMUduino. Это клон Arduino Leonardo с поддержкой USB Host (клавиатура и мышь), Bluetooth 4 Low Energy, шестиосный гироскоп/акселерометр, трехосный магнитометр (компас), барометр. Размер устройства 16*40 мм. К сожалению, проект на данный момент не предлагает совместимых по цоколевке плат расширения.

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

Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.

На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).

В Arduino IDE от компании, базирующейся на сайте arduino.cc, встроена возможность создания своих программно-аппаратных платформ. Этой возможностью пользуются сторонние компании, добавляющие в Arduino IDE свои наборы плат и компиляторов-загрузчиков к ним. Компания на сайте arduino.org не поддерживает такую возможность.

AVR

В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR: ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие.

ARM Cortex M

Есть также платы на процессоре ARM Cortex M.

ESP8266

Сторонние разработчики портировали в Arduino поддержку популярного Wi-Fi микроконтроллера ESP8266. Теперь компилировать и загружать прошивку для ESP8266 со своими скетчами и поддержкой Wi-Fi можно прямо из Arduino IDE, получая одноплатную схему с поддержкой сети Wi-Fi. Подробное русскоязычное описание процесса установки и доступного API здесь, пример работы здесь.

Intel x86

В рамках сотрудничества со сторонними производителями в Arduino IDE была включена поддержка некоторых аппаратных средств Intel x86. Intel Galileo (процессор Intel Quark X1000 400 МГц), Intel Edison и Arduino 101 — Arduino-совместимые платы на Intel x86 архитектуре. Платы механически и электрически совместимы с периферийными платами Ардуино. Платы функционируют под собственной ОС Linux, поверх которой работает приложение, позволяющее загружать и исполнять скетчи Arduino.

Периферия

Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция , аналогово-цифровой преобразователь, интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.

Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet. Опциональный набор внешней периферии на модулях расширения включает в себя:

  • USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).
  • Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.
  • Модуль GSM и другие беспроводные интерфейсы.
  • USB Host.
  • SD card.
  • Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальванической развязки.
  • Графический ЖКИ индикатор.
  • Модуль с макетным полем.

 

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

Характеристики популярных микроконтроллерных плат проекта Ардуино (таблица)

ArduinoМКНапряжение питанияФлеш-память,
КБ
EEPROM,
КБ
SRAM,
КБ
Двоичные
входы/выходы
…c
ШИМ
Аналоговые
входы
USB-интерфейсПрочие
интерфейсы
Размеры,
мм
Due Atmel SAM3X8E ARM Cortex-M3 3.3 В 512 Нет 256 54 12 12 + 2ЦАП ATmega16U2 CAN, JTAG, I2C 101,6 × 53.3
ADK ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 MAX3421E
USB хост
101,6 × 53.3
BT (Bluetooth) ATmega328 5 В 32 1 2 14 4 6 Нет Bluegiga WT11 Bluetooth  
Diecimila ATmega168 5 В 16 0.5 1 14 6 6 FTDI   68,6 × 53.3
Duemilanove ATmega168/328P 5 В 16/32 0.5/1 1/2 14 6 6 FTDI   68,6 × 53.3
Ethernet ATmega328 5 В 32 1 2 14 4 6 Нет Wiznet Ethernet
MicroSD
 
Fio ATmega328P 3.3 В 32 1 2 14 6 8 Нет   40,6 × 27.9
Leonardo Atmega32u4 5 В 32 1 2 14 6 12 Atmega32u4   68,6 × 53.3
LilyPad ATmega168V или ATmega328V 2.7-5.5 В 16 0.5 1 14 6 6 Нет   50 ⌀
Mega ATmega1280 5 В 128 4 8 54 14 16 FTDI   101,6 × 53.3
Mega2560 ATmega2560 5 В 256 4 8 54 14 16 ATmega8U2 ATmega16U2   101,6 × 53.3
Nano ATmega168 или ATmega328 5 В 16/32 0.5/1 1/2 14 6 8 FTDI   43 × 18
Uno ATmega328P 5 В 32 1 2 14 6 6 ATmega8U2 ATmega16U2   68,6 × 53.3

Язык программирования

Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.

Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.

  • Программы, написанные программистом Arduino называются наброски (или иногда скетчи) и сохраняются в файлах с расширением .ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
  • Обязательную в C++ функцию main() препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия.
  • Программист должен написать две обязательные для Arduino функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.
  • В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
  • Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
  • Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.

Простейшая Arduino-программа состоит из двух функций:

  • setup(): функция вызывается однократно при старте микроконтроллера.
  • loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.

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

«Ардуино» имеет одно преимущество – ему не нужен программатор. Всё сделано так, чтобы программирование Arduino для начинающих не составляло труда. Написанный код можно загрузить в МК посредством USB-шнура. Достигается это преимущество не каким-то встроенным уже заранее программатором, а спецпрошивкой – бутлоадером. Бутлоадер является специальной программкой, которая запускается сразу после подключения и слушает, будут ли какие-то команды, прошивать ли кристалл, есть ли проекты Arduino или нет. Из использования бутлоадера выплывает несколько очень привлекательных плюсов:

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

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

Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.

Почему Arduino?

Существует множество микроконтроллеров и платформ для осуществления «physical computing».  Parallax Basic Stamp, Netmedia’s BX-24, Phidgets, MIT’s Handyboard и многие другие предлагают схожую функциональность. Все эти устройства объединяют разрозненную информацию о программировании и заключают ее в простую в использовании сборку.  Arduino, в свою очередь, тоже упрощает процесс работы с микроконтроллерами, однако имеет ряд преимуществ перед другими устройствами для преподавателей, студентов и любителей:

Низкая стоимость – платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля Arduino может быть собрана в ручную, а некоторые даже готовые модули стоят меньше 50 долларов.

Кросс-платформенность – программное обеспечение Arduino работает под ОС Windows, Macintosh OSX и Linux. Большинство микроконтроллеров ограничивается ОС Windows.

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

Программное обеспечение с возможностью расширения и открытым исходным текстом – ПО Arduino выпускается как инструмент, который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие понять технические нюансы, имеют возможность перейти на язык AVR C. Соответственно, имеется возможность добавить код из среды AVR-C в программу Arduino.

Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA8 и ATMEGA168 являются основой Arduino.  Схемы модулей выпускаются с лицензией Creative Commons, а значит, опытные инженеры имеют возможность создания собственных версий модулей, расширяя и дополняя их. Даже обычные пользователи могут разработать опытные образцы с целью экономии средств и понимания работы.

 

О платформе

Что же такое Arduino? Формально это – торговая марка, под которой выпускаются официальные платы и софт. Название Ардуино идёт от одноименного названия рюмочной в Италии, где создатели платформы любили пропустить по рюмочке. Предлагаемая Arduino платформа включает в себя железо (сами платы) и софт (среда разработки).

Семейство Ардуино – несколько моделей так называемых отладочных плат. Отладочная плата представляет собой как ни странно печатную плату, в сердце которой стоит микроконтроллер – та самая штука, которую мы будем программировать. Микроконтроллер это микросхема, содержащая в себе микропроцессор, интерфейсы ввода-вывода, память (оперативную и постоянную), таймеры и другие штуки. Да, микропроцессор – это другое, микропроцессор по сути может только выполнять вычисления (как процессор в компьютере), а микроконтроллер – это практически полноценный компьютер, размещенный в одном кристалле микросхемы. В большинстве плат Arduino используются микроконтроллеры серии ATmega от производителя AVR.

Запомнили сразу важную мысль – Ардуино – не микроконтроллер, не процессор, Ардуино – платформа (и торговая марка конечно же =) ). Плата Ардуино – это отладочная плата с микроконтроллером на борту.

Железо


Помимо микроконтроллера на отладочной плате стоит обвязка, необходимая для его работы: это кварцевый генератор, задающий частоту работы процессора, и “рассыпуха” – конденсаторы и резисторы, выполняющие фильтрующие и подтягивающие функции.

Давайте так: что нужно сделать для того, чтобы собрать устройство на микроконтроллере? Нужно подключить к выходам микроконтроллера необходимые устройства (далее – “железо”), загрузить на микроконтроллер прошивку, которая будет управлять этим железом, и обеспечить всё это дело стабильным питанием. Цель разработчиков ардуино была совместить вышеуказанное с простотой и удобством работы и модульностью, тем самым превратив разработку электронных устройств в мощный универсальный конструктор. Эта цель была достигнута так: на плате, вместе с микроконтроллером, разместили “программатор” для загрузки прошивки, usb порт и стабилизатор питания, позволяющий питать плату от широкого диапазона постоянных напряжений: 5-19 вольт. Микроконтроллеру нужно 5 вольт, что стабилизатор ему и обеспечивает.

Загрузка прошивки


Что касается так называемого программатора: изначально способом загрузки прошивки в микроконтроллер является загрузка посредством ISP (in-system programming) программатора, который загружает прошивку напрямую в память микроконтроллера. Это способ хорош и надёжен, но он дороже и не такой универсальный как тот, который используется в Ардуино. Работает это так: вместо ISP программатора на плате стоит USB-TTL преобразователь, который позволяет Ардуино (на её стороне TTL – транзистор-транзистор логика) буквально общаться с компьютером (на его стороне – USB) и обмениваться данными. Но просто общаясь с компьютером загрузить прошивку не получится, поэтому в памяти микроконтроллера “живёт” загрузчик (он же bootloader), который умеет ловить данные, идущие с компьютера и загружать их во Flash память микроконтроллера. При каждом запуске микроконтроллера загрузчик ждёт команду от компьютера, мол желает ли тот загрузить новую прошивку. Если никто ему не отвечает какое-то время, он запускает уже имеющуюся в памяти МК прошивку. Отсюда вытекает несколько минусов:

  • Загрузчик сидит во Flash памяти и занимает место (около 6%, что довольно-таки много)
  • При подаче питания на МК прошивка стартует не сразу, каждый раз загрузчик ждёт команду от компьютера в течение какого-то времени (пару секунд), прежде чем передать управление имеющейся в памяти программе.

Оба этих минуса решаются частично или полностью:

  • Можно прошить неофициальный загрузчик, который занимает меньше места в памяти и быстрее стартует
  • Можно загружать скетчи напрямую через ISP, в этом случае вообще не будет потери места и задержек при запуске, так как загрузчика вообще не будет в памяти

Возвращаясь к USB-TTL преобразователю: почему именно такой способ загрузки прошивки выбрали разработчики Arduino? Да всё очень просто: микросхема USB-TTL преобразователя стоит дешевле микросхем, могущих в ISP (роль оных обычно выполняют микроконтроллеры), что прилично удешевляет платформу. Но самое главное – использование USB-TTL преобразователя добавляет нам возможность общаться с платой при помощи компьютера (смартфона, планшета) без использования дополнительного железа, т.е. мы можем как управлять какими-то устройствами (если это заложено в коде прошивки), так и получать от Ардуино данные, например показания с датчиков. Но самое-самое главное – это позволяет отлаживать код, вручную, но все таки отлаживать.

Софт


Что касается программной части, предоставленной Arduino, то это Arduino IDE (Integrated Development Environment – интегрированная среда разработки), включающая в себя редактор кода, компилятор и всё остальное необходимое для загрузки прошивки в плату. Подробнее о ней поговорим в отдельном уроке

Модели Ардуино


Вот мы и добрались до самих плат Ардуино, которых на данный момент появилось великое множество благодаря открытости платформы: все схемы и исходные коды находятся в открытом доступе, и вы можете сделать свою версию платы и продавать её, чем активно занимаются китайцы. Единственный пункт: слово Arduino – зарегистрированная торговая марка, и свою плату вам придется назвать как-то по-другому, отсюда и появились всякие Искры, Бузины и прочие так называемые Arduino совместимые платы.
Разновидностей плат очень много, но используют они одни и те же модели микроконтроллеров. От модели микроконтроллера зависит объем памяти и количество ног, ну и есть некоторые специальные фишки. На большинстве моделей Arduino стоят 8-битные МК от AVR с кварцевым генератором на 16 МГц (либо ниже), то есть по производительности платы на ATmega не отличаются, отличаются только объемом памяти, количеством ног и интерфейсов/таймеров. Модели Ардуино с МК от производителя ARM, например Arduino DUE, в разы мощнее своих собратьев за счёт 32-битного процессора, но это совсем другая история.

ПараметрATtiny85ATmega328ATmega32u4ATmega2560
Кол-во ног83244100
Из них доступны5232486
Flash память8 Kb32 Kb32 Kb256 Kb
EEPROM память512 bytes1 Kb1 Kb4 Kb
SRAM память512 bytes2 Kb2.5 kB8 Kb
Каналов АЦП3 (4 с rst)6 (8 в SMD корпусе)1216
Каналов PWM36715
Таймеры2х 8bit2х 8bit2х 8bit2х 8bit
1х 16bit2х 16bit4х 16bit
Аппаратный SerialНетх1х1х4
Внешние прерывания1 (+6 PCINT)2 (+23 PCINT)5 (+44 PCINT)8 (+32 PCINT)
Платы на его основеDigispark, LilyTinyUno, Nano, Pro Mini, Lilypad, StrongLeonardo, Micro, Pro Micro, BS MicroMega, Mega Pro

Таким образом вы должны сразу понять, что, например, Ардуино Уно=Нано=Про Мини=Лилипад по своим возможностям и взаимозаменяемости. Или Леонардо=Про Микро. Ссылки на недорогие китайские Ардуины вы можете найти у меня на сайте. Точно там же вы найдёте ссылки на кучу датчиков, модулей и другого железа, которое можно подключить к Arduino. О возможностях ардуино по работе с другими железками поговорим в одном из следующих уроках.

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


Ардуино программируется на языке программирования C/C++ с соответствующим ему синтаксисом. Встроенный сборщик, препроцессор и компилятор (avr-gcc или Win-AVR) прощают большое количество ошибок и делает многое за пользователя автоматически, мы даже об этом не знаем и не задумываемся. Базовые функции для управления выводами и интерфейсами микроконтроллера, математика и некоторые другие функции/макросы взяты из открытого фреймворка для работы с микроконтроллерами под названием Wiring. Именно из него состоит базовый набор инструментов Ардуино. В связи с этим сами разработчики Ардуино называют язык “упрощённым c++”, и даже дали ему отдельное название – Arduino Wiring.

Тут следует отделить мух от котлет: “из коробки” в Arduino IDE нам доступна огромная куча различных функций и инструментов:

  • Все возможности языка C++, которые предоставляет компилятор: типы данных, операторы и вообще весь необъятный синтаксис. Мы программируем на том же C++, на котором можно программировать в любом другом месте.
  • “Ядро” Ардуино – библиотека Arduino.h, которая автоматически подключается в код. В ней содержатся функции для управления пинами, интерфейсами, а также имеется набор всяких полезных функций и инструментов. А ещё оно отвечает за инициализацию и настройку периферии микроконтроллера при запуске. В ядре кстати лежат стандартные библиотеки для Serial, Wire, SPI и EEPROM.
  • В папке с программой лежит набор стандартных библиотек: для LCD дисплея, шаговика, сервопривода и некоторых других железок.
  • С компилятором идёт набор низкоуровневых библиотек для AVR (сон, progmem, watchdog и многие другие).
  • Компилятор позволяет работать с микроконтроллером “напрямую” при помощи регистров и чтения даташита до утра.
  • Также мы можем писать на ассемблере, взяв под контроль каждый такт работы МК.

Если вы научитесь свободно прогать на Ардуино и вдруг перейдете к разработке программ на том же C++ в более взрослых средах разработки, вы будете неприятно удивлены большим количеством дополнительного кода, который придется писать руками. И наоборот, если умеющий в плюсы (си-плюс-плюсы) человек посмотрит на типичный ардуино-код, он скажет “да как это вообще работает то?”. Компилятор в Arduino IDE настроен на максимальную всеядность и прощение ошибок, потому что это обучающая платформа.

Сейчас вернёмся к такому понятию, как библиотека. Жизнь рядового ардуинщика неразрывно связана с библиотеками, потому что огромное комьюнити за годы своего существования сделало огромное количество этих самых библиотек на все случаи жизни и для всех продающихся датчиков и модулей. Библиотека это набор файлов, в которых содержится дополнительный код, которым мы можем пользоваться просто ознакомившись с документацией или посмотрев примеры. Такой подход называется “черным ящиком”, мы можем даже не догадываться, какой ужас и кошмар (в плане сложности кода) содержится в библиотеке, но с лёгкостью пользоваться возможностями, который этот код даёт. Купили модуль – нашли библиотеку – открыли пример – всё, результат достигнут…

Писать без библиотек?


Очень многие считают, что эффективный код нужно писать без библиотек, чистым полотном. Это полнейшая чушь, потому что:

  • Современные микроконтроллеры имеют достаточно памяти для того, чтобы разработчик мог позволить себе сэкономить время и использовать готовые инструменты. Более того, серьёзные разработки делаются с использованием операционных систем реального времени, которые сами по себе являются огромной тяжёлой библиотекой. Никто не пишет на ассемблере, за окном не 1980 год.
  • Современные компиляторы “пишут” и оптимизируют код на весьма высоком уровне.
  • Если писать крупный проект чисто голым кодом – это будет полотно на десятки тысяч строк, в котором невозможно будет разобраться. Программу разбивают на файлы – по сути на те же самые библиотеки. Некоторые алгоритмы и части программы изначально удобно обернуть в класс и использовать как библиотеку для нескольких проектов. Так что писать без библиотек невозможно в принципе, неважно скачаете ли вы её с интернета или напишете сами.
  • Библиотека чаще всего содержит удобный класс, в котором реализованы готовые инструменты для работы, например с кнопкой. Если у вас в проекте одна кнопка – нет разницы, описывать её вручную или использовать класс. Но как только появляется две или больше одинаковых кнопки – с точки зрения количества памяти гораздо эффективнее использовать библиотеку, потому что одни и те же функции не будут дублироваться. К этому мы вернёмся в уроке про создание крупных проектов.
  • Если вы новичок, то в 99% библиотека из интернета будет написана и оптимизирована в разы лучше, чем ваш код.

Возможности


Зачем учиться работать с ардуино и электроникой в целом?

  • Это невероятно интересное, техническое, развивающее мозги и относительно дешёвое “DIY” хобби с бесконечным количеством идей и их реализаций
  • Возможность создания узко-специальных электронных устройств и станков, аналогов которым нет в продаже или они слишком дорогие. В том числе для личных нужд или для работы (знакомый ювелир сделал себе контроллер для муфельной печи, который стоит очень дорого).
  • Возможность создания новых уникальных устройств с целью выхода на краудфандинг и старта продаж и своего бизнеса.
  • Отличная практика в программировании и электронике, особенно перед обучением на соответствующую специальность.
  • Возможности в целом: автоматизация процессов и “машин”, автоматическое регулирование процессов, дистанционное управление, мониторинг различных величин, носимые и стационарные электронные устройства различного назначения.

Хейтеры платформы


В мире серьезных программистов и разработчиков очень не любят Ардуино. Почему? Рассмотрим несколько популярных негативных комментариев о платформе.

  • В среде Arduino IDE работа с микроконтроллером упрощена настолько, что ардуинщику вообще ничего не нужно знать о его архитектуре и о том, как он вообще программируется и настраивается: все сделано в виде готовых и понятных функций.
    • С каких пор удобство и простота стали плохими? Для новичка это единственный способ познакомиться с миром робототехники без изучения кипы документации и получения соответствующего образования. Также напомню, что Ардуино создана в первую очередь для обучения, и во вторую – для быстрого и удобного создания прототипов электронных устройств, это её фишка.
  • Это всё конечно хорошо, но скрытый за ширмой дружелюбного “Ардуино Вайринга” код ужасает: за безобидными на первый взгляд функциями кроются полотна кода, который что-то проверят, перепроверяет, перенастраивает уже настроенное и делает многие другие на первый взгляд ненужные вещи. Это безобразие работает очень медленно и занимает кучу места!
    • Да, стандартные функции имеют кучу защит от дурака новичка, они тяжёлые и медленные. Но новичку не понадобится писать такой код, где скорость и память будут критичны! А если понадобится, то к этому времени он уже будет в состоянии писать код оптимально и найдёт на моём сайте или в другом месте в Интернете быстрые аналоги Ардуино-функций или напишет их сам. А ещё мы переписали стандартное ядро Ардуино и сделали его быстрым и резким. И ещё один момент: ядро Ардуино устроено так, что обеспечивает совместимость кода и библиотек для всех Ардуино-плат. Начали делать проект на Arduino NANO и памяти/ног стало не хватать? Переносим проект на Arduino MEGA и продолжаем работать. NANO оказалась слишком велика для проекта? Переносим на ATTiny85, даже не открывая документацию: большинство библиотек работают на всех Ардуино-совместимых платах, это очень жирный плюс, хоть и в ущерб производительности и памяти.
  • Стандартные функции из Arduino.h описывают незначительную часть всех возможностей и настроек, которые есть в микроконтроллере.
    • А никто и не обещал вам HAL! Возможности МК раскрываются при использовании библиотек (см. список библиотек), благо сообщество у платформы действительно огромное. Также всегда можно научиться работать с даташитом и регистрами и настраивать всё что угодно и как угодно вручную.
  • Arduino IDE “скрывает” от пользователя важные низкоуровневые настройки.
    • И правильно делает! Одна ошибка – и можно остаться с заблокированным камнем. При желании через Arduino IDE можно и фьюзы прошить, и под другие частоты настроить, об этом мы говорим вот в этом уроке.
  • Ардуино для детей! Серьёзные дяди работают с “голым камнем”.
    • Всё верно, для детей и домохозяек. Плата Ардуино задумана для создания макетов, прототипирования, её можно рассматривать как часть электронного “конструктора” для обучения. На плате есть вся необходимая обвязка, почему не использовать её даже как сердце проекта?
  • Arduino IDE для детей! Серьёзные дяди работают во взрослых средах разработки.
    • Верно, но есть небольшой нюанс: Arduino IDE официально бесплатная, после простой установки (Далее, Далее, Далее, Готово) она сразу готова к работе: достаточно выбрать плату из списка и начать писать код. Взрослые среды разработки требуют взрослого подхода и порог вхождения для работы с ними несоизмеримо высок. Помимо непростой установки и настройки вас ждут расширенные настройки самого микроконтроллера в ручном режиме, чтение документации и даташитов, “взрослый” интерфейс и множество нюансов в самом программировании и настройках компилятора. Времени на изучение этого всего уйдёт немеренно.
  • Ардуинщики ходят по замкнутому кругу, они никогда не разовьются дальше мигания светодиодом.
    • Почему? Платформа ничем не ограничивает разработчика…
  • На Ардуино нельзя создать что-то реально сложное и интересное.
    • Почему же? Arduino IDE ничем не ограничивает разработчика, можно вообще отказаться от Arduino.h и начать кодить с чистого листа при помощи регистров и ассемблерных вставок, т.е. абсолютно так же, как во взрослой среде разработки. “Мощи” не хватит? Почему то её достаточно для создания 3D принтеров и прочих многоосевых ЧПУ станков, прошивка которых состоит из десятков тысяч строк кода.
  • А STM32 лучше! И в разы мощнее! И возможностей у неё больше! И она дешевле!!!
    • Да, да, да. Но не забывайте про порог вхождения и размер сообщества с контентом, библиотеками и примерами “для новичков”, а также о сложности работы с STM в целом. Посмотрите видосы вот на этом канале и сравните происходящее с работой с Arduino. Что касается возможностей и скорости работы – для большинства любительских проектов Arduino (ATmega328/2560) будет более чем достаточно, особенно если уметь писать оптимальный код.
  • Качество кода “из Интернета” просто ужасное.
    • Да, из-за простых, но понятных стандартных примеров аудитория ардуинщиков выросла очень быстро и буквально завалила интернет своими проектами, завлекая тем самым в это хобби других новичков. 99% учебных примеров, примеров работы с библиотеками и модулями написаны простенько и ужасно не оптимально: int переменные для всего подряд, вездесущий delay, блокирующие циклы и прочее, помимо богомерзких ардуино-функций. Люди берут эти примеры как основу и так и продолжают дальше писать. Но эти люди стоят на пороге очень большой двери под названием робототехника. Перешагнув через этот порог, отбросив все кривые примеры и научившись грамотно выстраивать структуру своего кода, они попадают в мир безграничных возможностей для творчества и исследования, мир бесконечно интересных и разнообразных проектов на Arduino. Для этого я и пишу данные уроки.

Что ещё хочется сказать по поводу негатива от “профессионалов” – в большинстве случаев они просто завидуют: в “их время” для создания даже простенького проекта на базе микроконтроллера нужно было потратить огромное количество времени на изучение документации на английском языке на конкретную модель МК, на все остальные железки и микросхемы в проекте, научиться работать в недружелюбной среде разработки, развести и спаять плату, купить дорогой программатор и прочее прочее. А в наше время можно купить плату за 150р, воткнуть её в USB, запустить программу уровня “блокнот с кнопкой Загрузить” и начать кодить с использованием огромного количества готовых библиотек и примеров для практически любых железок на рынке, а на любой вопрос найти ответ в гугле. Реально, у ребят просто пригорает =)

Видео версия


Важные страницы


  • Набор GyverKIT – большой стартовый набор Arduino моей разработки, продаётся в России
  • Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
  • Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
  • Полная документация по языку Ардуино, все встроенные функции и макро, все доступные типы данных
  • Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
  • Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
  • Поддержать автора за работу над уроками
  • Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])

4.6 / 5 ( 9 голосов )

● Что такое Arduino?

Arduino — это удобная платформа быстрой разработки электронных устройств и электронный конструктор для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Плата Arduino состоит из микроконтроллера Atmel AVR и элементов обвязки для программирования и интеграции с другими схемами. На многих платах присутствует линейный стабилизатор напряжения +5 В или +3,3 В.
Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором (в некоторых версиях – керамическим резонатором).

В разделе УРОКИ И ПРОЕКТЫ ARDUINO представлены эксперименты с использованием модулей, шилдов, RFID, LCD 1602, TFT дисплеев, сервоприводов SG90, GSM модулей SIM800, SIM900, GPS модулей VK-16E и др.

В микроконтроллер предварительно прошивается загрузчик Boot-Loader, поэтому внешний программатор не нужен. Устройство программируется через USB без использования программаторов. Существует несколько версий платформ Arduino. Версия Leonardo базируется на микроконтроллере ATmega32u4. Uno, Nano, Duemilanove построены на микроконтроллере Atmel ATmega328. Старые версии платформы Diecimila и первая рабочая Duemilanoves были разработаны на основе Atmel ATmega168. Arduino Mega2560, в свою очередь, построена на микроконтроллере ATmega2560. А самые последние версии Arduino Due – на базе микропроцессора Cortex.
Версия UNO является одной из самых популярных и широко иcпользуемой для небольших проектов.

Разработка собственных приложений на базе плат, совместимых с архитектурой Arduino, осуществляется в официальной бесплатной среде программирования Arduino IDE. Среда предназначена для написания, компиляции и загрузки собственных программ в память микроконтроллера, установленного на плате Arduino-совместимого устройства. Основой среды разработки является язык Processing/Wiring – это фактически обычный C++, дополненный простыми и понятными функциями для управления вводом/выводом на контактах. Существуют версии среды для операционных систем Windows, Mac OS и Linux.

Arduino или AVR. Что лучше?

Arduino или AVR?

Думаю, не ошибусь, если скажу, что каждый начинающий радиолюбитель, еще не имеющий опыта работы ни с одной платформой для разработки электронных устройств, затрудняется в своем выборе. Новички советуют одно, профи – другое. На форумах мнения разделяются. Так сложилось, что мы начали развитие темы прикладного программирования с создания устройств на AVR микроконтроллерах.  И если для более опытных электронщиков изучение AVR не становится проблемой, то у начинающих появляется море вопросов.

Переход к созданию своих устройств на практике бывает затруднен. Но решение есть. Оно довольно простое и не очень затратное.  Многие, думаю, слышали о такой платформе под названием “Arduino”.

Arduino – это электронный модуль-конструктор, имеющий в своем составе МК AVR, который является мозгом всего этого конструктора. Отличие от самого МК AVR – это упрощенное программирование, большое количество дешевых периферийных устройств, которые можно купить без проблем, а также простая и безопасная “заливка” программы в МК.

Блок-схема платы Arduino до боли проста:

Периферийными устройствами в данном случае являются разные датчики контроля, а также исполняемые устройства. Всем этим винегретом заправляет МК AVR, который установлен посередине платы 😉

Вот некоторые из периферийных устройств.

В процессе изучения мы будем знакомиться с ними поближе

Виды Arduino

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

Arduino Mega

Сама приставка “мега” говорит уже сама за себя. Самый мощный конструктор.

Arduino Uno

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

Также на плате Arduino UNO и Mega распаян стабилизатор питания, позволяющий питать плату от батареи Крона, либо через переходник от китайского адаптера – блока питания. Оптимальное напряжение питания 9-12 Вольт

Arduino Nano

Думаю, проще уже некуда. На али выбор этой модели огромный.

[quads id=1]

Все эти три модели  – Mega, Uno, Nano – имеют в своем составе составе конвертер USB-Serial и разъем USB. Это означает, что для заливки программы (на языке Arduino – скетча), нам нет необходимости покупать программатор.

Arduino Pro Mini

Для Pro Mini уже необходим программатор. Но это не обычный программатор, типа USBasp, с помощью которого мы шили микроконтроллеры AVR. Здесь уже требуется программатор USB-Serial, который уже встроен в Uno, Nano  и Mega, но не имеется в Mini. Стоимость его в среднем чуть меньше 1$.  Вот вам ссылка на Али на саму модель Pro Mini, а вот ссылка на программатор.

Какой Arduino лучше?

Какой из Ардуино лучше для начала осваивания работы? Мое мнение – это Arduino Uno. Mega будет стоить дороже, да и зачем новичку такой супер-конструктор? Uno удобнее всего подключать к ПК и для него не требуется  паять штырьки, для того чтобы вставить в макетную плату, так как они уже есть. Он полностью готов к работе. Nano и Pro Mini требуют предварительного впаивания гребенки штырьков:

Но если вы уже  с паяльником на “ты” и хотите немного сэкономить, то можете приобрести Arduino Nano. Если же вы отладили какое-либо устройство и хотите уже использовать его многие годы, тут как нельзя кстати подойет Pro Mini. Маленький, удобный, а главное – дешевый.

На всех четырех перечисленных моделях Arduino размещены кварцевые резонаторы, используемые для тактирования МК. Также имеется индикация в виде мигания светодиодов при заливке прошивки. Цена Nano и Mini существенно ниже, чем Uno, и приблизительно равна стоимости среднего по функционалу микроконтроллера AVR.

Сравнение плат Arduino – довольно важная вещь. Новичку, не имеющему опыта работы с ней, легко растеряться в многообразии плат и выбрать неподходящую модель. Конечно, выбор той или иной платы зависит от проекта, однако в общем разъяснить новичкам об особенностях каждой платы не помешает:
– Arduino Mega
Одна из самых мощных плат в линейке Arduino. Имеет память аж 256 Кб, которой хватит на 99,9% проектов, 54 цифровых входов/выходов и 16 аналоговых входов.
– Arduino Uno
Наиболее распространённая ардуинка, имеет память 32 Кб, 14 цифровых входов/выходов и 6 аналоговых входов. Немного, по сравнению с Mega, но для многих проектов хватает.
– Arduino Nano
Вопреки ожиданиям от слова “нано” она даже мощнее Uno. Имеет 14 цифровых входов/выходов и 8 аналоговых входов и память тоже 32 Кб, так, как построена на том же МК ATMega328, что и Uno.
– Arduino Pro Mini
Самая слабая плата. Имеет память 16 Кб, 14 цифровых входов/выходов и 4 аналоговых входа. К тому же, обвязка платы настолько ограничена, что она отличается от простого МК лишь кнопкой перезагрузки reset и стабилизатором питания.

Какую же выбрать новичку? Nano отлично подходит для готовых проектов, а Uno – для освоения Arduino, на ней удобнее учиться. Nano очень компактное и дешевле Uno, а Uno удобнее питать и подключать. Pro Mini не оправдывает своей стоимости, да и к ней надо покупать программатор, к тому же её очень неудобно питать.

Программа Arduino IDE

Для написания программ используется собственная среда разработки Arduino. Те, кто пытались освоить работу с Atmel Studio 6, помнят, какое там количество настроек. Сходу разобраться нереально. Здесь же наоборот, мы видим простой интерфейс и только все самое необходимое. Скачать ее можно здесь. Есть также версии посвежее, но это не влияет на работоспособность программы.

Arduino является открытой платформой. Именно это принесло ей такую большую популярность. Для нее было выпущено много клонов под разные версии. Кстати если вы начнете работать именно с китайским клоном, а не с оригинальным Arduino, что скорее всего и произойдет, то вам потребуется установить драйвер под китайский адаптер Usb-Serial, распаянный на плате. Как отличить китайский Ардуино от оригинала? Если присмотреться к модулю, то можно увидеть вот такую микросхему:

Если она имеется, то ардуино китайский. Для него драйвер устанавливается вручную через “Диспетчер устройств”. Никаких проблем при установке замечено не было. Скачать драйвер можно  здесь.

Далее нам надо выбрать нужную нам модель Arduino из списка

Ну а потом выбираем COM-порт в системе, к которой у нас подключена Arduino.

Ну вот и все! Совсем ничего сложного 😉

Вывод

Итак, вернемся к теме нашей статьи. Что же все-таки лучше изучать? Голые МК AVR или взять набор Arduino?

Для новичков часто бывает проблемой выставление фьюзов у МК AVR. Этого минуса лишены все Ардуино. Там просто нет такой функции при подключении через USB кабель. Также при небрежном выставлении фьюзов можно залочить дорогой МК AVR, который не всегда просто реанимировать. В Ардуино залочить МК нереально. При прошивке программатором ISP USBASP, мы  можем прошить МК Ардуино, как и любой другой МК AVR.

Также одним важным отличием Ардуино от МК AVR – это наличие худшей оптимизации размера кода. То есть программа, которая выполняет одни и те же действия на МК и Arduino будет иметь разный вес. На Arduino она будет весить больше. И может даже случиться так, что просто не войдет в память. Микроконтроллеры AVR имеют более широкие возможности в создании электронных устройств, но есть у них и свои минусы –  это необходимость наличия программатора, источника питания, а также мощного компьютера для комфортной работы в Atmel Studio 6.

Этой публикацией мы начинаем цикл статей, посвященных конструированию электронных устройств на платформе Arduino. Оставайтесь с нами и мы поэтапно, следуя от простого к сложному, разберем самостоятельную сборку электронных устройств. Будут рассмотрены разные модели Arduino, программатор Usb – Serial и её периферия. Вы научитесь самостоятельно писать скетчи в среде разработки и обязательно соберете все то, что давно хотели собрать, но затруднялись в создании на практике.

Микроконтроллеры. Arduino и IDE среда разработки Текст научной статьи по специальности «Компьютерные и информационные науки»

МИКРОКОНТРОЛЛЕРЫ. ARDUINO И IDE СРЕДА РАЗРАБОТКИ

Р.А. Аджиев, курсант, Д.В. Картавцев, начальник кафедры, Воронежский институт ГПС МЧС России, г. Воронеж

Микроконтроллер (Micro Controller Unit, MCU) — это микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, содержит ОЗУ (оперативное запоминающее устройство) или ПЗУ (постоянное запоминающее устройство). По сути, это небольшой компьютер, способный выполнять определенные задачи.

Микроконтроллеры применяются в вычислительной технике, электронике и разнообразных устройствах бытовой техники, в которой используется электронные системы управления, стиральных машинах, микроволновых печах, посудомоечных машинах, телефонах и современных приборах, различных роботах, системах «умный дом», устройствах промышленной автоматики — от программируемого реле и встраиваемых систем.

Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам М. Кочрену и Г. Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода.

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

Семейство Arduino

Mega; Lilypad; Pro mini; Nano; Duemilanove.

Основные Характеристики Arduino

— Модель микроконтроллера

— Частота микроконтроллера

— Наличие интерфейсов USB/I2C/SPI

— А также наличие цифровых и аналоговых входов и выходов от 10 до 54 из них 15 аналоговые и ШИМ.

Историческая справка о создании Arduino. История о том, как 5 друзей создали инструмент для творчества

Итальянский городок Ивреа, стоящий на реке Дора Балтея, знаменит своими королями-неудачниками. В 1002 году король Ардуин стал правителем

страны, а через два года был свергнут королем Германии Генри II. Сегодня бар ди Ре Ардуино, расположенный в исторической части этого городка, назван в честь короля и стоит на том самом месте, где, по преданию, родился король.

Бар является пивнушкой Массимо Банци (Massimo Banzi), итальянского соучредителя проекта в сфере электроники, который был назван в честь этого места.

Выпущенный в 2005 году как скромный инструмент для студентов Банци в Институте проектирования взаимодействий города Ивреа (Interaction Design Institute Ivrea, IDII), Arduino породил международную революцию в сфере международных электронных самоделок. Вы можете купить эту плату всего за $30 или собрать ее с нуля. Все схемы и исходные коды доступны бесплатно на условиях открытых лицензий. В результате Arduino стал самой влиятельной аппаратной системой своего времени с открытым исходным кодом.

Маленькая печатная плата теперь является, своего рода, источником вдохновения для «художников» в электронике, людей, увлеченных электронными поделками, студентов и любого, у кого есть мечта собрать что-нибудь этакое. Во всем мире продано более 250 000 комплектов Arduino, и это, не учитывая множества клонов. «Это позволило людям делать вещи, которые они не сделали бы каким-либо иным способом» — говорит Дэвид А. Мелис (David A. Mellis), который до того, как выполнил квалификационную работу в Медиа, был студентом IDII лаборатории Массачусетского технического института, а теперь является ведущим разработчиком программного обеспечения для Arduino.

Сердцем Arduino является микроконтроллер от компании Atmel.

Atmel Corporation — изготовитель полупроводниковых электронных компонентов. Компания основана в 1984 году.

Один из лидеров производства микроконтроллеров (MCS-51, ARM, AVR, AVR32). Также разрабатывает и производит небольшие модули энергонезависимой памяти для электронных изделий, ПЛИС, цифровые микросхемы-радиоприёмники и передатчики, сканеры отпечатков пальцев. Компания для своих клиентов может предложить систему на кристалле, объединяющую затребованные компоненты. Продукция Atmel широко применяется в компьютерных сетях, промышленности, медицине, связи, автомобилях, космосе, военных устройствах, а также кредитных картах.

Сообщество Arduino

На сегодняшний день Arduino на столько известна, что существуют целые сообщества Arduino. Такие как Вконтакте, Facebook, YouTube, Twitter.

Почему Arduino?

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

Кросс-платформенность — программное обеспечение Arduino работает под ОС Windows, Macintosh OSX и Linux. Большинство микроконтроллеров ограничивается ОС Windows.

Программное обеспечение с возможностью расширения и открытым исходным текстом — ПО Arduino выпускается как инструмент, который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие понять технические нюансы, имеют возможность перейти на язык AVR C на котором основан C++. Соответственно, имеется возможность добавить код из среды AVR-C в программу Arduino.

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

Низкая стоимость — платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля Arduino может быть собрана вручную, а некоторые даже готовые модули стоят меньше 50 долларов.

Список использованной литературы

1. Гололобов. В. «С чего начинаются роботы? О проекте Arduino для школьников (и не только)», 2011. — 225 с.

2. Чарльз Платт «Электроника для начинающих», 2012 — 480 с.

3. Улли Соммер «Программирование микроконтроллерных плат Arduino», 2010. — 241 с.

4. https://www.arduino.cc.

5. https://www.arduino-projects

КОНЦЕПЦИЯ РАБОТЫ ЗВЕНА ГДЗС НА ОСНОВЕ ИННОВАЦИОННЫХ ТЕХНОЛОГИЙ

А.А. Апарин, курсант, О.Г. Волков, преподаватель, А.Н. Бочкарев, преподаватель, Д.Ю. Захаров, преподаватель, Ивановская пожарно-спасательная академия ГПС МЧС России,

г. Иваново

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

Arduino Uno Rev3 — Интернет-магазин Arduino

Часто задаваемые вопросы

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

Arduino Uno можно программировать с помощью (Arduino Software (IDE)). Выберите «Arduino Uno» в меню «Инструменты»> «Плата» (в соответствии с микроконтроллером на вашей плате). Подробнее см. В справочнике и руководствах.

ATmega328 на Arduino Uno поставляется с предварительно запрограммированным загрузчиком, который позволяет загружать в него новый код без использования внешнего аппаратного программатора.Он взаимодействует с использованием оригинального протокола STK500 (ссылка, файлы заголовков C).

Вы также можете обойти загрузчик и запрограммировать микроконтроллер через заголовок ICSP (внутрисхемное последовательное программирование), используя Arduino ISP или аналогичный; подробности см. в этих инструкциях.

Исходный код прошивки ATmega16U2 (или 8U2 на платах rev1 и rev2) доступен в репозитории Arduino. В ATmega16U2 / 8U2 загружен загрузчик DFU, который можно активировать с помощью:

  • На платах Rev1: подсоедините паяльную перемычку на задней стороне платы (рядом с картой Италии), а затем снова установите 8U2.
  • На платах Rev2 или более поздних версий: имеется резистор, который соединяет линию 8U2 / 16U2 HWB с землей, что упрощает переход в режим DFU.

Затем вы можете использовать программное обеспечение Atmel FLIP (Windows) или программатор DFU (Mac OS X и Linux) для загрузки новой прошивки. Или вы можете использовать заголовок ISP с внешним программатором (перезаписав загрузчик DFU). См. Этот пользовательский учебник для получения дополнительной информации.

Предупреждения

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

Отличия от других плат

Uno отличается от всех предыдущих плат тем, что не использует микросхему драйвера FTDI USB-to-serial. Вместо этого он оснащен Atmega16U2 (Atmega8U2 до версии R2), запрограммированным как преобразователь USB-to-serial.

Мощность

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

Внешнее (не USB) питание может поступать либо от адаптера переменного тока в постоянный (бородавка), либо от батареи. Адаптер можно подключить, вставив центрально-положительный штекер 2,1 мм в разъем питания на плате. Выводы от аккумулятора можно вставить в контактные разъемы GND и Vin разъема POWER.

Плата может работать от внешнего источника питания от 6 до 20 вольт.Однако при подаче напряжения менее 7 В на вывод 5 В может подаваться напряжение менее пяти вольт, и плата может работать нестабильно. При использовании более 12 В регулятор напряжения может перегреться и повредить плату. Рекомендуемый диапазон от 7 до 12 вольт.

Выводы питания следующие:

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

Память

ATmega328 имеет 32 КБ (0,5 КБ занято загрузчиком). Он также имеет 2 КБ SRAM и 1 КБ EEPROM (которые можно читать и записывать с помощью библиотеки EEPROM).

Вход и выход

См. Отображение между выводами Arduino и портами ATmega328P. Отображение для Atmega8, 168 и 328 идентично.

НАСТРОЙКА КОНТАКТОВ ATmega328P

Каждый из 14 цифровых контактов Uno может использоваться как вход или выход, используя функции pinMode (), digitalWrite () и digitalRead (). Они работают на 5 вольт. Каждый вывод может обеспечивать или принимать 20 мА в соответствии с рекомендуемыми рабочими условиями и имеет внутренний подтягивающий резистор (отключен по умолчанию) на 20-50 кОм. Максимальное значение 40 мА — это значение, которое нельзя превышать на любом выводе ввода / вывода, чтобы избежать необратимого повреждения микроконтроллера.

Кроме того, некоторые контакты имеют специализированные функции:

  • Последовательный: 0 (RX) и 1 (TX).Используется для приема (RX) и передачи (TX) последовательных данных TTL. Эти контакты подключаются к соответствующим контактам микросхемы ATmega8U2 USB-to-TTL Serial.
  • Внешние прерывания: 2 и 3. Эти выводы могут быть сконфигурированы для запуска прерывания при низком значении, нарастающем или спадающем фронте или изменении значения. Подробнее см. Функцию attachInterrupt ().
  • PWM: 3, 5, 6, 9, 10 и 11. Обеспечьте 8-битный вывод PWM с помощью функции analogWrite ().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).Эти контакты поддерживают связь SPI с использованием библиотеки SPI.
  • Светодиод
  • : 13. Имеется встроенный светодиод, управляемый цифровым контактом 13. Когда на контакте установлено ВЫСОКОЕ значение, светодиод горит, когда на контакте низкий уровень — он выключен.
  • TWI: контакт A4 или SDA и контакт A5 или SCL. Поддержите связь TWI с помощью библиотеки Wire.

Uno имеет 6 аналоговых входов, обозначенных от A0 до A5, каждый из которых обеспечивает разрешение 10 бит (т.е. 1024 различных значения). По умолчанию они измеряют напряжение от земли до 5 вольт, хотя можно изменить верхний предел их диапазона с помощью вывода AREF и функции analogReference ().На плате есть еще пара контактов:

  • AREF. Опорное напряжение для аналоговых входов. Используется с analogReference ().
  • Сброс. Установите в этой строке НИЗКИЙ уровень, чтобы сбросить микроконтроллер. Обычно используется для добавления кнопки сброса к щитам, которые блокируют кнопку на плате.

Связь

Arduino Uno имеет ряд средств для связи с компьютером, другой платой Arduino или другими микроконтроллерами. ATmega328 обеспечивает последовательную связь UART TTL (5 В), которая доступна на цифровых выводах 0 (RX) и 1 (TX).ATmega16U2 на плате передает эту последовательную связь через USB и отображается как виртуальный COM-порт для программного обеспечения на компьютере. В прошивке 16U2 используются стандартные драйверы USB COM, и внешний драйвер не требуется. Однако в Windows требуется файл .inf. Программное обеспечение Arduino (IDE) включает последовательный монитор, который позволяет отправлять простые текстовые данные на плату и с нее. Светодиоды RX и TX на плате будут мигать, когда данные передаются через микросхему USB-to-serial и USB-соединение с компьютером (но не для последовательной связи на контактах 0 и 1).

Библиотека SoftwareSerial обеспечивает последовательную связь на любых цифровых выводах Uno.

ATmega328 также поддерживает связь I2C (TWI) и SPI. Программное обеспечение Arduino (IDE) включает библиотеку Wire для упрощения использования шины I2C; подробности см. в документации. Для связи по SPI используйте библиотеку SPI.

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

Вместо того, чтобы требовать физического нажатия кнопки сброса перед загрузкой, плата Arduino Uno спроектирована таким образом, чтобы ее можно было сбросить с помощью программного обеспечения, запущенного на подключенном компьютере.Одна из линий аппаратного управления потоком (DTR) ATmega8U2 / 16U2 подключена к линии сброса ATmega328 через конденсатор емкостью 100 нанофарад. Когда эта линия утверждается (принимает низкий уровень), линия сброса опускается достаточно долго, чтобы сбросить микросхему. Программное обеспечение Arduino (IDE) использует эту возможность, чтобы вы могли загружать код, просто нажимая кнопку загрузки на панели инструментов интерфейса. Это означает, что у загрузчика может быть более короткий тайм-аут, так как снижение DTR может быть хорошо скоординировано с началом загрузки.

Эта установка имеет другие значения. Когда Uno подключен к компьютеру под управлением Mac OS X или Linux, он сбрасывается каждый раз при подключении к нему из программного обеспечения (через USB). Следующие полсекунды загрузчик работает на Uno. Хотя он запрограммирован на игнорирование искаженных данных (то есть чего-либо, кроме загрузки нового кода), он будет перехватывать первые несколько байтов данных, отправленных на плату после открытия соединения. Если скетч, запущенный на плате, получает однократную конфигурацию или другие данные при первом запуске, убедитесь, что программное обеспечение, с которым он взаимодействует, ждет секунду после открытия соединения и перед отправкой этих данных.

Плата Uno содержит дорожку, которую можно обрезать, чтобы отключить автосброс. Контактные площадки по обе стороны от дорожки можно спаять вместе, чтобы снова включить ее. Он помечен как «RESET-EN». Вы также можете отключить автоматический сброс, подключив резистор 110 Ом от 5 В к линии сброса; подробности см. в этой ветке форума.

Редакции

Плата

Revision 3 имеет следующие новые функции:

  • 1.0 распиновка: добавлены выводы SDA и SCL, которые находятся рядом с выводом AREF, и два других новых вывода, размещенных рядом с выводом RESET, IOREF, которые позволяют экранам адаптироваться к напряжению, подаваемому с платы.В будущем экраны будут совместимы как с платой, использующей AVR, которая работает с напряжением 5 В, так и с Arduino Due, которая работает с напряжением 3,3 В. Второй вывод — неподключенный, он зарезервирован для использования в будущем.
  • Более сильная цепь сброса.
  • Atmega 16U2 заменяет 8U2.

Популярная плата микроконтроллера! Его история и способы использования

За последние несколько лет многие книги и журналы, посвященные электронным проектам и программированию, стали более широко доступны в книжных магазинах.Если вы читаете названия книг, вы, скорее всего, встретите здесь и там слова «Arduino» и «Raspberry Pi».

Однако, хотя есть много людей, которые слышали об Arduino и Raspberry Pi, не так много тех, кто точно знает, что они из себя представляют.

Итак, в сегодняшней статье мы расскажем вам все об Arduino. Мы рассмотрим такие вопросы, как:

  • Что такое Ардуино?
  • Разница между Arduino и Raspberry Pi
  • Различные типы продуктов Arduino и что нужно знать перед покупкой

Состав:

  1. Что такое Ардуино?
  2. История Arduino и происхождение его названия
  3. Что использовать: Arduino или Raspberry Pi?
  4. Разница между Arduino и Raspberry Pi
  5. Обучение использованию Arduino
  6. Стандартные продукты Arduino и способы их использования
  7. Другие способы использования Arduino
  8. Другие возможности Arduino
  9. Добро пожаловать в мир электроники!
  1. Что такое Ардуино?

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

Пример платы Arduino (Arduino UNO)

На этой плате можно заметить различные электронные компоненты. Он похож на платы, которые часто встречаются в персональных компьютерах и телевизорах. Плата Arduino — это макетная плата микроконтроллера, на которой установлен чип (называемый микроконтроллером), функции которого можно изменять с помощью программирования. Плата на фото — один из таких примеров.

Arduino — это не просто плата Arduino. Он также включает одноименную программную интегрированную среду разработки (IDE).

IDE для Arduino

Это конкретное программное обеспечение для программирования часто называют Arduino IDE. Различая плату и программное обеспечение, проще называть их по отдельности «платой Arduino» и «Arduino IDE».

  1. История Arduino и происхождение названия

Arduino возникла в результате разработки платформы под названием «Wiring», построенной Эрнандо Барраганом в 2003 году в качестве исследовательского проекта для его магистерской диссертации в Институте дизайна взаимодействия Ивреа (IDII) в Италии.Его первоначальная цель исследования и цель разработки Wiring заключалась в том, чтобы упростить сложные процессы и механизмы микроконтроллеров, сделав их более доступными для художников и дизайнеров с небольшим знанием электроники.

Проект разработки Arduino начался в 2005 году. Преподаватель магистерской диссертации Баррагана Массимо Банци вместе со студентами Дэвидом Меллисом и Дэвидом Куартиеллесом начал другой проект (разветвление исходного кода Wiring) под названием Arduino.

Название Arduino происходит от названия бара, который часто посещал Банци, Bar di Re Arduino, название, которое с тех пор закрепилось за ним.

Вскоре популярность Arduino выросла, и с помощью Maker Movement (движение, которое продвигало использование цифровых станков, таких как 3D-принтеры), она быстро стала самой популярной платой для микроконтроллеров в мире.

Если вы посмотрите глубже в историю Arduino, вы найдете множество статей, относящихся к внутреннему разделению команды Arduino (Arduino LLC и Arduino SRL) и их вопросам, связанным с торговыми марками и правами на производство. К счастью, в конечном итоге этот вопрос был урегулирован, что для таких пользователей Arduino, как мы, принесло огромное облегчение (особенно с точки зрения влияния, которое это окажет на распространение платы Arduino и обновления Arduino IDE)!

  1. Что лучше: Arduino или Raspberry Pi?

В настоящее время новичкам легко изучить основы с помощью статей и книг.Вы часто найдете множество заголовков, таких как «Как делать ~ с Arduino» и «Как делать ~ с Raspberry Pi».

Но для новичка может быть непросто знать, с чего начать. Многие люди, вероятно, задаются вопросом: «Что мне купить?» Задержитесь на этом вопросе. Во-первых, давайте кратко рассмотрим различия между Arduino и Raspberry Pi.

Arduino — это плата микроконтроллера, а Raspberry Pi — одноплатный микрокомпьютер. Мы только что бегло рассмотрели плату микроконтроллера.Возможно, лучший способ описать одноплатный микрокомпьютер — это «небольшой персональный компьютер, который может выполнять минимум необходимых функций». Имея это в виду, вы можете рассмотреть разные точки зрения и решить, использовать ли Arduino или Raspberry Pi в зависимости от ваших потребностей.

Raspberry Pi 4 Модель B

  1. Разница между Arduino и Raspberry Pi

Некоторые люди скажут, что между микроконтроллером и персональным компьютером лучше всего подходит персональный компьютер, потому что он более совместим с продвижением вперед.Однако у обоих устройств есть свои плюсы и минусы, в зависимости от того, как вы хотите их использовать.

  1. Наличие или отсутствие ОС

Первое отличие — наличие внутреннего операционного программного обеспечения: у Raspberry Pi есть ОС, а у Arduino — нет.

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

Конечно, если вы хотите использовать программу, работающую в Linux, вам следует выбрать Raspberry Pi, поскольку у Arduino такой возможности нет.

  1. Рассмотрите разные роли каждого из них

Это просто означает помнить следующее: микроконтроллер будет делать то, что должен делать микроконтроллер, а персональный компьютер будет делать то, что должен делать персональный компьютер. Raspberry Pi может выполнять практически любую функцию ввода-вывода, включая рабочие светодиоды и переключатели.Однако вопрос не в том, что вы можете или не можете делать, а в том, для каких ролей подходит каждое устройство. Зная это, вы сможете решить, какой из них использовать, исходя из ваших целей и потребностей.

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

  • Управление светодиодами и двигателями
  • Обнаружение состояния переключателя и датчика

Если вы имеете дело с электрическими сигналами (ориентированными на оборудование), Arduino — хороший выбор.

Роли, для которых Raspberry Pi больше всего подходит, следующие:

  • Сетевые коммуникации (проводная / беспроводная локальная сеть)
  • Вывод видео на дисплеи и проекторы
  • Использование камеры (для обработки изображений и т. Д.)

Если вам нужно что-то работать как персональный компьютер (например, использовать программное обеспечение), вы должны использовать Raspberry Pi.

  1. Обучение использованию Arduino

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

Автор рекомендует два метода:

  1. Купите книгу и следуйте ее инструкциям
  2. См. Различные статьи в Интернете и следуйте их инструкциям.
  1. Обучение по книгам

Изучая технические и вводные книги, лучше всего покупать те, которые продаются в книжных и интернет-магазинах. Хотя получение этих книг действительно стоит денег, многие из них специально написаны для начинающих, начинающих с нуля.В этих книгах, вероятно, есть лучшие и самые простые для понимания объяснения. Кроме того, существует также ряд книг, которые служат полными руководствами, так что вам нужно будет купить только одну. Это поможет вам сэкономить часы на серфинге в Интернете и просмотре всевозможных статей, даже не зная, что вы ищете.

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

Начало работы с Arduino 3rd Edition

  1. Изучение онлайн-статей

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

Как начать работу с Arduino

В этой статье объясняется, как установить Arduino IDE и как управлять светодиодной подсветкой. Это легко сделать и рекомендуется для людей, впервые использующих Arduino. Сделайте свой первый шаг, обратившись к этой процедуре!

Пошаговое руководство для вашего первого проекта с Arduino

Строительные программы

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

Основы Arduino: управление светодиодным освещением с помощью цифрового выхода

Использование световых датчиков

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

Как управлять светом с помощью датчика внешней освещенности

  1. Стандартные продукты Arduino и способы их использования

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

  1. Если вы хотите попробовать в первый раз

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

Ардуино UNO

Arduino Uno — самая базовая плата и стандартный элемент серии Arduino.Поскольку это один из самых стандартных продуктов Arduino, вы обнаружите, что большая часть информации, доступной в онлайн-статьях, журналах и технических книгах, посвящена его использованию. Кроме того, многие дополнительные платы Arduino (называемые «щитами») совместимы с Arduino Uno.

На порт ввода / вывода установлен контактный разъем, который можно подключить к макетной плате с помощью перемычки.

Arduino Uno — самая популярная плата, используемая для иллюстрации примеров в онлайн-статьях. Поэтому, если вы используете плату другого производителя, вам может быть сложно собрать в соответствии с этими статьями, поскольку большинство из них написано на основе спецификаций Arduino (таких как количество выводов и т. Д.)). Но если вы используете Arduino Uno, вы можете легко следовать инструкциям и кодам в точности так, как написано!

  1. Если вам нужно больше ввода / вывода

Если вы хотите управлять несколькими светодиодами, переключателями и двигателями, Arduino Uno может не иметь достаточного количества портов ввода / вывода. В этом случае лучшим выбором может стать Arduino Mega. Однако он дороже, чем Uno.

Ардуино Мега

Arduino Mega имеет больше портов ввода / вывода, чем Uno, что означает, что вы можете подключать больше устройств, таких как датчики.(При подключении нескольких светодиодов необходимо учитывать потребление тока. Это следует учитывать не только для Mega, но и для всех микроконтроллеров).

Uno имеет только один порт последовательной связи (порт USB). С Mega вы получаете три дополнительных порта в дополнение к USB-порту. Поэтому, если вам нужно настроить связь между микроконтроллерами, Bluetooth, Zigbee и т. Д., Я рекомендую Mega.

Кроме того, поскольку наиболее часто используемые порты расположены аналогично Arduino Uno, многие несовместимые экраны также могут использоваться с Mega.

Mega также имеет больше контактов, которые можно использовать для вывода PWM, чем Uno, поэтому, если вам нужно управлять большим количеством двигателей, использующих PWM, выберите Mega. И если вы планируете использовать Arduino для создания роботов в будущем, это определенно стоит иметь.

  1. Если вам нужна небольшая устанавливаемая плата

Если вы хотите установить свою плату в меньшего робота или устройства, я рекомендую компактную Arduino Micro, плату даже меньше, чем Uno. Это тоже немного дешевле, чем Уно.

Ардуино Микро

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

Универсальная доска

На универсальной плате разводка выполняется со стороны пайки, покрытой медью (узорчатой). В области электроники стало обычной практикой уберечь обрезанные ножки от светодиодов и резисторов, чтобы использовать их для разводки на плате.

  1. Если вы хотите сделать свою клавиатуру / мышь

В последние годы DIY-клавиатуры приобрели популярность в области электронных проектов. Создав собственную компьютерную клавиатуру, вы можете создать свою идеальную оригинальную клавиатуру с любыми функциями, которые вам нужны. С помощью Arduino Leonardo вы можете создавать свои собственные HID, такие как клавиатуры и мыши. Форма платы похожа на Uno, хотя это другой тип платы Arduino.

Ардуино Леонардо

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

Все платы Arduino, оснащенные микроконтроллером ATmega32U4, могут использоваться для самодельных клавиатур и мышей, включая ранее представленный Arduino Micro. Если вы хотите построить прототип на макете, выберите Леонардо, а если вы хотите припаять к универсальной плате, выберите Micro.

  1. Другие способы использования Arduino

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

TINKERKIT BRACCIO ROBOT

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

Пластик Reflectic

Plastic Reflectic — это проект установки, направленный на решение проблемы мусора в наших океанах, который способствует загрязнению и разрушению окружающей среды. Он использует 600 водонепроницаемых серводвигателей! Arduino часто используется на выставках медиаискусства с электронным управлением, подобных этой.

Слайдер камеры Arduino

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

  1. Другие возможности Arduino

Наконец, вот несколько статей об электронных проектах с использованием Arduino, которые я ранее опубликовал в Device Plus. Многие авторы создали ряд уникальных и интересных устройств.Не стесняйтесь ссылаться на них в любое время.

Как: Arduino Hexapod ЧАСТЬ 1 — Механика и подключение

Роботы

Hexapod — одни из самых крутых роботов для сборки, но обычно они довольно дороги. Одна из причин заключается в том, что они обычно состоят из множества деталей и используют 18 сервоприводов, все из которых должны приводиться в действие каким-либо микроконтроллером. В этом уроке я покажу, как построить свой собственный Arduino Hexapod или Ardupod, распечатав все детали на 3D-принтере и используя только 12 сервоприводов для управления роботом.Вы готовы? Поехали!

Как: Arduino Hexapod ЧАСТЬ 1 — Механика и подключение

Устройство открывания гаража Arduino и универсальный радиоинтерфейс

Случайные радиоволны повсюду. Эхо глубокого космоса от Большого взрыва наиболее очевидно в микроволновом спектре, тогда как довольно локальные эхо от вашей внутренней электропроводки и ближайшей системы поездов метро наиболее заметны на частотах 50-60 Гц. Всякий раз, когда вы дотрагиваетесь до 3,5-мм TRS-разъема и слышите отягчающий гул, это значит, что вы — большой слышимый конденсатор случайных аналоговых радиоволн.

В этой статье мы рассмотрим практичную и устойчивую к помехам радиосистему, идеально подходящую для производителей.

Сделайте свой собственный дверной замок Arduino RFID

Устали от блокировки, когда вы теряете или забываете ключи? Что ж, у меня есть идеальное решение для вас! Сегодня мы построим дверной замок Arduino RFID. Я хотел найти простой и безопасный способ запереть дверь без необходимости покупать дорогое запирающее устройство. Мы узнаем о радиочастотной идентификации (RFID) и воспользуемся беспроводной связью.

  1. Добро пожаловать в мир электронных работ!

Сегодня мы представили возможности Arduino, объяснили, как выбрать подходящий для вас, и показали несколько реальных примеров. Одно из величайших удовольствий от работы с электроникой — это просто возможность создавать уникальные, единственные в своем роде устройства, которых нет больше нигде в мире! Если вы когда-нибудь думали про себя: «Ого, я действительно хотел бы сделать что-то подобное», попробуйте с Arduino!

лучших плат и микроконтроллеров (MCU) Arduino для Интернета вещей и носимых устройств

Неважно, новичок вы или имеете опыт работы с микроконтроллерами (MCU), наверняка вы слышали или сталкивались с Arduino.А из-за того, насколько легко им управлять, Arduino стал культовым и широко используется для выполнения самых разных проектов!

Согласно «Отчету о рынке микроконтроллеров за 2020 год», прогнозируется, что к 2027 году мировой рынок микроконтроллеров достигнет 47,74 млрд долларов США , с упором на автоматизацию и искусственный интеллект (ИИ) в различных отраслях, таких как автомобилестроение и промышленность. Более того, в 2019 году по всему миру было отгружено более 30 миллиардов микроконтроллеров (MUC)!

Излишне говорить, что растущий спрос на микроконтроллер показал свою популярность! Таким образом, мы составили список плат и микроконтроллеров Arduino, чтобы удовлетворить все потребности вашего проекта! Не волнуйтесь, мы будем продолжать обновлять этот список по мере продвижения, и мы надеемся, что вы сможете найти тот, который удовлетворит ваш вкус!


Платы Arduino

Лучший стартовый комплект Arduino: комплект Grove Beginner для Arduino (19 долларов.90)

Впервые на Arduino? Комплект Grove Beginner Kit для Arduino получил вашу поддержку! Этот комплект идеально подходит для обучения STEM и новичков, которые просто хотят узнать об Arduino и кодировании, он предлагает вам самый простой способ начать работу с Arduino. После того, как вы ближе познакомитесь с Arduino, вы также можете вынуть модули и использовать кабели Grove для их соединения.

Характеристики:
  • Arduino UNO-совместимая плата (Seeeduino Lotus на базе ATmega320p) + 10 наиболее часто используемых модулей Arduino
  • Совместимость с более чем 300 модулями Grove
  • Для начинающих! Предоставляются пошаговые руководства по проекту.
  • Макетная плата и соединительные кабели не требуются, все модули уже подключены.
Список деталей:

Входит в комплект:

  • Комплект для начинающих Grove для платы Arduino x 1
  • Кабель Micro USB x 1
  • Кабели Grove x 6

В комплекте:

  • Grove — светодиод x 1
  • Grove — зуммер x 1
  • Grove — OLED-дисплей 0,96 ″ x 1
  • Grove — кнопка x 1
  • Grove — поворотный потенциометр x 1
  • Grove — Light x 1
  • Grove — Звук x 1
  • Grove — Датчик температуры и влажности x 1
  • Grove — Датчик давления воздуха x 1
  • Grove — 3-осевой ускоритель x 1
  • Seeeduino Lotus x 1

Лучший Arduino для начинающих: Arduino Uno Rev3 (24 доллара.95)

Arduino Uno Rev3 — это 8-разрядный микроконтроллер ATmega328 с 32 КБ флэш-памяти и 2 КБ ОЗУ. Определенно один из самых популярных микроконтроллеров на рынке, и он удобен для новичков! Но не ошибитесь, даже несмотря на то, что он удобен для новичков, это не означает, что он не так эффективен, как другие микроконтроллеры.

Характеристики:
  • Для новичков!
  • ATmega328 8-битный микроконтроллер
  • 14 контактов цифрового ввода / вывода (6 ШИМ-выходов)
  • 32 КБ флэш-памяти
  • 32 КБ флэш-памяти
  • 6 аналоговых входов
  • Тактовая частота 16 МГц
Возможности обработки:
9055 9055 9055 ATM 9055 9055 Arduino Uno8 Цифровые выводы ввода / вывода (6 выходов ШИМ)
— 6 аналоговых входов
— Тактовая частота 16 МГц
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс

Лучший Arduino для портативных проектов: Arduino Nano v3 (45 долларов.90)

Хотите крошечную доску, которая впишется в ваши крошечные портативные проекты? Arduino Nano v3 определенно поможет вам в этом! Это небольшой, но законченный и удобный для макета микроконтроллер ATmega328. Хотя на нем нет разъема постоянного тока, он работает с кабелем mini-USB.

Характеристики:
  • Маленький и удобный для макета!
  • Микроконтроллер ATmega328
  • 14 контактов цифрового ввода / вывода (6 контактов цифрового ввода / вывода ШИМ)
  • Флэш-память 32 кБ
  • 8 аналоговых входов
  • Тактовая частота 16 МГц
Возможность обработки:
9055 9055
Плата Микроконтроллер Флэш-память SRAM Штыри и интерфейс
9055 VANA Arduino Nano 8 Выводы цифрового ввода / вывода (6 выводов цифрового ввода / вывода ШИМ)
— 8 выводов аналогового ввода
— Тактовая частота 16 МГц

Платы Seeed, совместимые с Arduino IDE

Компания Seeed также производит собственные платы, совместимые с Arduino IDE! Если вы заинтересованы в проверке экономичных, но качественных плат, вы определенно не захотите пропустить эти продукты!

Seeeduino V4.2 (6,90 долл. США)

Seeeduino V4.2 — одна из наших самых продаваемых плат Seeeduino, основанная на микроконтроллере ATmega328P, загрузчике Arduino UNO и ATMEGA16U2 в качестве преобразователя UART-USB. Он не только универсален и прост в эксплуатации, но и намного более экономичен, чем Arduino Uno Rev3!

Характеристики:
  • Доступно!
  • Характеристики, аналогичные Arduino Uno: микроконтроллер ATmega328P, 14 контактов цифрового ввода / вывода (6 выходов PWM), 6 аналоговых входов.
  • Совместимость с Arduino UNO-R3 Shield
  • 3 встроенных разъема Grove
Возможность обработки:
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
Seeeduino V2 ATmega328 32 КБ 2 КБ — 14 контактов цифрового ввода / вывода (6 выходов ШИМ)
— 6 аналоговых входов
— Заголовок ISP
— Тактовая частота 16 МГц

Ищете более доступный вариант Arduino Nano? Seeeduino Nano определенно является одной из лучших альтернатив на рынке! С теми же характеристиками, что и Arduino Nano, но с двумя дополнениями: Seeeduino Nano использует Type-C вместо mini-USB, а также имеет один разъем Grove I2C, что делает его лучшим вариантом, чем Arduino Nano.

Характеристики:
  • Маленький и компактный!
  • Характеристики, аналогичные Arduino Nano: микроконтроллер ATmega328, 14 контактов цифрового ввода / вывода (6 контактов цифрового ввода / вывода ШИМ), 8 аналоговых входов
  • Полная совместимость с Arduino Nano
  • 1 разъем I2C
  • Type-C USB
Возможность обработки:
9055 9055 9055 9055 IEEEEDUINO NANO 9055 9055 9055 9055 Iano 8 Nano 9055 Контакты / O (6 выходов PWM)
Плата Микроконтроллер Флэш-память SRAM Штыри и интерфейс

Seeeduino Mega (43 долл.00)

Seeeduino Mega — доступная альтернатива Arduino Mega, предназначенная для поддержки всех ваших передовых проектов! Однако то, что делает Seeeduino Mega таким замечательным, — это его форм-фактор: на 30% меньше, чем Arduino Mega! Кроме того, он имеет 70 контактов цифрового ввода / вывода, что превышает количество цифровых входов / выходов Arduino Mega 54.

Характеристики:
  • Компактный форм-фактор: на 30% меньше, чем у Arduino Mega
  • Совместимость с большинством Arduino Duemilanove и Diecimila Shields
  • Простота программирования, не требуется дополнительное оборудование для загрузки прошивки
  • Характеристики, аналогичные Arduino Mega: ATmega 2560, 16 аналоговых входов , 4 аппаратных последовательных порта (UART)
  • 70 контактов цифрового ввода / вывода (14 выходов ШИМ)
Возможность обработки:
9055 9055 9055 9055 9055 ATI Seeeduino Mega 70 цифровых входов / выходов (14 выходов ШИМ)
— 16 аналоговых входов
— Заголовок ICSP
— 4 аппаратных последовательных порта (UART)
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс

Seeeduino XIAO (4 доллара США).90)

Ищете небольшой, но мощный микроконтроллер? Смотрите не дальше, чем Seeeduino XIAO! Несмотря на крошечный внешний вид, он оснащен мощным микроконтроллером Arduino CPU-ARM® Cortex®-M0 + SAMD21G18 с низким энергопотреблением. Что делает его идеальным для носимых устройств Arduino, а также для небольших проектов!

Характеристики:
  • Крошечный и удобный для макета
  • ARM® Cortex®-M0 + 32 бит 48 МГц SAMD21G18
  • Совместимость с Arduino IDE
  • Интерфейсы разработки: 11 цифровых / аналоговых контактов, 10 контактов PWM, 1 выход ЦАП, 1 интерфейс контактной площадки SWD, 1 интерфейс I2C, 1 интерфейс UART, 1 интерфейс SPI.
Возможность обработки:
3255
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
Seeeduino ARM8 256 КБ 32 КБ-11 цифровых входов / выходов
— 14 контактов GPIO
— 11 аналоговых контактов
— 1 выход ЦАП

Другие платы, совместимые с Arduino IDE

Помимо микроконтроллеров Seeed и Arduino, на рынке есть и другие удивительные микроконтроллеры, совместимые с Arduino! Давайте посмотрим на другие популярные микроконтроллеры, которые нравятся многим из вас, энтузиастов технологий!

Wio Terminal (29 долларов.90)

С новым универсальным терминалом Wio вы можете сделать так много! Это микроконтроллер на базе ATSAMD51 с возможностью беспроводной связи, поддерживаемый Realtek RTL8720DN. Кроме того, это полная система, оснащенная экраном + макетной платой + интерфейсом ввода / вывода + корпусом, что делает ее эффективным и готовым к использованию продуктом!

Характеристики:
  • Микрочип ATSAMD51P19 с ядром ARM Cortex-M4F, работающим на частоте 120 МГц (мощный микроконтроллер!)
  • Raspberry Pi 40-контактный Совместимость с GPIO
  • Совместимость с более чем 300 модулями Plug & Play Grove для изучения с IoT
  • Надежное беспроводное соединение: двойное Группа 2.4Ghz / 5Ghz Wi-Fi (802.11 a / b / g / n), BLE / BLE 5.0
  • Поддержка Arduino, CircuitPython, Micropython, ArduPy, микропрограммное обеспечение AT, Visual Studio Code
  • 2,4-дюймовый ЖК-экран, IMU и более практичное дополнение -он размещены в компактном корпусе со встроенными магнитами и монтажными отверстиями (высокоинтегрированная конструкция)
Возможность обработки:
Wio Core Терминал 9055 КБ M 9055 9055 Wio
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
192KB — 40-контактный GPIO
— Макс.16 ГБ
— 2 многофункциональных Grove

NodeMCU v2 (8,20 доллара США)

NodeMCU v2 идеально подойдет вам, если вы ищете легкий и простой в использовании MCU для Интернета вещей (IoT)! Он основан на ESP8266, недорогом встроенном модуле WiFi и объединяет GPIO, PWM, IIC, 1-Wire и ADC на одной плате. Кроме того, это действительно доступно!

Характеристики:
  • Доступно, удобно!
  • с поддержкой Wi-Fi
  • Открытый исходный код, программируемый
  • API сети в стиле Nodejs
  • Заголовки — 2.54-миллиметровый 15-контактный разъем с доступом к GPIO, SPI, UART, ADC и контактам питания
  • Аппаратный ввод-вывод, подобный Arduino
Возможность обработки:
9055 9055
Плата Микроконтроллер Флэш-память SRAM Штыри и интерфейс
9055 XC 8ISCU 9055 КБ 9055 9055 X 8MCU 9055 бит R1 9055 X8MCU 9055
64 КБ — 16 цифровых входов / выходов
— 1 аналоговый входной контакт
— Тактовая частота 80 МГц

TI MSP430 USB LaunchPad (12 долларов США.99)

MSP430 от Texas Instrument — это маломощный микроконтроллер, который подойдет новичкам! Более того, именно этот идет с USB! Он имеет встроенную эмуляцию для программирования и отладки, а также кнопки и светодиоды для простого пользовательского интерфейса. Хотя Arduino IDE не совсем совместима, пользователи могут использовать Energia для запуска библиотек Arduino!

Характеристики:
  • Для новичков, идеально подходит для Интернета вещей!
  • MSP430F5529 16-разрядный MCU
  • Различные примеры классов USB-устройств и доступные встроенные библиотеки программного обеспечения (CDC, HID, MSC)
  • Одно USB-соединение для эмулятора и целевого устройства с использованием встроенного USB-концентратора
  • таймеры, последовательная связь ( UART, I2C, SPI)
Возможность обработки:
MSPad4 USB-бит MSPad4
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
8KB 40-контактные разъемы расширения BoosterPack, 12-битный аналого-цифровой преобразователь (АЦП), таймеры, последовательная связь (UART, I2C, SPI)

Particle Photon (19 долларов.00)

Ищете миниатюрный MCU для использования в своих проектах IoT? Particle Photon идеально подойдет для ваших проектов! Он не только прост в использовании, но и сочетает в себе мощный микроконтроллер ARM Cortex M3 с чипом Broadcom Wi-Fi в крошечном модуле размером с миниатюру под названием P0 (P-Zero). Что делает его мощным и удовлетворит все потребности ваших крошечных проектов!

Характеристики:
  • Маленький, портативный и удобный для новичков!
  • Broadcom BCM43362 Чип Wi-Fi
  • STM32F205 120 МГц ARM Cortex M3
  • Дизайн с открытым исходным кодом
  • 18 GPIO смешанного сигнала и расширенные периферийные устройства
  • Операционная система реального времени (FreeRTOS)
Возможность обработки:
9055
Плата Микроконтроллер Флэш-память SRAM Штыри и интерфейс
9055 9055 MBT Cortex-элемент Corp.-18 GPIO смешанного сигнала и расширенные периферийные устройства

Плата разработки GeeekNET ESP32 (19 долл.95)

ESP32 основан на модуле WROOM32, идеально подходит для проектов IoT, а также является преемником процессора ESP8266. ESP32 обеспечит большее количество GPIO, включая аналоговые входы и выходы, а также более мощный и быстрый процессор.

Характеристики:
  • Надежный и отличный вариант для проектов IoT
  • Двухъядерный чип ESP32
  • USB-последовательный преобразователь
  • Подключение Wi-Fi, Bluetooth и Bluetooth BLE для работы над подключенными и / или беспроводными проектами
  • Литий-ионное / полимерное зарядное устройство
Возможность обработки:
9055-32 Плата разработки Geeek EEek 9055-32 Dual Core бит LX6 микропроцессор (ы)
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
4 x 16 КБ 520 КБ — 12-разрядный АЦП SAR до 18 каналов
— 8-разрядные ЦАП
— Интерфейс Ethernet MAC с выделенным DMA и поддержкой IEEE 1588

Самый мощный MCU: Teensy 4.0 (19,95 долл. США)

Teensy 4.0 — это обновленная версия своих предыдущих моделей, и, как следует из названия, это крошечный микроконтроллер. Он оснащен мощным процессором ARM Cortex-M7 с частотой 600 МГц и чипом NXP iMXRT1062. Со своим программным дополнением Teensyduino он позволяет пользователям запускать программы Arduino. Интересный факт: на самом деле это самый быстрый микроконтроллер на сегодняшний день!

Характеристики:
  • Крошечный и быстрый!
  • Микросхема NXP iMXRT1062: обеспечивает функциональность микроконтроллера, но со скоростью микрокомпьютера
  • ARM Cortex-M7 на 600 МГц
  • 2 порта USB, оба 480 Мбит / с
  • Управление включением / выключением
  • Программируется с помощью Teensyduino
Возможность обработки:
Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс
Teensy 4.0 Процессор ARM Cortex-M7 с частотой 600 МГц + микросхема NXP iMXRT1062 2048 КБ 1024 КБ 40 цифровых контактов (31 контакт ШИМ), 14 аналоговых контактов, 2 АЦП на микросхеме

Плата Микроконтроллер Флэш-память SRAM Контакты и интерфейс 9055 9055 9055 9055 9055 2KB — 14 контактов цифрового ввода / вывода (6 выходов ШИМ)
— 6 аналоговых входов
— Тактовая частота 16 МГц
$ 24.95
Arduino Nano v3 ATmega328 32 КБ 2 КБ-14 цифровых входов / выходов (6 ШИМ цифровых входов / выходов)
-8 аналоговых входов
— 16 Mhz Тактовая частота 9055 9055 $ 9055
Seeeduino V4.2 ATmega328 32 КБ 2 КБ — 14 цифровых входов / выходов (6 выходов ШИМ)
— 6 аналоговых входов
— Заголовок ISP
— 168 МГц 9055 тактовая частота
Seeeduino Mega ATmega 2560 256 КБ 8 КБ — 70 цифровых входов / выходов (14 выходов ШИМ)
— 16 аналоговых входов
— Заголовок ICSP
— 4 аппаратных последовательных порта (UART)
43 доллара.00
Seeeduino XIAO ARM® Cortex®-M0 +
32 бит 48 МГц SAMD21G18
256 КБ 32B — 11 выводов цифрового ввода / вывода
— 14 выводов GPIO 8 выводов AC
— 11 — 11 выводов GPIO
$ 4.90
Терминал Wio ATSAMD51P19 с ядром ARM Cortex-M4F 4KB 192KB — 40-контактный GPIO
— слот MicroSD макс. 16 ГБ
— 2 многофункциональных Grove
$ 29,90
NodeMCU v2 32-разрядный RISC Tensilica Xtensa LX106 4KB 64 КБ — 16 цифровых входов / выходов, аналоговые выводы 1 МГц 905 905 905 905 Скорость 8 $.20
TI MSP430 USB LaunchPad MSP430F5529 16-разрядный микроконтроллер 128 КБ 8 КБ — 40-контактные разъемы расширения BoosterPack
— 12-разрядный аналого-цифровой преобразователь (АЦП), таймеры
$ 12,99
Фотон частиц STM32F205 120 МГц ARM Cortex M3 1 МБ 128 КБ-18 Смешанный сигнал GPIO и расширенные периферийные устройства NET / Двухъядерный 32-разрядный микропроцессор LX6 4 x 16 КБ 520 КБ — 12-разрядный АЦП SAR, до 18 каналов
— 8-разрядные ЦАП
— Интерфейс Ethernet MAC с выделенным DMA а IEEE 1588 поддерживает
19 долларов.95
Teensy 4.0 Процессор ARM Cortex-M7 на 600 МГц + чип NXP iMXRT1062 2048 КБ 1024 КБ — 40 цифровых контактов (31 контакт ШИМ)
— 14 аналоговых контактов 8
— 2 9055 ADC
$ 19.95

Резюме

И это все о лучших платах и ​​микроконтроллерах Arduino для начинающих и ветеранов! Вы пробовали что-нибудь из них раньше? Как мы упоминали в начале, мы продолжим обновлять этот список.Так что дайте нам знать, какие из ваших любимых!

Следите за нами и ставьте лайки:

Теги: Плата Arduino, Arduino Nano V3, Arduino Uno rev3, esp32, Grove Beginner Kit для Arduino, MCU, NodeMCU v2, Particle Photon, seeeduino mega, Seeeduino Nano, seeeduino v4.2, Seeeduino XIAO, Teensy 4.0, TI MSPad430 USB Launch , Терминал Wio

Продолжить чтение

Программирование микроконтроллеров Arduino

для начинающих | разработано специалистами по программному обеспечению j-labs

Проверьте, насколько просто и легко программировать микроконтроллер Arduino.

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

Пусть это руководство вдохновит вас на создание собственных устройств, микромашин, компонентов умного дома и многого другого!

Настройте свою плату и IDE

Шаг 1 — вам нужна плата Arduino. Существует множество типов плат, а также множество клонов, для начала, Arduino Uno — самый дешевый выбор.

Шаг 2 — Загрузите программное обеспечение Arduino Ide.Загрузите программное обеспечение IDE, совместимое с вашей ОС, с официальной страницы https://www.arduino.cc/en/Main/Software.

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

Шаг 3 — Включите плату. Подключите плату Arduino к ПК с помощью USB-кабеля.

Шаг 4 — Запустите и настройте IDE.

  • Файл -> Новое для запуска нового проекта
  • Инструменты -> Плата для выбранного типа платы, которую вы используете
  • Инструменты -> Последовательный порт для выбора порта, плата подключена к

Теперь вы готовы к написать код.

Структура кода

Программное обеспечение Arduino имеет открытый исходный код. Исходный код среды Java выпускается под лицензией GPL, а библиотеки микроконтроллеров C / C ++ находятся под лицензией LGPL.

Структура кода состоит из двух основных функций:

· Функция Setup ()

· Функция Loop ()

Пустая настройка () {

}

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

Пустой цикл () {

}

Эта функция циклически повторяется последовательно, позволяя программе изменяться и реагировать. Активно управлять платой

Содержит основное тело программы.

Создание проекта

В этом руководстве я буду использовать два модуля Arduino для создания простого детектора пыли / загрязнения.

Я буду использовать:

  • DMS501 датчик пыли
  • простой двухстрочный ЖК-дисплей (с поворотным потенциометром) 2 строки с 16 буквами для представления результата измерения.
  • В качестве контроллера я использую Arduino Mega (клон), но все используемые модули можно подключить к плате Arduino.

Все модули, которые могут быть подключены к микроконтроллерам, имеют документацию с деталями подключения.

Примечание:

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

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

Существует множество руководств для любого типа дисплея / модуля, который у вас есть.

Может быть даже несколько способов подключения каждого модуля, построив несколько приспособлений, вы поймете, как это сделать.

Схема контактов для ЖК-дисплея, как было сказано ранее, это не единственный способ сделать это с ЖК-дисплеем 2×16:

Описание контактов:

1 Земля (0 В) — Земля
2 Напряжение питания; 5 В (4,7 В — 5,3 В) — Vcc
3 Регулировка контрастности; через переменный резистор — VEE
4 Выбирает регистр команд при низком уровне и регистр данных при высоком — Регистр Выберите
5 Низкий для записи в регистр; Высокий уровень для чтения из регистра — чтение / запись
6 Отправляет данные на выводы данных при подаче импульса от высокого к низкому — Включить
7 8-битных контактов данных — D80
8 8-битных контактов данных — D81
9 8-битных Выводы данных — D82
10 выводов 8-битных данных — D83
11 8-битных выводов данных — D84
12 8-битных выводов данных — D85
13 8-битных выводов данных — D86
14 8-битных выводов данных — D87
15 Backlight VCC (5V) — Led +
16 Backlight Ground (0V) — Led

И датчик пыли:

Полная схема подключения:

Код — переменные и библиотеки

Этот код C ++ универсален и будет работать на любой плате Arduino или клонировать.

Я разделил все переменные на первую часть кода.

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

Другая часть — определить PINS, к которым фактически подключаются кабели.

Setup ()

Часть настройки содержит код, который будет выполняться при запуске — только один раз.

Инициализация для двух модулей.

Шлейф для прогрева датчика.

Вывод информации на консоль и на ЖК-дисплей

Loop ()

Фактический код, который будет выполняться на устройстве в бесконечном цикле.

Запрос данных от датчика и очистка ЖК-дисплея для удаления текста счета.

Я использую методы библиотеки dsm501 для получения информации о плотности частиц

для последующей печати на ЖК-дисплее. Я использую эту библиотеку, потому что в основном этот датчик обеспечивает количество частиц на квадратный фут, а эти единицы мало что говорят о нашей стране.

Lib содержит нетривиальный расчет для преобразования его в мкг / м3 (микрограмм на квадратный метр)

Консоль

Вход в инструменты -> Serial Monitor покажет консоль

Конечное устройство

Сводка

Arduino удобна для пользователя микроконтроллер, от простого к дешевому и легкого в запуске.

На рынке представлено множество различных плат и сотни различных датчиков, двигателей, модулей и т. Д.

Это позволяет создавать полезные и сложные устройства. Все это хорошо задокументировано, есть множество руководств, видео на YouTube и форумов, которые помогут начать, решить проблемы и упростят вашу жизнь.

Мир маленькой электроники открыт для всех, кто хочет попробовать.

Arduino против микроконтроллера PIC все, что вам нужно знать

(Последнее обновление: 9 сентября 2021 г.)

Arduino против микроконтроллера PIC:

Arduino против PIC- В этой статье мы сравним микроконтроллер PIC с платой Arduino, основанной на микроконтроллере Atmega328.Для лучшего понимания сначала я объясню, что такое микроконтроллер PIC, его описание контактов, а затем я объясню плату Arduino. Напоследок сравним микроконтроллер Arduino и PIC.

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

Микроконтроллер PIC — это семейство микроконтроллеров, производимых микрочипом, это означает, что ИС микроконтроллера является продуктом микрочипа. Если вы проанализируете это имя PIC, мы получим P для периферийного устройства, I для интерфейса и C для контроллера.Таким образом, полное значение PIC — это контроллер периферийного интерфейса . Теперь я приведу вам пример, чтобы вы могли понять основную причину названия PIC. Итак, во-первых, предположим, что вы хотите включать и выключать свет и вентиляторы с помощью кнопок «A» и «B» на клавиатуре компьютера, но как это возможно, потому что клавиатура — аналоговое устройство, а компьютер — цифровое устройство. это возможно, если вы используете третье устройство как единое целое, и это устройство представляет собой микроконтроллер PIC .Это устройство действует как блок между клавиатурой и компьютером. Микроконтроллер pic соединяет и управляет компьютером и клавиатурой, находясь между ними. Сначала мы рассмотрим членов семейства микроконтроллеров PIC , микроконтроллеры PIC . Семейство продуктов в настоящее время состоит из 6 групп. Сейчас я назову названия шести групп микроконтроллеров. Итак, первый — это PIC 10FXXX, этот микроконтроллер может выполнять 12-битную программу, второй — PIC 12CXXX или PIC 12FXXX, этот микроконтроллер имеет 12 или 14-битную программную память, третий — PIC 16C5X, этот микроконтроллер также может принимать программное слово PIC. , четвертый — это микроконтроллер PIC 16CXXX или PIC 16FXXX этой модели, который может принимать 14-битную программу, пятый — PIC 17CXXX, и этот микроконтроллер может принимать 16-битный программатор, а последний — PIC 18CXXX или PIC 18FXXX и этот микроконтроллер. можно взять 16-битный программатор.Это XXX означает, что вы можете использовать три числа в пространстве XXX в качестве названия серийного номера модели.

Теперь я познакомлю вас с членами семейства микроконтроллеров PIC 16FXXX. так что первая IC — это PIC16F84 или PIC16F84A, этот тип IC имеет 18 контактов, затем второй — PIC16F88, и он также имеет 18 контактов, затем третий — PIC16F72 или 16f73, и эта IC имеет 28 контактов, а четвертая микросхема — PIC16F877 или PIC16F877A и это 40 контактов. Эта микросхема в настоящее время является самой крупной микросхемой в этой серии PIC.

Описание контактов:

Теперь обсудим описание выводов PIC16F877A.Это 8-битный микроконтроллер на базе флеш-памяти CMOS, основанный на мощной микрочиповой архитектуре PIC.

Он имеет всего 40 контактов, из которых порт A имеет 6 контактов, порт B, порт C и порт D имеют по 8 контактов каждый, а порт E имеет 3 контакта. Таким образом, от порта A до порта E у нас всего 33 входных и выходных контакта. После этого у нас есть два контакта VDD, два контакта для VSS, один контакт для MCLR, который является главным чистым контактом микроконтроллера. Затем у нас есть один вывод для OCS1 и один вывод для OCS2, где OCS1 — это вход генератора, а OCS2 — выход генератора.Это контакты, к которым подключен кварцевый генератор. Микроконтроллер PIC также состоит из специальных контактов, таких как RX и TX. RX — это последовательный вход, а TX — последовательный выход. Вместе эти два контакта используются для асинхронной последовательной связи с последовательными устройствами. После этого у нас есть контакты SCL и SDA, где SDA — это последовательные данные, а SCL — последовательные часы. Эти два контакта от двухпроводного I2C или интегральной схемы микроконтроллера PIC. Затем у нас есть четыре контакта SD0, SDI, SCK и контакт SS.Эти четыре контакта образуют SPI или последовательный периферийный интерфейс микроконтроллера pic. Теперь от AN0 к AN7 у нас есть 10-битный АЦП — аналого-цифровой преобразователь. Затем у нас есть RB0, который является контактом внешнего прерывания для микроконтроллера pic. CCP1 и CCP2 — это два модуля ШИМ. С PC0 на PC7 у нас есть параллельный подчиненный порт с внешним чтением-записью и управлением CS. Параллельный подчиненный порт 8-битный.

Ардуино :

Микроконтроллер atmega328 производится ATMEL , что позволяет вводить напряжение около 7 или 12 вольт на этот порт.Рабочее напряжение микроконтроллера — 5 вольт, частота процессора — 16 мегагерц. Есть 6 аналоговых входов или выходов.

Имеется 14 цифровых входов / выходов, 6 из которых могут использоваться для широтно-импульсной модуляции. Основная особенность этой широтно-импульсной модуляции заключается в том, что ее можно использовать для изменения интенсивности или скорости. Она имеет EEPROM размером 1 кб, SRAM или 2 кб флэш-памяти объемом 32 кб, которую можно использовать для хранения программы или загрузки программы. UART универсальный, синхронная приемная передача типа 1 USB является штатной, имеет вывод сброса, при нажатии на который программа будет запускаться с первой строки.Аналоговые контакты с номерами A4 и A5 имеют входы SDA и SCL, которые можно использовать для получения конфигурации часов реального времени при использовании с ds1307. Цифровые выводы 0 и 1 используются для последовательной связи 0 для приема и 1 для передачи. Выводы № 2 и 3, которые являются цифровыми, также могут использоваться для прерываний.

Atmega 328P описание:

Atmega328 — это маломощный 8-разрядный КМОП-микроконтроллер, основанный на усовершенствованной архитектуре AVR. Он имеет общее количество контактов 28, из которых 14 являются входными контактами цифрового выхода от D0 до D13.Он также имеет 6 каналов АЦП от A0 до A5, которые образуют аналого-цифровой преобразователь atmega328. Он также имеет 6 каналов ШИМ и два контакта для XTAL1 и XTAL2.

Два контакта для заземления. Контакт номер 7 и контакт номер 20 для VCC. Контакт № 21 для аналогового задания. Один вывод для сброса — низкий уровень входного сигнала. Поэтому, когда этот параметр включен, сбрасывается микроконтроллер, и программа микроконтроллера также сбрасывается. Один контакт для RXD и один контакт для TXD. RXD и TXD образуют вход последовательной связи микроконтроллера.Atmega328 также имеет некоторые специальные контакты, такие как SCK, который обозначает последовательные часы, MISO обозначает ведущий ввод ведомого вывода, MOSI обозначает ведущий вывод ведомого ввода, SS обозначает выбор ведомого. Вместе эти четыре контакта образуют последовательный периферийный интерфейс atmega328. После этого у нас есть SCL и SDA, которые представляют собой последовательные часы и последовательные данные, которые формируют порт I2C atmega328. Рабочее напряжение этого микроконтроллера составляет от 1,8 В до 5,5 В, но обычно для этих целей мы использовали 5 В.Его можно комбинировать с кварцевым генератором 16 МГц вместе с конденсатором 22 пФ для формирования схемы кварцевого генератора. У нас 32 КБ флэш-памяти, 2 КБ SRAM и около 1 КБ EEROM.

Ардуино против ПОС:

Теперь сравним микроконтроллер PIC и Arduino UNO. Во-первых, Arduino на самом деле не микроконтроллер, это плата микроконтроллера или отладочная плата. В нем установлен микроконтроллер AVR atmega328. Микроконтроллер PIC — это семейство микроконтроллеров на базе микросхемы.В основном они продаются в виде микросхем, и нам нужно разместить их на печатной плате через сокет sap, и несколько кабелей, а также внешние программаторы, такие как pick it 2 или pick 3, необходимы для программирования микроконтроллера с использованием MPLAB X IDE. В программе меньше библиотек по сравнению с Arduino UNO.

Однако

Arduino UNO очень экономичен по сравнению с PIC, и он поставляется на аппаратных кросс-платформах с открытым исходным кодом, также доступны, так как вы можете программировать его на Windows, Linux и Mac, в то время как большинство микроконтроллеров pic программируются только в установке Windows.Arduino можно подключить к компьютеру с помощью кабеля USB. У Arduino есть другой микроконтроллер, который действует как программист, поэтому ему не требуется внешнее устройство для программирования. Среда программирования очень проста в использовании даже для новичков, библиотека примеров также присутствует в IDE. Итак, все, что вам нужно, это программное обеспечение Arduino для USB-кабеля и плата Arduino.

Микроконтроллер PIC — это программа, разработанная с использованием программного обеспечения MPLAB X. Программное обеспечение MPLAB X — это бесплатный инструмент, такой как Arduino IDE, но вы должны сами выбрать компилятор.Нам нужно больше инструментов для микроконтроллера pic. В то время как в Arduino нам нужны только плата Arduino, программное обеспечение Arduino и USB-кабель. Иногда нам не нужен USB-кабель, потому что в нем есть программное обеспечение.

Характеристики микроконтроллера PIC:
Рабочая частота 48 МГц
Программная память 32 Кб
Программная память (инструкция) 16 Кб
Память данных 2 Кб
Данные EEPROM 256
Источники прерываний 20
Порты ввода / вывода Порт A, B, C, D, E
Таймеры 4
Модули ШИМ 1
Последовательная связь MSSP, усовершенствованный USART
USB 1
Параллельный порт потоковой передачи Есть
10-битный аналогово-цифровой модуль 13 входных каналов
Компараторы 2
Пакеты 40 контактов PDIP

44-контактный QFN

44-контактный TQFP

Характеристики Arduino:
Рабочее напряжение 5 В
Входное напряжение 7-12 В
Контакты цифрового ввода / вывода 14
Контакты аналогового входа 6
Постоянный ток на ввод / вывод 40 мА
Постоянный ток для 3.3V контакт 50 мА
Флэш-память 32 Кб
SRAM 2 Кб
EEPROM 1 КБ
Тактовая частота 16 МГц
Таймеры 4
Модули ШИМ 6
связь Последовательный, UART, TTL, SPI

Архитектура:

Обе 8-битные RISC-платформы, поэтому базовая архитектура одинакова.PIC старше, поэтому у них больше унаследованных знаний, но они также являются устаревшими технологиями и не успевают за новыми аппаратными средствами. AVR новее и работают быстрее, имеют больше функций и поддерживают инструменты с открытым исходным кодом (например, компилятор GCC) и имеют дешевые инструменты, такие как программатор и отладчик Dragon.

Мы не заметим никакой разницы при подключении реле, кнопок или светодиода, но когда мы будем использовать сложные проекты, такие как аппаратный интерфейс, передача данных, обработка больших данных и т. Д., Тогда мы почувствуем разницу между Arduino и PIC.У PIC есть много устаревшей информации, но у AVR есть дешевые инструменты, которые упрощают работу (PIC не имеет хорошего компилятора с открытым исходным кодом AFAIK), которые могут быть полезны с проектами, интенсивно использующими код. Вот почему могут существовать такие вещи, как платформа Arduino.

Какой микроконтроллер лучше?

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

Нравится:

Нравится Загрузка …

Amazon.com: Beetle — самый маленький микроконтроллер для Arduino: Electronics


Ориентировочная общая стоимость: 29 долларов.92 , включая залог за доставку и импорт в Российскую Федерацию Подробности
  • Убедитесь, что это подходит введя номер вашей модели.
  • Beetle — это самая маленькая плата Arduino leonardo для Arduino. Его основная идея основана на минимализме без ущерба для функциональности.
  • Он поставляется с Atmel AtMega32u4 (таблица данных) с тактовой частотой 16 МГц и имеет расширенное количество интерфейсов: 10 цифровых контактов, 5 аналоговых контактов и 4 контакта.
  • Чтобы сделать его еще более удобным, он совместим с Micro USB, так что прямое программирование и тестирование больше не являются головной болью. Выберите «Arduino Leonardo» (инструменты> плата> Arduino Leonardo в Arduino IDE), ATmega32U4 поставляется с предварительно записанным загрузчиком, который позволяет загружать любой новый код, применимый к Arduino Leonardo.
  • Как самый маленький Arduino Leonardo, он обладает аналогичными мощными функциями. Beetle стремится решить проблемы недорогого контроллера, простоты использования и предоставить недорогое решение для одноразовых проектов, таких как проекты DIY, семинары, подарочные проекты, электронный текстиль и образовательные.
]]>
Характеристики
Фирменное наименование ДФРОБОТ
Ean 0720405524078, 0752128161162
Вес изделия 0.310 унций
Материал FR4
Номер модели DFR0282
Кол-во позиций 1
Номер детали DFR0282
Код UNSPSC 43211520
UPC 752128161162, 720405524078
Напряжение 5 вольт

Программирование микроконтроллера Atmega328p с Arduino IDE

Введение

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

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

Мы рассмотрели детали подготовки микроконтроллера Atmega328p к программированию путем прошивки загрузчика Arduino на Atmega328p, и сегодняшнее руководство будет продолжением этого руководства, так как мы рассмотрим, как программировать загружаемый микроконтроллер Atmega328p с помощью Arduino IDE. .

Микроконтроллер Atmega328p, как и любой другой микроконтроллер, может оказаться довольно сложной задачей для новичка. Обычно они требуют определенного набора инструментов, включая программатор (оборудование) и платформу разработки (например, Atmel Studio) для написания кода. Эти платформы разработки, в отличие от Arduino IDE, обычно требуют высокого уровня знаний C или других языков программирования, без ярлыков и упрощенных функций, которые предоставляет Arduino.

Чтобы устранить эту трудность, микроконтроллер снабжен загрузчиком Arduino, что делает его готовым к программированию с использованием более простой и удобной в использовании Arduino IDE.

Чтобы запрограммировать микроконтроллер с помощью Arduino IDE, микроконтроллер должен быть подключен к компьютеру через какое-то оборудование. Обычно это делается двумя основными способами:

  1. Использование переходника USB — последовательный / TTL
  2. Использование платы Arduino

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

Мы рассмотрим каждый из этих подходов один за другим и рассмотрим компоненты и настройки, необходимые для загрузки кода в микроконтроллер.

Использование переходника USB — последовательный / TTL

Адаптер USB-to-Serial / TTL

Первый подход предполагает подключение адаптера USB-to-Serial к микроконтроллеру. Адаптер USB — последовательный / TTL преобразует сигналы данных с USB на компьютере в последовательный / TTL для микроконтроллера и наоборот. Это обеспечивает связь микроконтроллера (последовательного интерфейса) с Arduino IDE, работающей на ПК (USB). Эта установка по сравнению со вторым, безусловно, самая дешевая, поскольку эти адаптеры обычно очень дешевы.

Необходимые компоненты

Для этого подхода требуются следующие компоненты;

  1. Микроконтроллер Atmega328P с установленным загрузчиком Arduino
  2. Макет
  3. Адаптер USB — последовательный / TTL
  4. кварцевый генератор 16 МГц
  5. 22pf конденсаторы x2
  6. Конденсатор 100 нФ
  7. Провода перемычки
  8. Резистор 100 Ом
  9. светодиод
Схема

Подключите адаптер USB к последовательному / TTL к микроконтроллеру, как показано на схемах ниже.Не забывайте, что эта процедура будет работать только в том случае, если микроконтроллер был прошит загрузчиком в соответствии с процедурой, описанной в последнем руководстве.

Схема 1: USB-последовательный адаптер и Atmega328P

Большинство адаптеров можно настроить для работы с логическим уровнем 5 В или 3,3 В. Убедитесь, что ваш настроен для работы с уровнем напряжения 5 В, поскольку питание на микроконтроллер составляет 5 В.

Код загрузки

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

Примечание: при программировании микроконтроллера Atmega328p с использованием Arduino IDE соответствующий тип платы, который вы должны выбрать, — это плата « Arduino Duemilanove или Nano w / ATmega328 ».

Чтобы проверить настройку, мы будем использовать пример мигания Arduino. Выберите пример и нажмите «Загрузить».Через некоторое время вы должны увидеть, как подключенный светодиодный индикатор начнет мигать.

Использование платы Arduino

Второй подход предполагает использование платы Arduino одним из двух аналогичных способов;

  1. Путем замены микроконтроллера на Arduino Uno на программируемый
  2. Используя любую из плат Arduino в качестве внутрисистемного программиста.

Первый режим — это самый простой способ загрузить код в микроконтроллер, поскольку он включает в себя простую замену микроконтроллера на Uno на тот, который нужно запрограммировать.Однако это может быть не лучшим вариантом при прототипировании, поскольку перемещение чипа от Arduino к проекту, назад и вперед, может привести к повреждению контактов микроконтроллера. Другим недостатком этого является то, что он работает только с Arduino Uno, поскольку все другие платы Arduino используют микроконтроллеры типа SMD, что делает замену непрактичной, а разработку дорогостоящей.

Так что никакой схемы для этого, просто поменяйте местами микроконтроллер и нажмите «Загрузить».

Второй метод предполагает использование Arduino Uno в качестве внутрисистемного программатора .

Необходимые компоненты

Для использования этого подхода вам потребуются следующие компоненты;

  1. Arduino Uno
  2. Макет
  3. Адаптер USB — последовательный / TTL
  4. кварцевый генератор 16 МГц
  5. 22pf конденсаторы x2
  6. Провода перемычки
  7. 10к резистор
  8. Резистор 100 Ом
  9. светодиод
Схемы

Подключите компоненты, как показано на схемах ниже.

Программирование Atmeg328p с помощью Arduino Uno

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

Код загрузки

Процесс загрузки кода такой же, как уже описанный. Введите код для загрузки или выберите пример -> выберите тип платы (Duemilanove или Nano W / atmeg328), выберите правильный порт и нажмите кнопку «Загрузить». Код будет загружен в микроконтроллер.

После успешной загрузки кода с использованием любого из подходов, описанных выше, преобразователь Arduino или USB — Serial / TTL можно отключить, а проект подключить к батарее для автономной работы, как показано на изображении ниже.

Программируемый микроконтроллер Atmega328p

Вот и все, ребята из этого руководства, спасибо за подписку.

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

До следующего раза!

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *