Arduino для детей
Принято считать, что Arduino довольно сложен для детей средней школы, но это не так! Сегодня есть огромное количество инструментов и технологий, позволяющих без проблем преподавать ардуино на кружках робототехники даже самых маленьких! На нашем сайте вы можете найти уроки Ардуино, помогающие сделать первые шаги в электронике, программировании и робототехнике.
Arduino – это целый мир, в котором можно почувствовать себя волшебником. Лучший инструмент для приобщения детей к технологиям и вдохновленного инженерного творчества! Для обучения детей электронике вы можете использовать как отдельные контроллеры Arduino Uno, Mega или Nano, а также наборы и конструкторы ардуино российских и китайских производителей. Обучение детей программированию Ардуино возможно с использованием среды программирования Arduino IDE или же в визуальных средах ArduBlock, S4A, mBlock, основанных на Scratch.
Язык программирования
Язык программирования Ардуино довольно прост в освоении, так как основной целевой аудиторией его применения являются любители. Однако считается одним из самых лучших языков для программирования микроконтроллеров.
Внимание! Для начала работы необходимо установить среду программирования Arduino IDE.
Arduino IDE является бесплатной программой, скачать которую может любой желающий. На нашем сайте вы можете скачать любую подходящую для вас версию среды. Также доступ к скачиванию IDE предоставлен на официальном сайте компании, а при желании, разработчиков можно отблагодарить, сделав денежный перевод.
Программу, написанную на языке программирования Ардуино называют скетчем. Готовые скетчи записываются на плату для их выполнения.
Среда IDE поддерживается такими операционными системами, как Windows, MacOs и Linux. На официальном сайте компании указанно, что данный язык программирования написан на Wiring, но на самом деле его не существует и для написания используется C++ с небольшими изменениями.
История IDE
Первые ИСР были созданы для работы через консоль или терминал, которые сами по себе были новинкой: до того программы создавались на бумаге, вводились в машину с помощью предварительно подготовленных бумажных носителей (перфокарт, перфолент) и т. д.
Dartmouth BASIC был первым языком, который был создан с ИСР, и был также первым, который разработан для использования в консоли или терминале. Эта ИСР управлялась при помощи команд, поэтому существенно отличалась от более поздних, управляемых с помощью меню и горячих клавиш, и тем более графических ИСР, распространённых в XXI веке. Однако она позволяла править исходный код, управлять файлами, компилировать, отлаживать и выполнять программы способом, принципиально подобным современным ИСР.
Первой в мире интегрированной средой разработки для программного обеспечения стал продукт немецкой компании Softlab Munich в 1975 г. и, возможно, мировым лидером в этой рыночной нише в течение 1970-х и 1980-х годов. Он был установлен у 22000 программистов во всем мире.
Одним из первых IDE с концепцией плагинов был HP Softbench, появившийся в 1989 году.
Концепция плагинов содержала в себе независимо компилируемый программный модуль, динамически подключаемый к основной программе и предназначенный для расширения и использования её возможностей.
По состоянию на март 2015 г. наиболее популярными IDE являются Eclipse и VisualStudio .
Программирование для платы Uno
Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.
После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.
Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.
Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.
Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.
Устройство и принцип работы потенциометра
Переменный резистор (потенциометр) поворотом ручки изменяет сопротивление в электрической цепи от нуля до номинального сопротивления в 10 кОм. Потенциометр сделан состоит из токопроводящей поверхности — плоского постоянного резистора с двумя контактами и скользящего по поверхности токосъемника. Потенциометр предназначен для точной регулировки напряжения в электрической цепи.
Со средней ножки потенциометра снимают значение напряжения
Переменный резистор имеет прочную токопроводящую поверхность, поскольку положение настройки потенциометра изменяется постоянно. Переменный резистор служит для регулярного применения, например, для изменения уровня громкости. Часто применяется в различных проектах Ардуино для начинающих.
Подстроечный резистор служит для точной настройки работы электронных устройств. Положение настройки, как правило, в течении всего срока эксплуатации устройства не изменяется. Поэтому, перемещение скользящего контакта производится с помощью отвертки, а прочность проводящего слоя не имеет большого значения.
Ардуино для начинающих
Arduino – это возможность делать сложные и умные вещи просто. Идеальный вариант для первых шагов начинающих технических гениев. Вы можете легко собрать электронные схемы из готовых конструкторов и наборов, загрузить готовую программу, которую можно скачать совершенно бесплатно и начать использовать умное электронное устройство.
Arduino – это электронные платы, к которым можно подсоединять различные датчики, двигатели, экраны и много других электронных компонентов. Плата Ардуино будет управлять этими компонентами с помощью программы, который вы в нее загрузите. Самые популярные платы для начинающих – это Arduino Uno, Arduino Mega, Arduino Nano и Arduino Leonardo. Кроме этого есть множество других вариантов, подходящих для конкретных случаев.
Arduino – это еще и совершенно бесплатная среда программирования Arduino IDE, в которой можно писать программы (скетчи) для контроллера. Программа прошивается в микроконтроллер буквально одним нажатием на кнопку. Никаких особых знаний не требуется! Вы можете даже не писать программу – просто найти и скачать готовый скетч, который просто откроете в Arduino IDE.
Arduino – это сообщество инженеров, всегда готовых помочь советом. Это огромное количество сайтов с документацией, примерами и схемами. Начать можно с официального сайта, но кроме него сегодня появилось огромное количество сайтов на русском с форумом русскоязычных инженеров.
Светильник с управляемой яркостью Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- потенциометр;
- 1 светодиод и резистор 220 Ом;
- провода «папа-папа».
На этом занятии мы соберем электрическую схему светильника со светодиодом с управляемой яркостью. С помощью потенциометра мы сможем плавно изменять яркость светодиода, подключенного к пину 9. Потенциометр подключается крайними ножками к портам 5V и GND, со средней ножки снимается значение напряжения и подключается к аналоговому входу A0 микроконтроллера Ардуино.
Схема сборки светильника с управляемой яркостью
Соберите электрическую цепь, как на рисунке. Средняя ножка переменного резистора подключается к аналоговому порту A0, чтобы снимать показания напряжения. Какую из крайних ножек подключить к портам 5V и GND значения не имеет, изменится лишь направление вращения ручки потенциометра для увеличения яркости светодиода. После сборки схемы, подключите Arduino к компьютеру и загрузите скетч.
Скетч для Ардуино и потенциометра
// Присваиваем имя для пина со светодиодом (англ. «led») #define LED_PIN 9 // Присваиваем имя для пина с потенциометром (англ. «potentiometer») #define POT_PIN A0 void setup() { // пин со светодиодом будет выходом (англ. «output») pinMode(LED_PIN, OUTPUT); // пин с потенциометром будет входом (англ. «input») pinMode(POT_PIN, INPUT); // Запускаем монитор последовательного порта // снимите комментарий // Serial.begin(9600); } void loop() { // заявляем, что будем использовать 2 переменные - rotation и brightness // хранить в переменных будем только целые числа (англ. «integer») int rotation, brightness; // rotation равна значениям с потенциометра в интервале от 0 до 1023 rotation = analogRead(POT_PIN); // переменная brightness будет равна rotation делённое на 4 // brightness может быть только целым числом, дробная часть будет отброшена // в итоге переменная brightness будет находится в пределах от 0 до 255 brightness = rotation / 4; // выдаём напряжение, рассчитанное по формуле brightness = rotation / 4 analogWrite(LED_PIN, brightness); // Выдаем значение rotation на монитор последовательного порта // снимите комментарий // Serial.println(rotation); // снимите комментарий // delay(1000); }
Пояснения к коду:
- с помощью директивы мы заменили номер пина 9 на имя , аналоговому входу мы задали имя ;
- локальная переменная пропорциональна напряжению и находится в интервале от 0 до 1023 (минимальное и максимальное значение АЦП);
- переменная равна делённое на 4 и находится в пределах от 0 до 255 (минимальное и максимальное значение аналогового входа).
Основные проблемы в Windows 10
Бывает ситуация, когда Arduino IDE (версия 1.8.12) вылетает при запуске. При запуске arduino_debug.exe получаем это сообщение об ошибке.
C:Program Files (x86)Arduino>arduino_debug.exe Set log4j store directory C:UsersvolkeAppDataLocalArduino15 Loading configuration… Initializing packages… java.lang.NullPointerException at cc.arduino.contributions.packages.ContributionsIndexer.parseIndex(ContributionsIndexer.java:134) at processing.app.BaseNoGui.initPackages(BaseNoGui.java:483) at processing.app.Base.(Base.java:273) at processing.app.Base.main(Base.java:150) C:Program Files (x86)Arduino>
Удаление файлов конфигурации package_index.json и package_esp32_index.json ничего не дает.
Из вариантов решения можно попробовать следующее.
После установки бета-версии (arduino beta1.9-BUILD-119) у многих не возникает никаких проблем.
Также многим помогает Сборка Nightly (ссылка).
Таким образом мы приходим к выводу, что в случае вылета программы в Windows 10 помогает использование последней бета-версии Arduino IDE. Даже для плат ESP8266 она работает нормально.
Еще одной причиной проблемы может быть блокировка со стороны антивируса. Это тоже хорошо бы проверить.
- https://ArduinoPlus.ru/arduino-ide-opisanie-gde-skachat/
- https://soltau.ru/index.php/themes/kompyutery-i-programmy/item/465-kakie-sushchestvuyut-sredy-razrabotki-ide-dlya-arduino
- https://alexgyver.ru/lessons/arduino-ide/
- https://all-arduino.ru/arduino-ide/
- https://ArduinoPlus.ru/arduino-windows-10/
Предыдущая
ArduinoЧто такое ide arduino: характеристики и применение на практике
Что такое 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 и все самые свежие платы, появившиеся в рамках этой платформы.
Как работать с аналоговым входом?
С теорией разобрались, перейдем к практике. В любой программе ардуино есть две основных функции:
- void setup() – в ней настраивается режим работы микроконтроллера или его определенных узлов, а также назначаются его пины для работы в качестве входа или выхода.
- void loop() — это непосредственно программа, которая выполняется циклично строчка за строчкой.
Перед void setup() указываются библиотеки, которые будут использованы в программе, задаются какие-то переменные и прочее.
Для начала выберем аналоговый пин и настроим его для работы в качестве входа для этого пишем
Здесь A0 – номер аналогового входа, input – режим работы в качестве входа.
Если вы не знаете какие пины и для чего могут использоваться – вам поможет карта пинов ардуино, вы можете найти её для каждой версии платы по запросу «adruino uno pinout», если плата Arduino UNO, если у вас другая модификация, например, nano, пишем соответственно «arduino nano pinout» и так далее для каждого случая.
Здесь мы видим, что аналоговые выходы, они выделены зеленым цветом, кстати, цифровые номера пинов сохраняются и вы можете использовать вместо A0, например, просто цифру 14 — pinMode(14, input) — это аналогичное выражение в коде. В Arduino UNO аналоговых входов 6, в nano их уже 8 (несмотря на то что она построена на таком же микроконтроллере), а в Mega их аж 16.
Добавим к коду возможность чтения данных с последовательного порта. Это нужно для того, чтобы микроконтроллер передавал компьютеру какую-то информацию, и мы могли её прочитать. Для этого нужно использовать команду со следующим синтаксисом Serial.begin(9600) (размеры букв важны, нужно писать именно так), тогда код примет вид:
На этом настройка микроконтроллера завершена.
Пока что оставим программирование. Мы рассмотрим, как изменяются данные с аналогового входа на примере потенциометра. Для этого подключим его крайние выводы к источнику питания, а средний вывод ко входу А0.
Потенциометр подойдет на 1….10 кОм. Собираем элементарную схему и открываем Arduino IDE. Дальше будем использовать такой код:
Подключим по указанной схеме потенциометр, у меня оказался чуть меньше чем на 9.2 кОм.
И соберем схему, обратите внимание, если датчик питается от одного, а ардуино от другого источника питания, как у меня, то нужно соединить их минусы (gnd), иначе работать не будет. Дальше включаем монитор порта в Arduino IDE и можем наблюдать какое значение у нас на аналоговом входе
Дальше включаем монитор порта в Arduino IDE и можем наблюдать какое значение у нас на аналоговом входе.
Я прокрутил ручку потенциометра от края до края и на экране значения изменились с 0 до 1023, соответственно напряжение на входе изменилось с 0 до 5 вольт. А дальше я плавно вращал ручку потенциометра и значения также изменялись, что вы можете видеть на иллюстрации ниже.
Дальше я взял фоторезистор и подключил его по схеме делителя напряжения последовательно с резистором на 1 кОм, плюс питания подключил к фоторезистору, а минус к резистору, точку соединения резистора и фоторезистора подключил к аналоговому входу.
Освещение на первых снимках слабое, ранее пасмурное утро, света с окна почти нет, свет в большинстве своем падает от монитора, я закрыл пальцем, чтобы увидеть, какой сигнал будет в максимально тёмном состоянии, а затем убрал его.
Дальше я включил настольную лампу, зафиксировал изменение сигнала, после чего поставил лампу прямо над фоторезистором максимально близко.
Таким образом, определив значения сигналов при разной степени освещенности, вы можете использовать их для управления чем-либо, простейший пример — сделать фотореле, в котором можете тонко настроить пороги срабатывания в программе.
Ну и напоследок, мне попался датчик воды, который оказался скорее не датчиком уровня, а датчиком наличия воды, поскольку в сухом состоянии сигнал с него был 0, при частичном погружении порядка 250-260, и при полном погружении эта цифра не изменилась, ну стала больше на 10, но значение прыгало вверх-вниз. Подключается он просто — на плате датчика обозначены «+», «-» и «S» (сигнал), подал на плату питание, а S подключил к аналоговому входу, код никак не изменял, ниже вы видите, что из этого вышло.
Что такое библиотеки?
При создании проектов с помощью микроконтроллеров Ардуино и аналогов есть возможность для разных целей использовать готовые Библиотеки.
Библиотека — это готовый набор файлов, в которых представлен готовый код для правильной работы разных сенсоров, датчиков и модулей.
Большая часть библиотек зарегистрирована в Менеджере Библиотек Ардуино (Arduino Library Manager). Дополнительно существуют встроенные библиотеки в Arduino IDE.
Библиотеки отдельно подключаются к проектам с использованием Ардуино и в них уже заложена логика и структура обработки разных данных, что сильно упрощает и сокращает время создания устройств. Все официальные библиотеки в большинстве случаев предоставляются бесплатно.
Для работы вам необходимо скачать и установить на компьютер среду разработки Arduino IDE.
4Среда разработки Codeblocks for Arduino
Существуют и другие среды разработки для Arduino кроме перечисленных. Например, CodeBlocks. Основное её отличие от описанных IDE – возможность писать код для микроконтроллеров и некоторых других платформ, не только для Arduino. Более подробно описывать её не буду, проще почитать информацию на официальном сайте и файлы справки.
Среда разработки CodeBlocks для Arduino
Теперь мы знаем, что существуют альтернативные, гораздо более удобные, среды разработки, чем классическая Arduino IDE. Их использование может существенно упростить и ускорить написание ваших собственных скетчей.
Библиотеки для экранов, индикаторов и дисплеев
Библиотека I2C
Библиотека, предназначенная для работы периферийного устройства по протоколу I2C.
Пример использования:
#ifndef I2C_MASTER_H
#define I2C_MASTER_H
void I2C_init (void) – создание объекта, настройка на правильную частоту для шины.
uint8_t I2C_start () – установка соединения с новым устройством.
uint8_t I2C_write() – запись данных на текущее устройство.
uint8_t I2C_read_ack() – считывание байта с устройства, запрос следующего байта.
Библиотека LiquidCrystal
Стандартная библиотека, установленная в Arduino IDE. Предназначена для управления жидкокристаллическими дисплеями LCD.
Пример использования:
#include <LiquidCrystal.h>. Также, чтобы не ошибиться при написании, можно подключить через меню Sketch – Import Library – LiquidCrystal.
Конструктор класса – LiquidCristal(…). Аргументами являются rs, rw, en, do…d7. Первые 3 соответствую выводам сигналов RS, RW и Enable. Выводы d соответствуют номерам шин данных, к которым подключен дисплей.
void begin(cols, rows) – метод, который инициализирует интерфейс дисплея. Аргументами являются количество знаков в строке (cols) и число строк (rows). Этот метод должен задаваться первым.
void createChar(num, data) – метод, необходимый для создания пользовательских символов.
Библиотека UTFT
Стандартная библиотека, необходимая для работы Ардуино с TFT экранами разных типов. Все поддерживаемые дисплеи представлены в сопроводительном документе с библиотекой.
Пример использования:
#include <UTFT.h>
UTFT(); – создание экземпляра UTFT.
textRus(char*st, int x, int y); – метод, позволяющий выводить строку из указателя. Например, char *dht = “Температура,С”;
textRus(string st, int x, int y); – вывод строки с указанием в параметре. Например, g.textRus(“Температура, С”, 0, 20);
Библиотека LedControl
Позволяет управлять семисегментными дисплеями, объединять массив из светодиодов в одну матрицу.
Пример использования:
#include <LedControl.h>
LedControl lc1= LedControl( );
– требуется для инициализации библиотеки. Должна состоять из четырех аргументов – номера пинов, к которым подключен дисплей (первые 3 аргумента) и количество подключенных чипов.
writeArduinoOn7Segment() – отображение на дисплее всех чисел от 0 до 15. Использует функции setChar() для символов a и d и setRow() для создания макета пропущенных символов.
LedControl.shutdown() – отключение изображения.
setIntensity() – контроль яркости.
Что такое Arduino IDE
Аббревиатура IDE расшифровывается как Integrated Development Environment, в переводе – интегрированная среда разработки. С помощью этой программы программисты пишут программы, причем делают это гораздо быстрее и удобнее, чем при использовании обычных текстовых редакторов.
В рамках платформы Ардуино программа Arduino IDE делает то же – помогает программистам писать программы. С ее помощью скетч, написанный на языке Arduino, проверяется, превращается в C++, компилируется, загружается в Arduino. Теоретически, вы можете обойтись без этой программы, но реально других вариантов начать работы с Ардуино для новичка практически не существует. Поэтому первое, что вы должны сделать – это найти и установить себе эту среду программирования. Это совершенно не трудно и абсолютно бесплатно.
Как скачать и установить Arduino IDE
Процедура скачивания и установки абсолютно традиционна. Вы загружаете файл, запускаете установку. На официальном сайте доступны версии c установщиком (exe) и обычных zip архивах. Вы можете найти версии Arduino IDE для всех основных операционных систем. Процедура установки достаточно проста, вам нужно будет ответить на несколько вопросов. Важным этапом этого процесса является установка драйвера COM-порта. Для большинства «китайских» плат ардуино понадобится установить дополнительные драйвера.
После установки потребуется небольшая настройка среды – об этом мы поговорим в отдельной статье про установку и настройку Ардуино IDE.
Какую версию выбрать
Первая версия среды разработки Ардуино официально появилась в августе 2005 года. С тех пор утекло много воды, программа несколько раз претерпевала революционные изменения. До 2011 года номера версий состояли из одной цифры (последней была 0023 – версия от 09.11.2011). Затем появилась более привычная запись с «минорными» и «мажорными» обновлениями. Так, Arduino 1.0.0 появилась 30.11.2011, а версия 1.0.1 – в мае 2012.
сравнительная таблица большинства выпущенных на сегодняшний день плат Arduino.
Ключевыми по количеству обновлений и связанных с ними проблем совместимости стали переходы с версии 1.0.7 и 1.5. Многие библиотеки, написанные под «старые версии» программы не могли компилироваться в новых из-за изменений в системных библиотеках и других внутренних механизмах сборки проекта. Особенно сильно это проявилось при переходе на 1.6 версию. Если в вашем проекте есть древние библиотеки, некорректно работающие с современными версиями IDE, вам придется изменять их самому, ждать, пока это сделают авторы или подчиниться обстоятельствам и установить ту версию, с которой будет работать библиотека.
Как выглядит Arduino IDE.
Библиотеки для программной среды
Чтобы расширить базовые функции программы и получить новые возможности, программисты подключают к Arduino IDE библиотеки. Поскольку исходный код открыт, любой желающий может написать собственную библиотеку и подключить её, а также поделиться ей с другими.
Самый полный каталог Библиотек Ардуино на нашем сайте в разделе — Библиотеки
Есть 3 способа подключить библиотеку к Arduino IDE:
- Использовать менеджер библиотек, который появился в программе с версии 1.6.2. Необходимо использовать команду:Эскиз → Include Library → Manage Libraries
Появится список доступных библиотек, которые можно включать и отключать (см. скриншот ниже). - Добавить скачанную библиотеку в формате *.ZIP. Для этого нужно использовать команду:Эскиз → Include Library → Add .ZIP library
После этого выбрать файл, чтобы библиотека добавилась в список, и перезапустить программу. - Добавить файл с библиотекой вручную. Для этого архив потребуется распаковать и проследить, чтобы все файлы оказались в одной папке. После этого её нужно будет поместить в каталог с пользовательскими библиотеками, который располагается по адресу:Мои документы\Arduino\libraries (Windows)
или~/Документы/Arduino/libraries (Linux)
Такой способ достаточно сложен, его рекомендуют в первую очередь опытным программистам.
На сегодняшний день представлены версии для операционных систем Windows, Linux, MacOS. На начало сентября 2017 года самая hf,jxfz версия Arduino IDE была версии 1.8.5.
Скачать её можно выше — выберите нужный вариант из таблицы, либо на странице https://www.arduino.cc/en/main/software. Для Linux есть 32-разрядная, 64-разрядная и ARM-версии. Для Windows, помимо устанавливаемой и портативной, есть версия в виде Windows-приложения.
Таким образом, работа с Arduino IDE не создаёт каких-либо сложностей даже программистам, которые пока не освоили язык C++ в полной мере. Экспериментируя с функциями, добавляя свои библиотеки или скачивая новые, можно достигать отличных результатов и решать даже весьма нестандартные творческие задачи.
Всё это объясняет её растущую популярность и прирост количества программистов, которые экспериментируют с программной средой и добавляют в неё новые функции.
Аналоговые и цифровые выходы на Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- светодиод;
- резистор 220 Ом;
- провода «папа-папа».
Если вы хотите регулировать выходное напряжение, то следует использовать пины, помеченные символом «~». Для Arduino Uno — это 3, 5, 6, 9, 10, 11. С помощью аналоговых портов можно выдавать любое напряжение 0 до 5 Вольт, а цифровые выходы можно только включать и выключать. Аналоговые порты используют ШИМ (широтно-импульсную модуляцию), по английски PWM (pulse-width modulation), с помощью которой имитируется аналоговый сигнал.
Аналоговые выходы на плате Ардуино имеют, отметку тильда «~»
Чтобы понять разницу между цифровым и аналоговым сигналом, соберите на макетной плате схему из светодиода и резистора, как на первом занятии — Подключение светодиода. Но в этот раз подключите светодиод к аналоговому выходу ~9. Откройте скетч для мигания светодиодом из первого занятия и измените в нем порт выхода с Pin13 на Pin9. Загрузите скетч в плату Arduino NANO или UNO.
На Arduino аналоговый выход будет работать, как цифровой
9 порт может работать, как цифровой выход. Но если функцию digitalWrite изменить на analogWrite, то вместо значения HIGH (1) и LOW (0) можно поставить любое значение от 0 до 255. Именно в этом интервале можно менять напряжение на аналоговых выходах. Загрузите программу для плавного включения и затухания светодиода. Подробное описание работы данной программы даны ниже в пояснении к коду.
Скетч. Аналоговый сигнал Ардуино и светодиод
int svet = 0; // начальная яркость свечения светодиода int fade = 5; // шаг изменения яркости свечения светодиода void setup() { pinMode(9, OUTPUT); // используем Pin9 для операции вывода } void loop() { // устанавливаем яркость светодиода на Pin9 analogWrite(9, svet); // изменяем яркость, прибавляя заданную величину fade в каждом цикле svet = svet + fade; // меняем порядок затухания при минимальной и максимальной яркости if (svet == 0 || svet == 255) { fade = -fade; } delay(20); // устанавливаем паузу для эффекта }
Пояснения к коду:
- Функция , где pin — порт выхода на который подается сигнал, value — значение между 0 (полностью выключено) и 255 (полностью включено), используется для управления яркостью светодиода или скоростью электродвигателя, посредством Широтно-Импульсной Модуляции (ШИМ);
- Переменная имеет начальное значение «0» при каждом выполнении цикла к величине прибавляется заданное значение (в данном скетче fade = 5);
- При достижении переменной максимального значения равного 255, принимает отрицательное значение -5. Теперь при каждом выполнении цикла к величине прибавляется -5, т.е. каждый раз из вычитается .
- Если сопоставить работу скетча с графиком процесса квантования, размещенным на рисунке в начале статьи, то — это шаг квантования, т.е. величина на которую увеличивается подаваемое напряжение, а — это шаг дискретизации, т.е. период времени через который меняется значение .
Язык программирования Ардуино
Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:
- После каждой инструкции необходимо ставить знак точки с запятой (;)
- Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
- Так же необходимо указывать тип данных перед объявлением переменной.
- Комментарии обозначаются: // Строчный и /* блочный */
Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.
Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().
Функция setup
Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():
Функция loop
Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.
Install on Mac
Download the latest version of Arduino IDE from the official arduino homepage, and install it. Currently, OpenCR and OpenCM9.04 will be compatible with the version 1.6.4 or later.
Download Arduino IDE
To run the Arduino IDE on Mac platform, click the Arduino IDE icon as follows.
Preferences
After Arduino IDE is run, click File → Preferences in the top menu of the IDE.
When the Preferences window appears, copy and paste following link to the Additional Boards Manager URLs textbox.
Please select the appropriate file URL based on your board.
For OpenCR
For OpenCM9.04
Install the board package via Boards Manager
Click Tools → Board → Boards Manager. This step may take more than 20 minutes depending on the network status.
For OpenCR
Type OpenCR into the textbox to find the OpenCR by ROBOTIS package. Install of the OpenCR package.
After the installation, “INSTALLED” will be appeared.
See if OpenCR Board is now on the list of Tools → Board. Click this to import the OpenCR Board source.
For OpenCM9.04
Type OpenCM9.04 into the textbox to find the OpenCM9.04 by ROBOTIS package. After it finds out, click Install.
After the installation, “INSTALLED” will be appeared.
See if OpenCM9.04 Board is now on the list of Tools → Board. Click this to import the OpenCM9.04 Board source.
Port setting
This step shows the port setting for the program uploads. The OpenCR/OpenCM9.04 should be connected to the PC via micro USB port.
Select Tools → Port → /dev/cu.usbmodem1411
CAUTION : The value of /dev/cu.usbmodem1411 may be different depending on the environment connected to the PC.
Обзор
Vim со встроенным автозаполнением и линтингом через внешний плагин
Интегрированные среды разработки предназначены для максимального увеличения производительности программистов за счет предоставления тесно связанных компонентов с похожими пользовательскими интерфейсами . IDE представляют собой единую программу, в которой выполняется вся разработка. Эта программа обычно предоставляет множество функций для создания, изменения, компиляции, развертывания и отладки программного обеспечения. Это контрастирует с разработкой программного обеспечения с использованием посторонних инструментов, таких как vi , GCC или make .
Одна из целей IDE — уменьшить конфигурацию, необходимую для объединения нескольких утилит разработки, вместо этого она предоставляет тот же набор возможностей, что и одна связная единица. Сокращение времени настройки может повысить продуктивность разработчика, особенно в тех случаях, когда обучение использованию IDE происходит быстрее, чем ручная интеграция и изучение всех отдельных инструментов. Более тесная интеграция всех задач разработки может повысить общую продуктивность, помимо помощи в выполнении задач по настройке. Например, код можно непрерывно анализировать во время его редактирования, обеспечивая мгновенную обратную связь при появлении синтаксических ошибок, что позволяет разработчикам отлаживать код намного быстрее и проще с помощью IDE.
Некоторые IDE предназначены для определенного языка программирования , что позволяет использовать набор функций, наиболее точно соответствующий парадигмам программирования этого языка. Однако существует множество многоязычных IDE.
Хотя большинство современных IDE являются графическими, текстовые IDE, такие как Turbo Pascal, были популярны до появления оконных систем, таких как Microsoft Windows и X Window System (X11). Они обычно используют функциональные клавиши или горячие клавиши для выполнения часто используемых команд или макросов.
Какие библиотеки уже установлены?
Интегрированная среда разработки Arduino IDE уже идет с некоторым набором встроенных библиотек.
Есть два способа посмотреть установленные библиотеки.
Способ 1
Чтобы посмотреть какой набор уже установлен нужно перейти во вкладку:
Файл -> Примеры (File -> Example)
Далее прокрутите вниз и вы увидите установленный набор библиотек (на рисунке ниже выделен красным):
Способ 2
Второй способ через который также можно увидеть список библиотек — воспользоваться меню «Скетч» и подменю «Подключить библиотеку».
Заходим в «Скетч» и выбираем «Подключить библиотеку»:
Скетч -> Подключить библиотеку