Что такое Arduino IDE? – Zelectro
Среда разработки Arduino представляет собой текстовый редактор программного кода, область сообщений, окно вывода текста(консоль), панель инструментов и несколько меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino.
-Где её можно скачать?
-Свежую версию всегда можно найти на официальном сайте arduino.cc
-Для каких операционных систем она доступа?
-Windows, Mac, Linux
-Существует ли полное, официальная справка о программировании Arduino?
-Да, но к сожалению только на английском. Ссылка.
Перейдем к обзору самой среды. На момент написания статьи самой последний версией является 1.0.5. Именно обзор этой версии мы и проведем. К слову, вы же уже успели установить свою Arduino плату? Нет? У нас для вас есть статья в помощь 🙂
Понятия “скетч”, “компиляция” и другие основные определения можно найти в следующей статье: “что такое скетч?”. Сейчас же просто рассмотрим основной функционал Arduino IDE.
Меню “Файл”. Опустив очевидные пункты меню, хотелось бы упомянуть такой пункт, как “Папка со скетчами”. По умолчанию Arduino IDE сохраняет каждый скетч в отдельную папку. Имя папки совпадает с именем, указанным для скетча при сохранении. Изменить рабочую директорию для папок со скетчами можно в пункте меню “Настройки”.
В меню “Правка” расположены команды для работы с кодом вашей программы. Часто используемые команды удобны наличием комбинаций для быстрого доступа посредством клавиатуры. Удобными функциями являются возможность копирования для форумов и в html формате, позволяющие делится вашими скетчами, сохраняя наглядность разметки в виде BB кодов или html разметки соответственно.
Меню “Скетч”. В данном меню продублирована команда из панели управления “Проверить / Компилировать”. Выполнение которой приведет к проверке вашего кода на ошибки, и в случае их отсутствия – к компиляции.
Пункт меню “Показать папку скетчей” откроет рабочую директорию Arduino IDE, указанную в настройках.
“Добавить файл…” позволяет открыть текстовый файл (или скетч) в отдельной вкладке.
Отдельно хотелось бы остановиться на импорте библиотек. Arduino IDE содержит множество предустановленных библиотек. Их список, а так же справочное руководство на английском можно найти на arduino.cc.
Библиотеки добавляют дополнительную функциональность скетчам, например, при работе с аппаратной частью или при обработке данных. Одна или несколько директив #include будут размещены в начале кода скетча с последующей компиляцией библиотек и вместе со скетчем. Загрузка библиотек требует дополнительного места в памяти Arduino. Для установки сторонних библиотек можно воспользоваться командой “Импортировать библиотеку…”/”Add Library…”:
Далее необходимо указать на папку или zip файл с библиотекой. В результате библиотека станет доступна для импорта через пункт меню (командой #include).
В качестве альтернативы возможно добавление библиотек напрямую в рабочую директорию в папку libraries. При таком подходе необходим перезапуск IDE.
В меню “Сервис” необходимо указать модель вашей Arduino платы, а так же COM порт, к которому она подключена.
Удобной функцией является автоформатирование, которая позволяет исправить огрехи в разметке скетча и привести его в удобочитаемый вид. Особенно актуально при копировании сторонних программ.
Среда Arduino IDE позволяет залить bootloader на atmega микроконтроллеры. В пункте меню “Программатор” указывается используемое устройство. Команда “Записать загрузчик” осуществляет непосредственно заливку бутлоадера для указанной модели платы.
Пункт меню “Монитор порта” вызывает окно для обмена сообщениями с arduino через COM порт:
Меню “Справка”: Пункты меню ведут на соответствующие статьи на официальный сайт (английский язык).
Команды панели управления, как мы видим, дублируют наиболее актуальные пункты меню.
На этом мы завершаем наш обзор Arduino IDE. На любые возникшие вопросы, как всегда, готовы ответить в комментариях. Оставайтесь с нами 🙂
Полезные ссылки:
MariaMole — open-source проект, реализующий альтернативный Arduino IDE для продвинутых пользователей. Статья на сайте robocraft.ru.
Настройка Eclipse для работы с Arduino Uno. Статья на habrahabr.ru.
В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.
zelectro.cc
Первые шаги: Arduino IDE | Класс робототехники
У всех новичков, впервые взявших в руки Arduino, часто возникают одни и те же вопросы: «Как загрузить программу на Arduino? Нужен ли для этого программатор? Что такое Arduino IDE?». На этом небольшом уроке мы разберемся с этими вопросами раз и навсегда. Начнем со второго вопроса, ответ на который прост: никакого так называемого программатора не нужно. Контроллер Arduino отличается от «голых» микроконтроллеров тем, что он адаптирован для загрузки программ через обычный USB-порт компьютера! Исключение составляют версии Arduino Pro Mini, где требуется специальное внешнее устройство USB-UART мост, которое, впрочем, всё так же просто подключается по USB.1. Что такое Arduino IDE?
Arduino IDE — это приложение, которое позволяет составлять программы в удобном текстовом редакторе, компилировать их в машинный код, и загружать на все версии Arduino. Приложение является полностью бесплатным, а скачать его можно на официальном сайте сообщества Arduino: https://www.arduino.cc/en/Main/Software Arduino IDE можно установить на любую операционную систему: Windows, Linux, Mac OS X. Для скачивания нужной версии необходимо выбрать её в правой колонке, и на следующей форме нажать кнопку «JUST DOWNLOAD».2. Установка Arduino IDE
После того как дистрибутив программы успешно загружен с сайта, попробуем установить Arduino IDE на компьютер. Рассмотрим установку на примере версии для Windows. Как и любое другое приложение, установка состоит из нескольких шагов. Первый шаг — лицензионное соглашение. Жмем «I Agree».3. Интерфейс Arduino IDE
Окно редактора можно условно разделить на 6 блоков, как на картинке: Первый блок — это меню программы. Через меню можно получить доступ ко всем функциям Arduino IDE. Второй блок — панель иконок, на которой размещены часто используемые функции. Слева направо:- галочка — проверить программу на ошибки;
- стрелочкой вправо — загрузить программу на Arduino;
- страничка — создать новую программу;
- стрелочка вверх — открыть ранее сохраненную программу;
- стрелочка вниз — сохранить программу на компьютер;
- лупа — открыть окно монитора порта.
4. Загрузка первой программы
Попробуем открыть готовый пример программы, которая заставит Arduino мигать светодиодом. Для этого выберем в меню: Файл/ Примеры/ Basics.01/ Blink В результате откроется еще одна копия редактора, примерно с такой программой: Следующее, что необходимо сделать — подключить Arduino через свободный USB порт. Обычно, после подключения новой Arduino к компьютеру, должно пройти несколько минут, чтобы устройство автоматически определилось. Должно появиться уведомление об успешной установке устройства. Затем настроим правильный тип платы в Arduino IDE. Для этого в меню выбираем пункт: Инструменты/ Плата/ … Появится список разных типов Arduino, из которого мы выбираем нужный. Этот урок посвящен Arduino Uno, так что выбираем этот вариант. Кстати, в новых версиях Arduino IDE сменилось названия для классической Arduino Uno, теперь оно выглядит так: Arduino/Genuino Uno Теперь выбираем порт. Каждый раз, когда вы подключаете новую Arduino к компьютеру, Windows выделяет ей COM-порт с отдельным номером. Для того, чтобы выбрать правильный порт откроем пункт меню: Инструменты/ Порт/ … Если вы новичок, и не практикуете подключение периферийных устройств через виртуальный COM-порт, то в этом списке появится всего одна запись. Это может быть «COM1» или «COM3», или любой другой номер. Последний шаг — загружаем программу на Arduino. Для этого жмем иконку со стрелочкой вправо. По завершению этой процедуры, в строке сообщения появится надпись: «Загрузка завершена» (на более ранних версиях — «Вгрузили»).Заключение
После того как мы загрузили программу на Arduino, она начинает свое независимое существование. Каждый раз, когда мы подаем питание на наш контроллер, эта программа будет автоматически запускаться с самого начала. Теперь, когда стало понятно как загружать программы, можно приступить к составлению своей первой программы. О том, как это сделать, читаем урок: «Управление светодиодом«.robotclass.ru
Список библиотек Arduino | AlexGyver Technologies
Вы уже знаете, что комьюнити Ардуино очень большое и ежедневно растёт. За время своего существования оно родило огромное количество библиотек. Я решил составить список самых необычных, интересных и полезных, ссылки ведут на гитхаб или сайт разработчика. Полного набора специализированных библиотек для работы с модулями и шилдами здесь нет! Ищутся в гугле по названию чипа, здесь я оставлял только универсальные. Библиотеки, помеченные как стандартные, скачивать не нужно!
Список составлен для библиотек, подходящих для UNO, NANO, MEGA, то есть тут нет мощных библиотек для DUE и ZERO подобных плат. Источники:
Время, таймеры
- Time – счётчик времени для Ардуино, считает часы-минуты-месяцы и всё такое. Описание
- RTCTimer – таймер для работы в паре с RTC модулем
- Chrono – библиотека “таймера с millis()” для эффективного построения логики своего кода
- elapsedMillis – ещё один очень лёгкий и простой таймер с millis()
- GyverTimer – моя версия таймера с миллис, рекомендую! Удобнее предыдущих
- GyverTimer012 – лёгкая библиотека для управления прерываниями на всех трёх таймерах ATmega328
- buildTime – библиотека для получения даты и времени компиляции в явном виде
- TimerOne – библиотека для удобного ручного контроля за Таймером 1 (прерывания, ШИМ, и.т.д.)
- MsTimer2 – библиотека для удобного ручного контроля за Таймером 2. Есть версия FlexiTimer2, которая чем-то лучше. Используйте её.
- TimerThree – библиотека для удобного ручного контроля за Таймером 3
- TimeLord – библиотека, позволяющая узнать время восхода/заката Солнца и Луны, лунные фазы, звёздное время и проч. на основе географического положения
Коммуникация, интерфейсы
- Firmata – стандартная библиотека для общения с компьютером по протоколу Firmata. Описание
- SoftwareSerial – стандартная библиотека для создания TTL Serial на любых двух пинах, позволяет создать дополнительный порт для общения с Bluetooth/GPS/GSM и прочими модулями с Serial коммуникацией.
- AltSoftSerial – самая лучшая версия софтварного Serial, использует системный таймер
- SerialCommand – лёгкая библиотека для общения через порт при помощи команд
- CmdMessenger – мощная библиотека для общения через Serial порт, со своим парсером и кучей приколюх. Описание
- EasyTransfer – библиотека для общения двух Ардуинок через последовательный порт
- Streaming – вывод в порт “в стиле C++” при помощи оператора <<
- OneWire – библиотека для общения по протоколу one wire, например с датчиками температуры DHT18b20. Ардуино может быть “slave” для общения, читать тут
- SerialControl – набор примеров для управления состояниями пинов при помощи Serial команд. Описание
- MiniPirate – более мощная версия SerialControl, позволяет командами в порт крутить серво, сканировать i2c и многое другое!
- MIDI_library – библиотека для работы с музыкальными устройствами по протоколу MIDI (через Serial, подходит любая Ардуина)
- MIDI – MIDI библиотека от великого PaulStoffregen (через Serial, подходит любая Ардуина)
- arcore – ещё одна библиотека для MIDI (USB-MIDI, только для Леонардо/Микро)
- MIDIUSB – ещё одна библиотека для MIDI (USB-MIDI, только для Леонардо/Микро)
- HIDUINO – набор инструментов для создания USB MIDI устройства
- HID – очень мощная библиотека для создания HID устройств (мыши, клавиатуры, геймпады и другие USB контроллеры)
- ArduinoJoystickLibrary – ещё одна библиотека для создания полноценного HID геймпада на Leonardo/Micro (ATmega32U4)
- CPPM – библиотека для организации связи по протоколу CPPM (например RC приёмник Orange R615X)
- PPMEncoder – раскодирование и генерация PPM сигнала для RC моделей
- TVout – библиотека для вывода графики на экран телевизора через вход AV. Описание
- X10 – библиотека для общения по протоколу X10 по линии питания 220V. Описание тут
Некоторое железо
- AccelStepper – более интересная и качественная замена стандартной библиотеке Stepper для контроля шаговых моторчиков. Скачать можно со страницы разработчика, или вот прямая ссылка на архив.
- ServoSmooth – моё дополнение к стандартной библиотеке Servo, позволяющее управлять сервоприводом с настройкой максимальной скорости движения и разгона/торможения (как в AccelStepper, только для серво). Must have любого любителя серво манипуляторов!
- CapacitiveSensor – библиотека для создания сенсорных кнопок (из пары компонентов рассыпухи). Описание
- ADCTouchSensor – ещё одна версия библиотеки для создания сенсорных кнопок. Есть ещё одна, так, на всякий случай
- TouchWheel – библиотека для создания сенсорных слайдеров и колец
- Buzz – детектор присутствия на основе всего лишь одного провода! (измеряет ЭМ волны)
- Bounce – библиотека антидребезга для кнопок и всего такого. Сомнительная полезность, но почитайте описание
- oneButton – библиотека для расширенной работы с кнопкой. На мой взгляд неудобная
- GyverButton – моя библиотека для расширенной работы с кнопкой. Очень много возможностей!
- AdaEncoder – библиотека для работы с энкодерами
- GyverEncoder – моя библиотека для энкодеров с кучей возможностей, поддерживает разные типы энкодеров
- RTCLib – лёгкая библиотека, поддерживающая большинство RTC модулей
- OV7670 – библиотека для работы с камерой на OV7670
- IRremote – базовая библиотека для работы с ИК пультами и излучателями
- IRLib – более расширенная версия для работы с ИК устройствами
- IRLremote – самая чёткая библиотека для ИК пультов, работает через прерывания. 100% отработка пульта
- keySweeper – почти готовый проект для перехвата нажатий с беспроводных клавиатур
- USB_Host_Shield – позволяет Ардуине работать с геймпадами (PS, XBOX) и другими USB устройствами
- Brain – библиотека для работы с NeuroSky ЭЭГ модулями
- TinyGPS – шустрая библиотека для работы с GPS модулями
- GyverRGB – моя библиотека для работы с RGB светодиодами и лентами
- FadeLED – библиотека для плавного (ШИМ) мигания светодиодами с разными периодами
- CurrentTransformer – измерение силы тока при помощи трансформатора (катушки) на проводе. Читай: токовые клещи
- LiquidCrystal-I2C – библиотека для LCD дисплеев с I2C контроллером. Разработчик – fdebrabander
- LiquidCrystal-I2C – библиотека для LCD дисплеев с I2C контроллером. Разработчик – johnrickman. Предыдущая вроде бы лучше
- LiquidTWI2 – быстрая библиотека для LCD дисплеев на контроллерах MCP23008 или MCP23017
- LCD_1602_RUS – библиотека русского шрифта для LCD дисплеев
- LCD_1602_RUS_ALL – новая версия предыдущей библиотеки с поддержкой украинского языка
- u8glib – библиотека для работы с монохромными LCD и OLED дисплеями
- ucglib – библиотека для работы с цветными LCD и OLED дисплеями
- Adafruit_SSD1306 – ещё одна библиотека для OLED дисплеев
- Adafruit-GFX-Library – дополнение для adafruit библиотек дисплеев, позволяет выводить графику
- SSD1306Ascii – самодостаточная и очень лёгкая библиотека для вывода текста на OLEDы
- NeoPixelBus – библиотека для работы с адресной светодиодной лентой, адаптированная под esp8266 (NodeMCU, Wemos и др.).
Работа с данными, фильтры
- FFT – быстрое преобразование Фурье (раскладывание звука в спектр)
- fix_FFT – говорят пофикшенная библиотека FFT
- FHT – быстрое преобразование Хартли (как Фурье, только ещё быстрее)
- GyverFilters – несколько очень эффективных фильтров данных (бегущее среднее, медиана, упрощённый одномерный Калман, AB фильтр
- TinyEKF – быстрый облегчённый вариант фильтра Калмана
- filtering-library – несколько фильтров данных
- Gaussian – фильтр Гаусса
- aJson – работа с данными в формате JSON. Есть ещё Arduino JSON библиотека, и парсер потока JSON данных
- PID – самая известная библиотека ПИД регулятора. Для неё есть дополнение – автонастройка (автотюн) параметров регулятора
- GyverPID – моя версия PID регулятора, на мой взгляд более компактная и удобная в использовании
- GyverRelay – библиотека релейного регулятора с гистерезисом и обратной связью по производной
- CryptoSuite – несколько примеров шифрования данных известными шифрами
- AESlib – библиотека для работы с AES шифрованием
- LinkedList – работа с типом данных “связанный список”, читайте на Хабре
- FixedPointsArduino – работа с типом данных “с фиксированной точкой” (десятичные дроби, но быстрее вычисляются)
Системные штуки
Работа с памятью
- EEPROM – стандартная библиотека для работы с EEPROM. Рекомендую использовать более удобную EEPROMex
- EEPROMex – более удобная библиотека для работы с EEPROM памятью. Описание
- EEPROMWearLevel – “менеджер” EEPROM памяти, следит за количеством перезаписи ячеек
- MemoryFree – библиотека для изучения текущей занятости SRAM памяти. Описание
- EEWrap – библиотека позволяет использовать EEPROM как оперативную память (SRAM), т.е. для хранения переменных
- Flash – библиотека позволяет удобно хранить/читать любые данные во Flash памяти микроконтроллера (массивы, строки с текстом…)
- PGMWrap – ещё одна мощная библиотека для записи/чтения данных во Flash память
- optiboot_flash – модифицированный загрузчик OptiBoot, в который добавлена возможность работать с Flash памятью во время выполнения кода (считай расширение SRAM за счёт Flash!)
Работа с пинами
- DirectIO – более быстрая альтернатива стандартных функций чтения/записи состояния пина
- AnalogReadFast – быстрый вариант чтения аналогового пина (21 мкс)
- CyberLib – крутой сборник быстрых аналогов функциям Ардуино, читайте описание. Примечание: автор этой открытой библиотеки не любит, когда ей пользуются в своих проектах, так что аккуратнее.
- GyverHacks – сборник быстрых аналогов функций Ардуино, не таких быстрых, как у CyberLib, но более привычный в использовании. Изменение частоты/разрядности ШИМ
- SoftPWM – делаем софтверный ШИМ на разных пинах
- PWM – библиотека, позволяющая задавать частоту ШИМ
- GyverPWM – мощная библиотека для расширенной генерации ШИМ (только для ATmega328)
- PinChangeInt – делаем прерывания на любом пине. Как так? Есть описание
- PinChangeInterrupt – ещё одна библиотека, позволяющая ловить прерывания на любом пине
- analogComp – работа с аналоговым компаратором микроконтроллера
Глубинные настройки
- GyverHacks – помимо описанного выше, тут есть некоторые глубинные настройки, измерение опорного напряжения и температуры ядра (для ATmega328)
- GyverTimer012 – лёгкая библиотека для управления прерываниями на всех трёх таймерах ATmega328
- directTimers – библиотека для расширенного ручного управления таймерами на ATmega328, раскрывает все возможности и настройки таймеров
- directADC – библиотека для расширенного ручного управления АЦП и компаратором на ATmega328, раскрывает все возможности и настройки АЦП
- GyverPower – самая лёгкая и универсальная библиотека для управления сном, периферией и системным клоком
- Low-Power – мощная библиотека для управления энергосбережением и спящим режимом
- narcoleptic – ещё одна очень простая в использовании библиотека спящего режима
- SoftwareReset – доступ к перезагрузке Ардуино “из скетча”
- WatchDog – библиотека для работы со “сторожевым псом”, перезагружающим МК в случае зависания. Ещё вариант
- Adafruit-Trinket-USB – библиотека эмуляции USB для ATtiny85 (плата Digispark). Имитирует клавиатуру/мышь
- TrinketHidCombo_MEGA328 – библиотека эмуляции USB для ATmega328 (платы UNO/Nano/Pro Mini). Имитирует клавиатуру/мышь. Пример есть на форуме. Оригинальный пост на форуме. Скачать с FTP сайта. Скачать с облака Mail. Скачать с Яндекс Диска.
Ядра и загрузчики
- GyverCore – мой вариант ядра для плат с ATmega168/328 на борту (UNO, Nano, Mini), основан на оригинальном ядре Arduino, стандартные функции многократно ускорены и облегчены. Рекомендуется для тяжёлых и требовательных к скорости проектов.
- optiBoot – крутой загрузчик для Ардуино, более быстрый, лёгкий и функциональный
- HoodLoader – загрузчик для МК 16u2 с поддержкой HID (читай: превращает оригинальную UNO в аналог Leonardo с поддержкой HID)
- ArduinoXInput_AVR – ядро для плат на базе ATmega32U4 (Leonardo, Micro), превращающее плату в контроллер с поддержкой XInput (геймпад от Xbox). Для создания игрового контроллера также понадобится библиотека ArduinoXInput. Есть гайд на английском
- MiniCore – ядро для поддержки микроконтроллеров ATmega328, ATmega168, ATmega88, ATmega48 и ATmega8, основано на optiBoot. Одна из основных фишек – поддержка внутреннего тактового генератора!
- MicroCore – ядро для поддержки микроконтроллеров ATtiny13, ATtiny13A and ATtiny13V с выбором частоты внутреннего тактового генератора
- ATTinyCore – ядро для поддержки микроконтроллеров ATtiny 441/841, 44/84, 45/85, 461/861, 48/88, 828, 1634, 87, 167, опять же на базе крутого OptiBoot.
Менеджеры задач и потоков
- ArduinoThread – библиотека для создания “потоков” – отдельно выполняемых задач по таймеру или как-то ещё
- EventManager – библиотека для работы с событиями (опять-же таймер-вашего-кода)
- Arduino-fsm – ещё один менеджер задач, позволяющий писать чёткий понятный код с кучей задач, выполняющихся по таймеру
- Automaton – ещё один фреймворк для написания скетчей с задачами и таймерами. Есть вики
- FreeRTOS – операционная система реального времени для Ардуино. Задачи, потоки…
- Arduino_FreeRTOS – ещё одна версия RTOS
- GyverRTOS – моя простенькая RTOS с режимом сна (на основе библиотеки Low-Power)
- DeepSleepScheduler – менеджер задач со встроенным режимом сна
Звук и речь
- Talkie – библиотека синтеза звука речи для создания говорящих девайсов
- Mozzi – большая библиотека для генерации различных звуков
- uSpeech – библиотека распознавания речи
- TMRpcm – библиотека для воспроизведения звуковых файлов .WAV с карты памяти
- toneAC – более продвинутая версия стандартной tone() для генерации звуковой частоты. Скачать сами файлы можно тут
- DFPlayer – библиотека для работы с MP3 модулем DFPlayer mini
- WTV020SD16P – работа со звуковым модулем WTV020SD16P
Разное
- menusystem – мощный инструмент для создания меню с кучей примеров
- LCD_Menu – готовый инструмент для создания меню на LCD Дисплеях
- LiquidMenu – ещё один фреймворк для создания меню на LCD
- MENWIZ – ещё один готовый вариант меню для LCD
- MicroDebug – библиотека для удобной отладки кода
- hoverboard-hack – немного не в тему, но это инструкция по хакингу платы ховерборда для использования её в своих целях
Важные страницы
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress у проверенных продавцов
- Подборка библиотек для Arduino, самых интересных и полезных, официальных и не очень
- Полная документация по языку Ардуино, все встроенные функции и макро, все доступные типы данных
- Сборник полезных алгоритмов для написания скетчей: структура кода, таймеры, фильтры, парсинг данных
- Видео уроки по программированию Arduino с канала “Заметки Ардуинщика” – одни из самых подробных в рунете
alexgyver.ru