Установка и подключение библиотек Arduino
Стандартные библиотеки Arduino хранятся в папке:
«C:\Program Files (x86)\Arduino\libraries\»
Дополнительные библиотеки устанавливаются в папку:
«C:\Users\*Имя Пользователя*\Documents\Arduino\libraries»
В вашем случае эти пути могут быть другими из-за другой буквы основного жесткого диска и другого имени пользователя. Если у вас установлена 32х битная операционная система то папка «Program Files (x86)» будет называться «Program Files».
Установка библиотек Arduino
Установить библиотеки в Arduino IDE очень просто. Можно сделать это двумя способами. Через интерфейс программы или копированием скачанной библиотеки в папку «libraries». Рассмотрим подробнее оба варианта:
Установка библиотек через Arduino IDE
Первый вариант — это установка библиотек Ардуино из официального репозитория. Для этого необходимо запустить Arduino IDE, в верхнем меню выбрать «Скетч -> Подключить библиотеку -> Управлять библиотеками».
Установка библиотек ардуиноПосле этого откроется окно со списком доступных библиотек. Для того что бы найти нужную библиотеку можно воспользоваться поиском или выбрать необходимый раздел. Для установки библиотеки необходимо выбрать ее из списка, нажав на название, и кликнуть по появившейся кнопке «Установить».
Установить библиотеки ArduinoВторой вариант — это установка библиотеки из скачанной .zip папки. Через интерфейс Arduino IDE это можно сделать всего за пару кликов. В верхнем меню программ выбираем «Скетч -> Подключить библиотеку -> Добавить .ZIP библиотеку». Откроется окно файлового менеджера, где необходимо выбрать папку или .zip архив с вашей библиотекой.
Еще один способ установки библиотек Ардуино
Вы можете просто перенести папки библиотек по пути:
«C:\Program Files (x86)\Arduino\libraries\»
После того как вы добавили свои библиотеки необходимо перезапустить Arduino IDE. Теперь вы можете использовать сторонние библиотеки в своих проектах.
Подключение библиотеки Arduino
Мало установить библиотеку. Для использования ее необходимо подключить в скетч. Сделать это очень просто. Можно в начале скетча вручную написать подобную строчку:
#include <ESP8266WiFi.h>
Обратите внимание, что после этой инструкции не ставится точка с запятой. Так же можно подключить библиотеку ардуино через меню программы Arduino IDE. «Скетч -> Подключить библиотеку -> Название необходимой библиотеки». После этого в начало вашего скетча автоматически добавится нужная строчка. Теперь вы можете использовать библиотеки Arduino в своих проектах.
Как добавить библиотеки в arduino IDE через менеджер библиотек в ручном (zip) и автоматическом режиме
Средство разработки Arduino IDE имеет возможность подключать различные библиотеки через менеджер библиотек, а так же скачанные из интернета в виде ZIP архива или директорий с файлами. Мы рассмотрим различные способы добавления / скачивания библиотек Arduino, которые упрощают жизнь разработчикам программ. Вы можете воспользоваться некоторыми встроенными возможностями добавления библиотек:
1) Можно добавить библиотеку из официального репозитория Arduino.
Для этого открываем Arduino IDE -> скетч -> Подключить библиотеку ->
Управлять библиотеками->
Открывается окно поиска, в котором вводим поисковой запрос, например RTC (
Можно отсортировать по типу, выбрать версию и установить.
2) Также ещё можно скачать библиотеку, которой нет в репозитории и загрузить подключить Zip файл:
Находим файл библиотеки, например ds1307 и подключаем его
Далее добавляем в код библиотеку
Все , готово , библиотека добавлена !
Заказываешь на Aliexpress ?Узнай как экономить покупая на али кэшбек
https://cashback. epn.bz/?i=ff2b6
https://cashback.epn.bz/joinusnow?i=ff2b6
Похожие статьи
Делаем простой тесла генератор , катушка Теслы своими руками
Сегодня я собираюсь показать вам, как я построить простую катушку Тесла! Вы могли видеть такую катушку в каком то магическом шоу или телевизионном фильме . Если мы будем игнорировать мистическую составляющую вокруг катушки Тесла, это просто высоковольтный резонансный трансформатор который работает без сердечника. Так, чтобы не заскучать от скачка теории давайте перейдем к практике.
Распиновка самых популярных плат ардуино Arduino board pinmaping
В посте собраны практически все платы ардуино с распиновкой в хорошем качестве !
Arduino – это эффективное средство разработки программируемых электронных устройств, которые, в отличие от персональных компьютеров, ориентированы на тесное взаимодействие с окружающим миром. Ардуино – это открытая программируемая аппаратная платформа для работы с различными физическими объектами и представляет собой простую плату с микроконтроллером, а также специальную среду разработки для написания программного обеспечения микроконтроллера.
Ардуино может использоваться для разработки интерактивных систем, управляемых различными датчиками и переключателями. Такие системы, в свою очередь, могут управлять работой различных индикаторов, двигателей и других устройств. Проекты Ардуино могут быть как самостоятельными, так и взаимодействовать с программным обеспечением, работающем на персональном компьютере (например, приложениями Flash, Processing, MaxMSP). Любую плату Ардуино можно собрать вручную или же купить готовое устройство; среда разработки для программирования такой платы имеет открытый исходный код и полностью бесплатна.
Язык программирования Ардуино является реализацией похожей аппаратной платформы “Wiring”, основанной на среде программирования мультимедиа “Processing”.
Интерактивная лампа на Arduino Nano + ws2812 +ambibox
Лампа работает под управлением Arduino, на компьютере установлена программа Ambibox – которая расширяет возможности управления и настройки нужной яркости свечения , гаммы , а так же может играть как анализатор спектра от любого проигрывателя в системы . Arduino управляет адресной светодиодной лентой на чипах WS2812, так же для лампы удобнее всего завести питание сразу от USB , хотя если используете больше 50-60 светодиодов , то нужен будет внешний источник питания – 5в (2-3А – в зависимости от длины ленты)
Выставка электроники Hong Kong Electronics Fair 2019 которую стоит посетить
Почему стоит посещать выставки? На хорошей Экспо всегда можно увидеть, что нас ждёт в ближайшее время, какие веяния и тенденции будут актуальными в ближайшие полгода. Hong Kong Electronics Fair – как раз одна из таких выставок, где экспоненты демонстрируют на что они способны, а мы – гости мероприятия знакомимся и активно тестируем продукты, оцениваем их и решаем, что станет хитом, что просто заслуживает интереса, а что обречено лежать без внимания на стенде. Напомним, что все это проводится под крышей красивейшего выставочного центра Гонконга – Hong Kong Convention & Exhibition Centre.
Теги: Как добавить библиотеки в arduino, IDE через менеджер, библиотек, ручном (zip) и автоматическом режиме, ардуино, библиотеки, добавить, гайд, денис, гиик, китайчик, клуб, ардуино, клуб_ардуино, обзоры, алиэкспресс, denis_geek, denis, geek, chinagreat, club_arduino, arduino, club, aliexpress, денис гиик, denis geek, club arduino
Arduino – библиотеки.
Установка, подключение, удалениеОдной из причин популярности Arduino является простота использования разнообразных периферийных устройств (модулей): дисплеев, драйверов двигателей, модулей беспроводной связи (Bluetooth, wi-fi, XBee или ISM) и т. д.
Программная среда Arduino (IDE) включает в себя множество полезных функций, облегчающих создание программ для новых проектов. Но, к сожалению, она не может иметь встроенную поддержку для каждого вновь появившегося нового оборудования (модуля) или компонента программного обеспечения.
Вместо этого осуществляется поддержка «библиотек», которые являются автономными модулями, предназначенными для расширения программной среды, добавления определенных функций или аппаратной поддержки.
Основным источником библиотек для Arduino являются производители аппаратного обеспечения, создающие их для обеспечения поддержки в IDE Arduino.
Где можно найти библиотеки к Ардуино
Если вам нужна поддержка Arduino для определенного оборудования (модуля), попробуйте просмотреть сайт производителя модуля. Вы также можете посетить сайт Arduino, в котором собрано множество популярных библиотек.
В противном случае попробуйте выполнить поиск в Google, например, наберите «Arduino library» и название вашего оборудования.
Как подключить библиотеку в Ардуино
Как было уже сказано выше, в среде разработки Arduino есть предустановленные библиотеки. Чтобы функции библиотеки были доступны в нашей программе сначала необходимо ее подключить. Для этого используется директива #include.
Подключение встроенной библиотеки вызывается из меню «Скетч — Подключить библиотеку — …» далее выбираем необходимую библиотеку (в нашем случае «Servo»).
При выборе библиотеки, Arduino IDE автоматически добавит в ваш код соответствующую директиву #include.
Hantek 2000 – осциллограф 3 в 1
Портативный USB осциллограф, 2 канала, 40 МГц….
Пример:
#include <Servo.h> // подключаем библиотеку поддержки сервоприводов.
Как добавить библиотеку в Ардуино
Если в IDE нет необходимой предустановленной библиотеки, то ее необходимо установить самостоятельно.
Первый способ: Добавление библиотеки из репозитория Ардуино.
Создатели Arduino разместили в интернете базу различных библиотек. Если вам не хватает какой-то библиотеки, то вы можете поискать ее в репозитории. Для этого выберите в меню «Скетч – Подключить библиотеку – Управлять библиотеками».
В этом окне вы можете скачать из интернета новую или обновить уже существующую библиотеку.
Второй способ: Добавление библиотеки, скаченной из интернета.
Поскольку в среде Arduino почти все легко и просто, установка дополнительных библиотек тоже не вызывает больших сложностей. В качестве примера мы покажем установку библиотеки для работы с радиомодулем системы беспроводной связи NRF24L01 от компании Nordic Semiconductor.
Библиотеки для Arduino, предназначенные для самых популярных модулей доступны на странице http://arduino.cc/libraries. Программное обеспечение (библиотеки) для менее популярных модулей, как правило, находятся на сайтах производителей этих модулей.
В случае радиомодуля NRF24L01, библиотека поддержки этого модуля в среде Arduino была создана на базе библиотеки, разработанной для микроконтроллеров AVR . Документацию по этой библиотеке и саму библиотеку можно скачать с сайта https://github.com/stanleyseow/arduino-nrf24l01
После того как вы скачали архив библиотеки arduino-nrf24l01-master.zip, необходимо ее установить в IDE. Для этого перейдите в меню «Скетч – Подключить библиотеку – Добавить ZIP библиотеку»
Затем укажите местоположение скаченного файла arduino-nrf24l01-master.zip и нажмите кнопку Open.
После этого, как правило, мы имеем установленную библиотеку. Но, к сожалению, часто бывает так, что Arduino сигнализирует ошибку «Выбранная папка/zip файл не содержит корректных библиотек»
В таком случае библиотеку можно установить вручную. Для этого необходимо распаковать скачанный файл arduino-nrf24l01-master.zip и папку «Mirf» скопировать в папку «libraries». Либо можно поместить папку «Mirf» в C:\…. \Documents\Arduino\libraries (тогда библиотека будет доступна из IDE разных версий).
После перезагрузки IDE Arduino мы можем подключить данную библиотеку, а также воспользоваться примерами для радиомодуля NRF24L01
Как удалить библиотеку в Aрдуино
Если вы разобрались, как можно установить новую библиотеку в IDE, то для вас не будет проблемой и с ее удаление (в случае необходимости).
Все, что требуется от вас для удаления библиотеки, это удалить папку библиотеки из каталога «libraries» в IDE или (если библиотека установлена в «Документы») из каталога C:\….\Documents\Arduino\libraries
Установка и подключение библиотеки к Arduino IDE » SYSTOP
Установка и подключение библиотеки к Arduino – достаточно распространенная операция для тех, кто работает с этой платформой. В них хранятся различные методы и структуры данных, которые нужны для упрощения работы с датчиками, индикаторами, модулями и другими компонентами. Это необходимо для того, чтобы не углубляться в архитектуру подключаемого модуля и сосредоточиться на создании основной программы.Перед тем, как начать пользоваться методами и функциями библиотек, ее необходимо загрузить на Ваш компьютер, разместить в нужной папке и подключить к программе (вставить текст #include <файл.h> в скетч).
Существует несколько способов добавления сторонних библиотек:
- указание zip-архива
- ручное размещение в каталоге библиотек
- установка из офф. репозитория
Каждая установленная библиотека содержит один или несколько примеров для работы. Они используются для того, чтобы проверить работоспособность подключенного модуля и отобразить его возможности. Для этого в Главном меню выберите Файл, затем вкладку Примеры:
Скачивание библиотеки.
На сегодняшний день существует огромное количество библиотек, которые можно скачать в интернете. Большинство библиотек имеется на сайте Github. После загрузки важно добавить ее в правильную папку. Библиотека скачивается в виде ZIP-архива.
Чтобы установить ее, не выкладывая из архива, нужно зайти в меню Скетч – Подключить библиотеку – Добавить .ZIP библиотеку.
Когда откроется окно, необходимо выбрать ту папку, где был сохранен архив с библиотекой:
Затем нужно выбрать скачанный файл и нажать «Open»:
Если в процессе программа не выдала ошибок, связанных с архивом, то библиотека установлена и ей можно пользоваться.
Установка вручную из .ZIP архива.
Перед началом установки необходимо выйти из Arduino IDE. Скачанный архив нужно распаковать. На выходе будет папка, в которой располагаются файлы библиотеки с расширением .cpp и .h и дополнительные каталоги. Папку нужно разместить в /Документы/Arduino/libraries.
Далее запускаем Arduino IDE, загруженная библиотека будет доступна через Скетч – Подключить библиотеку.
Добавление библиотеки из официального репозитория Arduino.
Для этого открываем Arduino IDE – скетч – Подключить библиотеку – Управлять библиотеками.
В окне поиска вводим поисковый запрос, например DHT22.
Редактирование библиотек или признак хороших манер.
В процессе сборки различных проектов количество подключенных библиотек растет в геометрической прогрессии. Чтобы оптимизировать процесс составления программы можно добавлять в папку с каждым отдельным проектом файлы библиотек .cpp и .h, необходимые для работы с подключенными модулями:
После запуска программы во вкладках будут находится файлы библиотек, доступные для редактирования.
Установка библиотек в Arduino IDE
Освоившись с программным обеспечением Arduino, используя встроенные функции, вы можете расширить возможности вашего Arduino, используя дополнительные библиотеки.
Библиотека — это некоторый набор кода, который облегчает подключения датчика, экрана, шилда и так далее. Например, встроенная библиотека LiquidCrystal облегчает взаимодействие с ЖК-экранами. В Интернете можно найти сотни различных дополнительных библиотек. Для того, чтобы воспользоваться этими библиотеками, их нужно сначала установить.
Используем
Library ManagerЧтобы установить новую библиотеку в Arduino IDE, можно воспользоваться Library Manager, который появился в версии Arduino IDE 1.6.2.
В меню Эскиз выбираем →
После этого откроется менеджер библиотек и вы увидите список библиотек, которые уже установлены или готовы к установке. Уже установленные библиотеки помечены как INSTALLED.
В этом примере мы будем устанавливать библиотеку Encoder. Найдите ее в списке и выберете версию, которую вы хотели бы установить. В некоторых библиотеках вам будет доступна только одна версия, поэтому не волнуйтесь, если не увидите меню выбора версии библиотеки.
После этого появится индикатор процесса установки и после ее завершения статус библиотеки Encoder сменится на INSTALLED. Теперь эта библиотека станет доступной для добавления в наши программы, используя меню → .
Импорт библиотеки в виде файла
.zipЧасто библиотеки можно встретить в виде упакованной в zip-архив папки. Название этой папки является именем библиотеки. Внутри папки обязаельно будет файл .cpp и заголовочный .h файл. Также часто можно встретить файл keywords.txt, папку с кодом примеров использования этой библиотеки и другие требуемые для этой библиотеки файлы.
После скачивания библиотеки в виде zip-архива его не нужно распаковывать. Для установки запакованной библиотеки служит меню → →
После этого нужно указать путь к zip-файлу библиотеки. Этот zip-файл будет распакован и помещен в папку libraries в директорию со скетчами Arduino.
Нужно отметить, что после установки библиотека становится доступной через меню → , но для того, чтобы стали доступны файлы примеров этой библиотеки, используя меню → , необходимо перезапустить Arduino IDE.
Ручная установка библиотеки
Для ручной установки библиотеки, прежде всего, нужно закрыть приложение Arduino IDE. Затем распакуйте, скаченный zip-файл. Например, мы хотим установить гипотетическую библиотеку RobotoshaArduino. Распаковав файл RobotoshaArduino.zip, мы должны получить папку RobotoshaArduino с файлами типа RobotoshaArduino.cpp и RobotoshaArduino.h внутри. Если после распаковки мы получаем файлы без папки, то нужно создать вручную папку RobotoshaArduino, поместив внутрь полученные библиотечные файлы.
После этого необходимо переместить эту папку в папку libraries, расположение которой зависит от используемой вами операционной системы.
Для Windows, по умолчанию, это:
Мои документы\Arduino\libraries
Для пользователей Mac OS X:
~/Документы/Arduino/libraries
В Linux это будет папка libraries с вашими скетчами.
Очень важно, чтобы библиотечные файлы .cpp и .h находились в отдельной папке (как в примере RobotoshaArduino). Если поместить файлы .cpp и .h просто в папку libraries, то библиотека работать не будет.
После перезапуска Arduino IDE добавленная библиотека станет доступна для подключения ее к свои программам через меню → .
Еще по этой теме
Вы можете пропустить чтение записи и оставить комментарий. Размещение ссылок запрещено.
Урок 23. Подключение сегментного дисплея TM1637 к Arduino.
Сегодня в уроке подключим семисегментный индикатор TM1637 к Arduino. Установим библиотеку TM1637.h и научимся выводить на дисплей цифры и некоторые символы.
Как устроен и из чего состоит модуль TM1637.
Характеристики Индикатора на TM1637:
• Напряжение питание: 5,5В
• Потребляемый ток 0. 2 — 80мА (в зависимости от горящих сегментов)
• Градаций яркости индикаторов — 8
• Размеры платы: 42×24мм
• Двух проводной последовательный интерфейс (CLK, DIO).
Фото модуля от магазина RobotDyn фронтальный вид.
Фото модуля от магазина RobotDyn вид с тыльной стороны.
Этот модуль собран на драйвере TM1637.
• Есть модули красного, синего, зелёного, белого цвета.
• Размеры 0,36” и 0,56”
В уроке будем использовать модуль TM1637 0,56”, зеленого цвета.
Возможности модуля TM1637:
• Зажигать сразу все знаки или по одному сегменту или символу,
• Выводить цифры от 0 до 9 и некоторые буквы. Смотри ниже.
• Цифры могут выводиться как с нулями слева, так и без них,
• 8 градаций изменения яркости.
• Вывод символа в определённую позицию (ячейку).
Отличие модуля индикатора на TM1637 от других – это его компактность, он не дорогой, и управление всего по двум проводам.
Подключение дисплея TM1637 к Arduino
Подключить дисплей можно к любым цифровым пинам Ардуино. В нашем случае будем подключать к Arduino NANO по схеме.
Arduino Nano [PIN 5V] – TM1637 Module[PIN 5V]
Arduino Nano [PIN GND] – TM1637 Module[PIN GND]
Arduino Nano [PIN 2] – TM1637 Module[PIN DIO]
Arduino Nano [PIN 3] – TM1637 Module[PIN CLK]
Установка и настройка библиотеки TM1637.h.
Установить библиотеку TM1637.h можно из менеджера библиотек. Для этого откроем Arduino IDE, перейдем в раздел Скетч-> Подключить библиотеку -> Управление библиотеками.
Затем в строке поиска наберем TM1637. И установим библиотеку Grove 4-Digit Display.
Вы также можете скачать библиотеку TM1637 внизу урока, в разделе «материалы для скачивания».
Настройка библиотеки TM1637 для вывода дополнительных символов.
Библиотека позволяет вывести цифры и некоторые символы на дисплей.Для реализации простых проектов, таких как часы, индикаторы и счетчики, этого набора символов достаточно. Я реализовывал часы с выводом температуры и влажности: Arduino часы. Видео 2. Подключаем к Arduino TM1637 и датчик DHT11.
Для отображения температуры использовал символ «С» номер для вывода на индикатор 12и для отображения влажности использовал символ «F» номер для вывода на дисплей 15.
Но для некоторых проектов на Arduino не достаточно данного набора символов. Расширить его достаточно легко, для этого в файле TM1637. cpp библиотеки находим массив TubeTab[] и добавляем нужные коды символов.
Список добавленных символов в файле TM1637.cpp, библиотеки TM1637.
После чего данные символы можно
использовать в своих проектах.
Если захочется закодировать свой символ, то можно использовать следующую таблицу:
После кодирования сегментов, установив нужные биты в байте, для сокращения записи можно перевести байт из двоичного в шестнадцатиричный формат, как – b00011110 -> 0x1E.
Пример кода для вывода информации на семисегментный индикатор с драйвером TM1637.
Пример 1. Вывод времени с мигающим двоеточием.
В данном примере выведем 4 цифры на индикатор TM1637, и научимся мигать двоеточием каждую секунду. Данный пример поможет вывести любую цифровую информацию: время, счётчики, показания с датчиков.
Пример 2. Вывод слов на модуль TM1637.
Дополнительные символы добавили в библиотеку, сейчас осталось научиться их выводить. Создадим массивы необходимых слов, после чего по очереди выведем их на дисплей. Данные слова можно использовать при выводе статуса работы устройств. Это пример слов. Вы можете составлять свои слова в соответствии с вашей задачей.
Пример 3. Выводданных с датчиком с символами.
Мы научились выводить цифры и слова на дисплей. Как же сделать динамическое изменение значений на дисплее. При этом добавлять символы для индикации различных данных.
Тут поможет нам посимвольный вывод данных на дисплей. Например, запись tm1637.display(0, 5) выводит первый символ на дисплей 5. Аналогично выводятся остальные 3 символа.
Для разделения числа на десятки и единицы, для нахождения единиц нужно найти остаток от деления на 10, и для получения десяток нужно число делить на 10.
И после числового значения выведем символ, например, для температуры символ «С».
Пример применим при выводе даты, времени и показаний с датчиков.
Появились вопросы или предложения не стесняйся, пиши в комментарии!
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
Пример 1. Вывод времени с мигающим двоеточием.ino | 1 Kb | 1420 | Скачать Вы можете скачать файл. | |
Пример 2. Вывод слов на модуль TM1637.ino | 1 Kb | 780 | Скачать Вы можете скачать файл. | |
Пример 3. Вывод данных с датчиком с символами.ino | 1 Kb | 756 | Скачать Вы можете скачать файл. | |
скачать библиотеку TM1637 (Доп символы).zip | 11 Kb | 1444 | Скачать Вы можете скачать файл. | |
datasheet-TM1637.pdf | 685 Kb | 601 | Скачать Вы можете скачать файл. | |
TM1637.cpp (доп.символы).zip | 2 Kb | 1126 | Скачать Вы можете скачать файл. |
Arduino – Библиотеки
Установка дополнительных библиотек Arduino
Как только вы освоитесь с программным обеспечением Arduino и начнете использовать встроенные функции, вы можете захотеть расширить возможности вашего Arduino с дополнительными библиотеками.
Что такое библиотеки?
Библиотеки– это набор кода, который упрощает подключение к сенсору, дисплею, модулю и т. д. Например, встроенный Библиотека LiquidCrystal упрощает взаимодействие с символьными ЖК-дисплеями.В Интернете доступны сотни дополнительных библиотек для скачать. Встроенные библиотеки и некоторые из этих дополнительных библиотек перечислены в ссылке. Чтобы использовать дополнительные библиотеки, вам нужно будет их установить.
Как установить библиотеку
Использование диспетчера библиотек
Чтобы установить новую библиотеку в IDE Arduino, вы можете использовать Диспетчер библиотек (доступен в среде IDE версии 1.6.2). Откройте IDE и щелкните меню «Эскиз», а затем Включить библиотеку> Управление библиотеками .
Затем откроется Диспетчер библиотек, и вы найдете список библиотек, которые уже установлены или готовы к установке. В этом примере мы установим библиотеку Bridge. Прокрутите список, чтобы найти его, щелкните по нему, затем выберите версию библиотеки, которую вы хотите установить. Иногда доступна только одна версия библиотеки. Если меню выбора версии не появляется, не волнуйтесь: это нормально.
Наконец, нажмите «Установить» и подождите, пока среда IDE установит новую библиотеку.Загрузка может занять некоторое время в зависимости от скорости вашего подключения. По завершении рядом с библиотекой Bridge должен появиться тег Installed . Вы можете закрыть менеджер библиотеки.
Теперь вы можете найти новую библиотеку, доступную в меню Sketch> Включить библиотеку . Если вы хотите добавить свою собственную библиотеку в Диспетчер библиотек, следуйте этим инструкциям.
Импорт библиотеки .zip
Библиотекичасто распространяются в виде ZIP-файла или папки. Имя папки – это имя библиотеки.Внутри папки будет файл .cpp, файл .h и часто файл keywords.txt, папка примеров и другие файлы, необходимые для библиотеки. Начиная с версии 1.0.5, вы можете устанавливать сторонние библиотеки в IDE. Не разархивируйте загруженную библиотеку, оставьте как есть.
В среде Arduino IDE перейдите к Sketch> Включить библиотеку> Добавить .ZIP-библиотеку . В верхней части раскрывающегося списка выберите параметр «Добавить библиотеку .ZIP».
Вам будет предложено выбрать библиотеку, которую вы хотите добавить.Перейдите в папку с файлом .zip и откройте его.
Вернитесь в меню Sketch> Включить библиотеку. меню. Теперь вы должны увидеть библиотеку внизу раскрывающегося меню. Он готов к использованию в вашем эскизе. ZIP-файл будет расширен в папке библиотеки в вашем каталоге эскизов Arduino.
NB: библиотека будет доступна для использования в эскизах, но в более старых версиях IDE примеры для библиотеки не будут отображаться в Файл> Примеры до тех пор, пока среда IDE не будет перезапущена.
Ручная установка
Если вы хотите добавить библиотеку вручную, вам необходимо загрузить ее в виде ZIP-файла, развернуть и поместить в соответствующий каталог. ZIP-файл содержит все, что вам нужно, включая примеры использования, если их предоставил автор. Диспетчер библиотек предназначен для автоматической установки этого ZIP-файла, как объяснялось в предыдущей главе, но есть случаи, когда вам может потребоваться выполнить процесс установки вручную и самостоятельно поместить библиотеку в папку библиотеки вашего альбома для рисования.
Вы можете найти или изменить местоположение папки вашего альбома для рисования в File> Preferences> Sketchbook location.
Перейдите в каталог, в который вы скачали ZIP-файл библиотеки.
Извлеките ZIP-файл со всей его структурой папок во временную папку, затем выберите основную папку, которая должна иметь имя библиотеки.
Скопируйте его в папку «библиотеки» в альбоме для рисования.
Запустите программное обеспечение Arduino (IDE), перейдите в Sketch> Включить библиотеку .Убедитесь, что только что добавленная библиотека доступна в списке.
Обратите внимание: : библиотеки Arduino управляются в трех разных местах: внутри установочной папки IDE, внутри основной папки и в папке библиотек в вашем альбоме для рисования. Выбор библиотек во время компиляции позволяет обновлять библиотеки, присутствующие в дистрибутиве. Это означает, что размещение библиотеки в папке «библиотеки» в вашем альбоме отменяет другие версии библиотек.
То же самое происходит с библиотеками, присутствующими в установках дополнительных ядер. Также важно отметить, что версия библиотеки, которую вы добавляете в свой альбом для рисования, может быть ниже, чем версия библиотеки в дистрибутиве или основных папках, тем не менее, она будет той, которая будет использоваться во время компиляции. Когда вы выбираете конкретное ядро для своей платы, библиотеки, имеющиеся в папке ядра, используются вместо тех же библиотек, имеющихся в папке распространения IDE.
И последнее, но не менее важное, это способ обновления программного обеспечения Arduino (IDE): все файлы в программах / Arduino (или папке, в которой вы установили IDE) удаляются, и создается новая папка со свежим содержимым.
Вот почему мы рекомендуем вам устанавливать библиотеки только в папку альбомов, чтобы они не удалялись в процессе обновления Arduino IDE.
Это руководство основано на тексте Лимора Фрида.
Последняя редакция 2017/02/07, автор: SM
Текст руководства по началу работы с Arduino находится под лицензией Лицензия Creative Commons Attribution-ShareAlike 3.0. Примеры кода в руководстве опубликованы в открытом доступе.
Спецификация библиотеки– Arduino CLI
Это спецификация формата библиотеки Arduino, которая будет использоваться с Arduino IDE 1.5.x и выше.
- rev.1 была реализована, начиная с Arduino IDE версии 1.5.3 (теперь заменена rev.2)
- rev.2 будет реализована, начиная с Arduino IDE версии 1.5.6
- rev.2.1 будет реализована начиная с Arduino IDE версии 1.6.10
- rev.2.2 будет реализована начиная с Arduino IDE версии 1.8.10
Этот новый формат библиотеки предназначен для использования в тандеме с Library Manager , доступным начиная с Arduino IDE 1. 6.2.
Диспетчер библиотек позволяет пользователям автоматически загружать и устанавливать библиотеки, необходимые в их проектах, с простым
использовать графический интерфейс в
IDE Arduino / IDE Arduino 2.0
а также
Веб-редактор Arduino
а также arduino-cli lib
.
Доступна дополнительная информация о том, как работает Диспетчер библиотек. здесь.
Программное обеспечение для разработкиArduino поддерживает несколько архитектур микроконтроллеров (например, AVR, SAM и т. Д.), Что означает, что библиотекам может потребоваться работать на нескольких архитектурах.Новый формат библиотеки 1.5 не содержит специальной поддержки для кросс-архитектурные библиотеки, но он предоставляет механизм на основе препроцессора для библиотек для целевых разделов код для конкретных архитектур.
См. Также
1.5 формат библиотеки (ред. 2.2)
Метаданные библиотеки
Наиболее важным дополнением к формату является возможность добавления информации о самой библиотеке через Файл свойств с именем library. properties .
Этот файл позволяет Library Manager искать и устанавливать библиотеку и ее зависимости в простой и автоматизированной способ.Он должен находиться в корне папки библиотеки.
Формат файла library.properties
Файл library.properties представляет собой список свойств ключ = значение. Каждое поле в этом файле закодировано в UTF-8. Если не указано иное в противном случае ниже все поля обязательны для заполнения . Доступные поля:
- наименование – название библиотеки. Имена библиотек должны содержать только основные буквы (A-Z или a-z) и цифры (0-9),
пробелы (), подчеркивания (_), точки (.) и тире (-).Они должны начинаться с буквы или цифры. Они должны содержать
хотя бы одно письмо. Обратите внимание, что библиотеки со значением
имени
, начинающимся сArduino
, больше не будут разрешены. дополнение к индексу Менеджера библиотек, поскольку эти имена теперь зарезервированы для официальных библиотек Arduino. - version – версия библиотеки. Версия должна быть совместимой с semver. 1.2.0 правильно; 1.2 принято; r5, 003, 1.1c недействительны
- автор – имя / ник авторов и их адреса электронной почты (не обязательно) через запятую (,)
- сопровождающий – имя и адрес электронной почты сопровождающего
- предложение – предложение, объясняющее назначение библиотеки
- абзац – более подробное описание библиотеки.К этому будет добавлено значение предложения , поэтому вы следует начать с написания второго предложения здесь
- категория – (по умолчанию
Без категории
) допустимые значения:- Отображение
- Связь
- Вход / выход сигнала
- Датчики
- Контроль устройств
- Сроки
- Хранение данных
- Обработка данных
- Другое
- url – URL проекта библиотеки, который может посетить человек. Например, страница библиотеки на GitHub. Это используется для ссылок “Дополнительная информация” в Диспетчере библиотек
- архитектуры – (по умолчанию
*
) список архитектур, поддерживаемых библиотекой, разделенных запятыми. Если библиотека не содержит кода для конкретной архитектуры, используйте*
для соответствия всем архитектурам. Это поле используется как один из факторов определение приоритета, когда несколько библиотек соответствуют директиве#include
, и выдача предупреждающего сообщения, когда Библиотека скомпилирована для платы с архитектурой, которой нет в списке. - зависит от – (доступно из Arduino IDE 1.8.10 / Arduino CLI 0.7.0) (необязательно) список разделенных запятыми
зависимости (библиотеки, необходимые для сборки текущей библиотеки). Менеджер библиотеки Arduino IDE предложит:
установить зависимости во время установки библиотеки.
arduino-cli lib install
автоматически установит зависимости. С вимени
библиотеки разрешены пробелы, но не запятые, вы можете ссылаться на библиотеки, содержащие пробелы в имя без двусмысленности, например:
depends = Очень длинное имя библиотеки, Другая библиотека с длинным именем
- dot_a_linkage – (доступно в Arduino IDE 1.6.0 / arduino-builder 1.0.0-beta13) (необязательно), если установлено значение
true
, библиотека будет скомпилирована с использованием файла .a (архив). Во-первых, все исходные файлы компилируются в файлы .o как обычный. Тогда вместо включения всех .o файлы в команде компоновщика напрямую, все файлы .o сохраняются в файл .a, который затем включается в компоновщик команда. Требуется структура папок библиотеки формата 1.5. - включает – (доступно из Arduino IDE 1.6.10) (необязательно) список файлов библиотеки, разделенных запятыми.
добавлен к скетчу как
#include <. ..>
строк. Это свойство используется с командой «Включить библиотеку» в Arduino. IDE. Есливключает свойство
отсутствует, включаются все файлы заголовков (.h) в корневой исходной папке. - предварительно скомпилированный – (доступен в Arduino IDE 1.8.6 / arduino-builder 1.4.0) (необязательно) включает поддержку .a
(архив) и файлы .so (общий объект). См. Раздел «Предварительно скомпилированные двоичные файлы» для
документация о требуемом месте в библиотеке для этих файлов.Статическая библиотека должна быть связана как
ldflag. Предварительно скомпилированное поле имеет два поддерживаемых значения, которые определяют, как любые исходные файлы в библиотеке
handled:
- true – Исходные файлы всегда компилируются. Это полезно для “смешанных” библиотек, например тех, которые содержат оба открытых исходный код и предварительно скомпилированный двоичный код компонента с закрытым исходным кодом. Поддержка “смешанных” библиотек была непреднамеренно потеряно в Arduino IDE 1.8.12 / arduino-builder 1.5.2 / Arduino CLI 0.8.0 и возвращено в Arduino IDE 1.8.13 / arduino-builder 1.5.3 / Arduino CLI 0.11.0.
- full – (доступно в Arduino IDE 1.8.13 / arduino-builder 1.5.3 / Arduino CLI 0.11.0) Если библиотека предоставляет предварительно скомпилированная библиотека для компилируемой платы, исходные файлы не будут компилироваться. Если нет предварительно скомпилированного библиотека была предоставлена для выбранной платы, исходные файлы скомпилированы как резерв. Это полезно для предварительная компиляция библиотеки для сокращения времени компиляции для конкретного целевого оборудования, а также обеспечение поддержки произвольные платы, составив библиотеку по запросу.
- ldflags – (доступно из Arduino IDE 1.8.6 / arduino-builder 1.4.0) (необязательно) добавляемые флаги компоновщика.
Пример:
ldflags = -lm
Пример:
name = WebServer
версия = 1. 0.0
автор = Кристиан Магли , Пиппо Плутон
сопровождающий = Кристиан Магли
предложение = Библиотека, которая упрощает программирование веб-сервера.
параграф = Поддерживает HTTP1.1, и вы можете выполнять GET и POST.
category = Общение
url = http: //example.com/
архитектура = avr
включает = WebServer.h
зависит = ArduinoHttpClient
Расположение папок и файлов
Каждая папка имеет определенное назначение (источники, примеры, документация и т. Д.). Папки, не включенные в эту спецификацию могут быть добавлены по мере необходимости в будущих версиях.
Корневая папка библиотеки
Имя корневой папки библиотеки должно начинаться с основной буквы (A-Z или a-z) или цифры (0-9), за которой следуют основные буквы, числа, подчеркивания (_), точки (.) и тире (-). Максимальная длина – 63 символа.
Исходный код
Для библиотек, предназначенных для использования только с Arduino IDE 1. 5.x +, исходный код находится в папке src . Для пример:
Servo / src / Servo.h
Серво / SRC / Servo.cpp
Исходный код, находящийся в папке src и во всех ее подпапках , скомпилирован и связан в эскизе пользователя. Только src Папка добавляется в путь поиска включения (как при компиляции скетча, так и при компиляции библиотеки).Когда пользователь импортирует
библиотеку в свой эскиз (из меню «Скетч> Включить библиотеку» в Arduino IDE или в меню веб-редактора Arduino
Кнопка “Включить”), поведение по умолчанию (настраивается с помощью
library.properties включает поле
) для инструкции #include
, добавляемой для
все файлы заголовков (.h) в каталоге src / (но не в его подпапках). В результате эти файлы заголовков образуют что-то вроде
де-факто интерфейс к вашей библиотеке; в общем, единственными заголовочными файлами в корневой папке src / должны быть те, которые вы
хотите показать эскиз пользователя и планируете поддерживать совместимость с будущими версиями библиотеки. Место
внутренние файлы заголовков в подпапке src / folder.
Для обратной совместимости с Arduino IDE 1.0.x автор библиотеки может разместить исходный код в корневой папке, вместо папки с именем src . В этом случае применяется формат библиотеки 1.0 и выполняется поиск исходного кода. из корневой папки библиотеки и папки утилиты , например:
Сервопривод / Servo.h
Серво / Servo.cpp
Серво / утилита / ServoTimers.h
Серво / утилита / ServoTimers.cpp
Это позволит существующим библиотекам формата 1.0 компилироваться под Arduino IDE 1.5.x +, и наоборот. Если библиотека необходимо только запускать в Arduino IDE 1.5.x +, мы рекомендуем поместить весь исходный код в папку src /. Если библиотека требует рекурсивная компиляция вложенных исходных папок, ее код должен находиться в папке src / (поскольку Arduino IDE 1.0.x не поддерживать рекурсивную компиляцию, обратная совместимость в любом случае была бы невозможна).
Предварительно скомпилированные двоичные файлы
Предварительно скомпилированное поле библиотеки
.properties обеспечивает поддержку использования
предварительно скомпилированные библиотеки. Для этого необходимо предоставить файлы .a (архив) или .so (общий объект), которые скомпилированы для
конкретная архитектура процессора. Целевая архитектура файлов обозначена именами папок.
Двоичные файлы должны располагаться по адресу src / {build.mcu}
, где {build.mcu}
– это имя архитектуры целевого файла.
был скомпилирован для. Пример: cortex-m3
для Arduino Due.
Имена файлов скомпилированных двоичных файлов должны начинаться с lib
(e.г., libFoo.a
).
(доступно из Arduino IDE 1.8.12 / arduino-builder 1.5.2 / Arduino CLI 0.8.0) Конфигурация ABI с плавающей запятой для
Микроконтроллеры ядра ARM могут быть настроены с помощью флагов компилятора. Дополнительный уровень подпапки может использоваться для предоставления файлов
скомпилирован для конкретной конфигурации с плавающей запятой: src / {build. mcu} / {build.fpu} - {build.float-abi}
, где {build.fpu}
– значение флага компилятора -mfpu
, а {build.float-abi}
– значение -mfloat-abi
флаг компилятора. (доступно в Arduino IDE 1.8.13 / arduino-builder 1.5.3 / Arduino CLI 0.11.0) Если с плавающей запятой
флаги конфигурации используются, но папка, соответствующая этой конфигурации, не найдена, src / {build.mcu}
используется как
отступать.
Ниже приведен пример структуры папок библиотеки src
, которая обеспечивает:
- Заголовочный файл, содержащий объявления для библиотечного API.
- Исходный файл для использования в качестве запасного варианта для других архитектур (
предварительно скомпилированный = полный режим
). - Архивный файл для архитектуры ARM Cortex M0 + плат Arduino SAMD.
- Архивный файл для архитектуры ARM Cortex M4 Arduino Nano 33 BLE в качестве запасного варианта для обратной совместимости. с программным обеспечением для разработки Arduino до того, как была добавлена поддержка конфигурации с плавающей запятой.
- Архивный файл для архитектуры ARM Cortex M4 Arduino Nano 33 BLE, скомпилированный для
-mfloat-abi = softfp -mfpu = fpv4-sp-d16
Конфигурация ABI с плавающей запятой.
Servo / src / Servo.h
Серво / SRC / Servo.cpp
Серво / SRC / Cortex-m0plus / libServo.a
Серво / SRC / Cortex-M4 / libServo.a
Серво / SRC / Cortex-M4 / FPV4-SP-D16-softfp / libServo.a
Примеры библиотеки
Примеры библиотеки должны быть помещены в папку examples . Обратите внимание, что в примере следует указать имя папки . именно так (строчными буквами).
эскизов, содержащихся в папке примеров, будут показаны в меню «Примеры» в Arduino IDE и Arduino Web. Редактор.
Дополнительная информация:
Папка extras может использоваться разработчиком для размещения документации или других элементов, которые необходимо связать с библиотекой. Помните, что файлы, помещенные в эту папку, увеличивают размер библиотеки, поэтому поместите 20 МБ PDF в библиотеку. вес в несколько килобайт может быть не такой уж хорошей идеей.
Содержимое папки extras полностью игнорируется программой разработки Arduino; вы можете положить что угодно внутри.
Ключевые слова
Список ключевых слов для библиотеки может быть указан в файле с именем keywords.txt, расположенном в корне библиотеки. папка. Когда в скетче используется ключевое слово любой установленной библиотеки, Arduino IDE раскрашивает его.
Пример файла keywords.txt:
# Карта раскраски синтаксиса для примера библиотеки
# Типы данных (KEYWORD1)
Тест KEYWORD1
# Методы и функции (KEYWORD2)
doSomething KEYWORD2
# Экземпляров (KEYWORD2)
# Константы (LITERAL1)
Этот файл заставит Arduino IDE выделить Test
как тип данных и doSomething
как метод / функцию.
keywords.
txt форматkeywords.txt состоит из четырех полей, разделенных одной настоящей табуляцией (не пробелами):
KEYWORD KEYWORD_TOKENTYPE REFERENCE_LINK RSYNTAXTEXTAREA_TOKENTYPE
Поле можно оставлять пустым.
KEYWORD_TOKENTYPE
KEYWORD_TOKENTYPE | Используйте для | Свойство темы |
---|---|---|
KEYWORD1 | типов данных | редактор.data_type.style |
KEYWORD2 | функций | editor.function.style |
KEYWORD3 | строений | editor.function.style |
ЛИТЕРАЛЬНЫЙ1 | константы | editor.reserved_word_2.style |
ЛИТЕРАЛЬНЫЙ2 | ? | редактор.function. style |
ССЫЛКА_Ссылка
В этом поле указывается страница справочника по языку Arduino, открываемая через Arduino.
Щелкните правой кнопкой мыши IDE > Найти в ссылке или Справка > Найти в ссылке , когда курсор находится на этом ключевом слове. В целом
нет смысла определять поле REFERENCE_LINK
для ключевых слов сторонней библиотеки, поскольку они вряд ли
быть в Справочнике по языку Arduino.
RSYNTAXTEXTAREA_TOKENTYPE
В среде Arduino IDE 1.6.5 и новее это поле переопределяет KEYWORD_TOKENTYPE
. В предыдущих версиях IDE RSYNTAXTEXTAREA_TOKENTYPE Поле
игнорируется, вместо него используется KEYWORD_TOKENTYPE
.
RSYNTAXTEXTAREA_TOKENTYPE | Свойство темы | Эквивалент KEYWORD_TOKENTYPE |
---|---|---|
RESERVED_WORD | editor. reserved_word.style | KEYWORD3 |
RESERVED_WORD_2 | редактор.reserved_word_2.style | ЛИТЕРАЛЬНЫЙ1 |
DATA_TYPE | editor.data_type.style | KEYWORD1 |
ПРЕДПРОЦЕССОР | editor.preprocessor.style | KEYWORD3 |
LITERAL_BOOLEAN | editor.literal_boolean.style | ЛИТЕРАЛЬНЫЙ1 |
Файл флага разработки
Обычно среда Arduino IDE обрабатывает содержимое папки библиотеки как доступное только для чтения.Это сделано для того, чтобы пользователи не случайно модифицируя примеры эскизов. В процессе разработки библиотеки вы можете захотеть отредактировать примеры эскизов в разместить с помощью Arduino IDE. В Arduino IDE 1.6.6 и новее режим только для чтения можно отключить, добавив файл с именем .development в корень папки библиотеки. Файл library.properties должен также присутствовать. Индексатор Менеджера библиотек не будет выбирайте выпуски, содержащие файл .development, поэтому не помещайте этот файл в удаленный репозиторий.
Полный пример
Гипотетическая библиотека под названием «Сервопривод», соответствующая спецификации:
Сервопривод /
Серво / library.properties
Серво / ключевые слова.txt
Серво / SRC /
Серво / src / Servo.h
Серво / SRC / Servo.cpp
Servo / src / ServoTimers.h
Сервопривод / примеры /
Сервопривод / примеры / Sweep / Sweep.ino
Сервопривод / примеры / Pot / Pot.ino
Сервопривод / дополнительные функции /
Серво / дополнительные функции / Servo_Connectors.pdf
Работа с несколькими архитектурами
Библиотеки, помещенные в подпапку библиотек
папки скетчей (также известную как «каталог пользователя»), будут доступны для
все платы, которые могут включать несколько процессоров различной архитектуры. Предоставить архитектурно-зависимый код или
оптимизации, авторы библиотеки могут использовать макрос препроцессора ARDUINO_ARCH_XXX
( #define
), где XXX – имя
архитектура (как определено названием
папка архитектуры платформы платы). Например, ARDUINO_ARCH_AVR
будет определен при компиляции для плат на базе AVR.
Пример:
# если определено (ARDUINO_ARCH_AVR)
// Код, специфичный для AVR
#elif defined (ARDUINO_ARCH_SAM)
// Специальный код SAM
#еще
// общий, не зависящий от платформы код
#endif
В качестве альтернативы, если библиотека работает только на определенных архитектурах, вы можете предоставить явное сообщение об ошибке (вместо допустив сбой компиляции трудным для понимания образом):
# если определено (ARDUINO_ARCH_AVR)
// Код, специфичный для AVR
#elif defined (ARDUINO_ARCH_SAM)
// Специальный код SAM
#еще
#error «Эта библиотека поддерживает только платы с процессором AVR или SAM. ”
#endif
Старый формат библиотеки (до 1.5)
Для поддержки старых библиотек (из Arduino IDE 1.0.x), Arduino IDE / Pro IDE и Arduino CLI также будут компилироваться. библиотеки, в которых отсутствует файл метаданных library.properties. В результате эти библиотеки должны вести себя так же, как в Arduino. IDE 1.0.x, хотя они будут доступны для всех плат, включая платы без AVR (которых не было в Arduino IDE 1.0.x).
Установка ESP32 в Arduino IDE (Windows, Mac OS X, Linux)
Существует надстройка для Arduino IDE, которая позволяет вам программировать ESP32 с помощью Arduino IDE и ее языка программирования.В этом руководстве мы покажем вам, как установить плату ESP32 в Arduino IDE, независимо от того, используете ли вы Windows, Mac OS X или Linux.
Посмотреть видеоурок
Это руководство доступно в видеоформате (смотрите ниже) и в письменном формате (продолжайте читать эту страницу).
Если у вас возникнут проблемы во время процедуры установки, ознакомьтесь с Руководством по поиску и устранению неисправностей ESP32.
Если вам нравится ESP32, запишитесь на наш курс: Изучите ESP32 с Arduino IDE.
Предварительные требования: установлена Arduino IDE
Перед тем, как начать эту процедуру установки, убедитесь, что на вашем компьютере установлена последняя версия Arduino IDE. Если вы этого не сделаете, удалите его и установите снова. В противном случае это может не сработать.
Имея последнюю версию программного обеспечения Arduino IDE, установленную с arduino.cc/en/Main/Software, продолжайте изучение этого руководства.
Вам нужна плата ESP32? Купить можно здесь.
Установка надстройки ESP32 в Arduino IDE
Чтобы установить плату ESP32 в IDE Arduino, выполните следующие инструкции:
В вашей Arduino IDE перейдите к File > Preferences
Введите https: // dl. espressif.com/dl/package_esp32_index.json в поле «Дополнительные URL-адреса Board Manager», как показано на рисунке ниже. Затем нажмите кнопку «ОК»:
Примечание: , если у вас уже есть URL-адрес платы ESP8266, вы можете разделить URL-адреса запятой следующим образом:
https://dl.espressif.com/dl/package_esp32_index .json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
Откройте диспетчер плат. Перейдите к Tools > Board > Boards Manager…
Найдите ESP32 и нажмите кнопку установки для « ESP32 by Espressif Systems »:
Вот и все.Его следует установить через несколько секунд.
Тестирование установки
Подключите плату ESP32 к компьютеру. Открыв Arduino IDE, выполните следующие действия:
1. Выберите свою плату в меню Tools > Board (в моем случае это DOIT ESP32 DEVKIT V1 )
2. Выберите порт (если вы не видите COM-порт в вашей Arduino IDE, вам необходимо установить драйверы CP210x USB для UART Bridge VCP):
3.Откройте следующий пример в разделе Файл > Примеры > WiFi (ESP32) > WiFiScan
4. В вашей Arduino IDE откроется новый скетч:
5. Нажмите кнопку Загрузить в среде Arduino IDE. Подождите несколько секунд, пока код компилируется и загружается на вашу доску.
6. Если все прошло, как ожидалось, вы должны увидеть сообщение « Готово, загрузка. ”сообщение.
7. Откройте монитор последовательного порта Arduino IDE со скоростью 115200:
.8.Нажмите кнопку ESP32 на плате Включить , и вы должны увидеть сети, доступные рядом с вашим ESP32:
Поиск и устранение неисправностей
Если вы попытаетесь загрузить новый скетч в ESP32 и получите сообщение об ошибке « Произошла фатальная ошибка: Не удалось подключиться к ESP32: Истекло время ожидания… Подключение… ». Это означает, что ваш ESP32 не находится в режиме прошивки / загрузки.
После выбора правильного имени платы и порта COM выполните следующие действия:
- Удерживайте кнопку « BOOT » на плате ESP32
- Нажмите кнопку « Загрузить » в Arduino IDE, чтобы загрузить свой скетч:
- После того, как вы увидите « Подключение…. »в Arduino IDE, уберите палец с кнопки« BOOT »:
- После этого вы должны увидеть сообщение « Готово, загрузка »
Вот и все. На вашем ESP32 должен быть запущен новый скетч. Нажмите кнопку « ENABLE », чтобы перезапустить ESP32 и запустить новый загруженный скетч.
Вам также придется повторять эту последовательность кнопок каждый раз, когда вы хотите загрузить новый эскиз. Но если вы хотите решить эту проблему раз и навсегда без необходимости нажимать кнопку BOOT , следуйте рекомендациям в следующем руководстве:
Если у вас возникли проблемы или проблемы с ESP32, ознакомьтесь с нашим подробным руководством по устранению неполадок ESP32.
Заключение
Это краткое руководство, которое показывает, как подготовить вашу Arduino IDE для ESP32 на ПК с Windows, Mac OS X или Linux. Если у вас возникнут какие-либо проблемы во время процедуры установки, ознакомьтесь с руководством по устранению неполадок ESP32.
Теперь вы можете начать создавать свои собственные проекты Интернета вещей с помощью ESP32!
Спасибо за чтение.
БиблиотекаArduino – JavaTpoint
Библиотека считается расширенной функцией, которая расширяет возможности Arduino IDE.Это означает, что библиотеки предоставляют дополнительную функциональность платформе программирования Arduino.
Библиотеки в Arduino написаны на C или C ++ (.cpp). Эти библиотеки позволяют нам манипулировать данными и работать с оборудованием.
Чтобы реализовать любую библиотеку в Arduino IDE, перейдите в Sketch -> Import Library .
Для загрузки доступно несколько библиотек. Мы также можем создать свою собственную библиотеку.
Давайте обсудим некоторые библиотеки.
Стандартные библиотеки
Стандартные библиотеки перечислены ниже:
EEPROM
Это означает Электронная стираемая программируемая память только для чтения . EEPROM связан с микроконтроллером, присутствующим на платах AVR или Arduino. Библиотека EEPROM позволяет нам читать байты, хранящиеся в памяти, когда питание платы выключено.
Размер EEPROM различается на разных платах, например, 1 КБ или 1024 байта на ATmega328P. Он также может иметь размер 4 КБ или 4096 байт на микроконтроллере ATmega2560 и т. Д.
Библиотека объявлена как:
#include
Например, чтение EEPROM, очистка EEPROM, запись EEPROM, получение EEPROM, обновление EEPROM, установка EEPROM, итерация EEPROM и т. Д.
Библиотека Ethernet
Библиотека Ethernet работает с платой Arduino Ethernet Shield и другими связанными устройствами. Библиотека Ethernet позволяет нам подключить плату Arduino к Интернету.
Шина SPI действует как промежуточное звено между платой и экраном.
Соответствующая библиотека:
#include
Например, TelnetClient, WebServer, WebClientRepeating, WebClient, ChatServer, DnsWebClient, UdpNtpClient, UdpSendReceiveString, и т. Д.
Библиотека фирм
Для среды программирования мы можем создавать собственные прошивки без создания собственных объектов и протоколов.
Он используется для реализации протокола микропрограмм, который взаимодействует с программным обеспечением на главном компьютере.
Соответствующая библиотека:
#include
Библиотека GSM
Библиотека GSM существует в среде IDE версии 1.0.4 и выше.
Библиотека GSM позволяет нам выполнять операции на плате Arduino, аналогичные операциям с телефоном GSM, такие как подключение к Интернету, отправка и получение сообщений, а также голосовые вызовы.
Библиотека объявлена как:
#include
Библиотека жидких кристаллов
Это библиотека, которая позволяет Arduino обмениваться данными с ЖК-дисплеями, основанными на совместимом чипсете Hitachi HD44780.Такие наборы микросхем встречаются на большинстве типов текстовых ЖК-дисплеев. Он работает в 8-битном или 4-битном режиме. Здесь битовый режим обозначает строки данных в дополнение к линиям управления enable, rs и rw (необязательно).
Библиотека объявлена как:
#include
Примеры: Hello World, Cursor, Blink, и т. Д.
SD-библиотека
Позволяет записывать или читать с SD-карт. Например, Arduino Ethernet Shield.Имена файлов включают пути, разделенные косой чертой, которые передаются в библиотеку SD. Но SPI используется для связи между SD-картой и Arduino.
Библиотека объявлена как:
#include
Примеры: файлы дампа, файлы списка, чтение и запись и т. Д.
Сервобиблиотека
Библиотека сервопривода позволяет Arduino работать с серводвигателями. Он позволяет управлять интегрированным валом и шестернями.Мы также можем расположить вал под разными углами от 0 до 180 градусов. Библиотека сервоприводов на платах Arduino может поддерживать до 12 двигателей, а на плате Arduino Mega она может поддерживать до 48 двигателей.
Библиотека объявлена как:
#include
Библиотека SPI
SPI ( Serial Peripheral Interface ) – это протокол последовательной передачи данных. Микроконтроллеры используют последовательный протокол для быстрой связи на небольших расстояниях с одним или несколькими периферийными устройствами.
Требуемое соединение SPI является полнодуплексным, что позволяет устройствам одновременно отправлять и получать данные.
Библиотека объявлена как:
#include
Примеры: файлы дампа, файлы списка, чтение и запись и т. Д.
Библиотека шагового двигателя
Библиотека Stepper в Arduino позволяет управлять биполярными или униполярными шаговыми двигателями.
Библиотека объявлена как:
#include <Степпер.h>
Шаговый двигатель включает шаговое управление скоростью, шаговый двигатель на один оборот и т. Д.
Программная последовательная библиотека
Программная последовательная библиотека обеспечивает последовательную связь через цифровые входы / выходы. Контакты 0 и 1 встроены в Arduino для последовательного интерфейса. Мы можем включить в наш код несколько последовательных портов, которые могут работать со скоростью до 115200 бит / с (бит в секунду).
Библиотека объявлена как:
#include
Библиотека TFT LCD
Библиотека TFT LCD включена в версию IDE 1.0.5 и выше. Это позволяет Arduino взаимодействовать с ЖК-экраном TFT. Кроме того, он помогает рисовать изображения, фигуры, линии и текст на экране.
Слот для SD-карты, присутствующий на встроенном экране, можно использовать для реализации библиотеки SD.
Библиотека TFT для связи зависит от библиотеки SPI с SD-картой и экраном.
Библиотека объявлена как:
#include
Библиотека WiFi
Библиотека WiFi позволяет Arduino устанавливать соединение с Интернетом. Это может быть сервер для приема входящих подключений или клиент для исходящих подключений.
Персональное шифрование, поддерживаемое библиотекой WiFi, – это WPA2 и WEP, за исключением WPA2 Enterprise. Arduino использует шину SPI для связи с экраном WiFi.
Библиотека объявлена как:
# включить
Примеры включают WiFiWebClient, WiFiWebServer и т. Д.
Аудиотека
Аудиотека совместима только с платой Arduino Due. Это позволяет плате воспроизводить файлы .wav с определенных устройств хранения, таких как SD-карта.
Он воспроизводит звуки, используя контакты DAC0 и DAC1.
Библиотека объявлена как:
#include
Примером является простой аудиоплеер.
Аудио нулевая библиотека
Он позволяет плате (Arduino Zero, MKR1000 и MKRZero) воспроизводить. wav файлы с устройств хранения, таких как SD-карта.
ПлатаArduino Zero и MKR1000 воспроизводит звук с помощью вывода DAC0.
Библиотека объявлена как:
#include
Примером является простой нулевой аудиоплеер.
Звуковая библиотека Arduino
Звуковая библиотека Arduino позволяет плате анализировать и воспроизводить аудиоданные, которые предоставляются Arduino на плате на базе SAMD21 с использованием шины I2S. Платы на базе SAMD21 – это Arduino Zero, MKR1000, MKRZero или Genuino Zero.
Библиотека объявлена как:
#include
Примеры включают WavePlayBack, ClapDetector, WhistleDetector и т. Д.
Теперь давайте обсудим процесс установки библиотеки в Arduino.
Как установить библиотеку в Ардуино?
Шаги перечислены ниже:
Менеджер библиотек Arduino
- Нам нужно открыть диспетчер библиотек, чтобы установить новую библиотеку в Arduino. Нажмите Sketch -> Include Library -> Manage Libraries , как показано ниже:
- Появится диалоговое окно с различными библиотеками, как показано ниже:
- Появится список библиотек, готовых к установке.Нам нужно выбрать конкретную библиотеку -> выбрать версию -> нажать кнопку Установить , как показано ниже:
Иногда для загрузки доступна только одна версия. В таком случае выпадающий список версии не появится. Значит, это нормально.
Нам нужно дождаться загрузки библиотеки. Скачивание будет зависеть от скорости соединения.
Метка INSTALLED появится перед библиотекой, которая уже установлена на нашем компьютере.
Импорт библиотеки .zip
Если мы хотим добавить нашу собственную библиотеку, мы можем выбрать нужную папку на нашем компьютере. Конкретный zip-файл, содержащий библиотеку, можно импортировать в Arduino.
Показано ниже:
Мы также можем перепроверить с помощью опции Sketch -> Include library , чтобы увидеть, присутствуют ли добавленные библиотеки в списке или нет.
Распаковывать загруженную библиотеку не требуется. Файл останется в формате.zip формат.
Мы можем загрузить сторонние библиотеки, начиная с Arduino IDE версии 1.0.5.
Что нужно для написания хорошей библиотеки Arduino?
Написать приличную библиотеку непросто. Мнения разработчиков о том, как должна выглядеть такая библиотека, разнятся. Я думаю, что у надежной библиотеки должна быть подробная документация, а разработчики должны покрывать ее модульными тестами. Кроме того, достойная библиотека должна скрывать сложность и предлагать интуитивно понятный и простой в использовании интерфейс.
Большую часть времени я занимался разработкой программного обеспечения, работая над крупными проектами. Мы создали их на надежных фреймворках и в большинстве случаев также написали соответствующие модульные и интеграционные тесты. Я считаю, что хорошо написанные тесты могут сэкономить ваше время, которое вы в конечном итоге потратите на отладку и другие действия.
Я получил свой комплект Arduino около полутора лет назад и очень быстро понял структуру. Создатели создали Arduino для любителей и программистов-самоучок. С одной стороны, это привлекает к электронике большое сообщество людей; с другой стороны, качество публикуемого кода сильно различается.Когда мне нужна была библиотека для моих проектов Arduino, я часто проверял код на GitHub, который часто не поддерживался. Поддерживаемые библиотеки часто не имели надлежащей документации. У большинства из них не было модульных тестов.
Зачем вам тестировать свой код? Посмотрите следующее видео.
В 1996 году первый полет ракеты-носителя Ariane 5 закончился масштабной катастрофой, вызванной ошибкой программирования. Прочтите полную историю здесь.
Arduino не такая уж критичная и дорогая, но я все же считаю, что написание тестов того стоит.Обратной стороной является то, что на разработку требуется дополнительное время. Я бы сказал, что каждый проект индивидуален, и вам нужно решить, стоит ли тратить время на написание тестов. На мой взгляд, тесты принесут вам большую пользу, если вы реализуете какой-то конечный автомат. Это повсеместно в Arduino, и тесты позволяют с уверенностью изменять код. Кроме того, библиотеки Arduino обычно крошечные, всего сотни строк кода по сравнению с тысячами строк в приложениях Android или где-либо еще. Чтобы тщательно протестировать свою библиотеку, вам часто нужно написать менее 10 тестовых примеров.Например, я смог написать модульные тесты для библиотеки реле менее чем за три часа, и я все еще учился использовать среду тестирования.
В настоящее время я работаю над долгосрочным проектом Arduino, который реализует полуавтоматическую коробку передач. Представьте себе рулевое колесо с двумя установленными рядом лопастями.
Racing Wheel, любезно предоставлено компанией JSC electronicsКогда водитель нажимает на весло справа, Arduino переключает передачу вверх, а когда он нажимает на весло слева, Arduino переводит рычаг вниз.Он также будет управлять сцеплением. В гонках быстрое реагирование имеет значение в лучшие времена и, возможно, общие результаты.
Для обнаружения лопаточных прессов я изначально использовал библиотеку OneButton Arduino. Однако он не очень хорошо интегрировался с моей существующей базой кода, а также не транслировал такие события, что была отпущена какая-то кнопка. Подобные события очень важны для меня, потому что мне нужно знать, что какое-то действие произошло мгновенно. Задержка от 50 до 100 миллисекунд сильно влияет на задержку. В конце концов, я решил написать собственную библиотеку.
ObjectButton
ObjectButton – это библиотека Arduino для обнаружения общих действий кнопок при изменении на входных контактах GPIO. Эта библиотека должна легко интегрироваться с объектами C ++, отсюда и название.
Ограничения функции обратного вызова
Большинство библиотек Arduino позволяют подключать функцию обратного вызова, которая вызывается, как только происходит какое-либо действие. Обратный вызов обычно реализуется как указатель на функцию без входных параметров.
Копировать1extern "C" {
2 typedef void (* callbackFunction) (void);
3}
На практике вы регистрируете обратный вызов следующим образом:
Копия1...
2
3void onClick () {
4 Serial.println («Была нажата кнопка»);
5};
6
7
8 Кнопка OneButton = OneButton (INPUT_PIN, true);
9button.attachClick (onClick);
Следующий подход отлично подходит для регистрации функций типа C, но не для функций-членов объекта C ++. Это потому, что все функции-члены имеют неявный (первый) параметр – , это
.
Чтобы обойти ограничение, вы можете:
- Передать адрес статической функции-члена, которая будет вызывать функцию-член, запущенную на конкретном объекте.
- Создать некоторую функцию C вне любого объекта, которая будет вызывать функцию-член. на объекте
Копия1...
Контроллер 2LedController = LedController ();
3
4void onClick () {
5 controller.turnLedOn ();
6};
Примечание. Лямбда / анонимные функции, насколько мне известно, недоступны в Arduino. Arduino не полностью поддерживает стандарт C ++.
Listeners
Вместо передачи ссылки на функцию обратного вызова ObjectButton представляет Listeners
. Такой подход широко используется в Android.Мы определяем слушателя как абстрактный класс. Слушатель определяет контракт между нашей библиотекой и кодом, написанным пользователем.
Например, слушатель для получения событий onClick
определяется следующим образом:
Копировать1class IOnClickListener {
2public:
3 virtual ~ IOnClickListener () = default;
4
5 виртуальная пустота onClick (ObjectButton & button) = 0;
6};
Пользователь пишет класс C ++, который наследуется от этого абстрактного класса.Вам необходимо реализовать все виртуальные функции. Когда вы регистрируете такой класс в библиотеке, внутренний код в библиотеке может безопасно вызывать функцию onClick (...)
.
Копировать1 # include
2 # include
3
4class OnClickListener: частный виртуальный IOnClickListener {
= 5public:
6 OnClickListener (по умолчанию)
7 ....
8
9private:
10 void onClick (ObjectButton & button) override;
11...
12};
13
14void OnClickListener :: onClick (ObjectButton & button) {
15
16}
Вы зарегистрируете слушателя в библиотеке следующим образом:
Copy1
9000ton4 2ObjectButton (кнопка = ObjectButton .);3
4OnClickListener onClickListener = OnClickListener ();
5button.setOnClickListener (onClickListener);
Как структурировать код
Когда вы пишете свою собственную библиотеку Arduino, это совершенно новый опыт по сравнению с написанием обычного проекта Arduino.На этот раз вы, , напишите код, который кто-то другой использует в своем проекте. В библиотеке нет функций setup ()
и loop ()
, которые нужно реализовать. Arduino дает вам рекомендации о том, как структурировать код. Некоторые из них являются обязательными, другие – необязательными, но рекомендуются. Ваша цель должна заключаться в том, чтобы сделать вашу библиотеку простой в использовании для всех, даже для новичков. Например, убедитесь, что у вас есть какая-то функция begin ()
, которая инициализирует ваш код. Вы часто видите этот паттерн в Arduino.
Предположим следующее о ваших пользователях:
- Они могут не иметь опыта программирования
- Они не понимают указатели
- Они не понимают, что такое конструктор и деструктор
- Они знакомы с
begin ()
иend ()
функций из других библиотек - Они ожидают, что имена функций будут camelCase, то есть
getPressure ()
Одна из ваших основных целей должна заключаться в том, чтобы скрыть всю сложность и предоставить множество примеров использования вашей библиотеки .Arduino предоставляет несколько справочных руководств; вы должны хотя бы проверить это:
После того, как вы узнаете своих пользователей и рекомендуете рекомендации сообщества Arduino, пора определить некоторые цели, которых необходимо достичь.
Цели для достижения
Как видите, охват модульных тестов и документация – это лишь некоторые из целей, которые необходимо достичь.
Абстракция высокого уровня
Когда вы пытаетесь придумать достойный дизайн библиотеки, начните с ручки и бумаги. В качестве вдохновения посмотрите официальные библиотеки Arduino.Все они хорошо написаны. Я кратко упомяну библиотеку Servo. Представьте, что вы хотите управлять сервоприводом. Какие функции вы хотели бы иметь? Возможно, вам понадобится какая-то функция, чтобы указать выходной контакт, к которому вы подключаете сервопривод. Вам также понадобится функция, которая сообщает серво, на сколько он должен повернуться, и функция, которая сообщает текущее положение вашего сервопривода. И это почти все, что вам нужно как пользователю. Вы не беспокоите пользователей подробностями реализации; все они скрыты.
В моем случае я хотел предоставить способ регистрации обратных вызовов, способ настройки интервала противодействия и способ настройки значений тайм-аута, используемых для обнаружения событий щелчка, двойного щелчка и длительного нажатия. В большинстве случаев пользователи просто регистрируют обратный вызов и не заботятся обо всех значениях по умолчанию, но рекомендуется дать пользователям возможность настроить поведение. Однако не раскрывайте все ценности. Вместо этого подумайте о сценариях использования и решите, что имеет смысл раскрывать. Как правило, после принятия дизайнерских решений моя библиотека инициализируется 1 или 2 строками кода.Идеально! Не стесняйтесь проверить примеры того, как использовать библиотеку.
Еще одна вещь, о которой вам нужно подумать, – это структурировать код в отношении тестирования. Когда вы пишете код, постарайтесь продумать, как его протестировать. Как правило, вам следует избегать одного большого занятия. Вместо этого разбейте свой код на несколько более мелких классов. Позже вы можете протестировать их отдельно от остальной системы. Их функции должны делать только одно, а их имя должно подсказывать вам, что они должны делать, не читая документацию.В нормальных условиях эти функции короткие – менее десяти строк кода. Код, реализующий конечный автомат, обычно огромен. Однако вы можете перенести большую часть функциональности во вспомогательные функции. Когда вы это сделаете, ваш конечный автомат предоставит высокоуровневую картину того, что он делает. Вот пример из моего кода для уведомления слушателей о возникновении события клика.
Вместо этого кода:
Скопируйте1if (timeDelta> m_clickTicks) {
2 m_state = State :: BUTTON_NOT_PRESSED;
3 если (m_onClickListener! = Nullptr)
4 m_onClickListener-> onClick (* this);
5}
Вы перемещаете логику в другую функцию, например:
Копировать1if (timeDelta> m_clickTicks) {
2 m_state = State :: BUTTON_NOT_PRESSED;
3 notifyOnClick ();
4}
5
6
7void ObjectButton :: notifyOnClick () {
8 if (m_onClickListener! = Nullptr)
9 m_onClickListener-> onClick (* this);
10}
Если вы посмотрите на отредактированный код, вы с первого взгляда увидите, что он делает.В коде конечного автомата может быть много предложений if ... else
; все, что делает его более читаемым, – хорошо. Кроме того, теперь вы можете писать тесты в ObjectButton :: notifyOnClick ()
, что намного проще, чем писать тесты, которые проверяют тот же код в коде основного конечного автомата.
Если вы хотите увидеть пример более сложной библиотеки, которая обрабатывает права доступа, синтаксический анализ сообщений и многое другое, ознакомьтесь с нашей недавно опубликованной библиотекой автоматизации Adeon.Мы очень старались скрыть всю сложность и написали подробную документацию.
Документация
Итак, у вас есть библиотека, которая делает то, что вы задумали. В качестве следующего шага задокументируйте свой код.
Есть два подхода:
- Напишите документацию к вашему коду отдельно. Взгляните на библиотеку Sphinx, чтобы увидеть примеры. Sphinx использует reStructuredText в качестве языка разметки.
- Напишите документацию внутри вашего кода. Такой подход широко используется в мире Java и его генераторе документации Javadoc.
Я предлагаю объединить оба подхода. Начните с документирования того, что делает ваша библиотека. Включите блок-схемы, диаграммы и все, что вам может быть полезно. Markdown отлично подходит для этой цели. Более того, вы можете поместить свои документы в то же хранилище, что и ваш основной код. Например, вы можете создать папку docs
для хранения этих документов. Если вы используете GitHub или GitLab, вы можете сохранять документы внутри Wiki. Технически это отдельный репозиторий git, но он привязан к вашему проекту и легко доступен.
После того, как вы написали общий обзор библиотеки, пора писать комментарии внутри вашего кода. Я решил использовать Doxygen: это стандарт де-факто, и его легко настроить. Кроме того, он поддерживает несколько стилей комментариев, включая стиль Javadoc.
Doxygen
Если вы хотите создать документацию Doxygen, вам нужно создать Doxyfile. Это шаблон для Doxygen с различными настройками, например, названием вашего проекта, расположением исходного кода и т. Д.Мне посчастливилось найти Doxyfile, который кто-то адаптировал для Arduino. Одной из важнейших настроек было включение файлов * .ino
. Doxygen обычно не знает, что эти файлы содержат действительный код C / C ++. Если вам когда-нибудь понадобится этот шаблон, просто возьмите мой и измените имя и путь к проекту.
Если вы хотите узнать подробности о том, как добавлять комментарии в код, лучше всего проверить веб-страницу Doxygen.
Вот пример комментария внутри кода:
Копировать1
2
3
4
5
6
7IOnClickListener * m_onClickListener = nullptr;
8
9
10
11
12
13
14
15IOnDoubleClickListener * m_onDoubleClickListener = nullptr;
Комментарий Javadoc начинается с / **
, который по-прежнему является действительным комментарием C ++.Альтернативный синтаксис выглядит так: ///
. Также обратите внимание на такие флаги, как @see
. Это поможет вам создавать гиперссылки на другие классы и функции.
После того, как вы задокументировали свой код, создать документацию очень просто. В вашем Doxyfile есть вся информация.
Копировать1doxygen <путь к doxyfile>
Вы можете разместить сгенерированную документацию где угодно. Это статическая HTML-страница без внешних зависимостей. Я размещаю документацию на страницах GitHub бесплатно.Для вдохновения сгенерированная документация для одного из моих проектов находится здесь.
keywords.txt
Отлично, теперь у вас есть достойная документация. Ваша библиотека сейчас в лучшем состоянии, чем, может быть, 80 процентов библиотек. В качестве следующего шага создайте файл keywords.txt
. Arduino IDE имеет минимальные возможности подсветки синтаксиса. Следовательно, нам нужно записать все функции, классы и переменные в этот файл и назначить правильный тип. Код будет выделен только тогда, когда IDE Arduino сопоставит ключевое слово с вашим определением.Создание файла keywords.txt
является обязательным, если вы хотите, чтобы ваша библиотека была включена в официальный реестр библиотек Arduino.
Копировать1 ####################################
2 # Типы данных ( KEYWORD1)
3 ####################################
4
5IOnClickListener KEYWORD1
6IOnDoubleClickListener KEYWORD1
7IOnPressListener KEYWORD1
8
9 ########################################### ####
10 # Методы и функции (KEYWORD2)
11 ################################ ######
12
13getId KEYWORD2
14setOnClickListener KEYWORD2
15setOnDoubleClickListener KEYWORD2
Как видите, вы перечисляете все свои общедоступные типы данных, а затем назначаете один из классов, даже классы ключевые слова, например KEYWORD1
.Каждое ключевое слово соответствует разному цвету внутри Arduino IDE. Когда вам нужно создать этот файл, проверьте документацию или другие библиотеки.
Примеры
Наконец, вам нужно написать несколько примеров того, как использовать вашу библиотеку. Примеры необязательны, но они очень полезны для пользователей. Часто это первое, что люди ищут, когда ищут библиотеку. Вы можете получить к ним доступ прямо из Arduino IDE. Подумайте о некоторых основных задачах о том, как люди будут использовать библиотеку, а также попытайтесь написать хотя бы один расширенный пример.Чем больше примеров вы напишете, тем лучше для ваших пользователей.
Все примеры являются файлами проекта Arduino ( * .ino
), которые вы можете скомпилировать из Arduino IDE. Если вы работали с Arduino, я уверен, что вы более чем знакомы.
Для вдохновения взгляните на примеры из моей библиотеки.
Автоматическое тестирование
Теперь у вас есть библиотека, которая хорошо документирована и предположительно проста в использовании. В качестве следующего шага напишите несколько модульных тестов, чтобы убедиться, что ваш код выполняет то, что он должен делать.Автоматическое тестирование по-прежнему не характерно для библиотек Arduino, и я не удивлен. Если мы посмотрим на другие среды программирования, они часто поставляются с официальной средой тестирования или, по крайней мере, с хорошо известной сторонней средой. В Java и Android это JUnit; Python имеет встроенный модуль unittest, иногда люди также используют pytest; мир C ++ использует Googletest. Arduino не предоставляет официальной среды тестирования, и вы не найдете много статей по этой теме.
Ручное тестирование везде
Большинство разработчиков Arduino тестируют свой код вручную.Когда код в какой-то мере работает, он считается завершенным. Если они сломают код в будущих обновлениях, они могут долго этого не замечать. Не очень хорошая вещь!
Другой вариант использования – проверка того, что ваш код работает на нескольких аппаратных платах. Если вы протестируете его вручную на Arduino Uno, как вы узнаете, что ваша библиотека также работает на Леонардо? Если вы подтвердите свой код вручную на нескольких платформах, вы потеряете время. Если вы не отметите все поддерживаемые платформы, у вас нет гарантии, что код будет работать на всех досках.
Компиляция библиотеки для разных плат
Надеюсь, вы согласитесь, что автоматическая компиляция для нескольких плат имеет смысл. Его легко настроить, и поэтому я думаю, что каждая библиотека Arduino должна это делать!
У вас есть несколько вариантов, как это сделать:
Подход PlatformIO
У проектов PlatformIO всегда есть файл platformio.ini. Здесь вы определяете конфигурацию всего проекта, включая платформы, для которых вы создаете двоичные файлы. Каждая платформа представляет собой отдельную плату Arduino или даже другую архитектуру процессора.
Копия1; Arduino Uno: первая целевая плата
2 [env: uno]
3platform = atmelavr
4board = uno
5framework = arduino
6
7; Arduino Mega: вторая целевая плата
8 [env: megaatmega2560]
9platform = atmelavr
10board = megaatmega2560
11framework = arduino
Если вы хотите создать код для нескольких целевых платформ, просто введите следующие команды:
Копировать1
2pio run -e uno
3pio run -e megaatmega2560
Эти команды можно добавить в сценарий оболочки, который можно запускать повторно.Через несколько секунд вы узнаете, что ваш код компилируется или произошла ошибка.
Примеры построения подходов
Два других упомянутых варианта требуют, чтобы вы создали примеры эскизов, чтобы продемонстрировать, как использовать вашу библиотеку. Вы должны поместить эти примеры в папку examples
, как определено в спецификации библиотеки Arduino. Когда вы запустите сценарий, он просмотрит все ваши примеры и скомпилирует их для всех перечисленных платформ. Когда Arduino IDE создает ваши примеры, она также создает вашу библиотеку.Это их зависимость.
Хотя написание примеров необязательно, в каждой хорошо поддерживаемой библиотеке должен быть хотя бы один. А когда вы это сделаете, подготовка вашего кода для работы со сценариями сборки займет считанные минуты. Я не вижу причин не использовать его!
Написание модульных тестов
Модульные тесты исследуют код вашей библиотеки изолированно. Иногда их сложнее написать, но плюсы преобладают над минусами.
Я нашел несколько сторонних фреймворков для тестирования для использования с Arduino:
Каждый из этих фреймворков поддерживает запуск тестов на собственных машинах, что означает, что вы можете запускать тесты на обычном ПК без подключенной к нему платы Arduino.Это полезно, особенно если вы хотите настроить непрерывную интеграцию на удаленном сервере.
Для ObjectButton я выбрал ArduinoCI в качестве среды тестирования. Но здесь нельзя сделать неправильный выбор. Просмотрите все варианты и решите, что лучше для вас.
Почему ArduinoCI?
ArduinoCI дает хороший обзор фреймворков для тестирования. Что привлекло мое внимание, так это то, что он поддерживает насмешку над оборудованием Arduino. Представьте, что вы хотите имитировать действие нажатия кнопки. Как это сделать, не нажимая физическую кнопку? Если у вас есть контроль над входными контактами и внутренним таймером, вы можете имитировать жест программно.И это то, что ArduinoCI предоставляет в наше распоряжение.
Кроме того, этот фреймворк компилирует все тесты в собственный код и поддерживает непрерывную интеграцию. Единственное, чего мне не хватает, так это отчетов о покрытии кода.
Модульные тесты ArduinoCI, выполняемые Travis CITest Features
Все ваши тестовые файлы помещаются в папку test
. Вы обычно называете их протестированной функцией. ObjectButton должен уметь распознавать три типа различных действий.
Я создал три тестовых файла для их представления и один тестовый файл для проверки основных функций:
-
action_click.cpp
для запуска всех модульных тестов, связанных с нажатием кнопки -
action_double_click.cpp
для запуска модульных тестов, связанных с двойным щелчком -
action_press_release.cpp
для запуска модульных тестов, связанных с нажатием кнопки, длительным нажатием и т. д. -
sanity_checks.cpp
для проверки таких функций, какgetId
, чтобы вернуть правильный идентификатор кнопки
Каждый тестовый файл содержит один или несколько модульных тестов, связанных с функцией. Вы можете записать все тесты в один большой файл, и ваши тесты будут работать нормально.Однако, если вы разделите их на несколько тестовых файлов по функциям, у вас будет точный контроль над запуском подмножества тестов. Кроме того, если один из ваших тестов не сработает, вы сможете найти его быстрее.
Написание модульного теста
Давайте проведем тест, который проверяет, правильно ли наша библиотека определяет действие щелчка.
Чтобы написать тест на действие щелчка, сначала нужно понять, что такое щелчок , . Вы когда-нибудь думали об этом? Обычно, когда мы пользуемся вещами, мы не рассуждаем, как именно они работают, но когда мы хотим протестировать действие клика, мы должны определить, что такое клик и как он будет обнаруживаться.Затем мы можем написать тест, чтобы зафиксировать поведение.
Определение: Щелчок – это действие, которое происходит, когда пользователь нажимает кнопку, а затем отпускает ее. Нажатие и отпускание должно произойти до истечения тайм-аута щелчка, а также кнопку нельзя касаться снова в течение этого времени (возможно, это будет действие двойного щелчка).
Теперь, когда мы определили, что такое щелчок, мы можем смоделировать щелчок в нашем тесте:
- Пользователь нажимает кнопку
- Пользователь отпускает кнопку
- Нажатие и отпускание кнопки произошло в течение определенного времени ожидания
щелчка
Ниже приведен реальный пример из моего набора тестов:
Копировать1unittest (receive_on_click_event_after_default_click_ticks) {
2 ListenerMock testMock = ListenerMock (INPUT_PIN, true);
3 GodmodeState * state = GODMODE ();
4
5
6 state-> digitalPin [INPUT_PIN] = LOW;
7 testMock.getButton (). Tick ();
8
9
10 состояние-> микросхемы = (DEFAULT_DEBOUNCE_TICKS_MS + 1) * 1000;
11 testMock.getButton (). Tick ();
12
13
14 состояние-> digitalPin [INPUT_PIN] = HIGH;
15 состояний-> микросхемы = (DEFAULT_CLICK_TICKS_MS + 1) * 1000;
16 testMock.getButton (). Tick ();
17
18
19 testMock.getButton (). Tick ();
20
21
22 assertEqual (1, testMock.getPressEventsReceivedCount ());
23 assertEqual (1, testMock.getReleaseEventsReceivedCount ());
24 assertEqual (1, testMock.getClickEventsReceivedCount ());
25 assertEqual (0, testMock.getDoubleClickEventsReceivedCount ());
26 assertEqual (0, testMock.getLongPressStartEventsReceivedCount ());
27 assertEqual (0, testMock.getLongPressEndEventReceivedCount ());
28}
Состояние: пользователь нажал кнопку В этом случае мы считаем кнопку нажатой, когда уровень напряжения на входном контакте равен 0 вольт.Благодаря ArduinoCI мы можем легко смоделировать это:
Копировать1state-> digitalPin [INPUT_PIN] = LOW;
состояние
– это указатель на структуру ArduinoCI, которая управляет «виртуальным» Arduino, выполняющим наш тест.
Итак, мы нажали кнопку, и нам нужно отпустить ее через определенное время. Если бы мы просто изменили напряжение на входном контакте, внутренний таймер все равно вернул бы то же значение – 0. Практически не прошло времени. Чтобы смоделировать время, нам нужно установить микросхемы
, т.е.e .:
Копировать1state-> micros = (DEFAULT_DEBOUNCE_TICKS_MS + 1) * 1000;
Обратите внимание, что вы управляете таймером, задавая время в микросекундах, а не в миллисекундах (как используется функцией millis ()
).
Состояние: пользователь отпустил кнопку Пользователь некоторое время удерживает кнопку; пора выпустить его.
Копировать1state-> digitalPin [INPUT_PIN] = HIGH;
2state-> micros = (DEFAULT_CLICK_TICKS_MS + 1) * 1000;
Мы только что установили входной контакт на 3.3 вольта, что имитирует отпускание кнопки. При необходимости вы также можете сместить внутренний таймер, чтобы смоделировать реальный сценарий.
Обнаружила ли библиотека действие щелчка? Наш модульный тест точно имитирует действие щелчка. Если наша библиотека работает правильно, она уведомит наш OnClickListener
об этом действии. Обычно мы проверяем результаты в конце теста:
Копировать1assertEqual (1, testMock.getClickEventsReceivedCount ());
Приведенный выше код проверяет, отправил ли ObjectButton
ровно одно уведомление о событии щелчка.Чтобы фиксировать все события, о которых сообщает моя библиотека, я создал вспомогательный слушатель, зарегистрированный для всех событий, поддерживаемых библиотекой. Этот слушатель увеличивает внутренний счетчик каждый раз при получении события. Это показывает, что вы не ограничены только фреймворком, но можете расширить фреймворк в соответствии со своими конкретными потребностями.
Доверие
Почему полезно иметь модульные тесты? Это уверенность в том, что мой код делает то, что должен. Как и в предыдущем тестовом примере, вы пишете другие тесты.Они должны фиксировать ожидаемое поведение – то, что вы указали, что ваша библиотека должна делать – и проверять, что ваша библиотека это делает.
Написание тестов занимает много времени, а их выполнение – нет. Вы можете повторно запустить набор тестов в течение нескольких секунд. Это особенно полезно, когда вы работаете над новой функцией и хотите убедиться, что вы не повлияли на существующие функции, вызвав ошибку. В случае ObjectButton,
вся внутренняя логика происходит в конечном автомате. Те из вас, кто реализовал государственную машину, знают, насколько это может быть утомительно.Иногда на первый взгляд непонятно, что делает код. Если вы измените реализацию конечного автомата, высока вероятность появления ошибки. Но если у вас есть рабочий набор тестов, вы можете убедиться, что все по-прежнему работает, и вы всегда можете быть уверены в своем коде.
Новая функция == новые тесты
Если вы реализуете новую функцию, которая изменяет поведение существующей библиотеки или добавляет новую функциональность, вам также следует написать новые модульные тесты или адаптировать существующие.Поддержка вашего набора тестов должна быть регулярной частью вашей практики разработки. В противном случае со временем ваша уверенность упадет только потому, что вы не тестировали новую функциональность.
Заключение
В этом посте я написал о необходимых действиях для создания качественных библиотек Arduino. Эти принципы применимы и к вашим проектам. Вы все равно должны задокументировать, что делает ваш код, и хотя бы подумать о написании некоторых тестов. Вы можете запустить набор тестов из командной строки.Веб-разработчики знакомы с рабочим процессом.
Даже если вы задокументировали и протестировали свой код, у вас все равно есть над чем поработать. В следующий раз я объясню, как автоматизировать рабочий процесс и настроить непрерывную интеграцию для вашего репозитория, чтобы автоматически запускать тесты и создавать документацию после каждой фиксации.
Если у вас есть вопросы или у вас есть ощущение, что я что-то забыл, дайте мне знать в комментариях. Спасибо!
Установка библиотеки Arduino с GitHub
Что происходит, когда у вас есть случайный чип или датчик, который вы хотите связать с Arduino, но не знаете как? Конечно, вы ищете уже существующую библиотеку.А где размещено и доступно множество библиотек? Место, где энергичные разработчики собирают код, публикуют обновления и сотрудничают с другими: Github!
Многие библиотеки Arduino доступны на GitHub. Это действительно укрепляет дух работы с открытым исходным кодом. Если вы нашли нужную библиотеку на GitHub, добавить ее в IDE Arduino относительно просто. Однако, если вы новичок в GitHub (или Arduino IDE), вы можете пропустить простые шаги.
Шаг 1: Arduino IDE
Убедитесь, что у вас запущен хотя бы 1.0.5 или 1.5.x IDE Arduino (примечание: теперь 1.6.x содержит все)
1.5.x – это более «экспериментальная» ветвь IDE. На момент публикации он стал намного более стабильным, но по-прежнему ориентирован на более продвинутые платы Arduino: Yún, (Intel) Galieo и Due. Так что, если у вас есть плата Nano, Uno или Mega, вы можете придерживаться ветки 1.0.x.
Причина, по которой вам нужна эта версия IDE, заключается в том, что она добавляет поддержку критически важной функции «Добавить библиотеку…».
Шаг 2: Загрузите библиотеку
Вы могли заметить, что на странице GitHub вы можете перемещаться по различным файлам библиотеки.Может возникнуть соблазн просто загрузить файлы .cpp и .h, а затем выяснить, куда их поместить. В библиотеку Arduino входит еще пара файлов, так что это не лучший вариант. Вместо этого на странице проекта найдите кнопку «Загрузить ZIP».
Пример GitHub – Ищите загрузку ZIP
Это загружает последнюю версию файлов в правильные каталоги в виде ZIP-файла.
Шаг 3. Переименуйте библиотеку!
Хорошо, этот шаг обязательно сбивает с толку людей.В этом примере мы используем библиотеку Adafruit NeoPixel, которая при загрузке становится «Adafruit_NeoPixel-master.zip».
Это будет проблемой, потому что IDE Arduino не любит такие символы, как «_» и «-».
Шаг 3A) разархивируйте библиотеку и переименуйте папку
Используйте все, что требуется для разархивирования вашей ОС, а затем переименуйте папку, удалив символы «_» и «-». IDE утверждает, что ей нужен только «Basic ASCII», что означает «только буквы и цифры».
[необязательно] Кроме того, GitHub добавляет слово «master.«Удалите и это тоже.
После этого у вас должна быть папка (или каталог) с названием «AdafruitNeoPixel».
Шаг 4. Установите библиотеку
Раньше этот Шаг было сложно сделать правильно. Вот почему в IDE теперь есть опция «Добавить библиотеку».
Для этого шага просто выполните «Добавить библиотеку» и перейдите в новый каталог библиотеки.
Шаг 5. Перезапустите среду IDE [необязательно]
Хотя этот шаг может быть необязательным, я считаю, что это хорошая идея.Перезапустите среду IDE, чтобы она правильно загрузила файл KEYWORD, Примеры и добавила библиотеку в меню библиотеки.
Ошибки
Если вы получили следующую ошибку, вернитесь к шагу 3.
Щелкните, чтобы увидеть полное сообщение об ошибке.
Вы, вероятно, пытаетесь напрямую импортировать этот ZIP-файл (который содержит «неправильное» имя каталога) или библиотека не поддерживает параметр «Добавить файл…». В таком случае опубликуйте ссылку на проект ниже и посмотрите, сможет ли кто-нибудь помочь.
Установка библиотек Sparkfun и Adafruit | ОРЕЛ
Autodesk EAGLE поставляется с множеством бесплатных библиотек прямо из коробки, но для некоторых это может стать проблемой.Вы когда-нибудь слышали об иллюзии выбора? Когда вам дается слишком много вариантов, вы не выбираете ни одного! Что делать, если у вас есть конкретный проект, над которым вы хотите работать из Sparkfun или Adafruit, и вам просто нужно использовать их определенные части?
К счастью, есть решение. Здесь пригодятся библиотеки частей Sparkfun и Adafruit, которые предоставят вам все части, необходимые для проекта, без каких-либо помех. Давайте узнаем, как использовать эти библиотеки в Autodesk EAGLE!
Шаг 1. Загрузите ваши библиотеки
Для начала вам необходимо загрузить библиотеки Sparkfun и / или Adafruit с соответствующих страниц Github.Вот как:
- Откройте страницы Github библиотеки Sparkfun и библиотеки Adafruit на Github.
- Выберите зеленый Clone или загрузите кнопку и выберите Download ZIP .
- Как только ваши zip-файлы будут загружены, распакуйте их в выбранную папку.
Используйте зеленую кнопку «Клонировать» или «Загрузить», чтобы легко загрузить библиотеки Sparkfun и Adafruit с Github.
Выбор места для хранения папок библиотек Sparkfun и Adafruit полностью зависит от вас.Чтобы хранить все в одном месте, мы решили создать новую папку в каталоге документов с именем eagle_external_lbrs , а затем мы добавили две папки библиотек Sparkfun и Adafruit.
Шаг 2. Обновите каталог библиотеки EAGLE
Теперь, когда у ваших новых библиотек Sparkfun и Adafruit появился новый дом на жестком диске вашего компьютера, пришло время обновить каталог EAGLE, чтобы их можно было найти. Чтобы это произошло, выполните следующие действия:
- Откройте Autodesk EAGLE, и вы увидите панель управления.
- Затем выберите Параметры »Каталоги , чтобы открыть диалоговое окно Каталоги .
- Теперь вам нужно добавить путь к файлу, который хранится в ваших библиотеках Sparkfun и Adafruit, в поле Libraries . Ознакомьтесь с примечанием ниже о том, как это работает.
Прочтите перед тем, как начать удаление файлов! Вместо удаления пути $ EAGLEDIR / lbr: вы добавите новый путь к файлу после каталога по умолчанию, используя точку с запятой (;) в Windows или двоеточие (:) на Mac.Ваш новый путь к файлу библиотек будет выглядеть примерно так:
$ EAGLEDIR / lbr: / Users /
/ Documents / eagle_external_lbrs / Users /
/ Documents / eagle_external_lbrs – это место, где мы хранили наши новые библиотеки, но ваше имя пути, вероятно, будет другим.Нужен простой способ получить имя пути? Ознакомьтесь с этим руководством для Mac и этим руководством для Windows.
- Нажмите OK, чтобы завершить изменения в каталоге.
- Закройте и снова откройте Autodesk EAGLE.
При повторном открытии Autodesk EAGLE проверьте папку Libraries на панели управления , и вы должны увидеть свои недавно добавленные папки.
Вот как будет выглядеть ваш каталог библиотек после добавления новых библиотек Sparkfun и Adafruit.
Шаг 3. Активируйте новые библиотеки
Прежде чем вы сможете начать использовать свои библиотеки Sparkfun и Adafruit, вам необходимо активировать их в Autodesk EAGLE.Вот как это сделать:
- Щелкните значок стрелки, чтобы развернуть папку «Библиотеки» на панели управления, пока не увидите новые папки Sparkfun и Adafruit.
- Затем щелкните правой кнопкой мыши папку библиотек Sparkfun и / или Adafruit и выберите Использовать все .
Используйте все действия, чтобы подготовить библиотеки Sparkfun и Adafruit к использованию.
Вы узнаете, что успешно активировали одну из своих новых библиотек, заглянув в каждую папку.Если вы видите зеленую точку рядом с каждой частью, это означает, что они готовы к действию!
Не уверены, активны ли ваши библиотеки? Просто ищите зеленую точку!
Следует иметь в виду одну вещь: если вы хотите использовать только свои новые библиотеки Sparkfun или Adafruit, а , а не , ваши библиотеки EAGLE по умолчанию, то вам необходимо деактивировать их. Для этого
- Щелкните значок Стрелка , чтобы развернуть папку Библиотеки на Панели управления до тех пор, пока вы не увидите папку lbr по умолчанию.
- Затем щелкните правой кнопкой мыши папку lbr и выберите Не использовать .
Вы узнаете, что это сработало, заглянув в папку lbr . Если вы видите серую точку рядом с каждой библиотекой деталей, значит, вы их успешно деактивировали!
Есть серая точка рядом с библиотекой? Это означает, что он отключен и не будет отображаться в результатах поиска.
Три простых шага
Вот и все, три простых шага для начала работы с новыми библиотеками Sparkfun и Adafruit! Если вы выберете значок Добавить в открытом проекте Autodesk EAGLE, вы должны увидеть все свои новые модные библиотеки, готовые к использованию.Работа только с теми библиотеками, которые вам нужны для конкретного проекта, поможет вам повысить эффективность процесса проектирования. Больше не нужно рыться в бесконечных папках в поисках подходящего электролитического конденсатора!
Готовы начать использовать свои собственные библиотеки Sparkfun и Adafruit в своем следующем проекте программного обеспечения для проектирования печатных плат? Попробуйте Autodesk EAGLE бесплатно сегодня!
.