Arduino сравнительная таблица всех плат и моделей

Сравнение трех популярных платформ разработки: Arduino Uno, BeagleBone, RaspberryPi

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

На портале Радиолоцман уже публиковалась статья обзорного характера на данную тему – «Сравнение популярных отладочных платформ», в которой дан краткий обзор платформ Arduino Uno, Arduino Due, MBED, Discovery, Raspberry PI.

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

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

Сейчас мы рассмотрим три платформы для разработки встраиваемых приложений: Arduino Uno, BeagleBone, RaspberryPi, сравним их и дадим рекомендации по выбору подходящей для вашего следующего проекта (Рисунок 1). В общем случае, для профессионалов можно порекомендовать все три.

Рисунок 1. Слева на право: Arduino Uno, BeagleBone, Raspberry Pi.

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

Плату Arduino Uno с некоторых пор можно считать основным компонентом в сообществе радиолюбителей (Рисунок 2). Сейчас платы Arduino доступны в различных форм-факторах, с различным набором периферии. Большая их часть выполненыа на 8-разрядном микроконтроллере компании Atmel.

А не так давно была анонсирована плата Arduino Due на мощном ARM микроконтроллере с ядром Cortex-M3. Для нашего обзора была выбрана Arduino Uno в качестве представителя платформы Arduino.

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

Рисунок 2. Плата Arduino Uno.

Плата Raspberry Pi является новичком в «игре» – это одноплатный компьютер, позиционирующийся на рынке как дешевое решение для начинающих разработчиков встраиваемых систем (Рисунок 3). Несмотря на скромный вид и низкую стоимость (около 35$), вы получаете реальный компьютер, который может стать основой для множества проектов.

Рисунок 3. Одноплатный компьютер Raspberry Pi.

BeagleBone является, пожалуй, наименее известной из всех трех платформ, но ее возможности заслуживают внимания создателей встраиваемых приложений. Это мощный Linux-компьютер компактных размеров, который поддерживает работу с ОС Android и Ubuntu (Рисунок 4).

Рисунок 4. Linux-компьютер BeagleBone.

Сравнение трех платформ для разработки.

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

Таблица 1. Сравнение характеристик плат Arduino Uno, BeagleBone, RaspberryPi.

Платформа Arduino Uno Raspberry Pi BeagleBone
Модель R3 Model B Rev A5
Ориентировочная цена 29.95$ 35$ 89$
Габаритные размеры 7.5 × 5.3 см 8.5 × 5.4 см 8.6 × 5.3 см
Микроконтроллер ATmega328 ARM11 ARM Cortex-A8
Тактовая частота 16 МГц 700 МГц 700 МГц
ОЗУ 2 Кбайт 256 Мбайт 256 Мбайт
Flash-память 32 Кбайт SD карта 4 Гбайт (SD карта)
EEPROM 1 Кбайт
Напряжение питания 7 – 12 В 5 В 5 В
Минимальноеэнергопотребление 42 мА (0.3 Вт) 700 мА (3.5 Вт) 170 мА (0.85 Вт)
Цифровые линииввода/вывода 14 8 66
Аналоговые входы 6(10-битный АЦП) 7(12-битный АЦП)
Каналы ШИМ 6 8
Интерфейс TWI/I2C 2 1 2
Интерфейс SPI 1 1 1
Интерфейс UART 1 1 5
Инструментыразработки Arduino IDE IDLE, Scratch,Squeak/Linux Phyton, Scratch,Squeak, Cloud9/Linux
Порт Ethernet 10/100 10/100
Интерфейс USB Master 2 USB 2.0 USB 2.0
Видео выход HDMI, композитный
Аудио выход HDMI, аналоговый Аналоговый

Arduino и Raspberry Pi – недорогие платы стоимостью до 40$. BeagleBone предлагается по цене почти трех Arduino Uno. Однако Arduino в 40 раз медленнее и имеет в 128,000 раз меньше оперативной памяти, чем два оставшихся участника. Уже на данном этапе вы можете видеть важные отличия. Arduino и Raspberry Pi – дешевые платы, а Raspberry Pi и BeagleBone – гораздо более мощные.

Кажется, что Raspberry Pi выглядит на данный момент оптимальным решением, но это не совсем так: для работы вам потребуется отдельно приобрести карту памяти SD, а это еще 5 – 10$ к стоимости самой платы.

Также, несмотря на одинаковую тактовую частоту, по тестам BeagleBone работает вдвое быстрее Raspberry Pi. И как бы парадоксально это не звучало, Arduino является оптимальным выбором, по крайней мере, для новичков.

Основной причиной этому является операционная система Linux, под управлением которой работают платы Raspberry Pi и BeagleBone.

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

Заметим интересную особенность Raspberry Pi и BeagleBone: возможность запускать программные приложения с карты памяти (SD-карта для Raspberry Pi, microSD – для BeagleBone).

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

Таким же образом можно сменить операционную систему.

Выбор платформы для разработки

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

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

Для компактных устройств мы рекомендуем платформу Arduino. Все три тестируемые модели плат для разработки являются малогабаритными. Единственный отрицательный момент присущ Raspberry Pi – установленная в слот карта памяти SD делает плату больше остальных участников теста (Рисунок 8).

Как мы заметили выше, существует очень много вариаций плат Arduino (Рисунок 5), но у всех есть две общие черты: используется определенный микроконтроллер компании Atmel и программный загрузчик (bootloader) Arduino, который реализует базовые функции платы. Для компактных устройств (возможно, не требующих применения печатной платы) вы можете приобрести этот дешевый микроконтроллер и запрограммировать в него загрузчик с помощью любого программатора AVR микроконтроллеров.

Рисунок 5. Представители аппаратной платформы Arduino имеют различные размеры и форм-фактор.

Для разработки приложений, требующих подключения к сети Интернет, мы рекомендуем BeagleBone или Raspberry Pi. Оба устройства работают под управлением ОС Linux, имеют порты Ethernet и USB (Рисунок 6).

Посредством USB можно подключать модули беспроводной передачи данных и, таким образом, реализовать функции беспроводной передачи данных и подключение к сети Интернет (Рисунок 7).

К тому же, ОС Linux имеет множество встроенных программных компонентов, предоставляющих расширенные сетевые функции.

Рисунок 6. Arduino Uno, BeagleBone, RaspberryPi. Порт Ethernet имеется только у BeagleBone и RaspberryPi.
Рисунок 7. Миниатюрные адаптеры Wi-Fi могут подключаться непосредственно к платам BeagleBone и RaspberryPi. ОС Linux поддерживает данные типы устройств.

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

Для приложений и систем взаимодействующих с внешними датчиками и исполнительными механизмами мы рекомендуем Arduino или BeagleBoard. Любой вариант аппаратной платформы Arduino подразумевает простое подключения внешних сенсоров и взаимодействие с ними.

Для радиолюбителей доступно нескольких вариантов плат с напряжением питания 3.3 В и 5 В, что упрощает подключение внешней периферии. Напряжение питания платы BeagleBone составляет 3.

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

  И Arduino, и BeagleBone имеют интерфейс аналого-цифрового преобразователя (разрешение АЦП, встроенного в микроконтроллер на плате BeagleBoard, несколько выше), что говорит о возможности подключения различных аналоговых датчиков.

С учетом сказанного, важно отметить, что многие современные датчики снабжены цифровыми интерфейсами I2C или SPI. Все три платы поддерживают этот тип последовательного интерфейса и реализовать взаимодействие с ним можно довольно легко.

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

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

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

Для приложений с графическим пользовательским интерфейсом рекомендуется использовать Raspberry Pi. Одноплатный компьютер Raspberry Pi действительно можно выделить в отдельную категорию, поскольку плата снабжена выходом HDMI (Рисунок 8).

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

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

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

Заключение

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

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

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

В платформе BeagleBone идеально совмещена гибкость Arduino, производительность процессора платы Rapberry Pi и ОС Linux  (и на самом деле, производительность выше, чем у Raspberry Pi). Имея достаточное количество входов/выходов, BeagleBone обеспечивает простое подключение к сети и позволяет реализовать web-сервер.

makezine.com

Источник: https://www.rlocman.ru/review/article.html?di=148907

Как выбрать и где купить Arduino

Arduino Uno

Существует множество разновидностей плат Арудино: Nano, Mini, Uno, Leonardo, Mega, Lilypad… Новичку сложно разобраться в их многообразии. В этой статье я расскажу о разновидностях плат ардуино. В конце статьи есть ссылки на проверенных мной продавцов, у которых можно купить плату Arduino. Нажмите на ссылку для быстрого перехода к таблице со ссылками.

Основные различия плат Arduino:

Ардуино отличаются между собой:

  • размером
  • количеством выводов
  • объёмом памяти

Размер платы, прежде всего влияет на удобство работы с ней. Самая распространённая плата – Arduino Uno (и её обновлённая версия Arduino Leonardo) имеют размер примерно 6×5 см. Это позволяет обходиться без лупы при создании прототипа на макетной плате и получать достаточно компактные рабочие устройства. Arduino Nano — очень компактна. Её размер всего 4,4×1.

Читайте также:  Avr studio: среда разработки для программирования и отладки

9 см, при этом её функционал ничем не отличается от больших плат. Также Arduino Nano отлично крепится на макетной плате за счет выводов типа «папа». В попытке сделать платы еще меньше были выпущены версии Arduino Micro (клон Arduino Uno, выпущенный на плате размером 4.8х1.

77 см) и Arduino Mini (минимальная комплектация — отсутствует разъем USB для питания и заливки прошивки, прошивка заливается через специальный переходник. Забавный факт: arduino mini гораздо меньше, чем micro, при этом micro почти одинакового размера с nano. Так что название моделей плат — это просто названия моделей плат и реальный размер оно не отражает.

Существует ещё огромная, 10,2 * 5,3 сантиметров Arduino Mega. Такой размер она получила не просто так. На плате расположено целых 70 выводов.

Количество выводов определяет количество внешней периферии, которое вы сможете подключить к плате: светодиоды, сервоприводы, разнообразные датчики, модули,кнопки и многое другое. На платах есть цифровые и аналоговые выводы. Цифровые выводы могут принимать только 2 значения: HIGH и LOW. HIGH соответствует наличию тока на выводе, LOW – отсутствию.

Захотели зажечь светодиод — перевели вывод в состояние HIGH. На выводе появилось напряжение и светодиод загорелся. Выдали LOW и светодиод погас. Цифровые выводы могут также и считывать значения, аналогично, только 2 состояния. Если на вывод извне (например, с кнопки) подаётся напряжение ~+5В, то контроллер считает значение HIGH.

Напряжение меньше 5 вольт будет определено, как LOW.
Аналоговые выводы позволяют считывать значение прилагаемого напряжения в диапазоне от 0 до 1024. Где 0 — 0 вольт, 1024 — 5 вольт. Диапазон измерений может быть изменён путём подачи опорного напряжения на специальный вывод AREF. При этом, любой аналоговый вывод можно использовать как цифровой.

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

Цифровые выводы могут ещё поддерживать ШИМ: специальный режим работы для управления яркостью свечения светодиода или скоростью вращения моторчика. Однако, здесь всё просто: nano, mini и uno располагают шестью выводами с поддержкой ШИМ. Leonardo и micro оборудованы семью ШИМ выводами, и только гигантская Arduino Mega 2560 вырывается вперёд с четырнадцатью ШИМ выводами.

Объём памяти, на первый взгляд, очень важный параметр. Однако, не относитесь к плате, как к компьютеру. Здесь не нужно много оперативной и уж тем более постоянной памяти. Я не буду подробно останавливаться на этом.

Потому, что самая «бедная» в этом плане Arduino Nano имеет всего 32 килобайта постоянной и 2 килобайта оперативной памяти, но к тому моменту, как написанная вами программа для микроконтроллера перестанет влезать в эти 32 килобайта постоянной памяти, вы уже будете прекрасно разбираться во всём самостоятельно, и эта статья вам не понадобится. Серъёзно: 32 килобайта — просто огромная память для программы микроконтроллера.

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

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

Большинство контроллеров позволяют сохранить лишь 1 килобайт данных. Кроме малого объёма существует ещё и лимит на количество операций записи. Всего 10 000 раз можно записать данные в одну ячейку (считывать данные можно любое количество раз). 10 000 — на первый взгляд не так уж и мало. Запись осуществляется в ячейки по 1 байту.

Итого, у нас есть 1 000 ячеек. Например, если опрашивать некий датчик всего один раз в минуту и сохранять его значение в память и при том каждый раз в новую ячейку, устройство проработает (((100 000 * 1 000)/60)/24)/365 = 190 лет. Однако, чаще всего приходится записывать данные в одну ячейку (например, количество секунд).

И тогда ресурс снижается уже до 2,5 месяцев непрерывной работы, и это для записи раз в минуту. Если же возникнет задача обновлять значение раз в секунду, то и вовсе всего через 27 часов EEPROM будет повреждена. Поэтому, энергонезависимую память используют для сохранения настроек и других редко обновляемых значений.

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

Выбираем плату

Самая популярная плата — Arduino Uno. Все остальные платы имеет смысл сравнивать именно с ней. Это плата небольшого размера. По краям платы расположены 14 цифровых и 6 аналоговых входов/выходов.

Arduino UNO

Плата размером  6,9 × 5,3 см наиболее удобна для создания быстрых прототипов. Не слишком большой размер и удобные разъёмы для подключения проводов от макетной платы делают её весьма удобной для новичков. Так называемые шилды (Shield) — в 99% случаев созданы именно для установки на плату Arduino Uno.

Сейчас получает распространение другая плата, Arduino Leonardo, которая является идеологическим продолжением UNO. Она имеет незначительные различия в назначении некоторых специальных выводов и подключается к компьютеру гораздо более компактным кабелем micro USB.

Большинство шилдов для UNO подходят и к Leonardo, но возможны неприятные сюрпризы из-за несоответствия некоторых выводов.

Arduino Leonardo

Это действительно наиболее оптимальный вариант платы Arduino. Если вы приобретаете плату первый раз и просто хотите попробовать свои силы, ваш выбор — Arduino Uno или Leonardo. Большинство готовых наборов, кстати именно поэтому и комплектуются именно платой UNO. Подробнее о подборе готового набора я расскажу в конце статьи.

Довольно интересная разновидность — Arduino Nano. Это плата размером всего 4,4см x 1.9см, при этом она полностью совместима с Leonardo по функционалу. Продаются даже специальные переходники для подключения шилдов от UNO к Nano. Платы идентичны по количеству выводов, объёму памяти, быстродействию.

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

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

Arduino Nano

Arduino Nano

Arduino Mega — самая большая плата семейства Arduino. Больше памяти, огромное количество выводов (70!). Эта плата предназначена для сложных устройств, к которым планируется подключение множества разнообразной периферии. На самом деле правильное название для платы — Arduino Mega 2560.

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

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

Единственное серъёзное преимущество Mega перед другими платами— объём памяти для загрузки программы. Однажды мне понадобилось вывести на бегущую строку большое количество графической информации и программа занимала почти 100Кб.

Проект собирался на пару дней и переписывать алгоритм под хранение информации на SD карте не хотелось. Тут мне на помощь и пришла Mega.

Arduino Mega

Где покупать плату Arduino

Изначально Arduino была разработана итальянскими инженерами. Автором идеи считается Массимо Банци (Massimo Banzi). Именно плата, произведённая в Италии считалась оригинальной Ардуино. Позже в команде разработчиков случился раскол и оригинальные платы производятся как в Италии, так и в США.

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

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

Серъёзно, самая дешёвая плата Arduino Mini, оригинал с завода в Италии, в России стоит 1400 рублей, тогда как Китайский клон можно заказать за 2$ c бесплатной доставкой. Покупать платы удобнее всего на популярной интернет-площадке Aliexpress. В конце статьи я собрал для вас ссылки для заказа плат и различных датчиков, которые я сам заказал и убедился в их качестве.

Так же там вы найдёте ссылки для заказа готовых наборов для начала изучения мира Arduino. Если же вы по каким-то причинам намерены приобрести оригинальную плату, то отправляйтесь на сайт «Амперка». Там точно оригинальные платы.

Итог

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

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

Источник: https://uscr.ru/kak-vibrat-arduino/

Сравнение плат Arduino – Марсоход

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

И кто все это придумывает и делает? У этих инженеров наверное супер-мозг? А знаете что? Вы и сами можете попробовать сделать что-нибудь электронное и удивительное.

Может быть созданное вами «изделие» и не будет продаваться миллионными тиражами, но вот удивить знакомых Вы на самом деле сможете. Если Вы хоть немного в душе радиолюбитель, и не боитесь слова паяльник, и у Вас есть немного упорства – у Вас все получится.

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

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

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

Примеров реализованных «устройств» для Arduino так же много в интернете.

Плата Марсоход еще не так хорошо известна, но его авторы сами делают машинки-роботы и всякие игрушки на ее основе. Все исходные тексты проектов так же находятся у них на сайте в свободном доступе. Вот такая получается у нас сводная таблица:Дальше, пожалуй, сравнивать в таблице не получится 🙂 Давайте просто посмотрим на некоторые технические возможности этих плат.

Читайте также:  Ардуино эмулятор tinkercad: мигаем светодиодом

Плата Arduino Duemilanove (ATmega168)

* Питание: +5V * Число цифровых входов/выходов: 14 * Число аналоговых входов: 6 * Допустимый ток входа/выхода 40 mA * Объем флеш памяти: 16 KB * Объем SRAM: 1 KB * Объем EEPROM: 512 bytes * Частота генератора: 16 MHz

Плата Марсоход

* Напряжение питания: 2.5-4.6в (VCC) * Всего пользовательских пинов: 22 * Из них повышенной мощности (для моторов): 6 * Максимальный ток одного пина — 25 ма * Максимальный ток «моторого» пина — 250 ма * Входное напряжение на пин от -0.7В до VCC+0.7В * Внутренний генератор чипа ~ 5мГц * Количество логических элементов/триггеров: 240 * Объем флеш памяти: 512х16 бит = 1024 байт.

При беглом просмотре этих характеристик параметры платы Марсоход несколько удивляют. В самом деле, объем флеш памяти гораздо меньше, чем у ATmega168, оперативной памяти SRAM – вообще нет. Да и что такое «количество логических элементов/триггеров»? И как-то их мало – всего 240…

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

А вот для платы Марсоход нужно «рисовать схемы электрические-принципиальные». Конечно, можно вместо схем применять специальные языки описания аппаратуры типа Verilog или VHDL, но это сути не меняет.

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

Возможно тем, кто начинал с программирования микроконтроллеров покажется все это довольно трудным. Тут действительно есть над чем подумать. На самом деле типичное программирование на языке типа СИ – это описание последовательных действий процессора. В ПЛИС все не так.

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

Предлагаю посмотреть конкретные примеры самых простых проектов.

Будем делать одно и то же, но на разных платах: Arduino и Марсоход.

Например, возьмем простой пример «Button», опубликованный на сайте Arduino. В этом примере микроконтроллер периодически опрашивает состояние одной входной линии, к которой подключена кнопочка. Если кнопка не нажата, то на входной линии будет значение «ноль» (линия немного притянута к земле резистором). Если кнопка нажата, то на линии будет напряжение питания, то есть «единица». Микроконтроллер записывает в порт это значение и подключенный светодиод загорается или гаснет. По моему – это отличный пример. Вот посмотрите его исходный текст:

// constants won't change.

They're used here to // set pin numbers: const int buttonPin = 2; // the number of the pushbutton pin const int ledPin = 13; // the number of the LED pin // variables will change: int buttonState = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinMode(ledPin, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPin, INPUT); } void loop(){ // read the state of the pushbutton value: buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed. // if it is, the buttonState is HIGH: if (buttonState == HIGH) { // turn LED on: digitalWrite(ledPin, HIGH); } else { // turn LED off: digitalWrite(ledPin, LOW); }

}

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

void loop() { digitalWrite(ledPin, digitalRead(buttonPin) );

}

По моему так гораздо понятней 🙂

Нужно обратить внимание, что поскольку это программа выполняется микроконтроллером, то конечно, между моментами опроса состояния кнопки проходит время пропорциональное количеству инструкций микропроцессора всего цикла loop(){…} и его тактовой частоты.

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

По сути дела в нашей схеме всего один провод от входа, куда подключена кнопка, к выходу куда подключен светодиод. Конечно есть еще между ними логический элемент – «НЕ». Он из сигнала «ноль» делает «единицу» и наоборот. Этот элемент инвертор нужен, так как схема платы Марсоход отличается от, той что предложена у Arduino.

Там кнопка подключена к напражению питания, а второй контакт идет на вход ATmega168 и притянут к земле через резистор. На плате Марсоход все наоборот. Кнопка подключена к земле, а второй контакт идет на вход чипа и притянут к напряжению питания через слабый резистор (Weak pull-up resistor).

Из-за этого логика получается обратной и нужен элемент «НЕ».

Обратите внимание, что такой проект будет «работать» гораздо быстрее, чем программа в Arduino.

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

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

И еще одно замечание. Конечно большие проекты не рисуются схемами. Вот так могла бы выглядеть та же схема, но написанная на языке программирования аппаратуры Verilog:

module test( input wire key, output wire led ); assign led = !key;

endmodule

Возможно этот пример с кнопкой Вам покажется каким-то тупым. Действительно смысла в нем не очень много. Однако он проясняет самое главное.

Делая проект для платы Марсоход Вы устанавливаете в проект нужные логические элементы типа «И», «ИЛИ», «НЕ», а так же триггера и соединяете их проводами.

Среда разработки Altera QuartusII автоматически разместит всю логику вашего проекта внутри чипа и соединит нужные элементы проводами.

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

Мне больше нравится Марсоход. Он заставляет больше думать и делать удивительные вещи с помощью казалось бы совершенно маленьких ресурсов. Обязательно посетите этот сайт marsohod.org и хотя бы посмотрите примеры уже реализованных проектов.

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

И многое другое!

Источник: https://habr.com/post/89585/

arduino — Мир науки,техники,медицины и образования © первая научно-техническая коммерческая социальная сеть

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

Если же говорить непосредственно о платах Arduino, то их, нужно сказать, не так уж и мало. На сегодняшний день существует большое количество видов плат Arduino, начиная с классических Arduino UNO, Leonardo, Mini, Micro и Nano и заканчивая специфическими Industrial 101, Tian и MKR1000.

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

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

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

Но при всём этом ажиотаже вокруг Ардуино не стоит забывать о других прекрасных альтернативах Ардуино. Есть многочисленные платы которые используют чипы такие отличные от AVR в Ардуино. Этот список о платах без AVR чипов.

Ti MSP430 LaunchPad

Для ценовой категории около 10$ Ti MSP430 LaunchPad является отличным малобюджетным решением, как альтернатива Ардуино (имеется ввиду оригинальные Ардуино, а не китайские копии)

The MSP430 LaunchPad можно использовать совместно с 3-мя Ti поддерживаемыми IDEs: Energia IDE, CCS Cloud, и Code Composer Studio.
Energia визуально очень похожа на Arduino IDE и поставляется с большим количеством примеров программ, включая “Getting Started with Energia” и “The MSP430 is Very Easy.”

Как и платформа Ардуино – платформа LaunchPad имеет различные “booster packs” (аналог шилдов) для добавления функциональности к платформе LaunchPad.

Netduino

Netduino базируется на основе ARM микроконтроллерах запрограммированных с .NET framework. Что касается МК, они комплектуются камнями с частотой вплоть до 168 Mhz.
Одним из преимуществ использования Netduino (который к слову выходец из Ардуино) это ардуино совместимое расположение пинов (как в Arduino UNO).

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

Teensy (ARM-Based)

Teensy, который к слову переводится как “крошечный”, это линейка плат для разработчиков (development boards) небольшого размера (примерно как Arduino Micro) основанных на микропроцессорах Freescale ARM Cortex-M4.

Он имеет тактовою частоту процессора до 75Mhz, несколько дата шин, толерантные к 5 вольтам пины и более менее разумные цены. Эта кроха (Teensy) предлагает хороший функционал в небольшой упаковке.


Teensy использует Arduino IDE, что весьма хорошее решение, так как много ваших скетчей (программных кодов) будут работать без особых изменений. Кроме всего прочего имеются add-on платы (модули. шилды) для Teensy чтобы увеличить её функциональность (да и модули о ардуино спокойно подойдут)

Particle Photon

Изначально начал свой путь как проект на Kickstarter под другим именем, Particle Photon (что переводится как “Частичка Фотона”) имеет функцию Wi-Fi (встроенный) начинает набирать популярность.

Particle’s оснащен ядром ARM Cortex M3 с тактовой частотой 120Mhz программируется с помощью Photon’s cloud-based (облачного) IDE. который предлагает некоторые дополнительные функции для ваших будущих IOT проектов.
Photon расширяет свою линейку продуктов с помощью нескольких шилдов, а также имеет 3G вариант платы – the Electron которая вышел в конце января 2016 года.

ESP8266

Да, мы не ошиблись, речь пойдёт именно о ESP8266, хотя ESP8266 и не является платой разработки (dev board) как выше перечисленные, а правильней сказать является микропроцессором с функцией WiFi который так же становится популярным, набирая обороты.

Цены на модули для разработчиков с ESP8266 начинаются от 2$ и имеют множество вариантов исполнения доступных для покупки. ESP8266 могут быть запрограммированы с Arduino IDE и имеет много доступной документации.

По цене эту плату (модуль) трудно победить. Только будьте осторожны! Эти платы питаются исключительно от 3.3 вольт, ни в коем случае не подключайте питание больше 3.3 вольт

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

Читайте также:  Raspberry pi 3: микроконтроллер с большим количество модулей

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

Источник: https://industriya.com/posts/95-sravnenie-plat-arduino-tablica.html

Arduino Uno – описание и обзор платы

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

По сути Ардуино представляет собой целое семейство многофункциональных микроконтроллеров. Наиболее распространены и чаще всего сегодня применяются во всем мире платы Arduino Uno, Nano, Mega, PRO mini. Интернет-магазин Вольтик.

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

Ардуино – это современная умная технология, отличающаяся эффективностью и качеством, на ее базе формируются разного рода устройства. Они несут в себе удобство и выгоду.

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

По периметру плат размещены входы и выходы, например, в Arduino Mega их может быть более семидесяти, а в Pro Mini двадцать два. Они бывают аналогового и цифрового типа.

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

  • светодиоды, кнопки, динамики;
  • разного рода модули;
  • дисплеи, сервоприводы;
  • дальномеры, микрофоны;
  • гироскопы и много чего еще.

В каких целях используется Arduino?

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

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

Его может освоить любой желающий. Для этого была создана среда под названием Arduino IDE.

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

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

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

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

Желающие могут подключить к Ардуино аналоговый джойстик с кнопкой и двумя осями. Arduino позволяет работать с жидкокристаллическим дисплеем и с I2C модулем FC-113.

Используя его можно производить передачу информации и питание всего по четырем проводам.

Купить с доставкой на дом, офис в интернет-магазине Voltiq.ru можно платы типа Arduino Uno, Arduino Nano, Arduino Mega, Arduino PRO mini и некоторые другие модели. На них установлена доступная для всех стоимость. Покупатели могут выбрать один из наиболее удобных для них способов оплаты, быстро оформить заказ и доставку в любой регион страны и по всему миру.

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

Наиболее популярные платы Arduino

Чаще всего сегодня применяются такие виды плат как:

  • Arduino Uno;
  • Arduino Nano;
  • Arduino Mega;
  • Arduino PRO mini.

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

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

Сердцем платы стал микроконтроллер ATMega328 наделенный большим объемом памяти.

Arduino Nano отличается компактностью и мощностью. Плату можно применить для создания миниатюрных устройств самого разного назначения. На нее подается питание посредством мини порта USB. Встроенных 30 КБ Flash-памяти хватает для записи большинства видов программ. Любой тип источника питания распознается автоматическим путем. Установленный внешний программатор подключается через разъем ICSP.

Arduino PRO mini отличается небольшими размерами, потому что в ней нет встроенного программатора. Она позволяет управлять самыми разными устройствами и датчиками. Разъемы платы не зафиксированы на ней, что позволяет быстро и легко подключать ее, выполнять навесной монтаж. Производитель выпускает несколько модификаций Arduino PRO mini, которые отличаются друг от друга параметрами.

Arduino Mega отличается наличием пятьдесят четырех цифровых выходов и входов. Плата работает на контроллере ATmega1280 или 2560. Подключается она к компьютеру за счет использования USB кабеля. Она мощная и универсальная.

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

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

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

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

Источник: https://megaobzor.com/Arduino-Uno—opisanie-i-obzor-plati.html

Операции сравнения

Главная → Библиотека Arduino → Описание языка Arduino на русском языке → Операции сравнения Библиотека Arduino → Описание языка Arduino на русском языке if (условие) и ==,! =, (сравнение)if, В сочетании с операторами сравнения проверяет, выпролняется ли условие, и выбирает алгоритм для того или иного случая. 

if (someVariable > 50){ // тело условия

}

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

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

if (x > 120) digitalWrite (LEDpin, HIGH);
if (x > 120)
digitalWrite (LEDpin, HIGH);
if (x > 120){ digitalWrite (LEDpin, HIGH); }
if (x > 120){
digitalWrite (LEDpin1, HIGH);
digitalWrite (LEDpin2, HIGH);
}//Все варианты верны

Операторы сравнения:
x == y (x равен y)
x! = y (x неравен y)
x < y (x меньше y)
x > y (x больше y)
x ≤ y (x меньше или равно y)
x >= y (x больше или равно y)
Внимание:
Остерегайтесь использования символа одиночного равенства (if (x=10)).

В этом случае выполниться присваивание переменной x значения, равного 10. Вместо этого необходимо использовать символ двойного равенства (if x==10), который как раз и сравнивает, равно значение переменной 10 или нет. Предыдущая запись будет всегда верной.Учтите, что if возвращает TRUE при любом ненулевом значении.

if может использоваться в виде полной структуры if…else

if / else

if/else дает больший контроль над выполнением кода, поскльку в случае верного условия выполняется только один блок операторов и в другом случае — только другой блок операторов.

if (pinFiveInput < 500){ // Действие А}else{ // действие B

}

Также, возможно расширение количества вариантов за счет использования else if помимо блока else.

if (pinFiveInput < 500)

{ // Действие A}

else if (pinFiveInput >= 1000)

{ // Действие B}else{ // Действие C

}

конструкция for
Описание:

Конструкция for позволяет повторять выполнение определенного участка кода — тело цикла. Счетчик обычно икрементируется при каждом повторе и служит для выхода из цикла.

Данная конструкция позволяет более просто выполнять какие-либо повторяющиеся действия, и часто используется, например, с массивами, или выводами МК.

Имеется три управляющих значения для данной конструкции: 

for (initialization; condition; increment) {
//statement (s);
}

initialization случается первой и всего один раз. Каждый раз проверяется условие condition; Если оно верно, цикл продолжает работу, после чего выполняется increment, и снова проверяется condition. Когда условие condition слоновится ложным происходит выход из цикла.
Пример:// Dim an LED using a PWM pin

int PWMpin = 10; // LED in series with 1k resistor on pin 10
void setup (){ // no setup needed}

void loop ()

{

for (int i=0; i ≤ 255; i++){

analogWrite (PWMpin, i);
delay (10); }

}

Совет программисту:

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

switch / case

Также как и оператор if, switch…case позволяют направлять программу по различным участкам кода.

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

Оператор break позволяет выходить из условия switch, и используется в конце каждого из вариантов. Без break,switch будет выполнять все варианты подряд, вызывая ошибку.

Пример

switch (var) {
case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional

}

Синтаксис:
switch (var) { case label: // statements break; case label: // statements break; default: // statements

}

Параметры:var: переменная, которую собираемся сравниватьlabel: значение, с которым сравниваем переменную

цикл while

Описание:

Цикл while позволяет выполняться сколь угодно долго время вплоть до бесконечности, пока условие внутри () не станет ложным. Что- В теле цикла что-то должно менять значение, иначе из кцикла мы никогда не выйдем.
Синтаксис:
while (expression){
// statement (s)
}
Параметры:expression — Выражение, возвращающее true или false

Пример:

var = 0;
while (var < 200){
// Делаем что-то повторяющееся 200 раз var++;

}

do — whileЦикл do работает по тому же принципу чтои while, однако сначала выполняется тело цикла, а уже потом проверяется условие. Таким образом, цикл выполнится у нас хотя бы один раз. do

{ // statement block

} while (test condition);

Пример:
do{

delay (50); // wait for sensors to stabilize

x = readSensors (); // check the sensors
} while (x < 100);

break

break используется для выхода из циклов do, for, или while. Он также используется для выхода из switch.

Пример:

for (x = 0; x < 255; x ++){

digitalWrite (PWMpin, x);

sens = analogRead (sensorPin);
if (sens > threshold){ // bail out on sensor detect x = 0; break; }

delay (50);

}

continue

continue пропускает текущую итерацию циклов (do, for, or while).
Пример:
for (x = 0; x < 255; x ++){

if (x > 40 && x < 120){ // create jump in values

continue; }

digitalWrite (PWMpin, x);

delay (50);
}

return

Прекращает выполнение функции и возвращает значение в родительскую функцию, если таковое имеется.

Синтаксис:

return;
return value; // both forms are valid
Параметры:value: переменная любого типа или константа

Пример:

Фукнция сравнивающая входное напряжение с определенным значением.

int checkSensor (){
if (analogRead (0) > 400) { return 1; else{ return 0; }

}

Весь программный код, написанный после оператора return; будет висеть мертвым грузом в памяти программ, поскольку никогда не будет выполнен.

void loop (){

// гениальный кодreturn;// бесполезный код//он никогда не познает, что такое жизнь…

}

goto

Переносит точку выполнения программы к определенной метке

Ситаксис:

label:
goto label; // посылает программу к нашей метке
Совет:
Использование этого оператора в настоящее время является дурным тоном программирования, хотя и делает некоторые программы более легкими. Однако, легкость алгоритма предоставляет возможную невозможность (:)) последующего дебаггинга такой программы.Одним из вариантов использование оператора goto является выход из вложенных циклов, к примеру:

for (byte r = 0; r < 255; r++){
for (byte g = 255; g > -1; g–){
for (byte b = 0; b < 255; b++){
if (analogRead (0) > 250){ goto bailout;}//как только выполняется условие бежим из этой тьма-тараканьи… // больше параметров …  } }}

bailout;

Описание языка Arduino, Операции сравнения

06.04.2011, 10587 просмотров.

Источник: http://arduino.net.ua/Arduino_articles/Opisanie%20jazyka%20Arduino%20na%20russkom%20jazyke/Operacii%20sravnenija/

Ссылка на основную публикацию
Adblock
detector