Популярные контроллеры Arduino: какую плату выбрать новичку?
30 ноября в 00:52
Статья знакомит начинающих электронщиков с самыми популярными платами Arduino, расскажет об их отличиях и предостережет от некоторых ошибок в работе.
Сегодня нет никаких ограничений в том, чтобы освоить новый микрочип. Достаточно покопаться в документации и понять логику и назначение каждого вывода микроконтроллера. Неужели это так тяжело? Конечно, тяжело, особенно, если вы новичок, и с самого начала этой статьи вас уже клонит в уныние от мысли, что вы никогда не начнете разбираться в электронике.
На рынке присутствует множество контроллеров, но среди всех лидирующую позицию занимает Arduino со своей уникальной линейкой плат.
Введение
Arduino – это аппаратная платформа с открытым исходным кодом. Есть два элемента в названии: платы и программное обеспечение. Только платы от официального производителя arduino.cc можно назвать «Arduino». Название является товарным знаком.
Всё начиналось с открытого исходного кода, но по мере того, как популярность программного обеспечения Arduino (IDE – Integrated Development Environment) стала расти, оно было расширено для поддержки многих других плат.
Эти устройства более правильно называть «совместимые Arduino».
Arduino IDE – это кросс-платформенное приложение, которое обеспечивает отправную точку для всех проектов, связанных с Arduino.
Эта серия плат нацелена на широкую аудиторию – как профессиональных инженеров, так и юзеров, которые вообще ничего не понимают в контроллерах, но готовы с удовольствием сделать что-нибудь этакое электронное. И если вы относитесь к числу последних, не бойтесь купить одну из плат, чтобы сделать свой первый проект.
На стороне программного обеспечения есть «ядро» и «IDE». Ядром является библиотека C ++, называемая «ядром Arduino», которая уникальна для каждого типа процессора. Эта (обширная) библиотека позволяет использовать общие функции, такие как digitalRead() или digitalWrite(), для работы со множеством разных архитектур.
На аппаратной стороне трудно охватить все возможные варианты в сжатом виде. Таким образом, здесь основное внимание уделяется таким популярным вариантам, как: Uno, Mega, ESP8266, Zero и MKR. Некоторые из них мы упоминаем ниже.
8 или 32 бита
Основные сражения происходят между 8 и 32 битными платами.
8-бит: Uno, Nano, and Mega
32-бит: Zero, MKR, ESP8266 и ESP32
В отличие от ранних видеоигровых консолей, выбор процессора не так прост, и не ограничивается только выбором количества бит. В целом, 8-битные процессоры предлагают базовые возможности при потреблении более низкой энергии.
Более простые архитектуры означают, что регистры прямого программирования, как правило, относительно легки.
32-разрядные процессоры предлагают более высокие тактовые частоты вместе с большим количеством ОЗУ, ПЗУ и последовательной периферии. Их архитектура может усложнить программирование.
К счастью, такие структуры, как библиотека Arduino и CircuitPython, зарывают большую часть этой сложности.
Выбор микропроцессора только потому, что он является 8-битным или 32-битным, может быть, скажем так, довольно “близоруким”. Поэтому важно подумать о том, как вы планируете использовать его.
Допустим, вы уже в курсе, как обращаться с проводами, контактами и микросхемами. Поэтому разберемся с самыми популярными платами на сегодняшний день.
Arduino Uno Rev3
Arduino Uno Rev3 – один из наиболее популярных контроллеров.
Флэш-память – 32 кб + 2 кб оперативы.
Оригинальная плата имеет 20 цифровых пинов, 6 из которых можно использовать, как аналоговые контакты. Этих выводов вполне достаточно, чтобы собрать несложный рабочий проект. На панели в плате стоит микропроцессор ATmega328P.
Если в процессе экспериментов вы убьете контроллер, заменить его будет дешевле, чем покупать новую плату целиком.
Описание | Распиновка
Arduino Nano
Arduino Nano – одна из самых крохотных плат семейства Arduino. На борту у нее все тот же микрочип ATmega328.
Это значит, что возможности Arduino Nano схожи с Arduino Uno, хотя пинов у нее чуть больше (8 аналоговых на Nano против 6 на Uno). Подключение к плате осуществляется с помощью microUSB.
Плата годится в первую очередь для законченных проектов, где программа уже отлажена, и необходимо только спаять компоненты вместе и уместить их в корпус.
Описание | Распиновка
Arduino Lilypad
Arduino Lilypad выполнена в виде круга, контакты для подключения находятся на краях. Со всеми контактами используется микроконтроллер ATmega328.
Здесь придется подпаивать провода к плате, так как специальных пинов не предусмотрено. Самое время подружиться с паяльником.
Распиновка
Arduino Mega
Популярность Arduino Mega 2560 Rev3 обусловлена наличием большого количества цифровых входов-выходов (54 цифровых + 16 аналоговых).
Сердцем ее является восьми-битный чип ATmega2560.
Нередко плата используется в масштабных проектах по типу 3D-принтера, поскольку выводов в ней хватает, чтобы подключить многочисленную периферию. Контроллер имеет 256 килобайт флэш-памяти + 8 килобайт SRAM. Чувствуете в себе силы творить? Смело покупайте данную плату.
Описание | Распиновка
Arduino Leonardo
Arduino Leonardo на базе микроконтроллера ATmega32u4 идентична Uno, за исключением разъема подключения microUSB (в UNO это USB type-B).
Особенность данной платы в том, что ее можно использовать, как периферию: она умеет посылать команды ввода в компьютер. Если цель вашего изучения контроллеров – управлять компьютером, то берите ATmega32u4.
Распиновка
Arduino Micro
Arduino Micro – очередная миниатюрная плата, ее габариты сопоставимы со стандартным USB-накопитель.
Используемый микроконтроллер ATmega32u4 имеет все те же 32 кб оперативки + 2,5 SRAM. Цифровыми и аналоговыми пинами плата не обделена (20 цифровых +7 аналоговых). Отлично подойдет для миниатюрных проектов.
Плату можно запрограммировать, как клавиатуру и мышь, подключив в проект соответствующие библиотеки, и использовать внешние кнопки.
Распиновка
Arduino Due
Arduino Due – одна из самых популярных плат.
Работает на 32-битном процессоре с частотой 84мГц.
На борту установлен AT91SAM3X8E контроллер, во многом превосходящий все вышеперечисленные платы. 512 кб постоянной памяти, 96 кб оперативной. Имеются 54 цифровых пина, 12 из которых могут использовать ШИМ. Также есть пара 12-битных цифро-аналоговых преобразователей: они позволяют микропроцессору выдавать звук без дополнительных расширений.
Распиновка
Arduino Due и Arduino Mega 2560 очень похожи друг на друга, поэтому может показаться, что и шилды для этих плат взаимозаменяемые, но на самом деле это не так. Логические уровни на Mega 5-вольтовые, тогда как на Due – 3,3 вольта. Будьте осторожны с расширениями плат, в противном случае Due безвозвратно сгорит.
Платы разные, но с большей частью задач они справляются все. Лишь экзотические проекты требуют наличие определенной фичи. Тогда придется окунуться поподробнее в спецификацию контроллера и Datasheet. Разумеется, и о программировании придется немножко почитать.
Какой Ардуино лучше?
Вы все еще можете задаться вопросом: какая из этих плат является лучшей среди Arduino?
Как вы можете видеть, каждая из этих плат отлична от других и имеет некоторые преимущества для разных ситуаций. Вопрос «что лучше подходит» не является полным вопросом, вам нужно его дополнить «… для моего приложения или проекта».
Хотя невозможно охватить все типы и варианты плат, эта статья должна дать вам достаточно информации для рассмотрения основы для вашего проекта.
Источник: https://ArduinoPlus.ru/populyarnie-kontrollery-arduino/
Гид по выбору платформы разработки
Итак, у вас есть замысел проекта, но вы сомневаетесь, какую плату выбрать в качестве мозга устройства? Попробуем помочь вам определиться.
Если вы просто хотите освоить схемотехнику, программирование, Linux и конкретной цели кроме обучения пока нет, возможно лучшим выбором станет один из готовых обучающих наборов.
Но если вы уже освоились, и хотите сделать конкретный проект, этот гид поможет определиться с платформой для разработки и сделать взвешенный выбор.
Arduino или Raspberry Pi? Микроконтроллер или микрокомпьютер?
Все платы для разработки можно разбить на 2 большие категории:
Платы на микроконтроллере(MCU, MicroController Unit) | Одноплатные компьютеры(SoC, System on a Chip) |
Типичный представитель —Arduino Uno | Типичный представитель —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. Так и сделаем.
Arduino Uno Процессор на 16 МГц, 32 КБ постоянной и 2 КБ оперативной памяти, 20 портов ввода-вывода, 6 аналоговых входов, 6 каналов ШИМ, 2 аппаратных прерывания, может, и не впечатляют, но без балласта в виде операционной системы и интерпретаторов, они позволяют решать практически любые задачи по точному дирижированию множеством сенсоров и исполнительных устройств.Тонны документации, уроков и готовых библиотек, огромное сообщество, работа из простой в освоении среды Arduino IDE с языком Arduino C++. Всё это просто не даст вам возможности сказать «не осилил».Родное напряжение в 5 вольт, которое является де-факто стандартом и колодки для установки плат расширения, аналоговые входы, всевозможные аппаратные интерфейсы позволяют подключить практически любую периферию, сенсоры и исполнительные устройства.Arduino Leonardo Та же Arduino Uno, но с другим микроконтроллером, который находится в том же классе, но имеет некоторые отличия положительного характера.Большее количество аналоговых входов (12 против 6) для сенсоров, больше каналов ШИМ (7 против 6), больше пинов с аппаратным прерыванием (5 против 2), раздельные независимые serial-интерфейсы для USB и UART.Arduino Leonardo может притворяться клавиатурой или мышью (HID-устройством) для компьютера. Это позволяет легко сделать своё собственное устройство ввода.Из-за распиновки чуть отличной от Arduino Uno возможна несовместимость с некоторыми платами расширения. Такие случаи, однако, редки, и в нашем магазине мы явно их прописываем.Iskra Neo Та же Arduino Leonardo, но произведённая нами, в России.Заметно дешевле оригинала.Arduino Mini Та же Arduino Uno, но в другом форм-факторе.Компактная. Всего 30×18 мм.Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.На плате нет USB-порта, поэтому прошивать нужно через отдельный USB-Serial адаптер.Iskra Mini Та же Arduino Mini, но произведённая нами, в России.Заметно дешевле оригинала.Есть в варианте с распаянными колодками и с незапаянными отверстиями.Arduino Micro Та же Arduino Leonardo, но в другом форм-факторе.Компактная. Всего 48×18 мм.Из-за форм-фактора нельзя без ухищрений устанавливать платы расширения Arduino. Предполагается соединение с дополнительными модулями проводами и/или через макетную плату.Arduino Mega Как Arduino Uno, но на базе более мощного микроконтроллера той же архитектуры. Отличный выбор «на вырост» или если Arduino Uno перестала справляться.В разы больше памяти: 256 КБ постоянной и 8 КБ оперативной. В разы больше портов: 60 из них 16 аналоговых и 15 с ШИМ.Немного длиннее базовой Arduino Uno: 101×53 мм против 69×53 мм.Arduino Due Одна из самых производительных плат от Arduino на микроконтроллере Cortex-M3 по форм-фактору аналогичная Arduino Mega.Процессор на 84 МГц и 512 КБ памяти. 66 пинов ввода-вывода, из которых 12 могут быть аналоговыми входами, 12 поддерживают ШИМ и все 66 могут быть настроены, как аппаратные прерывания.Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.Родным напряжением для платы является 3,3 В, а не традиционные 5 В. Необходимо следить, чтобы выбираемая периферия поддерживала работу с этим уровнем или ставить преобразователи уровней напряжения.Iskra JS Плата на ядре Espruino: её программируют на JavaScript.JavaScript — язык высокого уровня. Программы писать проще, они компактнее и выразительнее. Особенно если речь идёт о многочисленных строковых операциях, массивах данных, веб-интерфейсе.Мощный микроконтроллер Cortex M4 на 168 МГц, 1 МБ флеш, 192 КБ оперативной памяти, десятки портов с ШИМ и аналоговых входов, 2 аналоговых выхода, по нескольку I²C, SPI, UART — всё это даёт подключить и одновременно работать с самыми разнообразными сенсорами и модулями.Несмотря на то, что родной уровень для платы — 3,3 вольта, пины толерантны к 5 вольтам: подключение пятивольтовой периферии тривиально.Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.Strela Робототехническая платформа «всё в одном» содержит в себе большинство тех вещей, которые нужны при создании любого лёгкого мобильного робота. Strela, как и любая другая Arduino, программируется из Arduino IDE, а в основе содержит тот же микроконтроллер, что и Arduino Leonardo.Встроенный драйвер для двух двигателей, 4 разъёма для сервоприводов, 4 кнопки и 4 светодиода свободного назначения, зуммер, слоты для ЖК-экрана и модуля беспроводной связи.Мощный регулятор питания позволяет без ухищрений использовать множество различных аккумуляторов.11 входов-выходов выведены в виде 3-контактных разъёмов для лёгкого подключения дополнительных датчиков и модулей. ЖК-экран, кнопки и светодиоды подключены через расширитель портов, поэтому они не занимают входы-выходы общего назначения.На плате не предусмотрены колодки для установки плат расширения Arduino.Из-за изменённой нумерации контактов (в сравнении с базовой Arduino Leonardo), необходимо использовать немного другие функции для работы с пинами платы. Они предоставлены в одноимённой библиотеке.Arduino Yún Уникальный гибрид Arduino Leonardo и микрокомпьютера на OpenWRT Linux. Отличный выбор для «интернета вещей».Плата оснащена Ethernet и WiFi, через которые можно общаться с устройством и даже перепрошивать платформу удалённо.Мощь Linux позволяет работать с мультимедиа, а его сетевые возможности легко интегрироваться с социальными сетями и другими веб-сервисами.OpenWRT — это порезанный Linux. На микрокомпьютере можно установить не любой Linux-софт. А в качестве скриптовых языков программирования из коробки можно использовать только Bash и Python.STM32 Nucleo F401RE Плата с мощным микроконтроллером Cortex-M4. Платформа программируется не через Arduino IDE, а через онлайн-среду mbed.org. Субъективно, она мощнее и стройнее Arduino IDE, хотя и не так распространена. Для пытливого ума — отличный выбор.Процессор на 84 МГц, 512 КБ постоянной и 96 КБ оперативной памяти. 50 портов ввода-вывода, из которых 16 аналоговых и 29 с ШИМ. Родной уровень напряжения — 3,3 В, но все пины толерантны к 5 В, поэтому проблем электронной совместимости с Arduino-периферией возникнуть не должно.Колодки для плат расширения по конфигурации совпадают с Arduino Uno, поэтому на Nucleo можно поставить множество плат расширения от Arduino.На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать.Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.Teensy 3.2 Компактная плата с мощным микроконтроллером Cortex-M4. Программируется из привычной Arduino IDE.Меньше Arduino Micro (35×17 мм), но почти столь же мощная, как Nucleo: процессор 72 МГц, 256 КБ постоянной и 64 КБ оперативной памяти, 34 порта ввода-вывода, из которых 21 могут быть аналоговыми, а 12 поддерживают ШИМ.Teensy 3.1 очень энергоэффективна. У неё нет регулятора напряжения, но входным может являться любое от 3,3 до 5,5 В. Это же напряжение и будет логическим уровнем. В режиме сна плата потребляет всего 0,25 мА, что даёт возможность работать от аккумулятора несколько месяцев.Встроенный контроллер шины CAN позволяет создавать сеть из Due или взаимодействовать с автомобильной электроникой. Два канала ЦАП позволяют синтезировать стереозвук с разрешением в 4,88 Гц.Плата поставляется с нераспаянными контактами. Вам предстоит самостоятельно впаять штырьковые соединители или проводки.Из-за большой разницы в архитектуре с классическим Arduino не все библиотеки для сторонней периферии могут работать из коробки.Рабочее напряжение равно входному, а поэтому плывёт по мере разряда батарейки. Это может оказаться важным при выборе периферии, если она рассчитана на какой-то конкретный вольтаж.Netduino 2 Плата повторяет форм-фактором Arduino Uno, но имеет мощную начинку, достаточную для исполнения программ, написанных на платформе .NET. Netduino программируется на C# или любом другом .NET-языке в привычной любому .NET-разработчику среде Visual Studio. В качестве стандартной библиотеки предоставляется .NET Micro Framework.В Visual Studio работает автодополнение, подсказки, контекстная помощь в MSDN и полноценный отладчик. Вам доступны breakpoint’ы, пошаговое исполнение кода, наблюдение за переменными. Отладка происходит без ухищрений, просто с подключённым USB-кабелем. Благодаря всему этому, скорость разработки под Netduino в разы превосходит скорость разработки под любую другую платформу.На плате не выведен отдельный SPI-разъём. Платы расширения Arduino, которые используют SPI через ICSP-разъём без ухищрений не будут работать.Из-за другой среды и экосистемы для программирования, может не существовать готовой библиотеки для выбранной периферии. Её придётся реализовать самостоятельно.Netduino Plus 2 Как Netduino, только мощнее и с Ethernet на борту. Отличный выбор для реализации проектов интернета вещей.Те же, что и у Netduino 2.
Сравнение одноплатных компьютеров
Законодателем моды среди одноплатных компьютеров является Raspberry Pi. Эта сверхпопулярная платформа в своё время перевернула представление о возможностях, габаритах и стоимости полноценного компьютера для DIY-электронщиков.
Опять же, для каждого проекта может лучше подойти тот или иной одноплатный компьютер, но в силу популярности Raspberry Pi, будем сравнивать другие платформы именно с ней.
Raspberry Pi 3 Model B Один из самых популярных одноплатников. Четыре ядра по 1200 МГц, 1 ГБ оперативной памяти и полноценный Linux, основанный на Debian помогут решить множество задач, требовательных к вычислительным ресурсам. Среди них можно выделить компьютерное зрение, обработку звука в реальном времени, создание веб-сервисов.Тонны документации, уроков и готовых библиотек, огромное сообщество. Всё это просто не даст вам возможности сказать «не осилил».Привычные порты HDMI, 3,5 мм аудио, 4 USB помогут с лёгкостью подключить монитор, колонки, клавиатуру, мышь и другие USB-устройства. Модули BLE и WiFi на борту помогут соединить компьютер с другими устройствами без проводов.На плате нет АЦП, поэтому подключение аналоговых сенсоров возможно только с помощью внешних, дополнительных компонентов.Предоставляется лишь 1 аппаратный ШИМ-канал, что усложняет работу с периферией, которая управляется ШИМ’ом.BeagleBone Black Микрокомпьютер схожий с Raspberry Pi, который даёт больше благ, привычных для микроконтроллерных плат. Отличный выбор для проектов интернета вещей, когда необходимо управляться с множеством сенсоров и исполнительных устройств.Мощная среда для разработки Cloud9 IDE. Вы просто заходите на BeagleBone через браузер и программируете на любимом языке будь то Python, JavaScript (Node.js), Bash или любой другой язык Linux. Результат можно проверить мгновенно, а если что-то не заработало, использовать встроенный в среду полноценный отладчик.На борту уже установлена флеш-память eMMC на 4 ГБ с операционной системой Linux. Память может быть увеличена внешней microSD-картой.Широкие возможности по подключению периферии. 8 ШИМ-выходов и 7 аналоговых входов. Возможны аппаратные прерывания.Диковинный разъём microHDMI для подключения монитора. Для передачи звука используется он же.Вычислительная мощность скромнее, чем у Raspberry Pi: 1 ядро на 400 МГц и 512 МБ оперативной памяти.
Источник: http://amperka.ru/page/development-board-guide
Arduino без Arduino: работаем с микроконтроллерами напрямую — DRIVE2
Если вспомнить историю создания Arduino ( www.drive2.
ru/b/2520138/ ), то Arduino стало популярно благодаря трем вещам, составляющим ее основу: Среды программирования Arduino IDE ( на самом деле это среда языка Processing), Языка программирования Wiring (На самом деле такого языка не существует — то что мы видим это самый обычный С, дополненный большим числом библиотек) и Плат Arduino.
Я уже писал ранее, что без каждой из этих трех составляющих можно обойтись и приводил пример того, как можно обойтись без знания С — www.drive2.ru/b/2729013/. Как отказаться от Arduino IDE написано здесь — www.visualmicro.com/page/…what_is_visual_micro.html, а сегодня я хотел бы написать о том, как отказаться от “плат Arduino”.Итак, что же собой представляет плата, получившая такой коммерческий успех?
Как можно увидеть на плате находятся микроконтроллер AtMega 168 или 328, микросхема питания — DA1, контроллер виртуального com порта — DD1 и кварц 16 МГц — Q1.
В общем то на первый взгляд ничего лишнего, но это только на первый: Используемая микросхема питания позволяет питать плату от напряжения от 5 до 12В или кратковременно до 30В, т.е. для авто с его 14,5В не пригодна и нужно делать свой источник питания.
Контроллер СОМ порта используется в основном только для заливки программ и не является обязательным (в плате Arduino Pro Micro и ей подобных он отсутствует).
Кварц, несомненно, позволяет точно работать с временем, но если погрешность в несколько милисикунд для вас не критична, то можно вспомнить о том, что микроконтроллеры фирмы Atmel, к которым относится и Atmega168/328, содержат внутренний кварц и могут отсчитывать такты сами себе.
Так что же эта плата лишняя? В общем то да. В большинстве случаев без нее действительно можно обойтись и сейчас мы поговорим как.
Поддержка средой программированияНаходим где у вас установлена Arduino и открываем папочку hardware
По умолчанию это здесь — C:Program FilesArduinohardwarearduinoavr
В эту папку мы будем распаковывать архивы с библиотеками, которые будем качать отсюда:1) Для микроконтроллеров
ATmega8, ATmega8A,ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PBATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PBATmega328, ATmega328P, ATmega328PB
ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB
качаем ATmega8 Series (8/48/88/168/328) отсюда — github.com/sleemanj/optib…ob/master/dists/README.md
См. отдельную статью О бедном AtMega замолвите словоДанные библиотеки позволяют запустить МК на 3 частотах: 1MHz, 8MHz или 16MHz (Для работы требуется внешний кварц 16МГц).
Тут необходимо понимать, что внешний кварц увеличивает быстродействие и стабильность работы (1 миллисекунда выполнения программы всегда будет равняться 1 миллисекунде реального времени), но увеличивает, пусть и ненамного, стоимость конструкции и снижает надежность за счет большего числа деталей. Лично мое мнение, что для большинства конструкций, проектируемых для автомобиля, можно смело обойтись и встроенным кварцем. Для схем зажигания, тахометра можно использовать внешний кварц, подключенный по схеме ниже, но дешевле взять готовую платку типа Arduino Pro Micro.
Достаточно ценное замечание от alexfrance
Был печальный опыт при использовании внутреннего генератора МК тини2313. На морозе при -20 контроллеры зависали, глючили. Установка внешнего кварца помогла. Поскольку внутренний генератор представляет из себя RC цепь, то он очень термозависим
2) Микроконтроллеры Attiny13 (А)
Библиотеки и файлы для поддержки “Тинек” можно скачать по ссылочке выше, а можно взять версию от разработчика — sourceforge.net/projects/ard-core13/files/
Скачанный файл также кладем в папку hardware
3) Для микроконтроллеров
ATtiny84, ATtiny44, ATtiny24,ATtiny85, ATtiny45, ATtiny25,
ATtiny2313, ATtiny4313
Источник: https://www.drive2.ru/b/2955382/
Лучшие аналоги Arduino
Первые компьютеры были размером с целый дом, потом, с течением времени вычислительные машины становились все меньше и компактнее, они уже могли помещаться на столе и многие пользователи обзавелись домашними компьютерами. Но сейчас технологии пошли еще дальше и компьютер может уместиться полностью на ладони.
Это микрокомпьютеры, например, Arduino. Они достаточно дешевы, имеют минимальный размер, но достаточно мощны для выполнения некоторых действий. В этой статье мы рассмотрим лучшие аналоги Arduino, которые вы можете использовать для создания своих проектов. Разберем их сильные стороны и недостатки.
Arduino Uno
Плата Arduino имеет множество модификаций и распространяется в различных моделях. Одна из самых популярных серди пользователей – Arduino Uno. Это самое старое устройство. Оно появилось в 2005 году, как инструмент для студентов. Затем устройство было модифицировано улучшено и клонировано множество раз. Микрокомпьютер Arduino сделал революцию в программировании и электронике.
Официальная версия Arduino Uno стоит $25, но можно найти клон за $5 который будет работать не хуже оригинала. Причина платить полную цену, это разве что поддержать проект. Преимущество Arduino в простое, вам не нужно ничего настраивать, собирать полноценную операционную систему Linux, просто пишите код, компилируйте его и загружайте на устройство.
Другие преимущества – это отказоустойчивость устройства, а также расширяемость, например, если вам нужно добавить Bluetooth, вы просто докупаете недостающую плату.
Недостатком Arduino Uno есть то, что здесь используется чип ATMEGA CPU, который имеет небольшое количество памяти и устройство хранения.
Поэтому если вы хотите собирать данные, такие, как показания сенсоров, то вам нужно будет передавать их на компьютер.
Лучшие альтернативы Arduino
1. Raspberry Pi Zero
Raspberry Pi Zero – это, по сути, такая же самая оригинальная плата Raspberry Pi Model A+, только уменьшенная до размеров платежной карты. Вы можете приобрести ее за 5-8$. Когда устройство только появилось, оно отправлялось в качестве бесплатного подарка подписчикам журнала MagPi. Этот микрокомпьютер может запустить полноценный дистрибутив Linux и в то же время он достаточно дешевый.
Плата имеет точно такие же возможности, как и Raspberry Pi A+, на ней можно запустить Raspbian или любую другую совместимую операционную систему. Процессора с частотой 1 ГГц и 512 Мб оперативной памяти вряд-ли хватит на что-либо серьезное, но вы можете использовать устройство в качестве микроконтроллера, альтернативы Arduino.
Здесь есть 2 порта microUSB, но нет Ethernet, Bluetooth или Wifi. Но переходники и платы расширений для включения нужных вам технологий можно приобрести достаточно недорого. Это самый мощный из перечисленных микрокомпьютеров, поэтому он используется для сложных задач, которые не всегда по плечу для Arduino, например, обработка данных и визуализация.
2. NodeMCU
NodeMCU – это очень интересный микроконтроллер, который предлагает множество возможностей, особенно учитывая его цену.
В отличие от Arduino, который использует 8 битный ATMEA с частотой 16 МГц, здесь используется чипсет ESP8266 с 32 битным процессором Tensilica Xtensa LX106 80 МГц, также здесь есть Wifi, встроенная поддержка TCP/IP, 4 мегабайта встроенного хранилища и 20 кб ОЗУ. В дополнение ко всему тут есть 10 выходов GPIO.
К устройству можно подключать различные компоненты, такие как мониторы, сенсоры или сервоприводы. Как и Arduino, его очень просто использовать, достаточно написать код и загрузить его на устройство по USB. Программы пишутся на Lua, это интерпретируемый язык программирования, похожий на Python или Ruby. Вы можете заказать NodeMCU за $3 из китая или найти более дорогую версию на Amazon.
3. Particle Photon
Particle Photon – это устройство для реализации различных веб-проектов. Устройство поставляется с Wifi и является одной из лучших альтернатив Arduino на данный момент. В качестве процессора используется Cortex ARM M3 с частотой 120 МГц. Писать программы для него нужно так же как и для Arduino, просто пишите код и загружаете его на устройство.
4. ESP8266
ESP8266 – это микроконтроллер с поддержкой Wifi, который набирает популярность среди энтузиастов в электронике. Он стоит дешевле Arduino, но может программироваться в той же Arduino IDE. Но для его питания нужно подавать 3.3 вольта а не 5. Устройство поставляется со встроенным регулятором питания и несколькими портами ввода-вывода.
5. Teensy
Teensy – это самая популярная альтернатива Arduino, которая может использоваться для создания любого DIY проекта.
Здесь есть загрузчик, с помощью которого вы можете загружать в память программу даже с USB флешки.
С помощью него вы можете эмулировать любое USB устройство, а в качестве процессора используется ARM Cortex M4 с частотой 180 МГц, и 256 Кб оперативной памяти. И здесь тоже можно использовать Arduino IDE.
6. BeagleBone
Устройство использует ARM Cortex V8 с частотой 700 МГц и 256 мегабайт оперативной памяти DDR2, а также флешку объемом 4 Гб. В качестве языков программирования могут использоваться Python, C, C++, PHP, JavaScript. Устройство поддерживает установку SD карты, а также есть USB порт, через который можно подключать различные расширения, например, Ethernet или другой компьютер.
5. MSP430
MSP430 – это альтернатива Arduino, очень похожая на оригинальную плату, но потребляет очень мало энергии, благодаря использованию 16-битного MCU. В качестве среды для разработки программ может использоваться Energia IDE. Микроконтроллер имеет собственную архитектуру что и выделяет его среди других.
6. STM32
STM32 – это дешевый 32-битный микроконтроллер, от STMicroelectronics, одна из лучших альтернатив Arduino. Здесь используется своя среда разработки Keli, а также программатор ST-Link.
Устройство использует чип ARM Cortex 32-bit M3 с тактовой частотой 24 МГц и 8 кб оперативной памяти.
Среди других преимуществ можно отметить низкое потребление энергии, обработку цифровых сигналов и так далее.
Выводы
В этой статье мы рассмотрели аналоги Arduino uno, которые вы можете использовать в своих проектах. А какое устройство вы бы выбрали? Что используете? Напишите в комментариях!
Источник: https://losst.ru/luchshie-analogi-arduino
Arduino UNO – широкий обзор микроконтроллера
Микроконтроллер что может использоваться сейчас в любом стартапе, имеет полностю открытую архитектуру и множество уже написаных и выложеных в сети Интернет библиотек. Давайте датально рассмотрим уто чудо.
Arduino Uno – это устройство на основе микроконтроллера ATmega328 (datasheet).
В его состав входит все необходимое для удобной работы с микроконтроллером: 14 цифровых входов/выходов (из них 6 могут использоваться в качестве ШИМ-выходов), 6 аналоговых входов, кварцевый резонатор на 16 МГц, разъем USB, разъем питания, разъем для внутрисхемного программирования (ICSP) и кнопка сброса.
Для начала работы с уcтройством достаточно просто подать питание от AC/DC-адаптера или батарейки, либо подключить его к компьютеру посредством USB-кабеля.
В отличие от всех предыдущих плат Ардуино, Uno в качестве преобразователя интерфейсов USB-UART использует микроконтроллер ATmega16U2 (ATmega8U2 до версии R2) вместо микросхемы FTDI.
На плате Arduino Uno версии R2 для упрощения процесса обновления прошивки добавлен резистор, подтягивающий к земле линию HWB микроконтроллера 8U2.
Изменения на плате версии R3 перечислены ниже:
- Распиновка 1.0: добавлены выводы SDA и SCL (возле вывода AREF), а также два новых вывода, расположенных возле вывода RESET. Первый – IOREF – позволяет платам расширения подстраиваться под рабочее напряжение Ардуино. Данный вывод предусмотрен для совместимости плат расширения как с 5В-Ардуино на базе микроконтроллеров AVR, так и с 3.3В-платами Arduino Due. Второй вывод ни к чему не подсоединен и зарезервирован для будущих целей.
- Улучшена помехоустойчивость цепи сброса.
- Микроконтроллер ATmega8U2 заменен на ATmega16U2.
“Uno” (в переводе с итальянского – “один”) назван по случаю предстоящего выпуска Arduino 1.0. Совместно с Arduino 1.0 данные устройства будут базовыми версиями Ардуино. Uno – эталонная модель платформы Arduino и является последней в серии USB-плат; для сравнения с предыдущими версиями, см. список плат Arduino.
Характеристики
Микроконтроллер | ATmega328 |
Рабочее напряжение | 5В |
Напряжение питания (рекомендуемое) | 7-12В |
Напряжение питания (предельное) | 6-20В |
Цифровые входы/выходы | 14 (из них 6 могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 6 |
Максимальный ток одного вывода | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 КБ (ATmega328) из которых 0.5 КБ используются загрузчиком |
SRAM | 2 КБ (ATmega328) |
EEPROM | 1 КБ (ATmega328) |
Тактовая частота | 16 МГц |
Схема и исходный проект
Файлы EAGLE: arduino-uno-Rev3-reference-design.zip (ПРИМЕЧАНИЕ: совместимо с версиями Eagle не ниже 6.0)
Схема: arduino-uno-Rev3-schematic.pdf
Примечание: В файлах проекта Ардуино могут фигурировать микроконтроллеры ATmega8, 168 или 328. Например, в последних моделях используется микроконтроллер ATmega328, но на схеме может быть указан микроконтроллер ATmega8. Это не является ошибкой, поскольку все три микросхемы полностью совместимы между собой по выводам.
Питание
Arduino Uno может быть запитан от USB либо от внешнего источника питания – тип источника выбирается автоматически.
В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер или аккумулятор/батарея. Штекер адаптера (диаметр – 2.1мм, центральный контакт – положительный) необходимо вставить в соответствующий разъем питания на плате. В случае питания от аккумулятора/батареи, ее провода необходимо подсоединить к выводам Gnd и Vin разъема POWER.
Напряжение внешнего источника питания может быть в пределах от 6 до 20 В.
Однако, уменьшение напряжения питания ниже 7В приводит к уменьшению напряжения на выводе 5V, что может стать причиной нестабильной работы устройства.
Использование напряжения больше 12В может приводить к перегреву стабилизатора напряжения и выходу платы из строя. С учетом этого, рекомендуется использовать источник питания с напряжением в диапазоне от 7 до 12В.
Ниже перечислены выводы питания, расположенные на плате:
- VIN. Напряжение, поступающее в Arduino непосредственно от внешнего источника питания (не связано с 5В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, когда устройство запитано от внешнего адаптера.
- 5V. На вывод поступает напряжение 5В от стабилизатора напряжения на плате, вне независимости от того, как запитано устройство: от адаптера (7 – 12В), от USB (5В) или через вывод VIN (7 – 12В). Запитывать устройство через выводы 5V или 3V3 не рекомендуется, поскольку в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
- 3V3. 3.3В, поступающие от стабилизатора напряжения на плате. Максимальный ток, потребляемый от этого вывода, составляет 50 мА.
- GND. Выводы земли.
- IOREF. Этот вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера Ардуино. В зависимости от напряжения, считанного с вывода IOREF, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5В, так и с 3.3В-устройствами.
Память
Объем флеш-памяти ATmega328 составляет 32 КБ (из которых 0.5 КБ используются загрузчиком). Микроконтроллер также имеет 2 КБ памяти SRAM и 1 КБ EEPROM (из которой можно считывать или записывать информацию с помощью библиотеки EEPROM).
Входы и выходы
С использованием функций pinMode(), digitalWrite() и digitalRead() каждый из 14 цифровых выводов может работать в качестве входа или выхода. Уровень напряжения на выводах ограничен 5В.
Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм.
Помимо этого, некоторые выводы Ардуино могут выполнять дополнительные функции:
- Последовательный интерфейс: выводы 0 (RX) и 1 (TX). Используются для получения (RX) и передачи (TX) данных по последовательному интерфейсу. Эти выводы соединены с соответствующими выводами микросхемы ATmega8U2, выполняющей роль преобразователя USB-UART.
- Внешние прерывания: выводы 2 и 3. Могут служить источниками прерываний, возникающих при фронте, спаде или при низком уровне сигнала на этих выводах. Для получения дополнительной информации см. функцию attachInterrupt().
- ШИМ: выводы 3, 5, 6, 9, 10 и 11. С помощью функции analogWrite() могут выводить 8-битные аналоговые значения в виде ШИМ-сигнала.
- Интерфейс SPI: выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). С применением библиотеки SPI данные выводы могут осуществлять связь по интерфейсу SPI.
- Светодиод: 13. Встроенный светодиод, подсоединенный к выводу 13. При отправке значения HIGH светодиод включается, при отправке LOW – выключается.
В Arduino Uno есть 6 аналоговых входов (A0 – A5), каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения).
По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Тем не менее, верхнюю границу этого диапазона можно изменить, используя вывод AREF и функцию analogReference().
Помимо этого, некоторые из аналоговых входов имеют дополнительные функции:
- TWI: вывод A4 или SDA и вывод A5 или SCL. С использованием библиотеки Wire данные выводы могут осуществлять связь по интерфейсу TWI.
Помимо перечисленных на плате существует еще несколько выводов:
- AREF. Опорное напряжение для аналоговых входов. Может задействоваться функцией analogReference().
- Reset. Формирование низкого уровня (LOW) на этом выводе приведет к перезагрузке микроконтроллера. Обычно этот вывод служит для функционирования кнопки сброса на платах расширения
Смотрите также соответствие выводов Arduino и ATmega328. Распиновка для микроконтроллеров ATmega8, 168 и 328 идентична.
Связь
Arduino Uno предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega328 имеется приемопередатчик UART, позволяющий осуществлять последовательную связь посредством цифровых выводов 0 (RX) и 1 (TX).
Микроконтроллер ATmega16U2 на плате обеспечивает связь этого приемопередатчика с USB-портом компьютера, и при подключении к ПК позволяет Ардуино определяться как виртуальный COM-порт. Прошивка микросхемы 16U2 использует стандартные драйвера USB-COM, поэтому установка внешних драйверов не требуется. На платформеWindows необходим только соответствующий .
inf-файл. В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные. При передаче данных через микросхему-преобразователь USB-UART во время USB-соединения с компьютером, на плате будут мигать светодиоды RX и TX.
(При последовательной передаче данных посредством выводов 0 и 1, без использования USB-преобразователя, данные светодиоды не задействуются).
Библиотека SoftwareSerial позволяет реализовать последовательную связь на любых цифровых выводах Arduino Uno.
В микроконтроллере ATmega328 также реализована поддержка последовательных интерфейсов I2C (TWI) и SPI. В программное обеспечение Ардуино входит библиотека Wire, позволяющая упростить работу с шиной I2C; для получения более подробной информации см. документацию. Для работы с интерфейсом SPI используйте библиотеку SPI.
Программирование
Arduino Uno программируется с помощью программного обеспечения Ардуино (скачать). Для этого из меню Tools > Board необходимо выбрать “Arduino Uno” с микроконтроллером, соответствующим вашей плате. Для получения более подробной информации см. справкуи примеры.
ATmega328 в Arduino Uno выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (описание, заголовочные файлы C).
Тем не менее, микроконтроллер можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; более подробно об этом см. соответствующие инструкции.
Исходный код прошивки микроконтроллера ATmega16U2 (или 8U2 на платах версии R1 и R2) находится в свободном доступе. Прошивка ATmega16U2/8U2 включает в себя DFU-загрузчик (Device Firmware Update), позволяющий обновлять прошивку микроконтроллера. Для активации режима DFU необходимо:
- На платах версии R1: замкнуть перемычку на обратной стороне платы (возле изображения Италии), после чего сбросить 8U2.
- На платах версий R2 и выше – для упрощения перехода в режим DFU присутствует резистор, подтягивающий к земле линию HWB микроконтроллера 8U2/16U2.
После перехода в DFU-режим для загрузки новой прошивки можно использовать программное обеспечение Atmel's FLIP (для Windows) или DFU programmer (для Mac OS X и Linux).
Альтернативный вариант – прошить микроконтроллер через разъем для внутрисхемного программирования ISP с помощью внешнего программатора, однако в этом случае DFU-загрузчик затрется.
Для получения более подробной информации см. эти инструкции, составленные пользователями.
Автоматический (программный) сброс
Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Uno спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера.
Один из выводов ATmega8U2/16U2, участвующий в управлении потоком данных (DTR), соединен с выводом RESET микроконтроллера ATmega328 через конденсатор номиналом 100 нФ.
Когда на линии DTR появляется ноль, вывод RESET также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера.
Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии DTR.
Однако эта система может приводить и к другим последствиям. При подключении Uno к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой.
После сброса на Arduino Uno активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е.
все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения.
Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.
На плате Uno существует дорожка (отмеченная как “RESET-EN”), разомкнув которую, можно отключить автоматический сброс микроконтроллера.
Для повторного восстановления функции автоматического сброса необходимо спаять между собой выводы, расположенные по краям этой дорожки.
Автоматический сброс также можно выключить, подключив резистор номиналом 110 Ом между выводом RESET и 5В; для получения более подробной информации см. соответствующую ветку форума.
Защита USB от перегрузок
В Arduino Uno есть восстанавливаемые предохранители, защищающие USB-порт компьютера от коротких замыканий и перегрузок.
Несмотря на то, что большинство компьютеров имеют собственную защиту, такие предохранители обеспечивают дополнительный уровень защиты.
Если от USB-порта потребляется ток более 500 мА, предохранитель автоматически разорвет соединение до устранения причин короткого замыкания или перегрузки.
Физические характеристики
Максимальная длина и ширина печатной платы Uno составляет 6.9 см и 5.4 см соответственно, с учетом разъема USB и разъема питания, выступающих за пределы платы. Четыре крепежных отверстия позволяют прикреплять плату к поверхности или корпусу. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.
Источник: https://ngin.pro/smart-house/31-arduino-uno-shirokiy-obzor-mikrokontrollera.html
Контроллер – Популярная робототехника
Микроконтроллер, или контроллер (МК, controller) – это микросхема для управления электронными устройствами. По сути, контроллер является мозгом робота, который получает информацию из внешнего мира с помощью сенсоров и передает управляющие сигналы в актуаторы.
Микроконтроллер с точки зрения схемотехники представляет собой однокристальный компьютер, в состав которого входит процессор, ОЗУ, ПЗУ и интерфейсы периферийных устройств.
Существует множество различных микроконтроллеров, различающихся по типу процессора, объему и типу памяти, составу периферийных интерфейсов, и т.п.
К наиболее распространенной периферии МК можно отнести:
- цифровые и аналоговые порты ввода/вывода (GPIO);
- интерфейсы ввода-вывода, такие как UART, I²C, SPI, CAN, USB, IEEE 1394, Ethernet;
- широтно-импульсные модуляторы (PWM);
- массивы встроенной флеш-памяти.
Широкое распространение получили семейства микроконтроллеров ARM, AVR и PIC, которые применяются в промышленных системах управления, станках с ЧПУ, в современных бытовых устройствах и различных гаджетах.
На микроконтроллерах AVR (реже ARM) основана популярная аппаратная вычислительная платформа Arduino. Это устройство представляет собой плату с микроконтроллером Atmel ATmega, всей необходимой для него обвязкой, регулятором напряжения и USB-UART мостом.
Все выводы платформы выведены на края платы, и как правило уже оборудованы разъемами.
Основные модели Arduino имеют в своем составе 8-битный микропроцессор ATmega. Как правило, для большинства проектов использующих Arduino, такого слабого процессора вполне хватает.
Имеется и версия на основе 32-разрядного ARM Cortex M3 (ATMEL SAM3U), но пока она не получила достаточного распространения среди энтузиастов.
Наиболее популярная версия Arduino Uno базируется на микроконтроллере ATmega328. Имеет 15 GPIO портов, включая 6 ШИМ. Микроконтроллер снабжен 32Кб Flash-памяти и 2Кб RAM. Тактовая частота процессора 16МГц.
Для программирования Arduino не требуется внешний программатор, так как в микроконтроллер уже зашит загрузчик (boot loader). Кроме того, на плате размещается USB-UART мост, который позволяет загружать скетчи при помощи обычного USB интерфейса.
Программный код для Arduino выполняется на языке Processing/Wiring, имеющем синтаксис C++. Для составления кода и загрузки его в контроллер используется свободно-распространяемый редактор Arduino IDE.
Именно благодаря этим двум особенностям, Arduino стала самой распространенной платформой для начинающих разработчиков электроники. Стоимость самой дешевой Arduino Uno варьируется в пределах $15-$20.
Поскольку “Arduino” является зарегистрированным товарным знаком, сторонние производители вносящие изменения в архитектуру платформы используют другие обозначения для своих продуктов.
Клоны совместимы с Arduino программно и аппаратно, что означает они могут использовать программы написанные для Arduino и использовать соответствующие дополнительные модули (Shields).
Список клонов достаточно велик и постоянно растет: серия Freeduino (SB, Max Serial, Through-Hole), CraftDuino, Seeeduino, Roboduino, и т.п.
Имеются также специализированные платформы на основе Arduino архитектуры:
- DFRobotShop Rover – платформа для роверов, включающая H-мост;
- ArduPilot – автопилот для самолетов, квадрокоптеров, лодок с поддержкой GPS и стабилизации на основе акселерометра и гироскопа;
- Lightuino – платформа для управления LED-ос;
- и т.п.
Как уже упоминалось, на плате Arduino, помимо самого микроконтроллера, размещается USB-UART мост и понижающий регулятор напряжения. Насколько усложнится работа с платформой, если убрать эти элементы?
Активисты из сообщества Shrimping It задались этим вопросом, и разработали минималистическую версию Arduino, назвав её The Shrimp.
Состоит Shrimp из микроконтроллера ATmega328 (или 168), минимальной обвязки из нескольких конденсаторов, кварцевого резонатора, диода и резистора. Чтобы микроконтроллер смог принимать скетчи Arduino, его необходимо прошить загрузчиком, либо оригинальным, либо аналогом типа OptiLoader.
Чтобы залить скетч через USB, потребуется внешний USB-UART. Такое устройство можно приобрести на ebay за 3-4$. Имея внешний мост можно программировать множество Shrimp-ов.
Нехватка ресурсов Arduino привела к созданию таких же простых в использовании на более мощных платформ для разработки электронных устройств. Одной из таких продвинутых в техническом плане платформ является Maple (текущая ревизия r5), базирующаяся на 32-битном микроконтроллере STM32F103RB с архитектурой ARM Cortex M3.
Тактовая частота использованного микроконтроллера STM32 составляет 72МГц. Maple имеет на своем борту 120Кб Flash памяти и 20Кб SRAM. Для GPIO используются аж 43 вывода, из которых 15 с поддержкой 16-битной ШИМ. Из периферии есть: 15 12-битных аналоговых выходов, 4 таймера, 2 I2C, 2 SPI и 3 USART.
А еще имеется встроенная система заряда LiPo батарей.
Облегченная модель Maple Mini имеет ядро с такой же тактовой частотой и памятью, и отличия заключаются только в количестве выводов. Ведется разработка флагманской Maple Native II, которая будет иметь еще больше выводов чем стандартный Maple и больший объем памяти (512 Flash и 64SRAM).
Для программирования используется свой Maple IDE. Скетчи Maple, за некоторыми исключениями, совместимы с Arduino. Единственной проблемой на текущий момент является весьма ограниченный набор библиотек. По сути их три, это:
- LiquidCrystal – полностью совместимая с Arduino;
- Servo – частично совместимая;
- и начальная версия Wire (I2C).
В целом, платформа представляется весьма интересным устройством для тех кому нужно значительно больше вычислительных ресурсов чем у Arduino и тех кто способен сам дописать нужные библиотеки.
Стоимость Maple rev5 на ebay колеблется в диапазоне $30-35, что совсем не много за такую систему.
Как и Maple, платформа mbed не так популярна как семейство Arduino. Однако, в основе mbed лежит более мощный микроконтроллер NXP LPC1768 с архитектурой ARM Cortex M3. Процессор работает на частоте 96МГц и снабжен 512Кб Flash-памяти и 32Кб RAM.
В официальном репозитории имеется большая коллекция различных библиотек на все случаи жизни. Программирование контроллера осуществляется путем копирования скомпилированного бинарного файла на флеш контроллера и перезагрузка устройства специальной кнопкой в центре платы.
Сами же программы составляются с помощью весьма удобного on-line компилятора.
Конечно, стоимость mbed превышает Arduino в разы и составляет $60 ($45 для упрощенной ARM Cortex-M0 версии), но если вам требуется большие вычислительные ресурсы, скажем для системы маневрирования БПЛА или для интеллектуального анализа изображений, то данная платформа становится достаточно интересной.
Подробный обзор mbed можно найти здесь.Платформы на основе микроконтроллеров ARM имеют достаточно вычислительных ресурсов для работы полноценной операционной системы, и подключения ресурсоемких периферийных устройств.
Одно такое сложное устройство на базе ARM имеется практически у каждого человека, читающего статью – это смартфон.
В 2011 году была создана платформа, объединяющая в себе мощь ARM процессоров и широкие возможности классических платформ для макетирования.
Raspberry PI – это полноценный микрокомпьютер, в составе которого входят:
- процессор Broadcom BCM2835, включающий основное ядро ARM11 и графическое ядро;
- ОЗУ 512Мб или 256Мб;
- 2х USB 2.0 порта;
- Ethernet 10/200 Мбит/с;
- видеовыход HDMI;
- видеовыход композитный;
- аудиовыход jack 3.5;
- GPIO выводы.
В свою очередь, порт GPIO имеет 17 выводов, включая две шины SPI, одну I2C и один интерфейс UART.
Операционная система загружается в память системы с SD флеш карты. Специально для Raspberry Pi, сообществом были адаптированы операционные системы:
- Debian – Raspbian;
- Fedora Core – Pidora;
- RISC OS;
- Arch – ArchLinux.
Стоимость Raspberry PI Type A, с 256Мб ОЗУ составляет около $25. Её старшая версия B, имеющая 512Мб ОЗУ и Ethernet порт уже колеблется в районе $35.
Существует и множество других платформ для разработки микроконтроллерных устройств. На рынке (в основном на китайском) представлено огромное количество подобных систем на основе, например, микроконтроллера STM32. Семейство данных контроллеров базируется на 32-разрядных процессорах ARM Cortex M.
Также часто можно найти и более слабые платформы с контроллерами семейства PIC.Также как и Arduino или mbed, подобные средства разработки включают в себя ряд цифровых и аналоговых выводов, различные кнопки, индикаторы, USB-интерфейс, Ethernet, а также LCD и TFT дисплеи.
В отличие от того же Arduino, составление программ для указанных устройств осуществляется на более низком уровне. Разработка, как правило, ведется в специальной среде.
Например для программирования микроконтроллеров ARM используются коммерческие продукты, такие как Embedded Workbench от IAR Systems, или бесплатные – Eclipse. Установка программы на контроллер обычно производится с помощью специального устройства-программатора.
Таким образом, для работы с подобными платформами потребуется гораздо больше специальных знаний, чем в случае Arduino или mbed.
Стоимость систем на базе STM32 и PIC варьируется от $15 до $200 и более, в зависимости от мощности процессора, количества интегрированных интерфейсов и дополнительных устройств ввода/вывода.
Источник: http://www.poprobot.ru/ideologia/kontroller