Библиотеки iArduino на русском: описание и где брать
Библиотека iArduino — это не один файл, а целое семейство: iarduino_IR для ИК-пультов, iarduino_RTC для часов, iarduino_4LED для индикатора, iarduino_I2C_connect для общей обвязки шины I2C. На форумах линейку зовут «библиотека ардуино на русском», и в этом есть доля правды: вокруг кода лежит русскоязычная вики, примеры и пояснения. Но слово «русский» относится не к именам функций, а ко всему, что их окружает — сейчас разберём, что именно.
Ниже — где брать официальные файлы и их wiki, таблица «модуль — библиотека — чем занимательна», отличие семейства от Adafruit и честный разбор русского подхода: что в нём удобно новичку, а что помешает через полгода. Скетч на этой странице исполняется в симуляторе и показывает идею любой обёртки на чистом Arduino API — сами iarduino-библиотеки в браузере не собраны, они ставятся на реальную плату. Если вы ещё выбираете железо этого бренда, разбор коробок лежит в обзоре наборов iArduino.
Что такое семейство iarduino и чем оно отличается
Любая библиотека Arduino — это готовые функции, которые кто-то уже написал за вас: подключили файл, вызвали команду, получили результат. Adafruit и SparkFun пишут универсальные драйверы под широкую кучу железа, а iArduino пошёл другим путём: одна библиотека — один модуль из их магазина. Внутри нет лишнего: не нужно разбираться в регистрах чипа, адресах и байтах — вызов gettime() отдаёт строку времени, вызов check() возвращает код кнопки пульта. Базовый файл iarduino_I2C_connect тянет общую обвязку шины для всех I2C-модулей линейки.
Второе отличие — документация. У универсальных библиотек справка на английском на GitHub, у iArduino — вики-страница на каждый модуль по-русски, с той же схемой подключения, что в карточке товара. Для новичка, который ещё путается в терминах, это сокращает путь до первого работающего скетча на порядок.
Где официальная wiki и как ставить файлы
Официальная документация живёт на wiki.iarduino.ru: страница на каждый модуль, описание каждой команды, примеры, которые копируются в IDE целиком. Сами библиотеки качаются оттуда же архивом или берутся на GitHub бренда. Менеджер библиотек IDE тоже работает: в поиске по слову iarduino выдаёт всё семейство. Подробный маршрут установки — ZIP против менеджера — разобран в уроке про библиотеки в IDE.
Примеры не ищите по папкам: после установки они лежат прямо в IDE, меню File — Examples, в самом низу списка. Открыли, загрузили в плату, посмотрели результат — и уже не страшно править своими руками.
Таблица: модуль — библиотека — чем занимательна
| Модуль | Библиотека | Чем занимательна |
|---|---|---|
| ИК-пульт с приёмником | iarduino_IR | check() в цикле ловит нажатия любого пульта: код кнопки приходит готовым, без разбора таймингов |
| Часы DS1302 / DS1307 / DS3231 | iarduino_RTC | один класс на три чипа, время печатается строкой-шаблоном: gettime("H:i:s") вернёт «14:05:09» |
| Четырёхразрядный индикатор | iarduino_4LED | цифры на экране одним вызовом: без возни с сегментами и катодами |
| Шаговый двигатель | iarduino_Position_Step | позиция задаётся в оборотах и углах, а не в «сделай 800 шагов и молись» |
| Мультиплексор сервоприводов | iarduino_MultiServo | углы на несколько серв одной командой по шине, пины платы остаются свободными |
| Обвязка I2C-модулей | iarduino_I2C_connect | общая база семейства: адреса, чтение и запись на шине; ставится вместе с любой I2C-библиотекой линейки |
Список шире — на вики есть датчики газа, дисплеи, клавиатуры и ещё с десяток обёрток, — но ходовые именно эти. Заметьте закономерность: каждая библиотека прячет чип конкретного модуля (PT2262, DS3231, TM1637) за парой простых команд. Сами модули на шину вешаются как обычно: адреса ищутся сканером, ровно как для LCD по I2C.
Русский подход: что удобно, а что помешает
Плюс — порог входа. Документация, примеры и комментарии в исходниках читаются без словаря: новичок не вязнет в терминах и быстрее доходит до результата. Часть пояснений живёт прямо в заголовках файлов: открыли .h — прочитали, что делает команда, без вики. Это редкость для библиотек вообще.
Минус всплывает позже, и о нём честно. Сообщество вокруг семейства маленькое: если беда не описана в вики, гуглить придётся по-английски, и чужие ответы будут про Adafruit-аналоги, а не про вашу библиотеку. Код с iarduino_* привязан к модулям бренда: пересобрать проект на другое железо значит переписать кусок под стандартные драйверы. А «полностью русские команды» и не выйдут: компилятор C++ с кириллицей в именах функций капризничает — кодировки, шрифты, автодополнение, — латиница тут надёжнее везде. Так что русский в этом семействе живёт в описаниях и примерах, и это правильное место.
Скетч: идея любой обёртки на чистом API
Что на самом деле делает iarduino_RTC, когда печатает время? Берёт сырые байты с чипа и превращает их в строку «14:05». Что делает iarduino_IR? Ловит импульсы приёмника и отдаёт номер кнопки. Обёртка — это перевод с языка железа на человеческий. iarduino-библиотеки в браузерном симуляторе не собраны — их ставят на реальную плату, — поэтому идею показываю на чистом Arduino API: потенциометр отдаёт сырой код АЦП, а скетч превращает его в понятный уровень шкалы.
// Сырое значение -> понятное: так работает любая библиотека-обёртка.// iarduino-библиотеки в браузерном симуляторе не собраны, поэтому// идея показана на чистом Arduino API: ручка A0 -> уровень шкалы 0-4.int leds[] = {10, 11, 12, 13};unsigned long lastRead = 0; void setup() { for (int k = 0; k < 4; k++) { pinMode(leds[k], OUTPUT); } Serial.begin(9600);} void loop() { if (millis() - lastRead >= 400) { lastRead = millis(); int raw = analogRead(A0); // сырое: 0-1023 int level = map(raw, 0, 1023, 0, 4); // понятное: 0-4 for (int k = 0; k < 4; k++) { digitalWrite(leds[k], k < level ? HIGH : LOW); } Serial.print("код АЦП: "); Serial.print(raw); Serial.print(" -> уровень: "); Serial.println(level); }}Нажмите «Запустить»: ручка A0 крутится, шкала загорается, в мониторе видно оба числа — сырое и понятное. Ровно эту работу iarduino-обёртки делают за один вызов. Перейдёте на реальную плату — замените потенциометр на датчик из их линейки, а map() на вызов их библиотеки: смысл не поменяется. Прежде чем вешать модули на шину, прогоните сканер I2C — он печатает адреса, которые подставляются в конструкторы.
Как начать: маршрут на первый вечер
- купите модуль из таблицы выше или найдите его в стартовом наборе — про выбор коробки коротко в обзоре наборов iArduino
- поставьте библиотеку: менеджер библиотек IDE по слову iarduino или ZIP с wiki
- откройте File — Examples, найдите пример своего модуля, загрузите в плату
- правьте пример по чуть-чуть: своя частота, свой текст в Serial, своя логика в if
- упёрлись в непонятку — сначала wiki, потом форум, потом английский поиск
И держите в голове вилку: семейство iarduino — это скорость первых недель, стандартные библиотеки — задел на годы. Начинать с первого и переходить ко второму — нормальный маршрут, а не отступление.