Какие мк являются основами arduino

IT портал Железногорска

Arduino, это одноплатный компьютер на базе микроконтроллера (МК) Atmel, с простой и бесплатной средой разработки (ArduinoIDE). Сам микроконтроллер представляет собой небольшой чип, который выполняет все вычисления.

мк чип

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

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

МК имеет ножки ввода/вывода (в/в), они указаны на фото снизу, они предназначены для связи с внешним миром, именно к ним, мы бы подключали термометр и экран из предыдущего примера.

выводы

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

Язык Assembler

Т.к. ресурсы МК не бесконечны и, можно сказать, они очень ограничены, всего 16кб в ATmega328 на программу. Основным языком программирования МК является Assembler – низкий язык. Прошивки на нем выполняются практически мгновенно и занимают меньше места. Но на создание уходит уйма времени, код получается громоздким и нечитабельным, а также требуются хорошие знания периферии МК.

assembler

Язык «С» для МК

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

Язык «С» был намного понятнее Assembler’а, но программисту все еще необходимо было за многим следить: назначать порты в/в, подключать сторонние библиотеки и т.д. Таким образом, для работы с ЖК-дисплеем, надо было скачать из интернета файл с библиотекой, установить его в программу, а они не все корректно работали, и на это уходило достаточно много времени. Это были проблемы, связанные только с программной частью, а не будем забывать про аппаратную, к каждому контроллеру желательно установить кварцевый резонатор, он предназначен для синхронизации частоты процессорного такта, иначе от физических условий она будет не стабильной. Частота работы контроллера изменялась бы от температуры окружающего пространства, давления и т.д.

Смысл Arduino

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

ардуины

Преимущества Arduino

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

Недостатки Arduino

К недостаткам следует отнести объемный исходный код скетчей, вспомним, что в МК памяти всего 16кб, а в каждой плате Arduino «зашит» свой загрузчик(bootloader), он заставляет контроллер понимать и запускать прошивки, но весит 2кб, т.е. у нас остается 14кб. А сам код в Arduinoстал более объемным по размеру, поэтому разработчик сильно привязан к памяти и иногда приходится жертвовать определенным функционалом. Это является основной проблемой платы Arduino, в остальном оно является отличной основой для создания «умного дома».

Что нас ждет далее?

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

Что такое Arduino?

Что такое Arduino?

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

Возможности

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

Arduino — это не просто универсальный микроконтроллер, который можно адаптировать под любой проект за минимальное время. Это простейшая и доступная для изучения среда разработки Arduino IDE, которая служит для вовлечения в программирование и робототехнику, а также для быстрой разработки проектов. На основе Arduino можно собрать 3D-принтер или станок с ЧПУ. Все это происходит благодаря тому, что у платформы Arduino одно из самых больших сообществ, а также доступно огромное количество примеров, руководств и готовых библиотек для разработки.

Модули Arduino

Модули базовых контроллеров Arduino получили широкое распространение благодаря своей универсальности. Популярные платы Arduino Uno и Leonardo имеют достаточный набор периферии, а платы Mega и Due — расширенный. Даже компактные модули типа Pro, Micro и Nano подойдут для собственного проекта. В последнее время появились модули Mega сразу с установленным SoC ESP8266 и беспроводной связью Wi-Fi на борту.

Модули Arduino представляют собой платы со встроенным процессором, памятью и периферией, которая позволяет реализовать базовый функционал посредством одной всего платы. Для расширения возможностей служат дополнительные модули-шилды, которые работают с двигателями и сенсорами различных типов, а также способны читать и писать на карты памяти и накопители, поддерживают USB Host, умеют работать с Ethernet, Bluetooth и Wi-Fi. Модули расширения уровня Industrial имеют гальваническую развязку, а модули для умного дома подойдут с целью прототипирования устройств IoT ( «интернета вещей»). Вы даже можете сделать свой собственный web-сервер на основе Arduino.

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

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

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

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

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

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

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

Микроконтроллер arduino: характеристики, возможности, проекты

Сейчас в мире людей, увлечённых техникой, наблюдается настоящая “ардуиномания”. Этому маленькому загадочному устройству посвящены тысячи статей, сотни блогов и форумов.

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

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

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

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

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

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

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

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

Тем не менее, говоря об Ардуино, обычно подразумевают первоначальную ветвь проекта на сайте arduino.cc.

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

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

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

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

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

Конструктив

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

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

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

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

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

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

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

Как и Arduino, сборка плат производится в стопки.

Самый миниатюрный клон был выпущен под торговой маркой Femtoduino. Его размеры всего 15*20 мм, включая разъем micro USB, стабилизатор напряжения и полный комплект ввода-вывода Arduino UNO. Той же компанией выпущен самый нафаршированный миниатюрный клон под торговой маркой IMUduino.

Это клон Arduino Leonardo с поддержкой USB Host (клавиатура и мышь), Bluetooth 4 Low Energy, шестиосный гироскоп/акселерометр, трехосный магнитометр (компас), барометр. Размер устройства 16*40 мм. К сожалению, проект на данный момент не предлагает совместимых по цоколевке плат расширения.

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

Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader).

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

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

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

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

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

ARM Cortex M

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

ESP8266

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

Intel x86

В рамках сотрудничества со сторонними производителями в Arduino IDE была включена поддержка некоторых аппаратных средств Intel x86.

Intel Galileo (процессор Intel Quark X1000 400 МГц), Intel Edison и Arduino 101 — Arduino-совместимые платы на Intel x86 архитектуре. Платы механически и электрически совместимы с периферийными платами Ардуино.

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

Периферия

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

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

Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.

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

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

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

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

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

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

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

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

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

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

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

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

Достигается это преимущество не каким-то встроенным уже заранее программатором, а спецпрошивкой – бутлоадером.

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

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

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

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

Почему Arduino?

Существует множество микроконтроллеров и платформ для осуществления «physical computing». Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard и многие другие предлагают схожую функциональность.

Все эти устройства объединяют разрозненную информацию о программировании и заключают ее в простую в использовании сборку.

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

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

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

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

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

Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA8 и ATMEGA168 являются основой Arduino.

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

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

Что такое Arduino и что с ним можно сделать

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

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

На фото микроконтроллер Atmega328. Такие микроконтроллеры стоят на Arduino UNO и Arduino Nano (но в другом корпусе).

Но какой толк от мозга, если он не имеет рук? Руками в данном случае служат электрические выводы, размещённые по периметру платы Arduino. Есть платы с большим количеством выводов, есть с меньшим. Например, самая большая плата в семействе Ардуино – Arduino Mega – имеет более 70 независимых выводов, а самая маленькая – Arduino Pro Mini – всего 22 вывода.

На фотографии показаны в сравнении Arduino Mega и Arduino Pro Mini.

Не все выводы у Arduino одинаковые. Есть выводы цифровые, а есть аналоговые. Принципиальная разница между ними в том, что на цифровых выводах может быть только два значения: либо логическая “1” (TRUE, от 3 до 5 вольт), либо логический “0” (FALSE, от 0 до 1,5 вольт), а на аналоговых выводах – диапазон от логической 1 до 0 разбит на множество мелких участков.

Зачем это нужно? Давайте рассмотрим такой наглядный пример.

Если подключить к цифровому выводу Arduino светодиод и подать на вывод логическую “1”, то светодиод загорится с максимальной яркостью; если подать “0” – светодиод погаснет. Никаких промежуточных вариантов нет.

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

В итоге такое количество “рук” у Arduino позволяет подключать к нему огромное количество различных периферийных устройств. Среди них, например:

  • кнопки,
  • светодиоды,
  • микрофоны и динамики,
  • электродвигатели и сервоприводы,
  • ЖК дисплеи,
  • считыватели радиометок (RFID и NFC),
  • ультразвуковые и лазерные дальномеры,
  • bluetooth, WiFi и Ethernet модули,
  • считыватели SD карт,
  • GPS и GSM модули…

А также десятки различных датчиков:

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

Всё это превращает Arduino в универсальное ядро системы, которое может быть сконфигурировано совершенно разнообразными способами. Хотите сделать радиоуправляемую кормушку для питомца? Пожалуйста! Хотите чтобы при начале дождя у вас на лоджии закрывалось окно? Пожалуйста! Хотите управлять яркостью освещения в комнате со смартфона? Запросто!

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

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

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

Arduino позволит вашим программам выйти из виртуального мира в мир реальный.

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

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

Глава 3. Краткий обзор семейства микроконтроллеров Arduino

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

Основа — контроллер ATmega компании Atmel широко распространенного 8-разрядного семейства AVR. К нему добавляется узел электропитания и последовательный интерфейс. В последних версиях Arduino имеется USB-интерфейс.

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

Плату Arduino часто рассматривают как устройство ввода/вывода. Плата Arduino предоставляет в распоряжение пользователя 14 цифровых входов или выходов, из них шесть можно использовать как аналоговый выход (8-разрядный ШИМ-канал). Следующие шесть входов могут принимать аналоговые сигналы (10-разрядный АЦП). В качестве дополнительных интерфейсов предусмотрены шины SPI и 12С.

Имеется несколько вариантов исполнения плат Arduino (рис. 3.1-3.7). Оригинальные изделия производит итальянская фирма Smart Projects. Существуют также многочисленные клоны и копии других поставщиков, наконец, встречаются свободно распространяемые аппаратные средства.

Важный компаньон проекта Arduino— компания Sparkfun (Боулдер, Колорадо). Совместно с американским партнером выпущен ряд оптимизированных плат Arduino, в название которых добавлено обозначение “Pro”.

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

Многие пользователи предпочитают плату Arduino Duemilanove, изготовленную компанией Smart Projects, на которой установлен ATmega-контроллер в DIP-корпусе на панельке. Это изделие несущественно отличается от весьма успешного предшественника— Arduino Diecimilanove (рис. 3.2), которая названа в честь первых 10 000 проданных плат. На плате добавлен чип компании FTDI, реализующий интерфейс USB.

Новая плата Arduino Mega (рис. 3.1) имеет более мощный микроконтроллер (Atmegal280) и память большего объема, а также расширенные функции интерфейса ввода/вывода.

Плата Arduino Mini (рис. 3.3) существенно меньше по размеру и имеет формат DDP24. Весь модуль вставляется в 24-контактую панельку. Версия платы Arduino Pro Mini (рис. 3.5) компании Sparkfun почти идентична, но поставляется в планар-ном корпусе. Для программирования предусмотрен USB-адаптер, который может вставляться с боковой стороны модуля.

Плата LilyPad Leah Buechley (выпущенная в сотрудничестве с компанией Sparkfun) также совместима с Arduino, но обладает своими особенностями. Плата LilyPad и вспомогательные комплектующие специально разработаны для установки в одежду и реализуют симбиоз техники и дизайна. Характерная круглая форма платы LilyPad-Arduino (рис. 3.

7) также привлекает внимание необычной окраской и расположением контактов по окружности. Здесь применен микроконтроллер Atmegal68 с низким электропотреблением (3,3 В). Многочисленные маленькие платы внешних устройств (датчик, светодиоды, микропереключатель и т. п.

) выполнены в едином стиле под девизом “Сочетание электроники со швейным производством”.

Информация о новых версиях платы и комплектующих имеется на сайте проекта Arduino и сайте компании SparkFun Electronics.

3.1. Плата Arduino Mega

Технические данные:

□ Flash-память 128 Кбайт.

□ RAM-память 8 Кбайт, EEPROM 4 Кбайт.

□ Тактовая частота 16 МГц.

□ 54 цифровых канала ввода/вывода, из них 14 применимы для ШИМ.

□ 4 аппаратных средства UART.□ Интерфейс I2C, SPI.□ 16 аналоговых входов 10-разрядных АЦП.□ Интерфейс USB, источник питания, начальный загрузчик и т. д., как у Arduino Duemilanove.

□ Габаритные размеры примерно 101x53x12 мм.

3.2. Плата Arduino Duemilanove

Технические данные:

□ Flash-память 32 Кбайт (из них 2 Кбайт для начального загрузчика системы).

□ RAM 2 Кбайт, EEPROM 1 Кбайт.

□ Тактовая частота 16 МГц

□ 14 цифровых каналов ввода/вывода, из них 6 применимы для ШИМ.

□ 6 аналоговых входов 10-разрядных АЦП.

□ Встроенный интерфейс USB FT232RL от компании FTDI.

□ Рабочее напряжение 5 В, питание через USB или от стабилизатора напряжения (входное напряжение 7-12 В).

□ Габаритные размеры примерно 69x53x12 мм.

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

3.3. Плата Arduino Mini

Технические данные:

□ Микроконтроллер ATmegal68 с тактовой частотой 16 МГц.

□ Программирование через адаптер USB (ARDUINO/USB, адаптер USB с чипом компании FTDI).

□ FLASH 16 Кбайт (2 Кбайт требуется для начального загрузчика системы).

□ Рабочее напряжение 5 В.

□ 14 цифровых каналов ввода/вывода, 6 из них могут использоваться для формирования ШИМ.

□ Восемь аналоговых входов 10-разрядных АЦП.

□ Напряжение питания 7-9 В.

3.4. Плата Arduino Nano

Технические данные:

□ ATmega328 или более старая версия 168 с тактовой частотой 16 МГц.

□ Программирование через встроенный разъем USB.

□ Функция автоматического сброса.

□ Рабочее напряжение 5 В.

□ 14 цифровых каналов ввода/вывода, 6 из них могут использоваться для формирования ШИМ.

□ Восемь аналоговых входов 10-разрядных АЦП.

□ Flash-память объемом 32 Кбайт или 16 Кбайт.

□ EEPROM 512 байт или 1 Кбайт.

□ Максимальный выходной ток 40 мА.

□ Напряжение питания 6-20 В.

□ Габаритные размеры: 18×43 мм.

3.5 Плата Arduino Pro Mini

Технические данные:

□ ATmega328 с тактовой частотой 16 МГц (точность 0,5%).

□ Программирование через адаптер USB (ARDUINO/USB).

□ Функция автоматического сброса.

□ Варианты платы под рабочее, напряжение 5 и 3,3 В.

□ Максимальный выходной ток 150 мА.

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

□ Защита от неправильной полярности.

□ Напряжение питания 5-12 В.

□ Встроенное питание и светодиоды состояния.

□ Габаритные размеры: 18×33 мм.

3.6. Плата Arduino Pro

Технические данные:

□ ATmega328 и более старые ATmegal68 с тактовой частотой 16 МГц.

□ Программирование через адаптер USB (ARDUINO/USB).

□ Варианты исполнения под рабочее напряжение 5 и 3,3 В.

□ 14 цифровых выводов каналов ввода/вывода, из них 6 применимы для ШИМ.

□ Шесть аналоговых входов 10-разрядных АЦП.

□ Напряжение питания 3,35-12 В (версия 3,3 В), 5-12 В (версия 5 В).

□ Выходной ток цифрового выхода 40 мА.

□ FLASH 32 Кбайт или 16 Кбайт (ATmegal68).

□ SRAM1 Кбайт (ATmegal68) или 2 Кбайт (ATmega328).

□ 512-(ATmega 168) или EEPROM 1 Кбайт.

3.7. Плата LilyPad

Технические данные:

□ ATmega328V и более старые ATmega 168V с тактовой частотой Программирование через адаптер USB (ARDUINO/USB)

□ Напряжение питания 2,7-5,5 В.

□ 14 цифровых каналов ввода/вывода, из них 6 применимы для ШИМ. П Шесть аналоговых входов 10-разрядных АЦП.

□ Выходной ток 40 мА.

□ FLASH 32 Кбайт или 16 Кбайт (ATmegal68).

□ SRAM 1 Кбайт (Atmegal68) или 2 К.

3.8. USB-адаптер

Адаптер USB (рис. 3.8) выпускается в исполнении на 3,3 и 5 В.

Адаптер предназначен для программирования Arduino-платбез USB-порта. Расположение выводов соответствует оригинальным спецификациям Arduino. Адаптер может использоваться также для обмена данными через виртуальный последовательный интерфейс. Код программы Arduino можно загружать в плату без аппаратного сброса системы кнопкой Reset.

Arduino Leonardo

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

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

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

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

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

Также изменилось расположение светодиодов и кнопки Reset.

Плата Arduino Leonardo

В основу Leonardo разработчики заложили микроконтроллер ATmega32U4. Именно его использование и породило отличия от предыдущих вариантов и, соответственно, новые возможности платы. Главной особенностью микроконтроллера стала аппаратная поддержка Full Speed USB.

Этот факт позволил отказаться от дополнительного преобразователя, а также привнес еще несколько возможностей. В частности плата Leonardo может быть использована совместно с ПК в качестве HID-устройства.

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

Еще одним серьезным отличием Leonardo от предыдущих версий стало изменение распиновки таких интерфейсов как USART, I2C и SPI. Типовой последовательный интерфейс больше не связан с цепями загрузки и работает отдельно. Интерфейс SPI убран с цифровых выходов.

При необходимости его использования, можно подключиться к разъему ICSP. I2C наоборот получил отдельные вывода, чем удлинил старшую колодку Digital. Еще два вывода добавлены к колодке питания.

Первый IOREF – предназначен для правильного выбора напряжения питания цифровых выводов, которое в данной модели рано 5В. Второй никуда не подключен.

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

Параметр Uno Leonardo
Микроконтроллер ATmega328p ATmega32u4
Тактовая частота кварцевого генератора (МГц) 16 16
Количество цифровых входов/выходов 20 20
Поддержка ШИМ (выходов) 6 7
Количество аналоговых входов 6 12
Количество входов аппаратных прерываний 2 2
Объём Flash-памяти (Кб) 32 32
Объём SRAM-памяти (Кб) 2 2,5
Объём EEPROM-памяти (Кб) 1 4
Тип USB-разъёма Type B micro-USB

Вряд ли Arduino Leonardo окажется значительной вехой в истории платформы. Ожидаемое появление 32-разрядных моделей может полностью вычеркнуть из жизни предыдущие варианты. Тем не менее, благодаря особенностям платы, она вполне подойдет для множества интересных применений в качестве периферийных устройств ПК.

Шилды для Arduino

Робот на Arduino

You have no rights to post comments

SimpleCortex – отладочная плата, совместимая с Arduino. Часть 1 – Аппаратная часть

Журнал РАДИОЛОЦМАН, июль 2012

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

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

Для многих коммерческих разработчиков немаловажную роль играет также низкая стоимость платформы и быстро растущая экосистема бесплатного ПО и приложений.

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

Одной из самых мощных версий Arduino на базе «чужих» процессоров стала плата chipKIT32. Сегодня она существует в двух вариантах: chipKIT32 Uno32 и chipKIT32 Max32. По своим характеристикам платы копируют «родные» варианты Uno и Max, соответственно, от Arduino.

Обе платы оснащаются процессорами серии PIC32 компании Microchip, которая фактически и является владельцем торговой марки chipKIT. Платы представляют собой высокоинтегрированные отладочные модули с разнообразной периферией. Самым главным достоинством данного проекта стала полная совместимость с языком программирования Wiring и, соответственно, программой ArduinoIDE.

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

Но уже появляются отладочные платы и модули на микроконтроллерах ARM. Так Arduino не так давно представила плату Arduino Due на микроконтроллере ATMEL семейства SAM3U с ядром Cortex-M3. В статье мы подробно рассмотрим еще один вариант отладочного модуля на микроконтроллере ARM.

SimpleCortex – это компактная отладочная плата на базе быстродействующего микроконтроллера LPC1769 компании NXP, сконструированная в форм-факторе Arduino (Рисунок 1).

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

Микроконтроллер LPC1769 разработан на основе ядра ARM Cortex-M3, работающего на тактовой частоте до 120 МГц, имеет встроенную Flash-память программ объемом 512 Кбайт, 64 Кбайт ОЗУ и разнообразную периферию. В Таблице 1 сравниваются характеристик отладочных плат SimpleCortex и Arduino.

Рисунок 1. Внешний вид отладочной платы SimpleCortex.

Отличительные особенности и технические характеристики микроконтроллера LPC1769:

  • Ядро ARM Cortex-M3, рабочая частота до 120 МГц
  • Блок защиты памяти (MPU), поддержка до восьми областей памяти
  • Встроенный контроллер вложенных векторных прерываний (NVIC)
  • Усовершенствованный ускоритель памяти позволяет работать на скорости до 100 МГц без циклов ожидания
  • Внутрисхемное программирование (ISP) и программирование приложением (IAP) через программный загрузчик
  • Восьмиканальный DMA контроллер общего назначения (GPDMA) на многоуровневой матрице AHB может использоваться с SSP, I2S, UART, аналого-цифровыми и цифро-аналоговыми преобразователями, сигналами совпадения таймера и для пересылок память-память
  • Отдельная шина APB для высокоскоростного обмена между ЦПУ и DMA
  • Коммуникационные интерфейсы:
  • Ethernet MAC с интерфейсом RMII и контроллером DMA
  • Полноскоростной контроллер устройства/хоста/OTG USB2.0 с соответствующим контроллером DMA и встроенным PHY для устройства, функциями Хост и OTG
  • Четыре UART с контроллерами дробной скорости передачи, внутренней FIFO, поддержкой DMA и RS-485. Один UART снабжен полным набором модемных сигналов, и один поддерживает IrDA
  • Контроллер CAN 2.0B с двумя каналами
  • SPI контроллер с синхронной, последовательной, полнодуплексной передачей и программируемой длиной данных
  • Два контроллера SSP с FIFO и мультипротокольными возможностями. Интерфейсы SSP могут использоваться с контроллером GPDMA
  • Два интерфейса шины I2C, поддерживающие быстрый режим работы со скоростью 400 Кбит/с с распознаванием адресов и режимом монитора
  • Один интерфейс шины I2C, полностью поддерживающий работe со скоростью 1 Мбит/с, распознавание адресов и режим монитора
  • Электронные измерения
  • Осветительная аппаратура
  • Промышленные сети
  • Системы сигнализации
  • Предметы домашнего обихода
  • Управление электродвигателями

Таблица 1. Сравнение характеристик отладочных плат SimpleCortex и Arduino.

Параметры SimpleCortex Arduino UNO Arduino MEGA
Flash-память 512 Кбайт 32 Кбайт 128 Кбайт
ОЗУ 64 Кбайт 2 Кбайт 8 Кбайт
EEPROM Нет 1 Кбайт 4 Кбайт
Тактовая частота 120 МГц 16 МГц 16 МГц
Встроенный отладчик Да Нет Нет
Слот MicroSD Да Нет Нет
Интерфейс Ethernet Да Нет Нет
Прерывания 30 2 6
Линии ввода/вывода 40 14 54
Интерфейс I2C 3 1 1
Интерфейс SPI 1 1 1
Модуль UART 4 1 3
АЦП 8 6 16
ЦАП 1 Нет Нет
Каналы ШИМ 6 6 14

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

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

Для работы с SimpleCortex подходит Eclipse, имеющая множество функций и возможностей, но остающаяся при этом несложной в освоении и использовании. Очень удобна также, разработанная компанией CoCox, среда CoIDE. Она бесплатна, а часть ее программных инструментов имеет открытый исходный код.

В состав отладочной платы SimpleCortex входят источник питания, отладчик, микроконтроллер LPC1769 и интерфейс Ethernet.

Основной источник питания на микросхеме импульсного регулятора LM2575 вырабатывает напряжение +5 В из входного напряжения в диапазоне 7 … 40 В (Рисунок 2). Напряжение 3.3 В для питания микроконтроллера и периферии вырабатывает линейный стабилизатор LM1117. Кроме того, при подключении к ПК плата может питаться от интерфейса USB.

Рисунок 2. Принципиальная схема источника питания и подключения средств организации пользовательского интерфейса отладочной платы SimpleCortex.

Встроенный USB отладчик выполнен на отдельном микроконтроллере LPC1343 и может использоваться для программирования по интерфейсу JTAG любых внешних микроконтроллеров, поддерживаемых средой CoIDE. Для этого на плате установлены разъем JTAG и DIP-переключатель DB-EX (Debugger Extern), который просто отключает питание от микроконтроллера платы SimpleCortex (Рисунки 3 и 4).

Рисунок 3. Использование встроенного отладчика SimpleCortex для программирования микроконтроллеров во внешних устройствах.

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

Рисунок 4. Принципиальная схема отладчика платы SimpleCortex.

Микроконтроллер и периферия

Принципиальная схема отладочной платы SimpleCortex изображена на Рисунке 5. Все сигналы свободных линий ввода/вывода микроконтроллера доступны на разъемах, расположенных по периметру платы в соответствии с форм-фактором платформы Arduino.

Для организации простого пользовательского интерфейса установлены 4 светодиода и 2 кнопки. Помимо пользовательских светодиодов имеются светодиоды статуса (наличие питания +5 В и 3.

3 В, отладчик подключен к ПК и работает, ошибка отладки, отладчик занят), а также кнопки сброса и переключения в режим программирования внешнего микроконтроллера.

Интерфейс Ethernet выполнен на базе контроллера LAN7280 (10/100 Мбит) со всеми необходимыми компонентами обвязки. Стандартный разъем Ethernet со светодиодами статуса установлен на плату.

Каждый порт USB (а их на плате два – один для отладки, второй – USB Host) имеет защитный диод, а USB Host дополнительно имеет перемычку, которая устанавливается при необходимости подачи напряжения питания на USB устройство для чтения. Если порт USB Host используется для обмена по последовательному интерфейсу, перемычка не устанавливается.

Рисунок 5. Принципиальная схема отладочной платы SimpleCortex.

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

Рисунок 6. Расположение разъемов, переключателей и светодиодов и сигналы линий ввода/вывода на плате SimpleCortex.

Загрузки

Принципиальная схема отладочной платы (Eagle), расположение и назначение разъемов платы – скачать

Часть 2 – Приступая к работе с платой SimpleCortex

Мое первое знакомство с Arduino

  • Магазины Китая
  • TINYDEAL.COM
  • Радиоуправляемые модели

В какой-то момент жизни я осознал, что темное пятно в понимании микроконтроллеров не дает мне жить спокойной размеренной жизнью.

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

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

Вместо пролога

Тема использования Arduino глубоко раскрыта в статьях уважаемых участников форума Spc, Sanja и Bim_Sony. Данная статья не претендует на полноту описания, но показывает опыт человека, никоим образом ранее не сталкивавшегося ни с электроникой, ни с микро контролерами в частности. Отчетливо понимая, что мир микроконтроллеров не начинается с Arduino и то, что данная платформа скроет от меня многие премудрости работы с ними (равно как и уберет многие грабли для начинающего) я запасаюсь терпением и желанием открыть для себя что-то, что окружает ежедневно, но спрятано за стеной непонимания, а скорее просто не заметно глазу.

Первым шагом стала покупка Arduino Duemilanove. Почему именно эта модель? Абсолютно спонтанное решение — просто подвернулась в списке новинок магазина.

Микроконтроллер: ATmega168
Рабочее напряжение 5 В
Входное напряжение (рекомендуемое) 7-12 В
Входное напряжение (предельное) 6-20 В
Цифровые Входы/Выходы 14 (6 из которых могут использоваться как выходы ШИМ)
Аналоговые входы 6
Постоянный ток через вход/выход 40 мА
Постоянный ток для вывода 3.3 В 50 мА
Флеш-память 16 Кб (ATmega168) или 32 Кб (ATmega328) при этом 2 Кб используются для загрузчика
ОЗУ 1 Кб (ATmega168) или 2 Кб (ATmega328)
EEPROM 512 байт (ATmega168) или 1 Кб (ATmega328)
Тактовая частота 16 МГц

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

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

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

Следующим шагом стала покупка платформы с четырьмя моторами, и motor driver shield.

Дополнительная информация о шасси

Количество моторов: 4

Количество колес: 4
Цвет: черный или прозрачный
Крепления: платформа содержит множество отверстий, предназначенных для крепления датчиков, кроме того возле каждого колеса есть посадочное место под датчик прерывания (для получения обратной связи по скорости вращения колеса)

Дополнительная информация о LM293D

Motor Shield – силовой модуль управления двигателями для микроконтроллеров серии Freeduino/Arduino. Модуль предназначен для упрощения разработки моторизированных и робототехнических устройств.

Технические возможности позволяют реализовать разнообразные проекты, связанные с подключением и управлением слаботочными двигателями следующих типов: * четырёх двигателей постоянного тока (DC motors); * двух шаговых двигателей униполярных или биполярных с одинарной или * двойной обмоткой (stepper motors); * двух 5В сервоприводов.

Технические характеристики

напряжение питания: +7…+ 24 В;
количество силовых каналов: 4;
максимально-продолжительный ток каждого канала: 0,6 А;
напряжение питания сервоприводов: 5 В;
возможность реверса каждого двигателя;
возможность независимого управления каждым каналом;
Отверстия на платформе оказались не приспособленными для крепления Arduino-подобных, но это не смутило. Вооружившись стяжками удалось закрепить на ней Duemilanove, поверх которого тут же был водружен motor shield:Еще одним неприятным моментом стало отсутствие припаянных проводов к моторам. Пришлось потратить какое-то время на лужение и припаивание проводов из тех что были в наличии.

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

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

Мне, как новичку, показалось удобным на этапе сборки платформы пронумеровать пары проводов и сами моторы, чтобы не путаться в дальнейшем при написании кода. Моторы:И пары проводов:Кроме того, чтобы не путать полярность при отключении проводов от моторов, плюсовые провода и зажимные контакты шилда были также помечены красным маркером:Конечно, если вы будете использовать провода разных цветов, помечать провода не имеет смысла. Мне же было удобно, так как все использованные мною провода были черного цвета.Чтобы закончить с материальной составляющей, осталось лишь обеспечить питание для моторов. Источником, по-началу, была выбрана сборка из четырех элементов AAA:Но такого запаса хватало не на долго и немного позже была добавлена сборка из 6 AA элементов, которая в отличии от первой не имела кнопки включения/выключения, поэтому в разрез плюсового проводника был вставлен переключатель:Обе батареи решил оставить для чистоты эксперимента — разделить по питанию Ардуино и мотор шилд и оценить разницу.

Для написания кода (т.н. скетчей) используется одноименная среда разработки “Arduino IDE”.

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

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

И напоследок несколько фото агрегата.

К моменту написания статьи на импорте отметилась посылка с рядом датчиков, среди которых: ультразвуковые дальномеры, ИК дальномеры, датчики обхода препятствий и sensor shield для удобного подключения всего вышеперечисленного. Кроме этого были заказаны 2 радио модуля для беспроводного управления платформой. Так что веселое времяпрепровождение мне обеспечено еще на долго.

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

Огромное комьюнити, тонны видео и статей Открытая архитектура Легкое макетирование

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

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