Содержание
Подробнее о комплектующих
Arduino – это стандартный микроконтроллер типа AVR. Прошивка – Bootloader. Также, предусмотрен порт USB-UART.
Микроконтроллер состоит из одной схемы, на которой и осуществляется размещение программы. Написанная программа будет взаимодействовать с периферическими механизмами (датчиками, резисторами и транзисторами), которые и будут определять алгоритм работы. Arduino может взаимодействовать с большинством типов датчиков (скорости, света, звука, давления и т.д.). В качестве комплектующих, отвечающих за индикацию могут быть использованы как простые устройства вывода (светодиодные лампочки и звуковые сигналы), так и полноценные дисплеи. Выбор деталей-исполнителей еще шире. Можно приобрести специальные моторчики, реле, клапаны, магниты и многое, многое другое
Важно понимать, что микроконтроллер напрямую может работать только с некоторыми комплектующими. Для того, чтобы обеспечить адекватное взаимодействие со специфическими или самодельными устройствами, придется подбирать соответствующие переходники
Проекты Ардуино
Проектов на Ардуино огромное множество. Их можно разделить на категории:
- Устройства умного дома
- ЧПУ (CNC) станки
- Бытовые приборы
- Охранные системы
- Игрушки
- Информативные устройства
- Декоративные проекты
- Гаджеты и носимые устройства
Для Ардуино есть огромное количество инструкций и готовых скетчей. Вы легко сможете повторить любой проект, доработать его или адаптировать под свои нужны. Все необходимое есть в открытом доступе. С помощью Ардуино можно создать собственные аналоги устройств и сэкономить на этом. Системы умного дома стоят не малых денег, но с помощью ардуино вы легко сможете сделать такую же систему в разы дешевле.
Что можно и чего нельзя
Ардуино работает на одноядерном и не шибко шустром процессоре. Его тактовая частота — 16 мегагерц, то есть 16 миллионов процессорных операций в секунду. Это не очень быстро, плюс ядро только одно, и оно исполняет одну команду за другой.
Вот какие ограничения это на нас накладывает.
Нет настоящей многозадачности. Можно симулировать многозадачность с помощью приёма Protothreading, но это скорее костыль. Нельзя, например, сказать: «Когда нажмётся такая-то кнопка — сделай так». Вместо этого придётся в основном цикле писать проверку: «А эта кнопка нажата? Если да, то…»
Нет понятия файлов (без дополнительных примочек, библиотек и железа). На контроллер нельзя ничего сохранить, кроме управляющей им программы. К счастью, есть платы расширения, которые позволяют немножко работать с файлами на SD-карточках.
Аналогично с сетью: без дополнительных плат и библиотек Ардуино не может ни с чем общаться (кроме как включать-выключать электричество на своих выходах).
Полегче со сложной математикой: если вам нужно что-то сложное типа тригонометрических функций, будьте готовы к тому, что Ардуино будет считать их довольно медленно. Для вас это одна строчка кода, а для Ардуино это тысячи операций под капотом. Пощадите.
Отчёты? Ошибки? Только при компиляции. У Ардуино нет встроенных средств сообщить вам, что ему нехорошо. Если он завис, он не покажет окно ошибки: во-первых, у него нет графического интерфейса, во-вторых — экрана. Если хотите систему ошибок или отчётность, пишите её
Если серьёзно, то перед заливом программы на контроллер компилятор проверит код и найдёт в нём опечатки или проблемы с типами данных. Но на этом всё: если у вас случайно получилась бесконечная петля в коде или при каких-то обстоятельствах вы повесите процессор делением на ноль — жмите перезагрузку и исправляйте код.
Электроника. Твой первый квадрокоптер. Теория и практика. Яценков В.С.
Электроника. Твой первый квадрокоптер. Теория и практика
Аннотация
Книга Яценкова В.С. подходит для людей, имеющих опыт работы с платформой Ардуино. Здесь в понятной форме изложены практические аспекты создания и управления квадрокоптером. Пошагово расписаны все этапы сборки – выбор нужных частей и их стоимость, настройка программного обеспечения, программирование в Arduino IDE, ремонт в случае аварии
Огромное внимание автор уделяет типичным ошибкам, которые совершают начинающие конструкторы. Подробно изложен процесс отладки системы ODS, беспроводного канала Bluetooth и различных навигационных систем
Имеются рекомендации по выбору оборудования FPV, обзор программ для ПК и телефонов, которые используются при работе коптера.
Что такое Arduino?
«Arduino – это открытая платформа для прототипирования электроники, основанная на гибком, простом в использовании оборудовании и программном обеспечении. Она предназначена для новичков, профессионалов и все тех, кто заинтересован в создании интерактивных объектов или сред», – именно так представлена Arduino своими разработчиками []. И они правы. Для создания интерактивных объектов или сред проект Arduino подходит идеально. Вам доступно невообразимое количество примеров кода, вы можете с легкостью считывать датчики (работа с которыми в обычном случае, даже при наличии опыта программирования, может занимать от нескольких часов до нескольких дней), и получаете доступ к большой базе пользователей для обсуждения вопросов. Создание интерактивных объектов – это, прежде всего, взаимодействие с человеком. Подключите датчик к исполнительному устройству, создайте новые алгоритмы и экспериментируйте… Однако для обучения программированию или использования возможностей встраиваемой электроники такой подход плох.
Именно в этом и заключается мое недовольство Arduino, когда речь заходит о начальном обучении программированию. Путь изучения микроконтроллеров может быть непростым, но он должен опираться на силу этих маленьких существ. Использование Arduino для изучения программирования подобно использованию Макдональдс для изучения кулинарии; вы получаете еду очень быстро, но не получаете навыков самостоятельного приготовления пищи. Когда вам нужно быстро перекусить, Макдональдс –вполне хороший вариант (спорная мысль, но лишь иллюстрирующая мою точку зрения), но это уж точно не кулинарный класс.
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:
Управление яркостью светодиода
Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле
Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.
Плюсы Ардуино
Самый главный плюс плат Arduino для начинающих, как я уже упомянул выше, — это то, что нам не нужно использовать паяльник и не нужно ничего паять.
На платах Ардуино сделаны удобные контакты, которые можно соединять удобными перемычками с любыми сторонними модулями, дисплеями, сенсорами и многим другим.
Пример сборки устройства с помощью перемычек
Кроме того, чтобы плата заработала всего лишь достаточно подключить её к компьютеру через USB.
Дополнительные плюсы я перечислю ниже, но не пугайтесь, если какие-то термины вы не поймете, со временем вы с ними разберетесь:
- Плата обладает встроенным программатором (не нужен компилятор);
- Использование языка программирования близкого к C/C++, что делает её простой в использовании и изучении;
- Наличие множества библиотек для модулей, сенсоров, дисплеев и т.п., доступных для свободного использования;
- Для сбора устройства не требуется пайка, компоненты соединяются при помощи специальной макетной платы, перемычек и проводов;
- Возможность автономной работы, т.е. использование батареек или аккумуляторов;
- Наличие версии для работы с популярной мобильной операционной системой Android;
- Огромное количество различных модулей, сенсоров, дисплеев, датчиков и т.п..
- Наличие большого количества плат расширения — shields или «шилды».
Есть еще один очень существенный плюс Arduino — просто невероятно огромное сообщество любителей этих плат и любителей посоздавать различные устройства на ее основе своими руками.
Также замечу, что можно создать устройство как стационарным, так и автономным или переносным.
Наличие портативных аккумуляторов и беспроводных источников передачи данных способствуют созданию ряда интересных проектов.
Особенности проектов
Большинство электронщиков предпочитают создавать свои проекты на основе микроконтроллера Аrduino Uno, о которой и мы писали уже несколько раз.
Для начала стоит познакомиться с функционалом микропроцессора Ардуино уно, на котором строится большинство проектов, а также рассмотреть причины выбора данного приспособления. Ниже описаны факторы, по которым начинающему изобретателю стоит остановиться на Аrduino uno:
- Довольно простой в использовании интерфейс. Понятно, где какой контакт, и к чему прикреплять соединительные провода.
- Чип на плате подключается прямо к USB-порту. Преимущество этой установки заключается в том, что последовательная связь – это очень простой протокол, который проверен временем, а USB делает соединение с современными компьютерами очень удобным.
- Легко найти центральную часть микроконтроллера, которая представляет собой чип ATmega328. Он имеет больше аппаратных функций, таких как таймеры, внешние и внутренние прерывания, пины PWM и несколько режимов ожидания.
- Устройство с открытым исходным кодом, поэтому большое количество радиолюбителей могут исправить баги и неполадки в программном обеспечении. Это облегчает отладку проектов.
- Тактовая частота равна 16 МГц, что достаточно быстро для большинства приложений и не ускоряет работу микроконтроллера.
- Очень удобно управлять мощностью внутри него, и она имеет функцию встроенного регулирования напряжения. Также микроконтроллер можно отключить от USB-порта без внешнего источника питания. Можно подключить внешний источник питания до 12 В. Причем микропроцессор сам определит нужное напряжение.
- Наличие 13 цифровых контактов и 6 аналоговых контактов. Эти пины позволяют подключать оборудование к плате Arduino uno со стороннего носителя. Контакты используются в качестве ключа для расширения вычислительной способности Arduino uno в реальном мире. Просто подключите свои электронные устройства и датчики к разъемам, которые соответствуют каждому из этих контактов.
- Имеется в наличии разъем ICSP для обхода USB-порта и сопряжения с Arduino напрямую в качестве последовательного устройства. Этот порт необходим, чтобы перезагрузить чип, если он поврежден и больше не может использоваться на вашем компьютере.
- Наличие 32 КБ флэш-памяти для хранения кода разработчика.
- Светодиод на плате подключается к цифровому контакту 13 для быстрой отладки кода и упрощения этого процесса.
- Наконец, у него есть кнопка для сброса программы на чипе.
Arduino был создан в 2005 году двумя итальянскими инженерами – Дэвидом Куартиллесом и Массимо Банзи с целью, чтобы ученики научились программировать микроконтроллер Arduino uno и улучшить свои навыки в области электроники и использовать их в реальном мире.
Arduino uno может воспринимать окружающую среду, получая вход от различных датчиков, и способен влиять на окружающую среду, контролируя свет, двигатели и другие исполнительные механизмы. Микроконтроллер запрограммирован с использованием языка программирования Arduino (на основе проводки) и среды разработки Arduino (на основе обработки).
История Ардуино
Основателями компании, которая начала создавать платы Ардуино, являются итальянцы Массимо Банци, Девида Куартиллье, Тома Иго, Джанлука Мартино и Девида Меллиса. Такой была первоначальная команда создателей.
А название они позаимствовали у итальянского бара, который, в свою очередь, был назван в честь короля Италии.
Фрагмент портрета Ардуина из Ивреи. Замок Мазино. Картина пьемонтской школы около 1700 года.
Ардуин был итальянским дворянином, который был королем Италии с 1002 по 1014 год. В 990 году Ардуин стал маркграфом Ивреи, а в 991 году графом Священного дворца Латеранского в Риме.
Стоит также сказать, что для Соединенных Штатов Америки используется другое название — Genuino.
С чего начать изучать Ардуино с нуля
Что такое Ардуино, как им пользоваться
Книга или учебник по Arduino на русском — это лишь теория и без практики здесь не обойтись. До того, как вы приступите к программированию микроконтроллера необходимо получить базовые знания по схемотехнике. Следует изучить основные радиоэлементы, их назначение, принцип работы, условные обозначения, как собирать электрические схемы. Для этого поможет следующая информация на нашем сайте:
- Основные законы электричества
- Радиоэлементы с фото и названиями
- Как собирать схемы на макетной плате
- Характеристики контроллеров Arduino
Для того чтобы программировать микроконтроллер Arduino следует установить на компьютере необходимое программное обеспечение, а также иметь всегда под рукой справочники по языку Arduino и описание ошибок в программе (скетче) для микроконтроллеров (они всегда будут появляться первое время)
Для этого обратите внимание на следующую очень полезную информацию на нашем сайте:
- Установка Arduino на Windows
- Установка библиотек в Arduino
- Язык программирования Arduino
- Ошибки при компиляции Arduino
Аппаратная часть Arduino
Для начала стоит уяснить, что собой представляет микроконтроллер. По логике, это небольшое устройство, к которому подключаются все остальные элементы системы. Ардуино должен координировать их работу при помощи прописанных в нём скриптов, выдавая соответствующие электрические сигналы. Для стандартного МК Ардуино сигналом является 5 вольт – это единичка, а отсутствие сигнала – нолик.
Именно на таком принципе построено программирование двоичным кодом. Но от такой системы мы уже давно ушли, и потому к устройству можно подключать трансформаторы переменного тока и дополнительные резисторы, ведь некоторым модулям требуется ток в 3.2-4.7 Вольт.
Соответственно, аппаратная часть Ардуино в стандартной комплектации представлена чипом с постоянной памятью, набором из резисторов и транзисторов, а также несколькими пинами. Такая простая конструкция позволяет пользователю самому навешивать «улучшения» по необходимости.
С «коробки» в микроконтроллер устанавливается стандартная прошивка, способная распознавать базовые АТ команды. Пользователь может переустановить её или перепрошить Ардуино по желанию, но стоит учитывать, что без должного опыта вы можете получить бесполезную и неработающую плату.
Как несложно догадаться, изначально Ардуино – это лишь инструмент, который позволяет координировать работу всей системы. А делает он это при помощи встроенных в него библиотек, которые можно устанавливать в систему дополнительно, по необходимости. Вплоть до того, что вы можете поставить вспомогательную карту памяти, если не хватает места. А сами же библиотеки написаны на низкоуровневом C++, который обеспечивает полный контроль над работой микроконтроллера, но имеет и ряд весомых недостатков, о которых мы и поговорим ниже.
Какие виды плат поддерживаются в Arduino Web Editor
Arduino Web Editor позволяет автоматически определять вид платы и к какому порту компьютера она подключена. В настоящее время этот онлайн редактор поддерживает только официальные Arduino/Genuino платы, а также небольшое количество других сертифицированных плат. Вы можете увидеть полный список поддерживаемых плат в соответствующем выпадающем списке (‘Select Other Board and Port ‘) в данном редакторе.
Также в специальном всплывающем окне (popup window) вы можете проверить совместимость кода вашей программы с любой поддерживаемой платой даже если у вас в это время ее нет. Если подсоединенная к компьютера плата автоматически не определилась данным редактором, вы можете вручную выбрать ее из списка, но при этом не забудьте еще и выбрать порт, к которому она подсоединена.
Полный список поддерживаемого аппаратного обеспечения можно увидеть во всплывающем команде. Команда Arduino постоянно работает над расширением этого списка.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства. Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.
проекты на Arduino
Библиотеки Arduino
Библиотеки Arduino представляют собой коллекции функций, которые позволят вам управлять устройствами. Вот некоторые из наиболее широко используемых библиотек:
- – чтение и запись в «постоянно» хранилище;
- – для подключения к интернету, используя плату Arduino Ethernet Shield;
- – для связи с приложениями на компьютере, используя стандартный последовательный протокол;
- – для подключения к сети GSM/GRPS с помощью платы GSM;
- – для управления жидкокристаллическими дисплеями (LCD);
- – для чтения и записи SD карт;
- – для управления сервоприводами;
- – для связи с устройствами, используя шину SPI;
- – для последовательной связи через любые цифровые выводы;
- – для управления шаговыми двигателями;
- – для отрисовки текста, изображений и фигур Arduino TFT экранах;
- – для подключения к интернету, используя плату Arduino WiFi shield;
- – двухпроводный интерфейс (TWI/I2C) для передачи и приема данных через сеть устройств или датчиков.
Где купить все необходимое
Мы собрали ссылки Aliexpress на стартовые наборы Arduino Starter Kit, в которых есть все самое необходимое для создания своих первых проектов.
Один из лучших и проверенных стартовых наборов для Ардуино на AliExpress!
Недорогой стартовый комплект для обучения Ардуино – от 1500 рублей!
Набор за 350 руб (!) с платой Arduino Uno и всем необходимым!
Новинка! Робот-лягушка на Arduino от Keyestudio с управлением на Android и iOS
Робот-манипулятор на Ардуино с 4 степенями свободы. DIY конструктор с акриловыми деталями, контроллером и серво
Полный набор машинки 4WD на Ардуино с датчиками, экраном и дистанционным управлением
Функции
Разбиение на сегменты кода функциями позволяет создавать части кода, которые выполняют определенные задания. После выполнения происходит возврат в место, откуда была вызвана функция. Причиной создания функции является необходимость выполнять одинаковое действие несколько раз.
Для программистов, работающих с BASIC, функции в Arduino позволяют использовать подпрограммы (GOSUB в BASIC).
Разделения кода на функции имеет ряд преимуществ:
- Функции позволяют организовать программу. Очень часто помогают заранее составить концепцию программы.
- Функции кодируют одно действие в одном месте программы. Далее необходимо только отладить код функции.
- Функции сокращают шансы на появление ошибки при необходимости изменения кода.
- Функции сокращают текст скетчей и делают его компактным, т.к. некоторые секции используются много раз.
- Функции облегчают использование кода в других программах делая его модульным. В этом случае функции обладают еще одним небольшим преимуществом, делая код программы легким для чтения.
Существуют две обязательные функции в скетчах Arduino setup() и loop(). Другие функции должны создаваться за скобками этих функций. В следующем примере будет создана простая функция умножения двух чисел.
Пример
Для вызова функции умножения ей передаются параметры данных:
void loop(){ int i = 2; int j = 3; int k; k = myMultiplyFunction(i, j); // k содержит 6 }
Созданную функцию необходимо задекларировать вне скобок любой другой функции, таким образом «myMultiplyFunction()» может стоять выше или ниже функции «loop()».
Весь скетч будет выглядеть следующим образом:
void setup(){ Serial.begin(9600); } void loop(){ int i = 2; int j = 3; int k; k = myMultiplyFunction(i, j); // k содержит 6 Serial.println(k); delay(500); } int myMultiplyFunction(int x, int y){ int result; result = x * y; return result; }
Еще один пример
Следующая функция будет считывать данные с датчика функцией analogRead() и затем рассчитывать среднее арифметическое. Затем созданная функция будет масштабировать данные по 8 битам (0-255) и инвертировать их. // датчик подключен к выводу 0
int ReadSens_and_Condition(){ int i; int sval; for (i = 0; i < 5; i++){ sval = sval + analogRead(0); // сенсор на аналоговом входе 0 } sval = sval / 5; // среднее sval = sval / 4; // масштабирование по 8 битам (0 - 255) sval = 255 - sval; // инвертирование выходного значения return sval; }
Вызов функции осуществляется присвоением ее переменной.
int sens; sens = ReadSens_and_Condition();
Первый проект
Вот мы и дошли до нашего первого проекта. Давайте соединим Ардуино, светодиод и кнопку. Этот проект отлично подойдет начинающим.
Схема у нас будет такая:
Светодиод загорится после нажатия на кнопку, а после следующего нажатия погаснет. Сам скетч или программа для Ардуино будет такой:
// пины подключенных устройств int switchPin = 8; int ledPin = 11; // переменные для хранения состояния кнопки и светодиода boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() { pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); } // функция для подавления дребезга boolean debounse(boolean last) { boolean current = digitalRead(switchPin); if(last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) { ledOn = !ledOn; } lastButton = currentButton; digitalWrite(ledPin, ledOn); }
Вы могли заметить функцию debounse, о которой мы еще не писали. Она нужна для подавления дребезга контактов.
После того, как Вы разберетесь с начальными навыками работы с платой можно приступать к реализации более сложных и многогранных задач. Конструктор позволяет создать RC-машинку, управляемый вертолет, создать свой телефон, управляемый катер, создать систему «умный дом» и т.д.
Для ускорения освоения работы с платой Ардуино рекомендуем вам начать делать устройства из нашей рубрики Уроки, где по шагам описаны процессы создания самых интересных устройств и гаджетов.
Что такое Arduino Web Editor
Arduino Web Editor – это онлайн инструмент, который позволяет вам писать скетчи и загружать их в любую плату Arduino с помощью вашего веб-браузера (Chrome, Firefox, Safari и Edge). Разработчики платформы Arduino рекомендуют использовать браузер Google Chrome.
Эта IDE (Integrated Development Environment – интегрированная среда разработки) является частью проекта Arduino Create, онлайн платформе, которая позволяет разработчикам писать программы, иметь доступ к обучающим материалам, конфигурировать платы и делиться своими проектами с другими участниками сообщества Arduino. Обеспечивая пользователей непрерывным трудовым процессом, Arduino Create обеспечивает взаимосвязи между всеми процессами создания готового изделия, начиная от его задумки и заканчивая его осуществлением. То есть с помощью этого сервиса вы можете управлять всеми аспектами создания проекта для Arduino.
Arduino Web Editor является онлайн сервисом, поэтому он всегда учитывает все самые последние изменения в платформе Arduino и все самые свежие платы, появившиеся в рамках этой платформы.
Эта интегрированная среда разработки (IDE) позволяет вам писать код программы (скетча) и сохранять его в облаке, к которому вы затем сможете получить доступ с любого устройства, имеющего выход в сеть интернет. Она автоматически распознает все платы Arduino и Genuino, подсоединенные к вашему компьютеру и выполняет необходимые настройки. Аккаунт в этой системе – это все, что вам нужно для начала работы.
Что можно сделать с помощью Ардуино?
Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:
Arduino Uno R3
Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.
Как я уже написал выше — один из первых и самых популярных уроков для начинающих — моргание встроенным на плату светодиодом.
Если первой платой, которую вы приобрели, стала Arduino Nano, то сразу же переходите к нашему большому руководству — Ардуино Нано для начинающих.
На базе Arduino создание устройств ограничивается только человеческой фантазией. Вы можете запрограммировать систему быстро среагировать на определённое изменение и сможете управлять:
- светом,
- моторами,
- разнообразными приводами,
- и т.п..
Самое интересное, что Ардуино применяется не только для домашнего использования, но и для промышленного.
Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:
Разработка любых устройств зависит только от вашей фантазии, а Ардуино и множество дополнительных компонентов помогают в создании этих устройств своими руками.