Vanyamba uses Linux — Отладка скетчей Arduino
Сессия отладки с библиотекой Simple Dumping Monitor
После успешной компиляции и загрузки скетча в память Arduino, для начала отладки следует открыть окно Serial Monitor (меню Tools), и установить скорость обмена, используемую в скетче. В данном случае 19200 бод (бит/сек.).
В окне Serial Monitor мы увидим информацию об очередной точке останова:
<0> counters watch
0158 count 0001 «..»
015A lcoun 00000001 «….»
0140 text «Debug»
0025 PORTB 00 «.»
Введём команду N и нажмём клавишу Enter или кнопку Send, чтобы передать её Arduino.
<1> text watch
0158 count 0001 «..»
015A lcoun 00000001 «….»
0140 text «Example»
0025 PORTB 00 «. «
Теперь понятно, что выводит отладчик. Первой строкой выводится номер останова и идентификатор точки останова. Затем выводится дамп переменных наблюдения в формате: адрес переменной, символьная метка, значение в шестнадцатиричном формате и значение в символах ASCII. Для строковых переменных значение выводится в виде ASCII-текста.
Посмотрим память по адресу переменной text, отправив команду M140. Отладчик выведет дамп памяти, начиная с адреса 0x0140.
Memory dump: RAM
0140 27 01 00 00 08 00 00 00 00 00 43 16 76 14 8F 14 ‘………C.v…
0150 E3 15 10 16 F6 15 32 16 01 00 01 00 00 00 40 01 ……2…….@.
0160 03 03 04 00 58 01 5A 01 40 01 25 00 00 00 00 00 ….X.Z.@.%…..
0170 00 00 00 00 63 6F 75 6E 74 6C 63 6F 75 6E 74 65 ….countlcounte
0180 78 74 00 50 4F 52 54 42 00 00 00 00 00 00 00 00 xt.PORTB……..
0190 00 00 00 00 00 00 00 00 00 00 00 00 01 03 FF 00 . ……………
01A0 00 00 00 00 02 00 01 00 00 6E 6D 31 34 30 30 00 ………nm1400.
01B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0220 00 00 00 00 00 00 00 00 00 06 00 05 00 4A 01 A9 ………….J..
0230 01 C5 00 C4 00 C0 00 C1 00 C6 00 04 03 07 05 01 …………….
Поскольку переменная text имеет тип указателя на массив символов типа char, то значение 0x0127 — это адрес строки, на которую указывает переменная text в данный момент. Выведем дамп командой M127.
Memory dump: RAM
0127 45 78 61 6D 70 6C 65 00 44 65 62 75 67 00 74 65 Example.Debug.te
0137 78 74 20 77 61 74 63 68 00 27 01 00 00 00 00 00 xt watch.’……
0147 00 00 00 43 16 76 14 8F 14 E3 15 10 16 F6 15 32 …C.v………2
0157 16 01 00 01 00 00 00 27 01 03 03 04 00 58 01 5A …….’…..X.Z
0167 01 40 01 25 00 00 00 00 00 00 00 00 00 63 6F 75 .@.%………cou
0177 6E 74 6C 63 6F 75 6E 74 65 78 74 00 50 4F 52 54 ntlcountext.PORT
0187 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B……………
0197 00 00 00 00 00 01 03 FF 00 00 00 00 00 02 00 01 …………….
01A7 00 00 6E 6D 31 34 30 30 6D 31 32 37 00 00 00 00 ..nm1400m127….
01B7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01C7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 . ……………
01D7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01E7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
01F7 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0207 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
0217 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 …………….
Снова выведем список переменных наблюдения командой W:
0158 count 0001 «..»
015A lcoun 00000001 «….»
0140 text «Example»
0025 PORTB 00 «.»
Всё верно — строковая константа «Example» хранится в RAM по адресу 0x0127, на который в данный момент указывает переменная text.
Запустим скетч на выполнение командой G. Затем остановим его командой S или N.
<2> text watch
0158 count 2D22 «»-«
015A lcoun 00022D22 «»-. .»
0140 text «Debug»
0025 PORTB 20 » «
Значения счётчиков совпадают в младших 16 битах. По старшим 16 битам счётчика lcount можно увидеть, что за это время счётчик count успел несколько раз обнулиться. В моём случае это 2 раза. А также переменная текст имеет значение «Debug» и регистр PORTB имеет значение 0x20, что означает, что бит 5 находится в состоянии логической единицы, то есть светодиод в данный момент должен светиться. Смотрю на Arduino — так и есть, светится.
Отправляю команду N.
<3> counters watch
0158 count 2D23 «#-«
015A lcoun 00022D23 «#-..»
0140 text «Debug»
0025 PORTB 00 «.»
Регистр PORTB снова равен нулю. Светодиод также погас.
Ардуино с чего начать, схемы и виды плат
Содержание:
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.
проекты на Arduino
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
Версия | Windows | Mac OS X | Linux |
1.8.2 | Zip Installer | Installer | 32 bits 64 bits ARM |
Основы Arduino
Ардуино – платформа, позволяющая множеству инженеров со всего мира создавать свои проекты с минимальными вложениями.
В первую очередь – это специальный микроконтроллер с одноимённой системой управления и библиотеками, построенными на языке С++. Соответственно, если вы планируете создавать что-то уникальное, вам следует изучить все нюансы, которые имеет программирование Arduino.
Давайте же составим краткое описание программирования Arduino и уточним моменты, на которые стоит обратить внимание, если вы впервые занимаетесь подобным.
Прежде чем приступать к решению конкретной задачи на Ардуино, лучше всего иметь базис в сфере программирования. Поэтому давайте рассмотрим, что вообще обозначает этот термин. Абсолютно любой проект построен на поэтапной блок-модели, в которой описывается, что необходимо сделать вашему микроконтроллеру и как это сделать.
Для упрощения работы пользователей в Ардуино созданы готовые библиотеки функций, вам достаточно лишь вводить команды из них, чтобы добиться какой-то цели. Естественно, таким образом вы многого не добьётесь, но для создания собственных библиотек потребуется знание С++языка на котором и построена прошивка чипа.
Ключевая особенность системы в том, что характеристики Arduino могут быть улучшены с помощью докупаемых компонентов, и вы всегда можете их подстроить под конкретный проект. Соответственно, единственным вашим ограничением является знание языка и его возможностей, а также собственная фантазия.
Все функции строятся из простейших операнд, которые характерны для С++. Этими операндами являются переменные различных типов и способы их применения. Поэтому любая функция, используемая в микроконтроллере для получения сведений или отправки сигнала, – это набор простейших операций, который записан в главной библиотеке. И вы будете ограничены до тех пор, пока не получите достаточно опыта и практики, чтобы понимать, какую библиотеку и для какой цели вам стоит написать.
Главный же недостаток конструирования с Arduino сложных проектов в том, что вам придётся с нуля писать код и подбирать компоненты для системы, поэтому лучше сначала попрактиковаться на простейших задачах.
Также, учитывайте, что язык написания библиотек системы – низкоуровневый, а соответственно, состоит из простейших команд, в отличие от высокоуровневых python или pascal, удобных для пользователей. С другой стороны, он также является мультипарадигмальным, поэтому подходит для решения любой задачи с помощью удобной вам парадигмы программирования.
Чаще всего применяется ООП. Сам С++ имеет ядро из многочисленных библиотек и дополнительных функций или методов, поэтому, если вы собираетесь разобраться во всём кардинально, стоит начинать с освоения языка с нуля.
Особенности программирования плат Arduino
Именно язык, на котором базируется система, и является главной особенностью Ардуино программирования.
Ведь при том, что сама плата и работа с ней достаточно просты, с низким порогом вхождения, чтобы освоить низкоуровневый язык программирования и в совершенстве владеть им, потребуется несколько лет.
У программирования на Ардуино имеются как свои достоинства, так и недостатки, и вам стоит изучить обе стороны вопроса, чтобы понимать, с чем вы имеете дело и чего ожидать от микроконтроллера в принципе, во время работы с ним. Среди достоинств Ардуино, пользователи отмечают:
- Низкий порог вхождения. Этот пункт будет и в недостатках, так как из-за простоты системы и отсутствия требований к базису по программированию в сети гуляет множество библиотек, написанных ужасным образом. На то, чтобы разобраться, как они работают, уйдёт больше времени, чем на создание своей собственной. А стандартных функций от разработчиков не хватает для серьёзных задач.
- Обширное комьюнити. Это главное достоинство Ардуино перед его конкурентами, ведь вы найдёте пользователей, занимающихся созданием проектов на нём, как русскоязычных, так и англоязычных. Но если вы хотите получать действительно ценные советы и погрузиться в работу комьюнити, следует всё же изучить английский язык. Так как большая часть проблем, что вам встретятся, уже давно решены в Гугле, но, зачастую, ответы на английском.
- Большое количество библиотек, под разные случаи. Но, как уже описано чуть выше, у этого есть и свои недостатки.
Имеется у программирования на Ардуино и ряд весомых минусов:
- Низкая планка для вхождения превращает большую часть библиотек, коими наполнена сеть, в полностью бесполезный мусор. Ведь какие-то из них работают просто медленно и написаны без каких-либо знаний основ алгоритмизации, а часть – вовсе не работает, и непонятно, зачем авторы их создавали. Чтобы найти подспорье под конкретный проект, необходимо перелопатить несколько англоязычных форумов или же самостоятельно создать функции с нуля.
- Сложности программирования на С++. На деле – это один из сложнейших языков мультипарадигмального программирования, для создания прошивок и низкоуровневых задач. Однако, если вы имели опыт работы с ним и знаете хотя бы основные алгоритмы, а также работали хоть с одним другим мультипарадигмальным ЯП, тем более используя объектно-ориентированное программирование, вам будет значительно проще освоиться.
- Низкая скорость отклика самих чипов и их слабые характеристики. Да, микроконтроллеры Ардуино можно подстраивать под конкретную задачу, докупать компоненты и датчики, но это играет с ними злую шутку. Так как разработчики не знают, для чего будут использовать их детище, они усредняют все показатели, чтобы значительно уменьшить стоимость конечного продукта. В результате люди, создающие простейшие поделки, переплачивают за ненужную мощность, а тем, кто занимается робототехникой или автоматизацией каких-то процессов, приходится докупать и паять множество дополнительных плат.
Как вы можете заметить, Ардуино имеет множество нюансов, и не столь дружелюбна для новичков, как выглядит на первый взгляд. С другой стороны, если вы имеете малейший опыт работы с языками программирования, вам будет куда проще освоиться.
Типы плат Arduino
Существует множество различных типов плат Arduino, как показано в списке ниже, каждая из которых обладает собственным набором функций. Они отличаются по скорости обработки, памяти, портам ввода/вывода и подключению, но основная составляющая их функционала остается неизменной.
- Arduino Uno
- Arduino Leonardo
- Arduino Due
- Arduino Yún
- Arduino Tre
- Arduino Micro
- Arduino Robot
- Arduino Esplora
- Arduino Mega
- Arduino Mini
- LilyPad Arduino
- Arduino Nano
- Arduino Fio
- Arduino Pro
- Arduino Ethernet
Функции программ
Ниже приведен список наиболее часто используемых функции при программировании Arduino:
- pinMode – устанавливает вывод в режим входа или выхода;
- analogRead – считывает аналоговое напряжение на аналоговом входном выводе;
- analogWrite – записывает аналоговое напряжение в аналоговый выходной вывод;
- digitalRead – считывает значение цифрового входного вывода;
- digitalWrite – задает значение цифрового выходного вывода в высокий или низкий уровень;
- Serial. print – пишет данные в последовательный порт в виде удобочитаемого текста ASCII.
Начало работы с Ардуино
Говоря бытовым языком, Ардуино – это электронная плата, в которую можно воткнуть множество разных устройств и заставить их работать вместе с помощью программы, написанной на языке Ардуино в специальной среде программирования.
Чаще всего плата выглядит вот так:
На рисунке показана одна из плат Ардуино – Arduino Uno. Мы изучим ее подробнее на следующих уроках.
В плату можно втыкать провода и подключать множество разных элементов. Чаще всего, для соединения используется макетная плата для монтажа без пайки. Можно добавлять светодиоды, датчики, кнопки, двигатели, модули связи, реле и создавать сотни вариантов интересных проектов умных устройств. Плата Ардуино – это умная розетка, которая будет включать и выключать все присоединенное в зависимости от того, как ее запрограммировали.
Вся работа над проектом разбивается на следующие этапы:
- Придумываем идею и проектируем.
- Собираем электрическую схему. Тут нам пригодится макетная плата, упрощающая монтаж элементов. Безусловно, понадобятся навыки работы с электронными приборами и умение пользоваться мультиметром.
- Подключаем плату Arduino к компьютеру через USB.
- Пишем программу и записываем ее в плату буквально нажатием одной кнопки на экране в специальной среде программирования Arduino.
- Отсоединяем от компьютера. Теперь устройство будет работать автономно – при включении питания оно будет управляться той программой, которую мы в него записали.
Программа и среда программирования выглядят вот так:
На экране показана программа (на сленге ардуинщиков текст программы называется “скетч”), которая будет мигать лампочкой, подсоединенной к 13 входу на плате Ардуино UNO. Как видим, программа вполне проста и состоит из понятных для знающих английский язык инструкций. В языке программирования Arduino используется свой диалект языка C++, но все возможности C++ поддерживаются.
Есть и другой вариант написания кода – визуальный редактор. Тут не нужно ничего писать – можно просто перемещать блоки и складывать из них нужный алгоритм. Программа загрузится в подключенную плату одним нажатием кнопки мыши!
Визуальную среду рекомендуется использовать школьникам младших классов, более старшим инженерам лучше сразу изучать “настоящий” Ардуино – это довольно просто, к тому же знания C++ никому не повредят.
Как купить Arduino?
Плата и многие детали Ардуино производится в Италии, поэтому оригинальные составляющие отличаются достаточно высокой стоимостью. Но существуют отдельные компоненты конструктора или наборы, так называемые кит-наборы, которые выпускается по итальянской аналогии, однако по более доступным ценам.
Купить аналог можно на отечественном рынке или, к примеру, заказать из Китая. Многие знают про сайт АлиЭкспресс, например. Но начинающим свое знакомство с Ардуино лучше свою первую плату заказать в российском интернет-магазине. Со временем можно перейти на покупку плат и деталей в Китае. Срок доставки из этой страны составит от двух недель до месяца, а, например, стоимость большого кит-набора будет не более 60-70 долларов.
Стандартные наборы включают в себя как правило следующие детали:
- макетная плата;
- светодиоды;
- резисторы;
- батареи 9В;
- регуляторы напряжения;
- кнопки;
- перемычки;
- матричная клавиатура;
- платы расширения;
- конденсаторы.
Модели плат
Существует несколько моделей Ардуино, которые различаются по частоте процессора, объеме памяти и т.п., среди которых можно выделить:
- Arduino Uno . Хорошее решение для начинающих пользователей и простых проектов. Поддерживает работу с Windows, Linux и MacOS. Встроенный микропроцессор работает на частоте 16 МГц, обладает 32 Кб встроенной памяти. Включается в комплекты для начинающих;
- Arduino Yun. Комплект с встроенным портом Ethernet и модулем WiFi. Оптимизирован для работы с семейством Linux. Подойдёт для работы как с любительскими, так и промышленными проектами;
- Arduino ADK. Устройство оптимизировано для работы с платформой Android. Хорошая совместимость и уникальный программный комплект позволяют создать проект, управляемый с мобильного телефона;
- Arduino Due. Улучшенная версия, работающая на мощном 32 битном ARM процессоре с тактовой частотой 84 МГц. В плату установлено 96 Кб SRAM и 512 Кб флеш-памяти.
- Arduino Nano . Одна из самых миниатырных, но очень полезных и популярных плат особенностью которой является разъем USB.
Это далеко не вся линейка плат. Существуют и другие модификации, созданные для решения разных задач.
Например, плата Arduino Mega 2560 является более мощной платой для серьезных проектов.
Перед приобретением платы нужно заранее продумать будущий проект и выявить требующиеся технические характеристики.
Сводная таблица
Эта сводная таблица показывает сравнение характеристик всех плат Arduino и Genuino.
НазваниеПроцессорРабочее/входное напряжениеСкорость процессораАналоговый Вход/выходЦифровые IO/PWMEEPROM [kB]SRAM [kB]Flash [kB]USBUART
101 | Intel® Curie | 3.3 V/ 7-12V | 32MHz | 6/0 | 14/4 | – | 24 | 196 | Regular | – |
Gemma | ATtiny85 | 3.3 V / 4-16 V | 8 MHz | 1/0 | 3/2 | 0.5 | 0.5 | 8 | Micro | |
LilyPad | ATmega168VATmega328P | 2.7-5.5 V /2.7-5.5 V | 8MHz | 6/0 | 14/6 | 0.512 | 1 | 16 | – | – |
LilyPad SimpleSnap | ATmega328P | 2.7-5.5 V /2.7-5.5 V | 8 MHz | 4/0 | 9/4 | 1 | 2 | 32 | – | – |
LilyPad USB | ATmega32U4 | 3.3 V / 3.8-5 V | 8 MHz | 4/0 | 9/4 | 1 | 2.5 | 32 | Micro | – |
Mega 2560 | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Micro | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2. 5 | 32 | Micro | 1 |
MKR1000 | SAMD21 Cortex-M0+ | 3.3 V/ 5V | 48MHz | 7/1 | 8/4 | – | 32 | 256 | Micro | 1 |
Pro | ATmega168 ATmega328P | 3.3 V / 3.35-12 V5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 0.512 1 | 1 2 | 16 32 | – | 1 |
Pro Mini | ATmega328P | 3.3 V / 3.35-12 V5 V / 5-12 V | 8 MHz 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Uno | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | Regular | 1 |
Zero | ATSAMD21G18 | 3.3 V / 7-12 V | 48 MHz | 6/1 | 14/10 | – | 32 | 256 | 2 Micro | 2 |
Due | ATSAM3X8E | 3.3 V / 7-12 V | 84 MHz | 12/2 | 54/12 | – | 96 | 512 | 2 Micro | 4 |
Esplora | ATmega32U4 | 5 V / 7-12 V | 16 MHz | – | – | 1 | 2. 5 | 32 | Micro | – |
Ethernet | ATmega328P | 5 V / 7-12 V | 16 MHz | 6/0 | 14/4 | 1 | 2 | 32 | Regular | – |
Leonardo | ATmega32U4 | 5 V / 7-12 V | 16 MHz | 12/0 | 20/7 | 1 | 2.5 | 32 | Micro | 1 |
Mega ADK | ATmega2560 | 5 V / 7-12 V | 16 MHz | 16/0 | 54/15 | 4 | 8 | 256 | Regular | 4 |
Mini | ATmega328P | 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 1 | 2 | 32 | – | – |
Nano | ATmega168ATmega328P | 5 V / 7-9 V | 16 MHz | 8/0 | 14/6 | 0.5121 | 12 | 1632 | Mini | 1 |
Yùn | ATmega32U4AR9331 Linux | 5 V | 16 MHz400MHz | 12/0 | 20/7 | 1 | 2.516MB | 3264MB | Micro | 1 |
Arduino Robot | ATmega32u4 | 5 V | 16 MHz | 6/0 | 20/6 | 1 KB (ATmega32u4)/512 Kbit (I2C) | 2. 5 KB(ATmega32u4) | 32 KB (ATmega32u4) of which5 KB used by bootloader | 1 | 1 |
MKRZero | SAMD21Cortex-M0+32bit low powerARM MCU | 3.3 V | 48 MHz | 7 (ADC 8/10/12 bit)/1(DAC 10 bit) | 22/12 | No | 32 KB | 256 KB | 1 | 1 |
Спецификации плат, которые больше не выпускаются.
Название | Процессор | Рабочее/входное напряжение | Скорость процессора | Аналоговые вход/выход | Цифровые IO/PWM | EEPROM [kB] | SRAM [kB] | Flash [kB] | USB | UART |
BT | ATmega328P | 5 V / 2.5-12 V | 16 MHz | 6/0 | 14/6 | 1 | 2 | 32 | – | 1 |
Fio | ATmega328P | 3.3 V / 3.7-7 V | 8 MHz | 8/0 | 14/6 | 1 | 2 | 32 | Mini | 1 |
25 января 2019 в 17:59 | Обновлено 7 ноября 2020 в 01:20 (редакция)
Опубликовано: Редакция
Статьи, Arduino
Что можно сделать с помощью Ардуино?
Для начала работы с Ардуино нам достаточно любой платы. Большинство начинающих Ардуинщиков и любителей сделать что-либо своими руками начинают с Arduino Uno:
Arduino Uno R3
Даже если у вас есть есть только плата, то вы уже можете начать работать с ней.
Как я уже написал выше – один из первых и самых популярных уроков для начинающих – моргание встроенным на плату светодиодом.
Если первой платой, которую вы приобрели, стала Arduino Nano, то сразу же переходите к нашему большому руководству – Ардуино Нано для начинающих.
На базе Arduino создание устройств ограничивается только человеческой фантазией. Вы можете запрограммировать систему быстро среагировать на определённое изменение и сможете управлять:
- светом,
- моторами,
- разнообразными приводами,
- и т.п..
Самое интересное, что Ардуино применяется не только для домашнего использования, но и для промышленного.
Если вы только начинаете знакомство с микроконтроллерами, то рекомендуем вам начать с самых простых, которые есть на нашем сайте:
- Моргаем встроенным светодиодом Ардуино
- Управление устройствами со смартфона для чайников
- Управляйте своим Arduino с помощью пульта управления
- Текстовая анимация с помощью Arduino
- Делаем датчик дождя с оповещением по e-mail с помощью Arduino
Разработка любых устройств зависит только от вашей фантазии, а Ардуино и множество дополнительных компонентов помогают в создании этих устройств своими руками.
Среда разработки Arduino
Среда разработки Arduino состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста(консоли), панели инструментов с кнопками часто используемых команд и нескольких меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino.
Библиотеки для программной среды
Чтобы расширить базовые функции программы и получить новые возможности, программисты подключают к Arduino IDE библиотеки. Поскольку исходный код открыт, любой желающий может написать собственную библиотеку и подключить её, а также поделиться ей с другими.
Самый полный каталог Библиотек Ардуино на нашем сайте в разделе – Библиотеки
Есть 3 способа подключить библиотеку к Arduino IDE:
- Использовать менеджер библиотек, который появился в программе с версии 1.6.2. Необходимо использовать команду:
Эскиз → Include Library → Manage Libraries
Появится список доступных библиотек, которые можно включать и отключать (см. скриншот ниже). - Добавить скачанную библиотеку в формате *.ZIP. Для этого нужно использовать команду:
Эскиз → Include Library → Add .ZIP library
После этого выбрать файл, чтобы библиотека добавилась в список, и перезапустить программу. - Добавить файл с библиотекой вручную. Для этого архив потребуется распаковать и проследить, чтобы все файлы оказались в одной папке. После этого её нужно будет поместить в каталог с пользовательскими библиотеками, который располагается по адресу:
Мои документыArduinolibraries (Windows)
или
~/Документы/Arduino/libraries (Linux)
Такой способ достаточно сложен, его рекомендуют в первую очередь опытным программистам.
На сегодняшний день представлены версии для операционных систем Windows, Linux, MacOS. На начало сентября 2017 года самая hf,jxfz версия Arduino IDE была версии 1.8.5.
Скачать её можно выше – выберите нужный вариант из таблицы, либо на странице https://www.arduino.cc/en/main/software. Для Linux есть 32-разрядная, 64-разрядная и ARM-версии. Для Windows, помимо устанавливаемой и портативной, есть версия в виде Windows-приложения.
Таким образом, работа с Arduino IDE не создаёт каких-либо сложностей даже программистам, которые пока не освоили язык C++ в полной мере. Экспериментируя с функциями, добавляя свои библиотеки или скачивая новые, можно достигать отличных результатов и решать даже весьма нестандартные творческие задачи.
Всё это объясняет её растущую популярность и прирост количества программистов, которые экспериментируют с программной средой и добавляют в неё новые функции.
Следующая
РазноеЧто такое активная мощность?
Как использовать и понять справочник Arduino
Итак, вы только что открыли свой модный новый гаджет — может быть, потрясающую цифровую зеркальную камеру, или новейшую игровую систему, или, может быть, новый проигрыватель Blu-ray. Когда вы с радостью отрываете упаковку — вы замечаете небольшую книгу, которая кажется напечатанной на переработанной газете 4-го поколения — это инструкция по эксплуатации.
Когда вы просматриваете страницы, вы понимаете, что сначала это было написано на японском языке, затем переведено на китайский австралийским чревовещателем, а затем стажер в Калифорнии использовал Google Translate, чтобы закончить работу на вашем родном языке.
Итак, вы выбрасываете руководство по эксплуатации и просто подключаете гаджет. Хорошо для вас, тем более, что кажется, что все работает нормально.
До…
…что-то не работает. Возможно, вы не можете перемещаться по параметрам меню, чтобы найти настройку, которая была заявлена на коробке, или, возможно, функции, которые, как вы думали, есть в вашем гаджете, не работают, независимо от того, насколько правильно вы нажимаете кнопки.
В этом руководстве основное внимание уделяется руководству по эксплуатации Arduino, более известному как «Справочник по Arduino» или «Документация по Arduino». Это важный и полезный аспект обучения использованию Arduino — он станет вашим лучшим другом во времена растерянности, мозговых провалов и приступов ярости.
Я знаю, что руководства по эксплуатации получают плохую обертку, но не волнуйтесь — Ардуино Референс великолепен!
Честно говоря, что действительно удерживает нас от документации, так это наши страхи.
Верно — справочные страницы могут немного пугать, когда вы только начинаете.
Они используют много технического жаргона, изобилуют причудливыми аббревиатурами и полны кроличьих норок. Все равно этим никто не пользуется… верно? (Неправильно — это была шутка!)
Это руководство охватывает:
- Что такое эталон Arduino?
- Справочная страница «Анатомия Arduino».
- Почему вы должны использовать справочник Arduino Подробнее.
- Как использовать мозговые волны, чтобы заставить кошку меньше есть.
Что такое эталон Arduino?
Вы когда-нибудь читали книгу и натыкались на слово, которое не понимали? Иногда вы можете вывести значение из контекста, но что делать, если такого контекста не существует?
Скорее всего, вы использовали поисковую систему, чтобы найти определение. Определение говорило вам, что означает это слово, было ли оно глаголом или прилагательным (или и тем, и другим), оно давало несколько примеров того, как использовать это слово, и, возможно, даже этимологию.
Справочник Arduino — то же самое. Это «словарь» для всех структур, переменных и функций, которые вы можете использовать при программировании скетча.
Он сообщает вам описание, параметры, которые он использует, синтаксис (как он написан) и даже дает кучу примеров того, как его использовать.
Итак, давайте перейдем на страницу справочника по Arduino и углубимся в то, что мы можем узнать.
Анатомия справочной страницы Arduino
Итак, давайте перейдем к справочной странице, чтобы начать наше путешествие. Вы можете найти индекс всех справочных страниц Arduino на веб-сайте Arduino:
https://www.arduino.cc/reference/en/
Или — если вы не в сети — не волнуйтесь, ваша среда разработки Arduino IDE поставляется с html-копией всех страниц. Вы можете получить к нему доступ через Arduino IDE: Справка > Справочник
Вы заметите, что в верхней части страницы справочного указателя есть три столбца; Структура, переменные, функции. Это первый уровень организации ссылки. Поэтому, если вы ищете переменную, вы знаете, с какого столбца начать поиск.
Каждый из элементов, связанных гиперссылками на этой индексной странице, приведет вас к странице со ссылками на отдельные записи.
Отличительной чертой отдельных справочных страниц является то, что они организованы одинаково от одной к другой, поэтому вы должны знать, чего ожидать. Они также немногословны, так что не думайте, что вам придется просматривать чью-то диссертацию.
Каждая страница имеет несколько основных заголовков. Мы пройдемся по каждому из основных, а затем поговорим о некоторых менее распространенных.
Описание:Все записи будут иметь описание. Довольно просто — это будет простое объяснение того, что делает элемент. Обычно используется базовый язык.
Синтаксис:Почти все записи имеют заголовок «синтаксис», но он более распространен для функций. Синтаксис показывает, как должна быть написана функция (или другой код), когда вы используете ее в своем скетче.
По сути, это то, что функция должна знать, чтобы выполнять свою работу. Возьмем пример из справочной страницы digitalWrite().
Слова в скобках говорят вам, какой тип значения следует передать функции. Если мы хотим использовать эту функцию, ей нужно будет знать две вещи: номер вывода и значение для записи на вывод.
Вы не вводите слово «контакт» при использовании функции, вы замените его на фактический номер контакта или переменную, представляющую этот номер контакта. То же самое верно и для слова «значение», вы должны заменить его одним из допустимых параметров (см. ниже).
Итак, когда вы на самом деле написали функцию, она могла бы выглядеть так:
digitalWrite( 13 , HIGH )
Где 13 — это «вывод», а HIGH — это «значение».
Параметры:Только структуры и функции будут иметь заголовок «Параметры». Они точно описывают то, что может быть заключено в скобки в приведенном выше синтаксисе. Это полезно знать, потому что вы можете пытаться передать число с плавающей запятой, когда функция вызывает целое число.
Возвраты:Это говорит вам, какое значение ожидать от функции, чтобы вернуть вам. Например, когда вы используете функцию извлечения квадратного корня, вы ожидаете получить квадратный корень. Но каким типом данных будет квадратный корень — целым числом, числом с плавающей запятой или двойным числом? Об этом вам подскажет заголовок «Возврат».
Иногда функция ничего не возвращает. Возьмем, к примеру, функцию pinMode(), вы даете ей номер вывода и режим, в котором вы хотите, чтобы пин был, и она просто устанавливает режим — нет никаких данных, которые она должна вернуть вам.
Пример:Это лучший способ понять, как структура, функция или переменная должны быть реализованы в коде. Обычно это очень короткий фрагмент кода, хотя иногда он может быть длинным. Пример ниже взят со справочной страницы map().
Приятной особенностью описания примера является опция «получить код» справа на справочной странице рядом с кодом примера. Когда вы нажмете на нее, ваш браузер перенесет вас на простую текстовую веб-страницу, где вы сможете скопировать и затем вставить код в вашу Arduino IDE.
См. также:Это маркированный список похожих или связанных записей на справочной странице, которую вы просматриваете.
Они будут ссылаться на другие справочные страницы внутри справочного каталога. Если я оказываюсь на справочной странице, которая не совсем то, что я искал, я обычно проверяю варианты, которые они предоставляют здесь.
Иногда они также будут ссылаться на учебные пособия на веб-сайте Arduino (а кому не нравятся учебные пособия?). Имейте в виду, если вы используете ссылку в автономном режиме через Arduino IDE и у вас нет подключения к Интернету, любые ссылки за пределами эталонного каталога не будут работать.
Сюда входят наиболее распространенные заголовки, ниже приведены менее распространенные, но тем не менее полезные заголовки, с которыми вы столкнетесь.
Советы по программированию / Советы по кодированию / Советы:Это небольшие знания, полученные от людей, которые знают свое дело. Мне всегда нравится их читать, потому что они добавляют глубины моему пониманию.
Предупреждение:Здесь указаны распространенные ошибки, возникающие, когда люди вроде меня пытаются использовать код.
Внимание:Если есть исключения из правил, они будут описаны здесь.
Примечание:Во многих случаях примечания являются заголовком «разное» и содержат информацию, которая не попадает под другие заголовки.
Почему вы должны использовать справочник по Arduino Подробнее
Вот сценарий, который я сам разыграл около 7000 раз. Я пишу программу, и некоторые функции, похоже, работают неправильно. Я трачу 30 минут на внесение изменений в программу, но продолжаю получать ошибки. Каждый раз, когда я думаю, что все исправлено, я обнаруживаю, что ошибаюсь.
Затем я решаю проверить ссылку, после чего быстро понимаю, что просто не понимаю, как должна работать функция.
Итак, привычка, которую я выработал, когда я не полностью понимаю функцию, заключается в том, чтобы проверить соответствующую страницу справки Arduino.
Это сэкономит мне время, научит меня тому, чего я не знал, или заново научит меня тому, что я забыл, и сделает то же самое для вас.
Подведем итог.
Справочная страница Arduino:
- Колено пчелы.
- Львиная пасть.
- Моя любимая страница на сайте Arduino.
- Ваша любимая страница на сайте Arduino?
- Перейдите на страницу справочника Arduino и начните просматривать некоторые функции.
- Проверьте, можете ли вы найти записи со следующими заголовками: Предостережение / Предупреждение / Совет
Предупреждение – это заходит глубоко!
— AVR Libc (Это ссылка на то, на чем основан язык Arduino)
— Руководство пользователя для AVR Libc
P.
S.Хорошо — как бы мне ни нравилась страница справки по Arduino, иногда на ней есть ошибки. Поэтому, если вы найдете что-либо, сообщите об этом на форуме Arduino.
Список библиотек Arduino — Библиотеки Arduino
Этот сайт генерируется автоматически из 5528 библиотек зарегистрирован в диспетчере библиотек Arduino.
Самые последние
RSS1. | Софттаймеры v2.0.2 | сегодня |
2. | EgoSmartHeaterRS485 v1.0.2 | сегодня |
3. | tdslite v0.2.0 | сегодня |
4. | UNIT_GLASS v0. 0.1 | сегодня |
5. | ESP32-БЛЕ-МИДИ v0.3.1 | сегодня |
6. | КрасноречивыйEsp32cam | сегодня |
7. | Nokia 1,8-дюймовый дисплей SPFD54124B v1.0.7 | сегодня |
8. | GyverPortal v3.6.0 | сегодня |
9. | ADXL345_WE v2.2.2 | сегодня |
10. | Библиотека светодиодной матрицы регистра сдвига v2.0.3 | сегодня |
Самые популярные
1. | лвгл | 11535 |
2. | ArduinoJson | 6060 |
3. | Васм3 | 5921 |
4. | FastLED | 5736 |
5. | WiFiManager | 5710 |
6. | ИК-пульт | 3886 |
7. | Блинк | 3595 |
8. | ПабСубКлиент | 3534 |
9. | Adafruit NeoPixel | 2753 |
10. | ПИОН | 2683 |
Самый разветвленный
1. | Массив нибблов | 3384 |
2. | PrintString | 3384 |
3. | лвгл | 2345 |
4. | WiFiManager | 1767 |
5. | ИК-пульт | 1696 |
6. | FastLED | 1519 |
7. | Библиотека Adafruit GFX | 1450 |
8. | ПабСубКлиент | 1407 |
9. | Библиотека датчиков DHT | 1383 |
10. | МФЦ522 | 1352 |
.