первые шаги в электронике / Амперка
Arduino — это небольшая плата с собственным процессором и памятью. На плате также есть пара десятков контактов, к которым можно подключать всевозможные компоненты: лампочки, датчики, моторы, чайники, роутеры, магнитные дверные замки и вообще всё, что работает от электричества.
В процессор Arduino можно загрузить программу, которая будет управлять всеми этими устройствами по заданному алгоритму. Таким образом можно создать бесконечное количество уникальных классных гаджетов, сделанных своими руками и по собственной задумке. Чтобы понять общую идею, взгляните на иллюстрацию. Она не отражает и миллионной доли всех возможностей, но всё же даёт первичное представление.
Сложно ли это?
Свою бешеную популярность Arduino приобрела благодаря простоте и дружелюбности. Даже полный ноль в программировании и схемотехнике может освоить основы работы с Arduino за пару часов. Этому поспособствуют тысячи публикаций, учебников, заметок в интернете и отличная серия видеоуроков по Arduino на русском языке.
Программы для Arduino пишутся на обычном C++, дополненным простыми и понятными функциями для управления вводом-выводом на контактах. Если вы уже знаете C++ — Arduino станет дверью в новый мир, где программы не ограничены рамками компьютера, а взаимодействуют с окружающим миром и влияют на него. Если же вы новичок в программировании — не проблема, вы с лёгкостью научитесь, это просто.
Для удобства работы с Arduino существует бесплатная официальная среда программирования Arduino IDE, работающая под Windows, Mac OS и Linux. С помощью неё загрузка новой программы в Arduino становится делом одного клика, только лишь подключите плату к компьютеру через USB. Хотя для более пытливых умов возможна работа и через Visual Studio, Eclipse, другие IDE или командную строку, а новичкам подойдёт визуальная среда программирования XOD IDE.
Вам не понадобится паяльник. Полноценные устройства можно собирать, используя специальную макетную доску, перемычки и провода абсолютно без пайки. Конструирование ещё не было таким быстрым и простым.
Принцип бутерброда
Ещё одной отличительной особенностью Arduino является наличие плат расширения, так называемых shields или просто «шилдов». Это дополнительные платы, которые ставятся подобно слоям бутерброда поверх ардуинки, чтобы дать ей новые возможности. Так например, существуют платы расширения для подключения к локальной сети и интернету (Ethernet Shield), для управления мощными моторами (Motor Shield), для получения координат и времени со спутников GPS (приёмник GPS/ГЛОНАСС) и многие другие.
Так что же такое Arduino
Arduino — это сердце конструктора, в котором нет конечного, определённого набора деталей, и нет ограничений в разнообразии того, что можно собрать. Всё ограничено лишь вашей фантазией. Это новый мир, убойное хобби и отличный подарок. Десятки тысяч людей в мире уже поняли это.
Взгляните лишь на несколько примеров того, что возможно. Ведь это грандиозно!
С чего начать
Вам понадобится сам Arduino. Arduino Uno — это самая популярная модель в настоящий момент. Для начала экспериментов её хватит с головой. Хотя если брать «на вырост», можно рассмотреть более мощную Arduino Mega 2560.
Также вам понадобится USB-кабель, макетная доска, перемычки, резисторы, транзисторы… и ещё десяток подручных вещей. Чтобы не утомлять себя поисками необходимого, возьмите всё, что потребуется в виде одного из готовых наборов. Например, «Матрёшка Y» или «Матрёшка Z» — мы собрали в них всё, что нужно для старта.
Arduino Pro IDE нацелена на профессиональных разработчиков
Это всем известный факт, что Arduino изменил или дал толчок для развития производителей, электроники, DIY, open source или любой экосистемы, о которой вы только можете подумать. Это дало возможность пользователям среднего уровня заниматься разработкой, независимо от имеющихся у них навыков или опыта.
Плата Arduino UnoИнженеры, ученые, любители, профессора, производители и другие, использовали экосистему, созданную Arduino, для создания и обучения новым вещам. Помимо великолепного оборудования, которое сделало все это возможным, значительным вкладом является интегрированная среда разработки (IDE). Arduino IDE очень прост для использования новичками.
Хотя Arduino Classic IDE является довольно приличной средой для создания проектов на основе Arduino, она не предназначена для крупномасштабных проектов и не имеет инструментов, необходимых разработчикам. Мы перешли на использование Atmel Studio из-за отсутствия IDE в Arduino, а другие пользоатели рассматривали возможность использования других IDE, таких как Visual Studio.
Команда Arduino объявила о выпуске новой IDE под названием Arduino Pro IDE, которая, как ожидается, заинтересует продвинутых разработчиков. Arduino Pro IDE сочетает в себе классическую Arduino IDE с некоторыми новыми расширенными функциями, такими как:
- Двойной режим;
- Инструмент раскрывает расширенные функции только тогда, когда они вам нужны
- Современная полнофункциональная среда разработки
- Современный внешний вид, мульти-панель IDE с интегрированным представлением файловой системы
- Предназначен для разработки больших многофайловых проектов на основе репозитория.
- Отладчик ( скоро)
- Установка точки прерывания, просмотр трассировки, пошаговое выполнение и многое другое
- Отладка приложения без влияния на синхронизацию с помощью Serial.print ()
- Открыта для сторонних плагинов и плат (скоро)
- Добавление сторонних плат, библиотек и подключаемых модулей функций IDE
- Поддержка дополнительных языков, кроме C ++ ( скоро)
- Это будет интересно!
- Новый менеджер плат, менеджер библиотеки и последовательный монитор
- Все функции, которые вы ожидаете в более чистой и современной среде
- Базовое Авто-Завершение (только для целей Arm)
- Интеграция с Git
- Темный режим
- Приятно глазу
Автозаполнение в IDE, несомненно, будет отличной возможностью. Arduino Pro IDE основана на новейших технологиях:
- Arduino CLI, работающий в режиме daemon, предоставляет все основные функции Arduino.
- Интерфейс приложения основан на Eclipse Theia Open Source IDE.
- Electron, основа Eclipse Theia, позволяет использовать веб-технологии в настольных средах.
Arduino Pro IDE в настоящее время доступна в альфа-версии в надежде, что пользователи смогут протестировать ее, найти ошибки, которые можно исправить в производственном выпуске. Arduino Pro IDE может показаться далеким от промышленного выпуска, хотя число проблем, поднятых на Github, почти достигло 100 на данный момент.
Альфа-версия доступна для версий Windows, Mac OS X и Linux64, и команда Arduino открыта для обратной связи. Вы можете скачать последнюю версию IDE Arduino Pro здесь.
Более подробную информацию о Arduino Pro IDE можно найти на странице Github и на странице объявлений.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.
Структура и синтаксис языка ArduinoIDE | Учи Урок информатики
setup()
Описание
Функция setup() вызывается при старте скетча. Обычно используется для инициализации переменных, установки режимов работы универсальных выводов (пинов), инициализации библиотек и т.п. Функция setup вызывается только один раз – после подачи питания или после сброса (нажатия на кнопку reset) платы Arduino.
Пример
1 2 3 4 5 6 7 8 9 10 11 12 |
int buttonPin = 3; void setup() { Serial.begin(9600); pinMode(buttonPin, INPUT); } void loop() { // ... } |
к содержанию ->>
loop()
Описание
После завершения вызова функции setup(), начинает вызываться функция loop().
При этом вызов loop() в точности соответствует ее названию – после завершения выполнения ее тела, она будет вызываться снова и снова – и так до бесконечности. Таким образом обычно обеспечивается “активная” часть скетча, анализирующая состояние платы и выполняющая соответствующие действия.
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
int buttonPin = 3; // setup инициализирует последовательный порт и кнопку void setup() { beginSerial(9600); pinMode(buttonPin, INPUT); } // в цикле проверяется состояние кнопки, // в последовательный порт будет отправлено сообщение, если она нажата void loop() { if (digitalRead(buttonPin) == HIGH) serialWrite('H'); else serialWrite('L'); delay(1000); } |
к содержанию ->>
; точка с запятой
Описание
Используется для завершения строки.
Пример
В случае, если вы забыли поставить точку с запятой в конце строки, то это скорее всего приведет к ошибке компиляции.
Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду. Входной информацией для компилятора (исходный код) является описание алгоритма или программа на объектно-ориентированном языке (например ArduinoIDE), а на выходе компилятора — эквивалентное описание алгоритма на машинно-ориентированном языке (0101000111100100010011111100010101).
к содержанию ->>
{} фигурные скобки
Описание
Фигурные скобки (часто их называют просто “скобки”) – важная конструкция языка программирования C. Иногда они вызывают затруднения у начинающих, поэтому их использование будет проиллюстрировано ниже.
Открывающая фигурная скобка “{” должна всегда иметь соответствующую закрывающую – “}“. ArduinoIDE имеет специальную возможность проверки парности скобок. Для этого выделите скобку или установите курсор сразу за ней – и тогда будет подсвечена её пара.
Поскольку фигурные скобки используются во многих случаях, хорошем стилем считается печатать закрывающую сразу после открывающей (что автоматически выполняется в CodeBlocks например). Затем можно вернуться на символ назад, вставить новую строку между между ними, где уже и писать операторы. Таким образом, вы никогда не создадите ситуацию с “непарной” скобкой.
Скобки весьма важны с синтаксической точки зрения, и перемещение скобки на одну или две строки может привести к значительному воздействию на выполнение программы.
{} – используются для обхвата так сказать кода внутри этих скобок к чему либо (функции/классу/условию/циклу и т.д. и т.п). Фигурные скобки “открывают” и “закрывают” ту часть кода, которая относится к некоторой функции/классу/условию/циклу и т.д. и т.п.
Пример
1 2 3 4 5 6 |
void print(){ Serial.print("Hello WORLD!"); } void setup(){ F(); } |
к содержанию ->>
Комментарии
Описание
Комментарии – это фрагменты программы, в которых обычно записывают пояснения о том, что она делает. Они полностью игнорируются компилятором, и поэтому ничего не занимают в памяти ATmega после загрузки скетча.
Компилятор — Компьютерная программа, выполняющая компиляцию (ArduinoIDE например).
Основная функция комментариев – помочь разобраться (или вспомнить), как работает программа или объяснить другим, что она делает. Существует два разных стиля написания комментариев:
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
int x; int gwb=10; void setup(){ x = 5; // Это - однострочный комментарий. Всё, что после двух слэшей - комментарий, // до конца строки /* это - многострочный комментарий - можно использовать для "комментирования" фрагментов программы if (gwb == 10){ // однострочный комментарий - это нормально внутри многострочного x = 3; } /* но многострочный комментарий не допускает вложенности - это не будет компилироваться */ Serial.print(x) //будет отображено 5 а не 3 } // не забудьте "зкарывающий" знак комментария - они должны быть сбалансированы |
к содержанию ->>
#define
Описание
#define часто используется для определения значения имен констант до начала компиляции программы. Константы, которые определены таким образом, ничего не занимают в памяти микроконтроллера – компилятор подставит значения вместо имен во время компиляции.
Работа команды #define string1 string2 сравнима с операцией НАЙТИ и ЗАМЕНИТЬ в любом текстовом редакторе. До компиляции программы среда ArduinoIDE находит в тексте программы строку string1 и заменяет ее на string2
Однако, при использовании возможны побочные нежелательные эффекты – например, если имя определенной через #define константы вдруг входит хотя бы частично в имя другой переменной, то в этом случае произойдет ошибочная замена правильного части имени числом или текстом.
В общем случае, для объявления констант следует использовать ключевое слово const
Синтаксис
1 |
#define constantName value |
1 |
#define ledPin 10; // это ошибка |
1 |
#define ledPin = 3 // это тоже ошибка |
к содержанию ->>
#include
Описание
#include используется для подключения к скетчу внешних библиотек. Это дает возможность программисту не только использовать обширный инструментарий стандартных библиотек C, но и подключать библиотеки Arduino.
Помните, что в #include, также как и в #define, не требуется указывать завершающую точку с запятой, во избежании генерации трудночитаемых ошибок компилятора.
Пример
Этот пример подключает библиотеку, которая позволяет управлять Сервомоторами.
1 2 3 4 5 6 |
#include <Servo.h> //"подключаем" библиотеку для управления сервомоторами Servo myservo; // создать объект Servo // 12 объектов Servo может быть создано на одной плате int pos = 0; // переменная pos приравнивается к нулю |
к содержанию ->>
Пожалуйста, оцените статью
4.2 из 5. (Всего голосов:260)
Какие другие IDE для Arduino?
vim может использоваться для разработки Arduino, но это займет некоторую конфигурацию (как и способ vim). Вам понадобится файл синтаксиса и этот плагин, который позволит вам компилировать и развертывать из vim.
Грант Лукас написал великолепную статью о том, как привести ситуацию в порядок:
Вот краткий пост о настройке Vim для разработки Arduino вместо использования Arduino IDE. Если вы опытный пользователь Vim, может быть немного шокирует перейти в другой редактор. К счастью, установка довольно проста, чтобы все это работало с Vim. В этом посте предполагается, что вы знакомы с настройкой Vim, и в идеале у вас уже есть среда, которая работает для вас.
Установите Arduino IDE
Подождите. Какая?!? Я слышу, как ты говоришь. Я знаю я знаю. На самом деле мы не используем IDE Arduino, но нам это нужно для некоторой конфигурации и устанавливаемых файлов. Плагин Vim, который мы будем использовать, связан с тем, что IDE устанавливает и настраивает, так что это необходимо. Вы можете скачать IDE с сайта Arduino .
Установите плагин vim-arduino
Чтобы получить основное преимущество компиляции, мониторинга и развертывания на Arduino, скачайте последнюю версию vim-arduino . Установите его в свою папку .vim, используя любой метод управления плагинами Vim. Подсказка: я бы порекомендовал Pathogen, поскольку он делает установку такой же простой, как перетаскивание папки плагина в папку пакета.
Синтаксический файл Vim
Далее нужно получить файл синтаксиса, чтобы у нас была хорошая цветовая кодировка для файлов .pde и .ino. Загрузите последнюю версию arduino.vim и установите ее в папку с синтаксисом Vim. Чтобы синтаксис применялся к правильным типам файлов, добавьте в файл vimrc следующее
au BufRead,BufNewFile *.pde set filetype=arduino
au BufRead,BufNewFile *.ino set filetype=arduino
Настройка Arduino IDE
Прежде чем пытаться скомпилировать и развернуть с помощью Vim, убедитесь, что все сначала работает с Arduino IDE, поскольку плагин Vim просто вызывает параметры, сохраненные в IDE. Если он работает в IDE, он должен работать в Vim. Убедитесь, что вы выбрали правильный последовательный порт tty.usbmodem * из Сервис> Последовательный порт в IDE. Примечание. Отображается только при подключении Arduino.
Работа от Vim
Как только вы сможете общаться со своим Arduino из IDE, у вас должно быть все в порядке с Vim. Вам не нужно открывать IDE, если вам не нужен пример кода. Откройте файл эскиза в Vim и используйте его <Leader>ac
для компиляции эскиза, <Leader>ad
для компиляции, а затем для развертывания на подключенном Arduino и <Leader>as
для открытия нового окна, screen
чтобы отслеживать последовательный выход Arduino.
Для плат MRT [Роботрек вики]
Среда программирования MRT 1.2.4
Обращаем внимание, что для работы ПО MRT 1.2.4 необходим компонент NetFramework 3.5. В ОС Windows 10 этот компонент входит в сборку, но его необходимо активировать. Для этого выполните следующие действия:
1.Откройте панель управления. Её можно найти через поиск в меню «Пуск» или нажав на тот же «Пуск» правой кнопкой мыши.
2.Откройте раздел «Программы» при распределении по категориям.
3.Нажмите «Включение или отключение компонентов Windows».
4.Поставьте галочку напротив NetFramework 3.5. Не забудьте нажать «ОК».
Скачать:
Роботрек IDEСкачать:
История изменений
в версии 1.1.0 добавлен самоучитель
в версии 1.1.1 исправлена ошибка в работе с датчиком вибрации
в версии 1.1.2 добавлены корректировки в самоучителе урок n39, исправлена ошибка в имени переменной
в версии 1.1.3 (neiro) отдельная надстройка Нейротрек
в версии 1.1.4 добавлена работа с новой версией прошивки TFT дисплеев
в версии 1.1.5 добавлены блоки и приложение для работы с нейроинтерфейсом
в версии 1.1.6 обновлено приложение для работы с нейроинтерфейсом, включено исправление файла display.cpp
в версии 1.1.7 добавлены блоки для работы с ресурсным набором «Видэрэтрек» (компьютерное зрение)
в версии 1.1.8 увеличено число обработок на ультразвуковом датчике расстояния до 4
в версии 1.1.9 добавлены блоки для работы с mp3 модулем «Аудиотрек»
в версии 1.3.1 исправлены ошибки в работе, добавлена поддержка новой версии Роботрек ПДУ.
Если при загрузке программы не пропадает надпись «Роботрек» на дисплее, замените файл display.cpp в папке C:\Program Files (x86)\Robotrack\hardware\robotrack\avr\cores\arduino
Обращаем внимание! Внесены изменения в работу ультразвукового датчика расстояния. Было выявлено, что иногда ловились вторичные эхо от предыдущих измерений, что приводило к скачкам при измерении коротких дистанций (до ~20-30 см). Скорректированна библиотека работы датчика, измерения стали стабильными. Плюс был исправлен коэффициент, чтобы расстояние определялось ближе к реальному. Выдача 300 в неидеальных условиях это нормально, не воспринимайте эту цифру как расстояние, это код ошибки, означающий что нормальное эхо не получено. Для изменения работы установленного ПО загрузите файл Trackduino.cpp и замените его в папке C:\Program Files (x86)\Robotrack\hardware\robotrack\avr\cores\arduino
Общее описание
Роботрек IDE – среда разработки, основанная на Arduino IDE и дополненная визуальной средой программирования для составления программ из блоков без необходимости писать и редактировать код.
Роботрек IDE имеет полную совместимость с со всеми платами и библиотеками Arduino, если вы работаете одновременно с наборами Роботрек и Arduino, то вам не придется устанавливать несколько IDE.
Визуальная среда разработана на основе проекта Ardublock и предоставляет собой плагин для Arduino IDE, который генерирует код на языке программирования C из визуальной программы. При этом структура визуальной программы практически всегда соответствует структуре текстовой программы, что позволяет переходить от визуального программирования к текстовому с наименьшими усилиями.
В данной статье преимущественно рассмотрена работа с визуальной средой, т.к. работа с Arduino IDE подробно описана в множестве статей в интернете.
Установка
Windows: скачайте и запустите установочный файл, следуйте инструкциям мастера установки. По завершении установки на рабочем столе появится ярлык для запуска программы.
Linux: в разработке.
MacOS: в разработке.
Системные требования
Windows 7, 8, 10, 32 или 64 бит;
300 МБ свободного места на жестком диске;
Клавиатура, мышь.
Начало работы и интерфейс
Сразу после запуска окна Arduino IDE и визуальной среды располагаются бок о бок и занимают весь экран. Вы можете свободно перемещать и изменять размеры каждого из окон.
Вы можете закрыть визуальную среду, если пишете программы текстом, но не закрывайте окно Arduino, т.к. это приведет к полному выходу из программы.
Если вы используете только визуальную среду, просто разверните ее на весь экран, а Arduino IDE сверните.
Если вы случайно закрыли окно визуально среды, заново открыть его можно из меню Arduino IDE (Инструменты – Визуальная среда)
После первого запуска проверьте, что в Arduino IDE выбрана нужная плата и нужный порт (Инструменты – Плата и Инструменты – Порт).
Окно визуально среды имеет следующий интерфейс:
1. Верхняя панель инструментов:
Создать – создание новой пустой визуальной программы
Сохранить – сохранение текущей визуальной программы
Сохранить как – сохранение текущей визуальной программы с дополнительными настройками
Открыть – открытие файла визуальной программы
Сгенерировать код – конвертация текущей визуальной программы в код для Arduino IDE. Удобно использовать, если вы хотите внести изменения в код вручную.
Загрузить в контроллер – конвертация текущей визуальной программы в код для Arduino IDE с последующей загрузкой этого кода в контроллер.
Монитор порта – открытие окна монитора последовательного порта.
2. Нижняя панель инструментов:
Сохранить как изображение – экспорт текущей программы в изображение формата .png.
Портал Роборек – ссылка на портал проекта Роботрек с дополнительно информацией о ПО и конструкторе
3. «Фабрика» блоков. Здесь хранятся все возможные блоки, из которых составляется программа.
4. Рабочая область. Здесь составляется программа.
Редактирование
Добавление блоков
Для добавления блока на рабочую область откройте нужную группу блоков, захватите нужный блок левой кнопкой мыши и перетяните его на рабочую область. Разместите его так, чтобы его коннектор оказался как можно ближе к коннектору блока, к которому вы хотите его присоединить, и отпустите левую кнопку мыши. Если блоки соединились успешно, вы услышите щелок.
Анимация
Удаление блоков
Для удаления блока или блоков захватите блок, который нужно удалить, и переместите его за границы рабочей зоны:
Анимация
Копирование
Для копирования блока кликните на нем правой кнопкой и выберете «Клонировать». На поле появится копия блока и всех его дочерних блоков.
Анимация
Если к блоку, на котором вы кликнули, присоединены снизу другие блоки, они тоже будут клонированы.
Анимация
Комментарии
Для добавления комментария кликните по блоку правой кнопкой мыши и выберете «Добавить комментарий». После этого комментарий можно перемещать, скрывать, и удалить при необходимости. В программный код Arduino IDE комментарии не конвертируются.
Анимация
Блоки
Группы блоков
Все блоки размещены в фабрике блоков в группах:
Группа блоков | Описание |
---|---|
Управление | Блоки, ответственные за ход выполнения программы, ее ветвления Например, циклы, условия, задержки, переходы. |
Порты | Блоки для прямого доступа к портам IN и OUT: установка высокого или низкого напряжения, чтение. |
Логика | Всевозможные логические операторы: сравнение, И, ИЛИ, НЕ и т.д. Все эти блоки возвращают либо 1, либо 0 |
Математика | Различные математические операторы: сложение, вычитание, умножение, масштабирование и т.д. |
Переменные | Блоки для создания переменных различного типа и их изменения |
Моторы | Блоки для управления моторами и серводвигателями |
Датчики | Блоки для настройки и получения данных с датчиков: расстояния, цвета, ИК, освещенности, кнопки, огня, удара, энкодера, микрофона, магнитного поля, положения, температуры. |
Встроенные кнопки | Блоки для опроса состояния кнопок, расположенных на плате |
Исполнители | Блоки для управления различными исполнительными устройствами (кроме двигателей): светодиодом, зуммером |
Встроенный RGB LED | Блок для управления трехцветным светодиодом, расположенным на плате |
ИК ПДУ | Блоки для реализации дистанционного управления с помощью инфракрасного пульта |
Bluetooth ПДУ | Блоки для реализации дистанционного управления по протоколу Bluetooth с помощью приложения Роботрек ПДУ |
Дисплей | Блоки для работы с дисплеем – вывода текста, рисования геометрических фигур и т.д. |
Отладка | Блоки для работы с UART – оправка данных на компьютер и чтение данных, отправляемых с компьютера через терминал |
I2C | Общие блоки для работы с устройствами, работающими на шине I2C |
Память | Блоки для работы с постоянной памятью: чтение и запись в EEPROM (память микроконтроллера) и на SD-карту |
Свой код | Блоки для добавления в визуальную программу любых строк текстового кода. |
Порты Arduino | Блоки для доступа к портам интерфейса Arduino |
Виды блоков
Блоки можно разделить на виды по нескольким параметрам
Команды
Команды – блоки, выполняющие какое-то действие, но не возвращающие никакого результата. Любая программа должна состоять хотя бы из одной команды. Команды имеют коннекторы сверху и снизу и соединяются только друг с другом.
Команды могут принимать результаты функций или переменные в качестве аргументов.
Команды, требующие аргументов, имеют один или несколько коннекторов с правой стороны. Форма коннектора указывает на тип принимаемого в качестве аргумента значения, к этому коннектору присоединяется либо переменная соответствующего типа, либо функция.
Команды выполняются друг за другом сверху вниз.
Две комманды без аргументов, соединенные друг с другом
Программа мигания светодиодом из 4 комманд
Функции
Функции не имеют коннекторов сверху и снизу и могут использоваться только в качестве аргументов каких-либо команд или других функций. Тип возвращаемых данных соответствует форме левого коннектора блока:
Форма левого коннектора блока | Тип данных |
---|---|
Округлая | Boolean. Логический 0 или 1. |
Угловая | Число |
Прямоугольная | Строка из символов |
Фигурная | Символ |
Функции могут «вкладываться» друг в друга сколько угодно раз. При этом выполнение функций выполняется всегда начиная с самого глубоко вложенного блока, например:
В данной программе:
опрашивается датчик расстояния на порту IN1
опрашивается датчик расстояния на порту IN2
показания с обоих датчиков суммируются
полученное число делится на 2 (вычисляется среднее показание двух датчиков)
полученное число масштабируется с диапазона 0-100 до диапазона 0-180 (рабочий угол серводвигателя)
серводвигатель устанавливается на угол, соответствующий полученному числу.
Редактируемые и нередактируемые блоки
Как команды, так и функции могут иметь редактируемые элементы: либо выбор из списка, либо ввод своего текста. Например:
Выбор из нескольких. При наведении на блок появляется стрелка
Ввод текста в блок типа «Строка»
po/robotrekide.txt · Последние изменения: 2020/04/08 10:37 — dustinskiy
Arduino Uno – описание и обзор платы
Среди людей, увлеченных техническим творчеством, сегодня наблюдается Arduino-мания. Ардуино представляет собой электронное устройство, предназначенное для управления электрическими двигателями и датчиками, разного рода приборами и светильниками. Плата способна принимать и передавать информацию. По сути Ардуино представляет собой целое семейство многофункциональных микроконтроллеров. Наиболее распространены и чаще всего сегодня применяются во всем мире платы Arduino Uno, Nano, Mega, PRO mini. Интернет-магазин Вольтик.ру, в котором можно купить Arduino и различную периферию к ней, поможет нам разобраться с особенностями и отличиями этих плат. Поехали!
Ардуино – это современная умная технология, отличающаяся эффективностью и качеством, на ее базе формируются разного рода устройства. Они несут в себе удобство и выгоду. Микроэлектронные программируемые устройства могут покупать любители создавать что-то новое, пользователи любого возраста. По периметру плат размещены входы и выходы, например, в Arduino Mega их может быть более семидесяти, а в Pro Mini двадцать два. Они бывают аналогового и цифрового типа.
К этим контактам можно подключать различные устройства и датчики, например:
- светодиоды, кнопки, динамики;
- разного рода модули;
- дисплеи, сервоприводы;
- дальномеры, микрофоны;
- гироскопы и много чего еще.
В каких целях используется Arduino?
При помощи платы Arduino можно создать устройство управления рамой окна, и она будет закрываться в тот момент, когда пойдет дождь. Ардуино помогают управлять освещением, уменьшая и увеличивая яркость. Чтобы плата понимала, что необходимо будет делать и когда, был разработан специальный язык программирования. Его может освоить любой желающий. Для этого была создана среда под названием Arduino IDE.
Написанные программы могут управлять светодиодами, двигателями, заставлять выполнять самые разные полезные функции. Arduino дает возможность узнать много нового и необычного в сфере электроники, программирования. Увлечение современными технологиями станет основным хобби, развивающим занятием с детьми. Внешний USB-программатор позволяет интегрировать задачи микроконтроллеру, использовать его по-разному. Например, используя Ардуино не выходя из дома можно создать копию ключа домофона потратив на это всего несколько минут.
Придумано большое разнообразие простых и сложных методов передачи данных от человека к микроконтроллеру. Один из самых распространенных применение джойстика. Они бывают разного типа. Желающие могут подключить к Ардуино аналоговый джойстик с кнопкой и двумя осями. Arduino позволяет работать с жидкокристаллическим дисплеем и с I2C модулем FC-113. Используя его можно производить передачу информации и питание всего по четырем проводам.
Купить с доставкой на дом, офис в интернет-магазине Voltiq.ru можно платы типа Arduino Uno, Arduino Nano, Arduino Mega, Arduino PRO mini и некоторые другие модели. На них установлена доступная для всех стоимость. Покупатели могут выбрать один из наиболее удобных для них способов оплаты, быстро оформить заказ и доставку в любой регион страны и по всему миру.
На платформы Arduino дается годовая гарантия, а на датчики и модули шесть месяцев. Перед оформлением доставки по любому вопросу можно проконсультироваться у менеджеров магазина.
Наиболее популярные платы Arduino
Чаще всего сегодня применяются такие виды плат как:
- Arduino Uno;
- Arduino Nano;
- Arduino Mega;
- Arduino PRO mini.
Arduino Uno широко применяется для управления самыми разными электронными устройствами, в робототехнике, для создания автоматического полива, умного дома и для многих других целей. У данной платы отличные технические характеристики. Она не заменима во многих случаях. Плата оригинальная, совместимая с официальной средой Arduino и драйверами, поставляемыми в комплекте. Третья ревизия оснащена новым мощным загрузчиком, который отличается высокой скоростью работы. Сердцем платы стал микроконтроллер ATMega328 наделенный большим объемом памяти.
Arduino Nano отличается компактностью и мощностью. Плату можно применить для создания миниатюрных устройств самого разного назначения. На нее подается питание посредством мини порта USB. Встроенных 30 КБ Flash-памяти хватает для записи большинства видов программ. Любой тип источника питания распознается автоматическим путем. Установленный внешний программатор подключается через разъем ICSP.
Arduino PRO mini отличается небольшими размерами, потому что в ней нет встроенного программатора. Она позволяет управлять самыми разными устройствами и датчиками. Разъемы платы не зафиксированы на ней, что позволяет быстро и легко подключать ее, выполнять навесной монтаж. Производитель выпускает несколько модификаций Arduino PRO mini, которые отличаются друг от друга параметрами.
Arduino Mega отличается наличием пятьдесят четырех цифровых выходов и входов. Плата работает на контроллере ATmega1280 или 2560. Подключается она к компьютеру за счет использования USB кабеля. Она мощная и универсальная. Она полностью совместима с платами расширения, созданными для Duemilanove или Diecimila платформ. Плата позволяет осуществлять перезагрузку программным методом, а не обычной кнопкой. Установленная плавкая вставка, предохранитель, надежно защищает порт компьютера от короткого замыкания и чрезмерно высоких токов.
Микроконтроллеры Arduino привлекают всех, кто не получил специального образования, но желает попробовать свои силы в роли инженера или конструктора. Архитектура плат позволяет расширить функциональные возможности персонального компьютера и превратить его в эргономичный современный пульт управления множеством гаджетов, умным домом.
Конструкторы на Arduino способствуют быстрому развитию творческих навыков. Они будут интересны школьникам и опытным инженерам. Умный конструктор вызовет восторг и у профессиональных робототехников и у начинающих программистов.
Обзор визуальных средств программирования микроконтроллеров (часть 2)
Жизнь не стоит на месте, и практически одновременно с публикацией первой части обзора появилась новая версия одной из рассматриваемых нами программ. Это добавило работы и поставило новые вопросы, в результате часть таблицы, представленной в прошлой публикации, теперь выглядит по-другому. Модифицированную таблицу можно увидеть в конце статьи.
Внимание! На сайте www.lab169.ru сделан репост этой публикации с полно-
размерными иллюстрациями и возможностью скачать все файлы проектов:
www.lab169.ru/2018/12/25/обзор-визуальных-средств-программирования-микроконтроллеров-часть-2
В прошлый раз мы обсудили особенности программ MicroBlocks и MakeCode. На повестке дня сегодня следующие визуальные среды.
- KittenBlock
- MindPlus
- Snap4arduino
- mBlock5
- mBlock3
Прежде чем приступить к рассмотрению этих программ, хотелось бы сказать, что все они дают возможность создавать проекты, в которых происходит интерактивное взаимодействие в реальном времени между микроконтроллером и компьютером, и позволяют задействовать в таких проектах множество объектов: виртуальных исполнителей (спрайты, сцену), несколько микроконтроллеров, а в перспективе и компьютерных исполнителей на другой стороне земного шара.
Трудно переоценить то, насколько важно такое богатство возможностей в контексте решения образовательных задач. Одно из наиболее очевидных применений вышеописанному – разнообразные физические эксперименты, а также создание компьютерных моделей физических объектов, явлений и процессов. Например, моделирование движения свободнолетящего тела, моделирование столкновения двух тел, и прочее моделирование физической реальности, требующееся при создании простых и сложных компьютерных игр.
Но даже если не обращаться к компьютерным играм, интерактивность очень помогает осваивать работу с микроконтроллерами. Достаточно щелкнуть по блоку “digitalWrite” мышкой, и светодиод на плате загорится. А если щелкнуть по блоку “analogRead”, мы сразу увидим цифровое значение, возвращаемое аналоговым портом, к которому подключен датчик (датчик освещённости, например).
Подобную интерактивность как раз и обеспечивают описанные ниже программы, а также программа MicroBlocks, которую мы обсуждали в прошлый раз.
Давайте посмотрим, как реализована интерактивность в разных программных средах, протестируем скорость работы и оценим прочие особенности, включая возможную функциональность программ для созданных нами автономных устройств.
KittenBlock
www.kittenbot.cc
При описании этого программного продукта мне придётся упомянуть о массе “хитростей”, но результат того стоит.
Текущая версия – 1.8.1 (не изменялась с момента прошлой публикации). Однако на web-сайте очень долго лежала лишь версия 1.6.5. Не так давно сайт обновился, на нём пропала информация о “старых” (но для нас более чем интересных и актуальных) продуктах компании KittenBot, зато появился инсталлятор программы KittenBlock версии 1.8.0. И не исключено, что ссылок на новые версии тоже долго не будет.
Чтобы получить самую свежую версию программы, следует установить ту, что есть, а потом запустить обновление, щёлкнув по значку ракеты в правом верхнем углу. Очередная хитрость заключается в том, что подойдя к делу творчески, свежий инсталлятор можно найти в одной из временных папок и сохранить себе на будущее.
KittenBlock базируется на Scratch 3, при этом работает не только в Windows 10, но и в Windows 7, позволяет интерактивно взаимодействовать с некоторыми контроллерами на базе Arduino, а также с Micro:bit. Иными словами, у нас появился инструмент, позволяющий писать игры, в которых Micro:bit либо Arduino Uno с подключенными сенсорами будут играть роль игрового пульта. И писать программы автономной работы для устройств на базе этих контроллеров, само собой.
Следующая хитрость. Щелкнув по списку устройств (изначально отображается как “Нет устройства”) и выбрав Arduino Uno, а затем установив соединение с нужным коммуникационным портом (щёлкнув по надписи “Не подключено”), Вы НЕ сумеете добиться того, чтобы Ваша плата управлялась интерактивно.
Но данная возможность всё-таки существует! Нужно лишь выбрать вместо Arduino Uno устройство под названием KittenBot. Собственно, именно для управления этим интересным робототехническим набором среда KittenBlock и была изначально создана. Итак, выбираем “KittenBot”, нужный коммуникационный порт (который будет помечен как “UNO” или как “Ch440”), а затем нажимаем кнопку “Обновить прошивку”.
Робоплатформа KittenBot базируется на UNO-совместимом контроллере RosBot. На палитре блоков мы видим теперь множество специфических команд, но главное, присутствуют и базовые команды работы с цифровыми и аналоговыми портами.
Реальная скорость чтения и изменения состояния портов при работе в интерактивном режиме в программе KittenBlock не является рекордной, но вполне хороша. Скрипты для тестирования представлены ниже.
При тестировании с платой Arduino Uno скорость чтения состояния двух аналоговых портов составила 151 цикл за 10 секунд. А вот с измерением скорости записи возникли проблемы.
Когда я тестировал одну из старых версий, я получил вполне разумный результат около 150 циклов за 10 секунд. Но среда 1.8.1 демонстрирует 1460 циклов за 10 секунд! Вспоминается старая фантастическая комедия, в которой приборная панель на космическом корабле была промаркирована следующим образом: “Разумная скорость”, “Световая скорость”, “Безумная скорость”.
Число “1460” в данном случае говорит нам лишь об одном: программная среда на самом деле не проверяет, действительно ли плата выполнила отправленную команду, или нет. Реальная скорость выполнения команд много ниже. По результатам других тестов она не превышает 120-160 циклов записи за 10 секунд. Иначе говоря, на практике удаётся мигнуть лампочкой не более, чем 12-16 раз в секунду.
Для оценки реальной интегральной производительности системы “KittenBlock + Arduino Uno” пришлось использовать другой метод, опирающийся на измерение частоты автоколебаний, возникающих при отрицательной обратной связи. Результат – 22 переключения состояния в секунду (11 колебаний в секунду), что вполне годится для неспешной езды по линии, например. Скрипт представлен ниже.
На всякий случай напомню, что при использовании программ автономной работы, загруженных непосредственно в микроконтроллер, достижимы совершенно иные скорости: сотни, тысячи, десятки и сотни тысяч переключений состояния в секунду. И для решения многих практических задач такие скорости действительно нужны.
Но давайте продолжим обзор среды KittenBlock. Что действительно импонирует в этой программе – возможность работы не только с “голым” Micro:bit, но и с массой устройств на его основе, например, с робототехническим контроллером Robotbit, умеющим управлять четырьмя обычными или двумя шаговыми двигателями, а также восемью сервомоторами. Список разнообразных поддерживаемых наборов и периферии непрерывно растёт и включает в себя продукцию разнообразных компаний.
Как уже было сказано, подготовка контроллера к использованию в интерактивном режиме достаточно проста, хоть и необходимо помнить о некоторых тонкостях. И стандартная прошивка, и пользовательские программы на плату Micro:bit грузятся быстро и просто.
Процесс создания собственных расширений для среды KittenBlock еще предстоит освоить. Но уже сейчас это неплохой инструмент для изучения текстового программирования контроллеров Arduino с помощью языка Wire (по сути это диалект языка C). При сборке графического скрипта мы не только сразу видим изменения в тексте создаваемой программы, её можно нажатием мыши загрузить в Arduino IDE для дальнейшего редактирования.
Достаточно важно с точки зрения изучения языка Wire то, что разработчики KittenBlock не стали идти по пути неоправданного упрощения. В своих программах необходимо явно указывать нужный режим работы того или иного порта (“Вывод режим INPUT/OUTPUT/INPUT_PULLUP”), а также скорость работы последовательного соединения. Все эти требования обусловлены использованием среды Arduino IDE, об этом мы будем говорить чуть подробнее, когда зайдёт речь о среде mBlock3 с расширением AdvancedArduino.
Программируя плату Micro:bit можно изучать язык Python. Точно так же все изменения в графическом сприпте будут отражаться в текстовом окне с правой стороны. При желании можно сделать изменения непосредственно в тексте, сохранить его, загрузить уже использованный ранее, и лишь после этого нажать на кнопку “Выполнить скрипт Python”.
А ещё благодаря разработчикам компании KittenBot у нас есть возможность загрузить дистрибутив MakeCode for Micro:bit, работающий без интернет-соединения под управлением операционной системы MS Windows 7.
kittenbot.cc/software
Кстати, как можно заметить, несмотря на то, что программная среда KittenBlock разработана в Китае, перевод на русский язык уже сделан.
MindPlus
www.mindplus.cc
ОЧЕНЬ китайская программа, продукт компании DFRobot. Этот производитель предлагает массу интересных товаров. И “китайское” в данном случае означает качественное, поскольку это то, что китайцы делают для себя, а не для всего остального мира.
Когда Вы зайдете на сайт MindPlus, не пугайтесь и не ищите кнопку перевода на русский язык, просто скачайте дистрибутив (этот квест будет совсем несложен). После запуска инсталлятора нужно будет выбрать английский язык. После запуска программы тоже, и это будет чуть сложнее (из окна выбора устройств выйти и нажать на значок с шестерёнкой).
Текущая версия программы – 1.5.0, раньше на сайте лежала версия 1.2.1, и результаты замера скорости работы именно этой старой версии вошли в таблицу в первой части обзора. Новая таблица с результатами и новой и старой версии в конце статьи.
MindPlus также базируется на Scratch 3 и позволяет создавать для плат Arduino Uno и Micro:bit программы для работы в интерактивном и в автономном режимах.
После того, как Вы настроили язык, подключить плату Arduino Uno будет совсем несложно. Следует щёлкнуть по значку “Extensions” в левом нижнем углу, выбрать вкладку “Board”, затем “Arduino Uno”. И как только Вы укажете коммуникационный порт (“Connect device”, порт, помеченный как UNO или Ch440), Вы увидите, что MindPlus попытается соединиться с платой, и спустя несколько секунд самостоятельно начнёт загрузку собственной прошивки (этот процесс отображается над областью Сцены). Пожалуй, с точки зрения удобства подготовки платы Arduino к использованию, всё реализовано наилучшим образом.
После завершения прошивки Micro:bit придётся ещё повращать плату для калибровки акселерометра, об этом следует помнить (MindPlus не сможет подключиться к Micro:bit до тех пор, пока Вы не завершите этот процесс).
О скорости работы. MindPlus показывает отличные результаты при чтении показаний датчиков, и это позволяет с успехом использовать его для программирования различных игр. За 10 секунд происходит 322 цикла чтения состояния двух аналоговых портов!
Но вот со скоростью записи всё грустно. За 10 секунд удаётся мигнуть светодиодом всего лишь 46 раз. Ужасающе плохой результат. Ни о какой программе езды по линии в интерактивном режиме управления робоплатформой речи не идёт (разве что о программе переползания по линии). Интегральный показатель – 8 переключений состояния в секунду при автоколебаниях. Но даже такой скорости работы более чем достаточно для того, чтобы проверить, загорится ли светодиод, если щелкнуть мышкой по графическому блоку, изменяющему состояние порта.
Предоставляемых разработчиками расширений достаточно много, и хотя все они предназначены для работы с продукцией компании DFRobot, могут использоваться и с товарами других производителей. Например, датчик температуры DHT11/22 работает одинаково, независимо от того, кем именно он произведён.
Возможность изучать языки текстового программирования Wire и Python тут тоже присутствует, хотя на мой взгляд, у MindPlus в этом плане больше шероховатостей, чем у KittenBlock. Кстати, оба программных продукта пока не позволяют запускать несколько параллельных процессов на Micro:bit (надеюсь, Вы помните, что MakeCode и MicroBlocks умеют это делать, и насколько это важно).
Обзор программы MindPlus можно было бы закончить словами: “Несмотря на недостатки, отлично подходит для программирования игр, в остальных случаях лучше всё-таки выбрать что-то иное”. Однако существует один дополнительный неожиданный аспект, который нельзя не учитывать, когда мы говорим о MindPlus. Эта программа использует для коммуникации с платой Arduino один из вариантов протокола Firmata, а именно этот протокол требуется для работы уникальному продукту в нашем обзоре – среде Snap4arduino.
Snap4arduino
snap4arduino.rocks
С точки зрения задачи создания программ автономной работы для микроконтроллеров возможности этой графической среды очень скромны. Да действительно, получается преобразовать графический скрипт в текстовой скетч, а потом найти его на диске и загрузить в Arduino IDE. И только. Никаких проработанных библиотек для подключения разнообразных датчиков и исполнительных устройств, присутствует лишь минимальная функциональность. Даже последовательное соединение использовать нельзя, а как без этого отлаживать программы? По сути, таким образом мы можем создать лишь заготовку будущего проекта, которую потом придётся “дорабатывать напильником”.
Однако у среды Snap4arduino есть неоспоримое достоинство: идеальная, скоростная и надежная работа с микроконтроллерами в интерактивном режиме. И при чтении состояния портов, и при их изменении. Для проектов, в которых необходима достаточная скорость работы с большим количеством портов, среда Snap4arduino совершенно незаменимый инструмент.
Есть у программы и огромный недостаток: для подготовки платы необходимо загрузить на нее прошивку StandartFirmata с помощью того же Arduino IDE.
“Хардкорные ардуинщики” лишь снисходительно улыбнутся, прочитав такое. “Вот ведь проблема!” Но это не отменяет того факта, что для большинства начинающих это действительно может оказаться непреодолимым препятствием. И уж тем более для учеников начальной школы. Особенно когда нет возможности прошить плату один раз и навсегда. Ведь достаточно загрузить на нее альтернативную программу, и процедуру прошивки придётся повторять.
Но теперь появился выход: оказывается, после того, как мы прошьём плату Arduino Uno в среде MindPlus, становится возможно работать и в среде Snap4arduino!
Таким образом, программы MindPlus и Snap4arduino представляют собой отличную “связку”, хорошо работают вместе, дополняя возможности друг друга.
Среда Snap4arduino работает чрезвычайно быстро с платой, на которую загружена прошивка StandartFirmata, и медленнее (но всё равно очень быстро) с платой, на которую загружена прошивка MindPlus, и в режиме чтения, и в режиме записи. Парадоксальным образом прошивка MindPlus ничуть не ухудшает общую интегральную производительность системы. Конкретные цифры можно посмотреть в таблице.
Нужно сказать, что всё вышеизложенное даёт основания для уверенности в том, что проблемы со скоростью записи в среде MindPlus будут скоро устранены.
mBlock5 for PC
www.mblock.cc/mblock-software
Разработка компании MakeBlock, новая версия (5.0.0-RC) легендарной программы mBlock, теперь на базе Scratch 3. Чрезвычайно ожидаемый многими продукт, который этих ожиданий пока так и не оправдал.
В настоящий момент позволяет программировать лишь контроллеры Arduino Uno и Mega2560 (но лишь оригинальные Uno и Mega2560) и Micro:bit, но лишь для работы в автономном режиме. Поддержку интерактивного режима обещают.
Для чего пока действительно подходит mBlock5, это для программирования собственных робототехнических наборов компании MakeBlock: mBot, mBot Ranger, Neuron и особенно, Codey Rocky. Причём последний имеет забавную разъёмную конструкцию из головы (Codey) и шасси (Rocky), базируется на ESP32, и при создании программ есть возможность использовать несколько параллельных процессов.
mBlock 3 for PC
www.mblock.cc/mblock-software
Текущая версия 3.4.11, и таковой, судя по всему, и останется. Продукт уже достаточно старый, базируется на Scratch 2, и в этом есть как свои недостатки, так и свои достоинства.
Скорость работы маловата, но в большинстве случаев её хватает (чтение – 14,4 цикла в секунду, изменение – тоже 14,4 цикла в секунду). Если проект предполагает исключительно чтение состояния и только лишь одного сенсора – вообще нет проблем.
Интегральная производительность на минимально приемлемом уровне (16 переключений состояния в секунду).
Это ПЕРВАЯ визуальная среда, в которой стало возможно использовать и интерактивный режим, и режим создания программ автономной работы (“Arduino mode”). Именно для среды mBlock3 к настоящему моменту написано максимальное количество разнообразных методических материалов, а также разнообразных расширений, некоторые из которых трансформируют продукт до неузнаваемости.
mBlock3 с современными 32-разрядными контроллерами работать (считается, что) неспособен, и в настоящий момент представляет собой реализацию идеи “с минимальными усилиями выжать из Arduino Uno почти максимум”. А это значит, что программная среда mBlock3 годится и для знакомства с платформой Arduino, и для того, чтобы создавать на базе Arduino Uno проекты, значительно превышающие по сложности основную массу тех, что наводнили Youtube и руководства по программированию Arduino IDE.
Здесь следует упомянуть об одном принципиально неустранимом недостатке сочетания “Scratch+Arduino”. Восьмиразрядные платы Arduino имеют существенно меньшую производительность, чем любой компьютер, на котором “крутится” Scratch, а это значит, что поддержку всех возможностей настолько высокоуровневого языка как Scratch на платформе Arduino обеспечить просто не получится. Мы можем составлять программы с использованием блочного языка Scratch. Но вместо списков нам придется создавать массивы, и придумывать для этого специальные блоки. Вместо универсальной переменной с динамической типизацией, которая может хранить и строку, и целое число, и действительное число, нам придётся использовать специальные придуманные самостоятельно блоки для создания типизированных переменных (byte, int, float).
Единственный способ радикального преодоления вышеописанной проблемы – повышение производительности микроконтроллеров и отказ от языков низкого уровня в пользу таких, которые обладают теми же самыми свойствами, что язык Scratch (например, возможность работы со списками, как в Python). Что мы можем сделать пока? До тех пор, пока жизнь заставляет использовать низкоуровневые языки (в том числе при обучении детей), хотя бы немного попытаться нивелировать их недостатки. Ведь за высокоуровневыми языками будущее! Программирование на языках низкого уровня тоже будет использоваться. Но ОЧЕНЬ редко и лишь ОЧЕНЬ узкими специалистами.
“Плохая” (условно) новость: чтобы перейти к “продвинутому” программированию микроконтроллеров Arduino в среде Scratch язык Wire учить придётся. Хорошая новость заключается в том, что теперь его не требуется зубрить! Требуется просто понимание особенностей языка: чем локальная переменная отличается от статической или глобальной, например. Или что произойдёт, если переменной типа byte присвоить значение 255, а потом увеличить её значение ещё на единицу. Кстати, для ответов на подобные вопросы незачем штудировать толстенные фолианты, достаточно посетить сайт arduino.ru, раздел “Программирование”.
arduino.ru/Reference
Именно для нивелирования недостатков низкоуровневого языка Wire было создано расширение для среды mBlock 3, которое называется AdvancedArduino. И до тех пор, пока мы в нашей стране не перейдём поголовно к использованию в процессе обучения контроллеров, подобных Micro:bit, Calliope, Adafruit Circuit PlayGround Express и т.д., это расширение будет позволять детям извлекать из программирования удовольствие и пользу.
Итак, сегодня я хочу рассказать не просто о программе mBlock3, а о связке “mBlock3 + AdvancedArduino Extension”.
Процесс установки расширения AdvancedArduino чрезвычайно прост и описание его по ссылке ниже.
www.lab169.ru/mblock/advanced-arduino-extension-v1-0/rus
Но здесь размещено русское описание самой первой версии расширения, которую можно даже скачать в виде ZIP-файла и установить, но это будет ошибкой. Правильнее будет установить свежую версию с англоязычной страницы или прямо с сайта mBlock через менеджер расширений (выбрав из списка расширений, доступных для загрузки).
www.lab169.ru/mblock/advanced-arduino-extension-c-v
Первая версия расширения отличается от всех последующих тем, что в ней отсутствует команда явного переключения режима работы порта из состояния “вход” (INPUT) в состояние “выход” (OUTPUT) или в состояние “вход с подтягиванием к высокому уровню” (INPUT_PULLUP). Опыт показал, что операция переключения режима работы является базовой, критически важной для понимания принципов работы микроконтроллера, и полезно, если дети будут с самого начала использовать эту команду в явном виде, поскольку это требуется средой Arduino IDE. А среда mBlock перестанет ошибаться, когда мы начнём использовать номер порта в качестве параметра.
Кроме того, полезно еще приучиться явным образом задавать скорость работы последовательного соединения.
Самая свежая версия расширения “AdvancedArduino” в настоящий момент – 2.5, и она включает в себя (помимо заголовка) 10 блоков, работающих как в интерактивном режиме, так и в режиме “Arduino mode” (базовые блоки из расширения “Arduino”, но исправленные для устранения ошибок), 1 блок, который можно использовать как в одном, так и в другом режиме (“pinMode”, в интерактивном режиме никак не влияет на работу программы, mBlock сам при необходимости переключает порт в другой режим), и 57 блоков, которые следует использовать лишь в режиме “Arduino mode”.
На любой компьютер с выходом в интернет можно буквально за несколько секунд добавить расширение AdvancedArduino при помощи менеджера расширений среды mBlock3 (не забывайте о наличии поля Search, очень помогающего быстро найти то, что нужно). Кроме того, если возникают вопросы с использованием того или иного блока, в любой момент времени можно обратиться к примерам, воспроизвести их по образцу, либо скачать целиком в готовом виде и проверить, как они работают. Для этого не обязательно запоминать названия сайтов, достаточно в том же менеджере расширений выбрать AdvancedArduino (в списке доступных или в списке установленных расширений) и щёлкнуть по ссылке “More Info”. Страница с примерами откроется в окне браузера.
Что же становится доступным после установки? Использование переменных различных типов, массивов, произвольных функций, графических блоков, включающих фрагменты текстового кода, процессов, запускаемых в фоновом режиме и по расписанию, создание процедур обработки аппаратных прерываний, и т.д. Всё это вплотную приближает связку “mBlock3+AdvancedArduino” к профессиональным системам программирования по набору предоставляемых возможностей.
В заключение хотелось бы сказать, что выбор наиболее подходящего продукта для занятий с детьми зависит от тех задач, которые ставит перед собой педагог. И я очень надеюсь, что информация, которую я здесь изложил, поможет в осуществлении этого выбора.
Приложение.
Таблица результатов тестирования скорости работы Scratch-подобных программных сред.
Название | Чтение | Запись | Интегральный тест |
KittenBlock 1.8.1 | 15,1 | 146 | 22 |
MindPlus 1.2.1 | 18 | 4,4 | 7 |
MindPlus 1.5.0 | 32,2 | 4,6 | 8 |
Snap4arduino 1.2.7 | 86 | 28,6 | 41 |
Snap4arduino 1.2.7 | 45,4 | 22 | 42 |
mBlock 3.4.11 | 14,4 | 14,4 | 16 |
Внимание! На сайте www.lab169.ru сделан репост этой публикации с полно-
размерными иллюстрациями и возможностью скачать все файлы проектов:
www.lab169.ru/2018/12/25/обзор-визуальных-средств-программирования-микроконтроллеров-часть-2
Что такое Ардуино? | Opensource.com
В двух словах, Arduino – это открытая плата для разработки аппаратного обеспечения, которая может использоваться мастерами, любителями и производителями для проектирования и создания устройств, взаимодействующих с реальным миром. Хотя Arduino относится к определенному типу конструкции платы, его также можно использовать для обозначения компании, которая производит конкретную реализацию этих плат, и обычно также используется для описания сообщества вокруг совместимых плат, созданных другими людьми или компаниями, которые работают. Аналогичным образом.
Чтобы узнать больше об основах, посмотрите это короткое видео ниже.
Что составляет Arduino?
Arduinos содержат несколько различных частей и интерфейсов на одной печатной плате. Дизайн менялся с годами, и некоторые вариации включают в себя и другие части. Но на базовой доске вы, скорее всего, найдете следующие элементы:
- Количество контактов, которые используются для подключения различных компонентов, которые вы, возможно, захотите использовать с Arduino.Эти булавки бывают двух видов:
- Цифровые выводы, которые могут считывать и записывать одно состояние, включено или выключено. Большинство Arduinos имеют 14 контактов цифрового ввода / вывода.
- Аналоговые контакты, которые могут считывать диапазон значений и полезны для более точного управления. Большинство Arduinos имеют шесть таких аналоговых контактов.
Эти контакты расположены в определенном порядке, так что если вы покупаете дополнительную плату, предназначенную для их установки, обычно называемую «щитом», она должна легко поместиться в большинство Arduino-совместимых устройств.
- Разъем питания, который обеспечивает питание как самого устройства, так и низкое напряжение, которое может питать подключенные компоненты, такие как светодиоды и различные датчики, при условии, что их потребности в энергии достаточно низкие. К разъему питания можно подключить адаптер переменного тока или небольшую батарею.
- Микроконтроллер, основной чип, который позволяет программировать Arduino, чтобы он мог выполнять команды и принимать решения на основе различных входных данных. Точный чип зависит от того, какой тип Arduino вы покупаете, но обычно это контроллеры Atmel, обычно ATmega8, ATmega168, ATmega328, ATmega1280 или ATmega2560.Различия между этими чипами невелики, но самая большая разница, которую заметит новичок, – это разный объем встроенной памяти.
- Последовательный разъем, который на большинстве новых плат реализован через стандартный порт USB. Этот разъем позволяет вам связываться с платой с вашего компьютера, а также загружать новые программы на устройство. Часто Arduinos также можно запитать через порт USB, что устраняет необходимость в отдельном подключении к источнику питания.
- Множество других небольших компонентов, таких как генератор и / или регулятор напряжения, которые обеспечивают важные возможности для платы, хотя вы обычно не взаимодействуете с ними напрямую; просто знай, что они там есть.
Как запрограммировать Arduino?
Большинство энтузиастов Arduino, особенно когда они только начинают, предпочтут использовать официальную интегрированную среду разработки (IDE) для Arduino. Arduino IDE – это программное обеспечение с открытым исходным кодом, написанное на Java и работающее на различных платформах: Windows, Mac и Linux. IDE позволяет писать код в специальной среде с подсветкой синтаксиса и другими функциями, которые упрощают кодирование, а затем легко загружать код на устройство простым нажатием кнопки.
Код для Arduino обычно пишется на языке Wiring, который основан на языке программирования Processing. Чтобы узнать больше о том, как начать программировать Arduino, посетите официальную документацию.
Скриншот интегрированной среды разработки Arduino.
Где я могу узнать больше?
Здесь, в Opensource, мы написали статьи о ряде проектов и инструментов, которые используют Raspberry Pi для обучения, проведения исследований и просто для развлечения.Вот некоторые из наших любимых:
- Не можете выбрать между Arduino и Raspberry Pi? Рут Суэле проведет вас через некоторые различия и расскажет, что может помочь вам принять осознанное решение.
- Хотите управлять мощным устройством с помощью Arduino? Боб Монро смотрит на щит управления двигателем постоянного тока.
- Вы когда-нибудь думали об использовании Arduino для чтения с других устройств поблизости? Луис Ибанез познакомит вас с основами использования RFID-меток с Arduino.
- Приступая к работе? Вот посмотрите на стартовый пакет Arduino.
- Ищете новые идеи для проекта? Алекс Санчес назвал шесть фаворитов на День Ардуино.
- Хотите знать, как все это началось? Ознакомьтесь с созданием Arduino, чтобы узнать немного об истории этого маленького устройства.
- Не забудьте проверить тег Arduino здесь, на Opensource.com, чтобы найти еще больше статей.
(PDF) Интегрированная среда разработки «IDE» для Arduino
Интегрированная среда разработки «IDE» для Arduino
Авторы: Мохамед ФЕЗАРИ и Али Аль Дахуд
Университет Аль-Зайтуна, Амман, Иордания
Введение в Arduino IDE
IDE означает «интегрированная среда разработки»: это официальное программное обеспечение, представленное
Arduino.cc, который в основном используется для редактирования, компиляции и загрузки кода в устройство Arduino.
Почти все модули Arduino совместимы с этим программным обеспечением с открытым исходным кодом,
легко доступным для установки и начала компиляции кода на ходу.
В этой статье мы расскажем о программном обеспечении, о том, как его установить и подготовить для разработки приложений
с использованием модулей Arduino.
Определение IDE Arduino
1.Arduino IDE – это программное обеспечение с открытым исходным кодом, которое в основном используется для написания и компиляции кода в модуль Arduino
.
2. Это официальное программное обеспечение Arduino, которое делает компиляцию кода слишком простой, чтобы даже обычный человек с
без предварительных технических знаний не смог освоить процесс обучения.
3. Он легко доступен для операционных систем, таких как MAC, Windows, Linux, и работает на платформе Java
, которая поставляется со встроенными функциями и командами, которые играют жизненно важную роль для отладки, редактирования и
компиляции кода в среде. .
4. Доступен ряд модулей Arduino, включая Arduino Uno, Arduino Mega, Arduino
Leonardo, Arduino Micro и многие другие.
5. Каждый из них содержит микроконтроллер на плате, который фактически запрограммирован и принимает информацию
в виде кода.
6. Основной код, также известный как эскиз, созданный на платформе IDE, в конечном итоге сгенерирует файл Hex
, который затем будет передан и загружен в контроллер на плате.
7. Среда IDE в основном состоит из двух основных частей: редактора и компилятора, где первая используется для записи требуемого кода
, а вторая используется для компиляции и загрузки кода в данный модуль
Arduino.
8. Эта среда поддерживает языки C и C ++.
Как получить Arduino IDE
мы можем загрузить программное обеспечение с основного веб-сайта Arduino. Как я сказал ранее, программное обеспечение доступно для распространенных операционных систем
, таких как Linux, Windows и MACos, мы выбираем для загрузки правильную версию программного обеспечения
, которая легко совместима с нашей операционной системой.
Подробная информация об IDE: среда IDE в основном разделена на три раздела
1. Строка меню
2. Текстовый редактор
3. Панель вывода
Когда мы загрузим и откроем программное обеспечение IDE, оно появится как изображение ниже.
IDE Arduino
Авторы: Питер Коулс, Иво Вильмс, Дивакар Бабу, Аркаджит Бхаттачарья
Содержание
- Введение
- Анализ заинтересованных сторон
- Просмотр контекста
- Вид разработки
- Представление развертывания
- Техническая задолженность
- Заключение
- Список литературы
- Приложение
Введение
Arduino – это электронная платформа с открытым исходным кодом, которая использует простые платы ввода-вывода и среду разработки для взаимодействия с платой.Платы Arduino способны выполнять несколько функций на основе набора инструкций, отправленных в микроконтроллер. Программное обеспечение Arduino с открытым исходным кодом (Arduino IDE) используется для написания кода (C и C ++) и загрузки его на плату. Это анализ архитектуры Arduino IDE, выполненный путем изучения полного проекта на GitHub. Мы стремились дать представление о системе с разных точек зрения. Эти точки зрения определены и объяснены Розански и Вудс в их книге Архитектура программных систем, Работа с заинтересованными сторонами с использованием точек зрения и перспектив [5].Сначала выполняется контекстное представление вместе с анализом заинтересованных сторон, за которым следует представление о разработке, представление о развертывании и, наконец, технический долг.
Анализ заинтересованных сторон
В этом разделе мы определяем заинтересованные стороны, участвующие в Arduino. В следующей таблице указаны одиннадцать типов заинтересованных сторон, как объяснили Розански и Вудс [5.1].
Тип | Заинтересованная сторона | Маленькое описание |
---|---|---|
Приобретатели | Компания BCMI и Arduino AG | Массимо Банци, генеральный директор компании BCMI (которая приобрела 100% Arduino AG, которой принадлежат все торговые марки Arduino), решает будущее кода Arduino [6] (конечно, с одобрения членов своего совета). |
Эксперты | Разработчики ядра | Компания Arduino отвечает за правовые нормы любого проекта, в котором используется Arduino или используется название «Arduino» [14]. |
Коммуникаторы | Arduino, сообщество | Arduino имеет свой собственный образовательный портал (поддерживаемый организацией Arduino) [7], предоставляющий комплекты (через веб-сайт Arduino) с программным обеспечением (бесплатно для загрузки с Github), а также советами и знаниями по созданию и созданию проектов.Люди обсуждают проекты Arduino и связанный с ними код на форумах и StackExchange. Было обнаружено, что YouTube является средством, часто используемым многими пользователями для обсуждения и обучения Arduino начинающих. |
Разработчики | Основные разработчики, интеграторы, сообщество | Основными разработчиками программного обеспечения Arduino являются Массимо Банзи и Том Иго. Частые и активные участники и пользователи Arduino также играют важную роль в разработке кода Arduino, но у них нет разрешения напрямую отправлять или объединять свой код. |
Системные администраторы | Сообщество, пользователи Arduino | Пользователи играют роль системного администратора. |
Поставщики | Ардуино, Github | Программные пакеты можно скачать прямо с официального сайта, а также с Github |
Сопровождающие | Основные разработчики, активные участники | IDE Arduino продолжает развиваться и поддерживается разработчиками и участниками, создавая задачи / проблемы для исправления ошибок и создавая / обрабатывая запросы на вытягивание. |
Инженеры-технологи | Основные разработчики | Разработчики Arduino обрабатывают производственные выпуски и запускают тесты на новых сборках. |
Вспомогательный персонал | Разработчики, сообщество, группа поддержки организации Arduino | У компании Arduino есть команда поддержки, и коммуникаторы обеспечивают поддержку приложений на основе Arduino на различных форумах (например, форумах Arduino) и StackExchange. |
Тестеры | Core Разработчики и сообщество | Разработчики и участники несут ответственность за запуск тестов JUnit для тестирования кода перед тем, как PR будет сделан, объединен и официально выпущен. |
Пользователи | Любители, организации, группы исследовательского сообщества Arduino | 152 группы пользователей, каждая из которых состоит из более чем 100 членов, зарегистрированы по всему миру [8]. Приложения варьируются от IOT до беспроводных приложений и робототехники. |
Помимо классификации заинтересованных сторон Розански и Вудс:
Следующие определенные заинтересованные стороны являются дополнительными заинтересованными сторонами, которые не соответствуют группам в Розански и Вудс.
Помимо веб-сайта Arduino, местный Arduino авторизовал поставщиков оборудования для поставки оборудования Arduino.
Конечные пользователи – это пользователи, которые используют это программное обеспечение для работы с оборудованием (создание проектов Arduino), которое косвенно влияет на развитие Arduino.
Еще одна заинтересованная сторона, которую можно рассмотреть, – это человек , которые работают в компании Arduino и поддерживают веб-сайт, который предоставляет пространство, где пользователи могут делиться своим проектом, на основе которого создаются и добавляются новые функции.
Блог Arduino писатели – это пространство, где можно найти однозначные и надежные источники информации от пользователей, которые используют и помогают новым разработчикам использовать Arduino. Таким образом, мы можем рассматривать блоггеров как косвенную заинтересованную сторону.
Переводчики участвуют в переводах документации Arduino для программного обеспечения на своем веб-сайте, которые активно участвуют в разработке программного обеспечения Arduino.
Анализ участия заинтересованных сторон: Power vs Interest Grid
Сетка властных интересов Mendelow [13] используется для классификации групп заинтересованных сторон, которыми следует тщательно управлять. На рисунке 1 показано, что основные разработчики, активные участники сообщества Github и Arduino – это заинтересованные стороны, которые имеют как большой интерес, так и власть.Это люди, которые активно участвуют в проекте и поддерживают его, и им необходимо тщательно управлять. Пользователи, такие как учителя, блоггеры, которые используют программное обеспечение Arduino без большого количества активных вкладов, проявляют высокий интерес, но имеют очень низкую мощность и должны быть хорошо информированы. Зависимости имеют высокий интерес и минимальную мощность. Причина в том, что пользователи обычно покупают щиты Arduino, которые поставляются с библиотеками, и пользователь может легко использовать их без особых усилий. Другие пользователи, такие как TU Delft и GSMA, проявляют очень высокий интерес к разработке Arduino, но вносят меньший вклад и поэтому не относятся к категории активных участников.
\ Рис. 1. Сетка интересов заинтересованной стороны в среде Arduino IDE, где интересы заинтересованной стороны показаны на горизонтальной оси, а полномочия заинтересованной стороны показаны на вертикальной оси.
Контекстное представление
Контекстное представление описывает объем и обязанности Arduino, то есть его границы с точки зрения того, что он делает или не делает. Чтобы быть более точным, он определяет отношения, зависимости и взаимодействия между IDE Arduino и другими внешними / внутренними системами, организациями и людьми, находящимися за этими границами.
Объем и обязанности
Arduino IDE имеет четко определенную область применения для своей системы. В процессе проектирования основные разработчики обсуждают, что должно быть частью объема новой версии. Некоторые из областей применения текущих версий Arduino:
- Предоставлять приложения для MacOS, Windows и Linux. Формат библиотеки
- Arduino IDE 1.5 используется в тандеме с исходным Диспетчером библиотек.
- Менеджер платы Arduino IDE можно использовать для автоматической установки поддержки оборудования сторонних производителей.
- Периодически выпускаются новые улучшения.
- Простая установка настраиваемых библиотек и инструментов командной строки.
- Пожертвуйте элегантностью реализации перед простотой использования.
- Ставьте реальный вариант использования выше теоретических возможностей.
- Признайте, что документация так же важна, как и код. Документация здесь означает Javadocs, комментарии к коду, которые объясняют конкретные фрагменты кода.
Контекстная диаграмма и внешние объекты и интерфейсы
\ Рисунок 2: Контекстное представление среды разработки Arduino, описывающее отношения с ее средой
Ниже приводится краткое описание некоторых компонентов модели контекстного представления:
– Разработчики : Массимо Банци является основным разработчиком и соучредителем Arduino вместе с Томом Иго.Кроме того, активные пользователи / разработчики Github (например, Кристиан Магли, Мартино Факчин, Дэвид А. Меллис и т. Д.) Принимали участие в разработке новых функций и поддержке кода.
– Требования к сборке : Java Development Kit 8, Apache Ant, avr-gcc, avr-g ++, git, unzip и программное обеспечение для конкретной ОС, такое как Cygwin для Windows, Homebrew для MacOS и make и OpenJFX для Linux. [2] .
– Testing Framework : IDE Arduino использует JUnit4 для выполнения модульных и системных тестов.Эти тесты могут быть выполнены из IDE или путем выполнения ant test
.
– Целевые платформы : IDE Arduino была создана для разработки программ / приложений для микропроцессоров Arduino на платформах Windows, MacOS и Linux.
– Коммуникаторы : Пользователи Arduino (учителя, блоггеры и разработчики) общаются в основном на специализированных форумах Arduino и на Stack Exchange.
– Зависимости : Arduino IDE имеет множество зависимостей, как показано здесь и здесь (.jar файлы).
– Язык : IDE Arduino написана на Java и предназначена для разработки C / C ++ для микропроцессоров Arduino.
Вид разработки
Рисунок 3. Архитектура высокого уровня IDE Arduino.
На рисунке 3 показана высокоуровневая архитектура Arduino IDE, состоящая из основных модулей arduino-core
, app
и build
. Функциональные возможности этих модулей будут объяснены в разделе «Организация модуля», после чего будет рассмотрена общая модель проектирования.Затем модель Codeline более глубоко анализирует структуру проекта и, наконец, определяются заинтересованные стороны, связанные с представлением о разработке.
Модульная организация
Рисунок 4: Модульная структура Arduino IDE.
На рис. 4 показаны различные модули IDE Arduino и их взаимосвязь.
Модули
arduino-core (Java)
Этот модуль содержит код, необходимый для основных функций IDE.Он не содержит графического интерфейса и может быть запущен из командной строки. Наиболее важными функциями являются обеспечение последовательного подключения к микропроцессору Arduino, подключенному через USB, объединение эскизов кода C с используемыми библиотеками, объединение скомпилированных эскизов с правильным загрузчиком для используемого типа микропроцессора Arduino и обеспечение платформы перевода для любой обратной связи, показанной до конца. Пользователь.приложение (Java)
Этот модуль построен на основе модуляarduino-core
и предоставляет графический интерфейс, который мы знаем как Arduino IDE.Наиболее важными компонентами этого графического интерфейса являются редактор кода, монитор последовательного порта, плоттер последовательного порта и менеджер библиотек.Сборка (двоичные файлы / изображения / текст)
Этот модуль содержит дополнительные файлы, не относящиеся к Java, которые используются в сочетании сarduino-core
иприложением
для создания распространяемого zip-архива Arduino IDE, поскольку он может быть загружен конечными пользователями. Самые важные файлы:- Файл сборки Apache Ant : этот файл содержит конфигурацию сборки всего проекта.
- Примеры ссылок на эскизы : Это список примеров репозиториев эскизов для программирования микропроцессоров Arduino и
sha
хэшей для проверки того, что эти автоматически клонированные репозитории действительно содержат ожидаемый контент (версию). - Драйверы для ОС : Драйверы для ОС, позволяющие подключаться к микропроцессорам Arduino через USB.
- Собственные библиотеки : библиотеки, которые требуются либо для
arduino-core
, либо для приложения.dll
в Windows для получения определенных каталогов по умолчанию. - Art : изображения, используемые приложением
Зависимости
Проект написан на Java и имеет следующие зависимости сборки:
- Apache Ant: Используется для построения проекта.
- Комплект для разработки Java (JDK): Используется для компиляции исходных текстов Java.
- Библиотеки Arduino C: Это библиотеки, которые могут использоваться конечными пользователями для написания кода для микропроцессоров Arduino.Это: Ethernet, GMN, Stepper, TFT, WiFi, arduino, Bridge, Robot_Control, Robot_Motor, RobotIRremote, SpacebrewYun, Temboo, Esplora, Mouse, Keyboard, SD, Servo, LiquidCrystal и Adafruit_CircuitPlayground. По сути, все библиотеки, кроме библиотеки
arduino
, можно опустить. Библиотекаarduino
содержит функции, которые позволяют пользователю получить доступ к функциям микроконтроллера Arduino без необходимости выполнять прямые манипуляции с регистром. - Компилятор GCC: Пользователи программируют микроконтроллеры Arduino на C.Компилятор GCC используется для компиляции этого кода C в машинный код, который работает на разных архитектурах микропроцессоров Arduino.
- запуск 5j: Используется для обертывания проекта Java в исполняемый файл Windows.
- Библиотеки Java с открытым исходным кодом: Используются еще несколько общих библиотек Java с открытым исходным кодом. Банки с их лицензиями можно посмотреть в репозитории по адресу
app / lib
иarduino-core / lib
.
Внешние зависимости
Оба модуля arduino-core
и app
содержат обработку .app
, содержащий частично измененные классы из среды разработки обработки (PDE). Время от времени, когда проект PDE обновляется, эти обновления также вручную объединяются в скопированные классы. Стремясь максимально упростить этот процесс слияния, разработчики IDE Arduino стараются сохранить сигнатуру этих классов как можно более похожей на исходную. Модификации этих классов сделаны для удовлетворения потребностей конкретных функций Arduino IDE.
Модель общей конструкции
Каждая версия Arduino схожа из-за фактора общности, который обеспечивается ограничениями разработки Arduino IDE.Основная причина этого – снижение риска и дублирование усилий в сочетании с повышением общей согласованности системы.
Общая обработка
Модули arduino-core
и app
состоят из уникальных пакетов, включая адаптированные пакеты из среды разработки обработки (PDE), которые были модифицированы для соответствия потребностям Arduino IDE. Нет общих процессов.
Интернационализация
Сообщество Arduino состоит из участников из разных уголков мира.Переводчик i18n используется, чтобы сделать программное обеспечение Arduino более доступным для людей, говорящих на разных языках.
Стандартизация дизайна
Политика разработки [15] хорошо документирована в каждой области разработки проектов с открытым исходным кодом, таких как создание задач, выполнение запросов на вытягивание и оптимизация кода. Это помогает разработчикам и участникам поддерживать стандарты проектирования на протяжении всего жизненного цикла проекта. Некоторые стандарты дизайна Arduino следующие:
Проблемы: Проблемы используются для сообщения об ошибках и предложения / обсуждения новых функций.Средство отслеживания проблем используется для отслеживания этих ошибок / функций и позволяет всем просматривать обсуждение и прогресс кода. Когда проблемы относительно просты, разработчикам обычно требуется 3-5 дней на их решение. Однако многие вопросы остаются открытыми очень долго. Проблема 134 – самая старая открытая проблема. Он работает 6,5 лет. Любые ошибки, обнаруженные на форумах, также обнаруживаются разработчиками и участниками и добавляются в систему отслеживания проблем и связаны с соответствующей страницей форума.
Отправка исправлений: Оптимизация и исправления ошибок поддерживаются отдельно (иногда они считаются низкоприоритетными).Поскольку исправление некоторых ошибок может нарушить поток и функциональность, Arduino ожидает, что изменения будут протестированы на процессорах / платах перед добавлением в код. В Arduino проблемы, связанные с оптимизацией кода, решаются раньше, чем проблемы с отчетом об ошибке.
Настройка библиотек: Некоторые важные библиотеки поддерживаются командой разработчиков, поскольку они являются неотъемлемой частью кода. Эти библиотеки предоставлены сообществом, и их можно увидеть в списке.Любые настроенные библиотеки можно отправить на форум разработчиков Arduino для любых предложений или возможного включения в качестве новой записи.
- Pull-запросы: Pull-запросы упрощают добавление дополнительных функций, модификацию существующих функций и исправление ошибок в Arduino IDE. На процесс принятия решения по запросу на вытягивание в среде Arduino IDE влияют следующие моменты:
- Желательность – Когда казалось, что добавленные функции не улучшают программное обеспечение Arduino, задавались вопросы об этом, и авторам PR (и другим людям) была предоставлена возможность объяснить, почему PR является улучшением программного обеспечения Arduino.Несмотря на то, что некоторые особенности проанализированных ОР были подвергнуты сомнению, ни один из этих ОР не был отклонен по этой причине.
- Качество кода – Разработчики часто обсуждали реализацию функций. Часто это было связано с выбором дизайна, например: добавить или не добавлять уровень абстракции, где добавить новую функциональность API, реализовать по-другому, чтобы предоставить более полезные ошибки для конечных пользователей, и добавить некоторую функцию / исправление в целевой модуль или, скорее, исправить это в зависимость этого модуля.
- Результаты теста – Авторы PR почти всегда обновляют свои PR или предоставляют дополнительную информацию, когда сообщается о неудачном тесте пользователя / сборки. Хотя это не обсуждается напрямую, вероятно, что PR с известными ошибками будут объединены с меньшей вероятностью. Исключениями из этой гипотезы были ошибки, связанные с ОС / установкой, которые не были серьезными для конечного пользователя (незначительные графические ошибки, программа установки не генерировала ярлык на рабочем столе в Linux и т. Д.).
Codeline модель
Модели codeline с точки зрения структуры исходного кода, процесса выпуска, управления конфигурацией, процессов сборки и тестирования обсуждаются ниже.
Рисунок 5. Структура исходного кода приложения и исходных каталогов модуля arduino-core.
Рисунок 6. Структура исходного кода каталога исходных текстов теста модуля приложения.
Структура исходного кода на рисунках 5 и 6 показывает основные пакеты и классы верхнего уровня, используемые для сборки и тестирования Arduino IDE.
Сборка и тестирование
Arduino IDE создается с использованием Apache Ant в сочетании с Java Development Kit (JDK) и инструментами для создания исполняемого файла, специфичными для ОС.Сборка происходит путем выполнения ant dist
(сборка и создание архива дистрибутива), ant run
(сборка и запуск) или ant build
(только сборка) из командной строки в каталоге build
. Это эффективно выполняет задачу сборки Apache Ant, как определено в build / build.xml
. Эта задача сборки также занимается задачами управления зависимостями, такими как загрузка зависимостей, распаковка зависимостей, клонирование репозиториев git и проверка хэшей SHA загруженных зависимостей (файл.файлы sha находятся в репозитории). Непрерывная интеграция Jenkins используется для создания ежечасных сборок и бета-сборок.
Модуль arduino-core
не содержит тестов, а модуль app
содержит тесты JUnit4. Команда ant test
запускает эти тесты. Тесты не очень надежны: пока мы тестировали их, результаты варьировались от 4 до 17 ошибок теста в зависимости от операционной системы и наличия пробелов в пути. Как ни странно, эти тесты не выполняются автоматически при локальной сборке или через Jenkins CI.
Процесс выпуска
Инженеры-технологи несут основную ответственность за мониторинг выпусков, а также контролируют их на Github. Процесс выпуска программного обеспечения не сильно отличается от любых других проектов на Github.
- Изменения внесены в отдельные ветки в вилке репозитория.
- Запрос на слияние создается участником и в конечном итоге проверяется инженерами-технологами.
- Номер версии используется для отслеживания выпусков.
- Черновой выпуск создан с примечаниями к выпуску.
- Сделайте переустановку ветки на master и объедините запрос на вытягивание. Когда запрос на вытягивание требует перебазирования, а разработчик, выполняющий слияние, не имеет доступа на запись к запросу на вытягивание, он закрывается, а затем переустанавливается на master в другой ветке и объединяется оттуда.
После этих шагов инженер-технолог проверяет, правильно ли обновлены примечания к выпуску. Релиз происходит после объединения набора запросов на вытягивание.
IDE Arduino управляется небольшой группой разработчиков, а вклад в нее вносит большая группа пользователей и разработчиков. Контроль версий используется для документирования дополнительных функций и изменений, не имеющих обратной совместимости. Запросы на вытягивание таких изменений откладываются до тех пор, пока все изменения, вместе взятые, не приведут к повышению версии. Поскольку запросы на вытягивание всегда создаются и часто тестируются пользователем перед слиянием с основной ветвью, техническая целостность основной ветки сохраняется (она почти всегда стабильна).Хотя разработчики часто обсуждают функции, они реже обсуждают, как их следует реализовать. Это может быть связано с тем, что участники делают хорошую работу, но также может означать, что разработчиков в основном заботит конечный результат. В проекте Arduino IDE нет инструментов статического анализа и шаблона стиля кода. Хотя большая часть кода согласована, все еще есть некоторые несоответствия (в основном, использование пробелов), а документация (Javadoc) оставляет желать лучшего.
Представление развертывания
В этом разделе приведены системные требования и зависимости для успешного запуска Arduino IDE.На рисунке 7 показан вид развертывания IDE Arduino.
Рисунок 7. Вид развертывания IDE Arduino
- Требования к программному обеспечению времени выполнения: Среда выполнения Java является важным требованием для установки и выполнения среды Arduino IDE.
В среде IDE Arduino используется
avr-gcc
для компиляции эскизов, написанных в среде IDE. Arduino IDE также требует установки драйверов USB для подключения к плате Arduino для загрузки кода из скетча.Все эти зависимости включены в официальную загрузку на веб-сайте Arduino и при сборке системы, что означает, что пользователям не нужно устанавливать ничего, кроме Arduino IDE. - Операционная система: IDE Arduino построена на модулях обработки и Java, которые являются кроссплатформенными.
Официальных источников о минимальных требованиях к версии для Arduino IDE нет.
Однако нижнюю границу можно получить, посмотрев на минимальные системные требования для Java 8.0, основная зависимость для Arduino IDE.
Следующая информация основана на минимальных требованиях для Java 8.0, которые можно найти на веб-сайте Java [16].
Java поддерживается в Windows Vista SP2 и выше.
Для Windows 10 требуется Java версии 8u51.
Для Mac требуется OS X версии 10.8.3 или выше.
На веб-сайте Arduino говорится, что любой вариант Linux должен работать и что имеет значение только архитектура (32-разрядная Intel, 64-разрядная Intel, ARM) [17].
Это верно для недавних установок Linux, но не все старые версии могут запускать IDE.Следующий список представляет собой список официально поддерживаемых дистрибутивов Linux, которые официально поддерживаются Java:
- Oracle Linux 5.5+
- Oracle Linux 6.x (32-разрядная), 6.x (64-разрядная)
- Oracle Linux 7.x (64-разрядная) (8u20 и выше)
- Red Hat Enterprise Linux 5.5+, 6.x (32-разрядная версия), 6.x (64-разрядная версия)
- Red Hat Enterprise Linux 7.x (64-разрядная версия) (8u20 и выше)
- Suse Linux Enterprise Server 10 с пакетом обновления 2+, 11.x
- Suse Linux Enterprise Server 12.x (64-разрядная версия) (8u31 и выше)
- Ubuntu Linux 12.04 LTS, 13.x
- Ubuntu Linux 14.x (8u25 и выше)
- Ubuntu Linux 15.04 (8u45 и выше)
- Ubuntu Linux 15.10 (8u65 и выше)
- Требования к оборудованию: Для установки и запуска Arduino IDE система должна иметь 256 МБ ОЗУ сверх требований для операционной системы, ЦП с Pentium 4 или выше.
- Требования к сети: для среды IDE Arduino требуется сетевое соединение для проверки и загрузки обновлений как для среды IDE, так и для библиотек.Обновления загружаются с веб-сайта Arduino, в частности http://www.arduino.cc/latest.txt. IDE добавляет параметры к URL-адресу со спецификой ОС при получении номера последней версии. Библиотеки указывают свой собственный URL-адрес, по которому проверять наличие обновлений.
Техническая задолженность
Технический долг – это концепция, которая представляет собой разницу между реальным решением и идеальным решением. Выбор простого, неидеального решения, которое зачастую быстрее внедряется, может показаться хорошим решением, но это может означать, что при работе с этим неидеальным решением в будущем придется проделать еще больше работы.В информатике это включает в себя такие вещи, как неправильное написание документации, оставление неиспользуемых или устаревших файлов / кода в проекте, отсутствие надлежащих уровней абстракции для компонентов, которые могут быть изменены, и не написание автоматических тестов для нового кода. Существует несколько форм технического долга, некоторые из которых обсуждаются ниже.
Задолженность по проекту
Проектный долг возникает из-за того, что разработчики делают неправильный выбор дизайна системы. Чтобы проанализировать часть задолженности за дизайн, мы использовали инструмент статического анализа PMD для выявления запахов кода.
Анализ кода
PMD помогает выявлять пять типов нарушений кода: блокирующие, критические, срочные и предупреждающие. По данным PMD, нарушений более 3500, что не позволило проанализировать их все. Таким образом, мы сократили объем до Блокирующих и Критических нарушений, в результате чего количество нарушений сократилось примерно до 200.
Блокировщик и критические проблемы
Мы наблюдали следующие нарушения блокировщика:
- Формальное соглашение об именах параметров. Приведенные имена параметров не соответствуют соглашению об именах, предоставленному в рекомендациях по стилю кода Java.
- Избегайте создания необработанного типа исключения: используется исключение времени выполнения, а не подклассы Exception (например, ArithmeticException и ArrayTypeException).
- Соглашение об именах переменных: указанные имена переменных не соответствуют соглашению об именах, предоставленному в рекомендациях по стилю кода Java.
- Избегайте файлового потока: был создан экземпляр FileInputStream, что может привести к длительным паузам в сборке мусора.
- Конструктор вызывает переопределяемый метод: вызов переопределяемых методов во время построения может привести к вызову методов для не полностью сконструированного объекта, что может затруднить процесс отладки.
Большинство проблем с блокировщиком были связаны с соглашениями об именах параметров и функций. Помимо вышеупомянутых проблем, мы обнаружили множество критических нарушений, таких как переназначение значений входящим параметрам. Тем не менее, следует отметить, что PMD проверяет и сравнивает код с некоторыми часто используемыми рекомендациями по стилю кода Java. Такой инструмент, как PMD, не может точно определить, насколько плохой код, вместо этого он используется для обеспечения того, чтобы код (и последующие изменения в нем) последовательно следовали определенным правилам, что со временем приводит к согласованной базе кода.Еще одна проблема, которая часто наблюдается в коде Arduino, – это отсутствие документации и непоследовательный стиль кода, что затрудняет понимание всех функций. Подводя итог вышеупомянутым наблюдениям, можно сделать вывод, что запах кода довольно сильный для проекта Arduino IDE.
Анализ проблемы
Есть несколько проблем, связанных с Arduino IDE. Например, в # 6951 предлагается, чтобы «Ctrl + F» в mac открывал окно поиска и замены, и курсору требуется примерно полсекунды, чтобы перейти в новое окно.Эта проблема возникла из-за пары коммитов (0d50f0b и 65103aa), связанных с другой проблемой №6603. Об упомянутой проблеме было сообщено как об ошибке, и внести изменения в Java сложно. Это свидетельствует об отсутствии сквозного тестирования для выявления влияния изменений в других функциях среды IDE, что на самом деле не снижает количество проблем, поскольку может привести к другой проблеме. В общей сложности существует 110 открытых проблем, связанных с IDE Arduino, о которых еще нужно позаботиться.
Исторический анализ
Мы сравнили код для предыдущих выпусков Arduino IDE (ide-1.0.x и ide-1.5.0.x) с помощью PMD, чтобы понять эволюцию проектного долга с течением времени. Было замечено, что в процессе было удалено и добавлено много файлов. Согласно PMD, количество нарушений увеличилось с более новой версией (1.5.x). Хотя это сравнение не означает, что в будущем будет больше проблем, если предположить, что в обеих версиях не учитывались практики кодирования, для любого проекта с открытым исходным кодом важно следовать стилю кодирования, который ведет к согласованной базе кода.Инструмент статического анализа мог повлиять на этот проект, поскольку качество кода осталось бы примерно таким же, что важно для такого проекта, как Arduino IDE, с более чем 100 участниками.
Документация, задолженность
Документация имеет большое значение в любом проекте как для разработчиков, так и для пользователей. Это очень важно для такого проекта, как Arduino IDE, поскольку позволяет разработчикам более легко находить код, который они хотят редактировать, и понимать, как работает текущий код.При наличии надлежащей документации нужно было бы читать меньше кода, чтобы понять, что происходит. Правильная документация также упрощает сравнение того, что делает какой-либо метод / функция, с тем, что он должен делать. Не менее важно, чтобы пользователи понимали процедуру установки и навигацию по программному обеспечению, что можно упростить только с помощью надлежащей документации. Мы проверили проблемы, связанные с документацией, возникшей в прошлом, и отметили, что тип проблем, то есть опечатки и несоответствия в документации, по-прежнему остается прежним.Это следует из нашего анализа вопросов. Некоторые примеры приведены ниже.
Анализ проблемы
В этом разделе рассматриваются вопросы, связанные с документацией по Arduino IDE. Есть 105 открытых вопросов, связанных с документацией. Таким образом, задолженность по документации кажется очень высокой. Например, проблема 1055 связана с неправильной документацией pins_arduino.h , что важно для удовлетворения потребностей специально разработанных плат. Еще одна проблема в документации Arduino – несогласованность данных.Были подняты вопросы относительно несоответствия данных на веб-сайте и документации. Например, в выпуске № 8086 номер микросхемы FPGA был неправильно упомянут в документации.
Задолженность по тестированию
IDE Arduino состоит из двух проектов: app и arduino-core. Проект «app» содержит тесты JUnit, а проект «arduino-core» вообще не содержит тестов. Однако, поскольку проект «arduino-core» используется проектом «app», он проходит косвенное тестирование. Всего существует 65 тестов, и некоторые из них могут завершиться ошибкой в зависимости от операционной системы (macOS, Linux или Windows) и ее версии.Результаты запуска теста с покрытием инструкций показаны ниже:
Рисунок 8: Тестовое покрытие
Из приведенной выше таблицы видно, что тестовое покрытие для Arduino-core составляет всего 15,1%, а для приложений – только 5,9%. Из приведенных выше наблюдений можно сделать вывод, что задолженность по тестированию для Arduino очень высока.
Задолженность проекта
Задолженность по проекту для Arduino IDE довольно высока, так как есть 920 открытых проблем и 160 запросов на вытягивание, которые еще предстоит решить.Поскольку основные разработчики несут ответственность за тестирование запросов на вытягивание, становится практически невозможно вовремя отслеживать все запросы на вытягивание и выполнять тщательную проверку перед их объединением.
Предложения
Чтобы избежать задолженностей по документации, мы предлагаем участникам должным образом документировать свои изменения в соответствующих местах. Более того, разработчики ядра должны отказаться от объединения кода, если надлежащая документация отсутствует. Помимо вышеперечисленных пунктов, в разных документах не должно быть противоречий по одной и той же теме.Наличие накопившихся проблем может быть признаком технического долга, который следует учитывать. Подобно файлу «CONTRIBUTING.md», который служит контрольным списком перед внесением в репозиторий, в репозиторий следует добавить файл с учетом рекомендаций по стилю кода, которые необходимо соблюдать для любого вклада.
Заключение
В этой главе архитектура IDE Arduino была проанализирована с использованием точек зрения, описанных Розански и Вудс в их книге Архитектура программных систем, Работа с заинтересованными сторонами с использованием точек зрения и перспектив [5].В обзоре заинтересованных сторон определены заинтересованные стороны, участвующие в проекте. Заинтересованные стороны были проанализированы с использованием сетки Power vs Interest, что привело к выводу, что заинтересованные стороны с наибольшим интересом и властью включают основных разработчиков, активных участников Github и сообщество Arduino. В контекстном представлении мы определили объем и обязанности Arduino IDE и визуализировали их на контекстной диаграмме, которая показывает отношения, зависимости и взаимодействия между Arduino IDE и другими внешними / внутренними системами, организациями и людьми за этими границами.Контекстное представление показало, что Arduino имеет четко определенную область действия для своей системы. В представлении разработки подробно обсуждалась организация модуля, общая модель дизайна и модель кодовой строки. Представление развертывания суммировало системные требования и зависимости для успешного запуска Arduino IDE. Наконец, анализ, выполненный в техническом долге , помог нам понять, что есть много возможных улучшений в проекте, когда дело касается запахов кода, документации и покрытия тестами.
В заключение, Arduino – очень интересный проект, поддерживаемый высококвалифицированными инженерами, но он выиграет от более активных усилий по сокращению технического долга.
Список литературы
1. https://en.wikipedia.org/wiki/Arduino_IDE
2. https://github.com/arduino/Arduino/wiki/Building-Arduino
3. Сравнение прототипов платформ
4. Документация Arduino
5. Архитектура программных систем, работа с заинтересованными сторонами с использованием точек зрения и перспектив, Ник Розански и Эоин Вудс
5.1. Заинтересованные стороны
6. Сегодня начинается новая эра для Arduino
7. Обучать, вдохновлять и расширять возможности!
8. Группы пользователей Arduino
9. История и история разработки Arduino
10. Официальные дистрибьюторы Arduino
11. Политика развития
12. AUniter и Дженкинс
13. Оландер, С., и Ландин, А. (2005). Оценка влияния стейкхолдеров при реализации строительных проектов. Международный журнал управления проектами, 23 (4), 321-328.
14. Политика Arduino
15. Политика развития
16. Минимальные системные требования для Java 8.0
17. Руководство по установке Arduino IDE в Linux
18. https://github.com/arduino/Arduino
19. Общие сведения о техническом долге
20. Рекомендации по стилю кода Java
Приложение
Чтобы определить процесс принятия решений, для которого PR объединяются и какие PR принимаются, мы проанализировали некоторые PR.В этом приложении описаны ключевые моменты этого анализа. Сначала дается описание того, что происходит с большинством PR. После этого мы более подробно рассмотрим, какие компромиссы необходимо решить. Мы закончим с причинами, по которым PR может быть отклонен.
PR можно разделить на две категории: исправление ошибки , исправляет ошибку, а функция PR добавляет новую функцию или изменяет существующую функцию. PR по исправлению ошибок всегда учитываются, поскольку исправление ошибок никогда не бывает нежелательным.Что касается PR функций, основные разработчики сначала решают, нужна ли им эта функция. Они делают это, сравнивая полезность функции с тем, насколько эта функция усложнит среду IDE для новых пользователей. Есть несколько PR, которые отклоняются из-за этого компромисса. Вероятно, это связано с тем, что участники создают проблему (или читают существующие проблемы), в которой им сообщат, что функция нежелательна, до того, как они внедряют эту функцию и делают PR для нее. Тем не менее, примером PR, который был отклонен из-за нежелательной особенности, является PR №2073.
Если PR не отклоняется сразу, он повторяется до тех пор, пока PR не будет принят или отклонен. Во время этой итерации код проверяется и тестируется сообществом и основными разработчиками. На основании этих обзоров и тестов одновременно выполняются следующие шаги:
- Если сообщается об ошибках, они часто будут исправлены первоначальным автором.
- Проблемы качества кода (например, повторяющийся код) также будут сообщены и исправлены.
- Наконец, компромиссы будут обсуждены с основными разработчиками и сообществом.
Если PR не был отклонен до этого момента, он будет объединен.
Большинство этих компромиссов происходит на определенном уровне для всех PR, но выбор настолько ясен, что на самом деле не считается компромиссом. Но время от времени возникает реальный компромисс, и основные разработчики должны дать сообществу указания, в каком направлении они хотят, чтобы проект развивался. Компромиссы, которые мы обнаружили в нашем анализе:
- Количество, серьезность и вероятность исправления известных ошибок в сравнении с желательностью и срочностью PR \ Иногда известная ошибка в PR не может быть легко исправлена, или PR имеет определенную срочность.В подобных случаях разработчики ядра должны решить, принять ли эти известные ошибки, чтобы выполнить слияние сейчас, или отложить слияние до тех пор, пока ошибка не будет исправлена. \ В большинстве случаев нет необходимости срочно объединять PR, и разработчики просто откладывают объединение до тех пор, пока все известные проблемы не будут исправлены, например, в PR # 4519. Однако иногда для исправления PR требуется слишком много времени. Если PR желателен, основные разработчики могут решить объединить PR с ошибкой, которая все еще не решена. Хотя это может показаться неразумным, улучшение программного обеспечения по своей сути является итеративным процессом.Ожидание, что каждый PR будет идеальным, гарантирует, что PR никогда не будут объединены. Итак, несовершенные PR объединяются с предположением, что, если проблемы достаточно серьезны, они будут исправлены в более позднем PR, а если они не будут исправлены, то они, очевидно, не так уж и важны. \ Примером объединения PR с существующими ошибками был PR № 4515. Он работает с некоторым неоптимальным дизайном, но он привел к новой ошибке на конкретной плате. В этом случае основные разработчики решили, что новая ошибка была достаточно специфичной, чтобы она затронула лишь нескольких пользователей (первоначальный автор не мог воспроизвести ошибку), в то время как исправление в PR затронуло значительно больше пользователей.По этой причине они объединили PR с новой, еще не исправленной ошибкой.
- Накладные расходы и функциональность \ На самой Arduino ресурсы ограничены. Это означает, что добавление новых функций может привести к значительным накладным расходам. Например, PR # 1803 предлагал добавить функциональность, связанную с дескрипторами USB. Но реализация добавила бы постоянные накладные расходы размером более 800 байт, что составляет более 20% флэш-памяти, которая использовалась без PR. Эти накладные расходы существовали даже тогда, когда код не использовался.Такие высокие накладные расходы были неприемлемы для разработчиков ядра, поэтому они потребовали уменьшить накладные расходы перед слиянием.
- Правильный дизайн кода, требующий рефакторинга, и обходной путь, который работает сейчас \ Хотя теоретически лучше не влезать в долг за дизайн, допуская плохо спроектированный код, всегда существует компромисс между стоимостью рефакторинга, чтобы что-то заработало, и стоимостью выполнения этого быстро сейчас, но возможность более высоких затрат в будущем. . Пример решения о таком компромиссе можно найти в PR № 2681 и PR № 1803.В # 2681 основные разработчики решили принять технический долг и объединить код, который добавлял еще одно правило к уже сложному набору правил, вместо того, чтобы решать его должным образом. В # 1803 было простое и мощное решение, открывающее внутреннюю часть IDE. В то время как сообщество было за это, основные разработчики были против, поскольку это означало бы, что люди начнут зависеть от этих внутренних компонентов, что сделало бы почти невозможным их изменение. По этой причине PR не слился и со временем устарел.
- Простота реализации vs удобство использования \ В общем, упрощение чего-либо для пользователя требует больших усилий со стороны программиста и увеличивает сложность кода. Принятие решения здесь требует хорошего понимания того, чего можно ожидать от пользователя. Поскольку IDE Arduino должна быть простой в использовании для неопытных пользователей, основные разработчики почти всегда выбирают вариант, более простой для пользователя, даже если он усложняет работу и увеличивает время разработки.Примеры этого можно увидеть в PR № 1803 и PR № 3549 и № 4457.
Наконец, мы рассмотрим некоторые причины, по которым PR может быть отклонен.
- Если первоначальный автор перестает отвечать, PR имеет высокий шанс быть отклоненным. Если код правильный, кто-то другой может скопировать его в свой форк и открыть новый PR, как это было в случае с PR # 3549, которое было продолжено в PR # 4457.
- PR также может быть отклонен, если код был объединен другим способом, например, в предыдущей точке, когда кто-то еще открыл новый PR, или как PR # 7029, где код уже был объединен в ребазе в какой-то момент.
- PR отклоняется, когда он становится устаревшим, то есть базовый код был изменен настолько, что не стоит прилагать усилия для повторного обновления PR. В качестве альтернативы, это может быть даже невозможно в том виде, в котором она была изначально реализована, и реализовать эту функцию лучше с нуля. Примером этого являются PR № 3549 и PR № 4457, которые были заменены PR № 4517. Последний сделал доступным лучший подход и поэтому сделал # 3549 и # 4457 устаревшими. Другой пример – PR № 1250, который был закрыт по причине устаревания.@cmaglie открыл новую: PR # 1726.
- PR отклоняются, когда лучший подход становится / доступен и был реализован. Подходы редко бывают лучше. Вместо этого будут компромиссы: один подход лучше в одной области, другой подход лучше в другой. Какой из двух вариантов «лучше» определяется путем обсуждения компромиссов, часто в обоих ОР. Затем один из основных разработчиков решает, какой PR взять. Примером могут служить упомянутые выше PR # 3549 и PR # 4457, которые были заменены PR # 4517, что сделало доступным лучший подход и, следовательно, сделало # 3549 и # 4457 устаревшими.
10 Альтернатива Arduino IDE для начала программирования | Вундеркинды Java Code
Когда мы начинаем разработку проекта Arduino, мы обычно используем Arduino IDE . В любом случае, есть несколько альтернатив Arduino IDE, которые мы должны рассмотреть, если нас не устраивает стандартная IDE. Как мы знаем, Arduino – одна из самых популярных макетных плат (с несколькими альтернативами), когда приходит время разработать проект IoT или когда мы создаем проект DIY.
Обычно IDE Arduino – это первая IDE, которую мы используем при первом приближении к Arduino.Это происходит по нескольким причинам: он прост в использовании, он поддерживает все платы Arduino, у него есть простой в использовании встроенный менеджер библиотек. Более того, IDE Arduino очень удобна для пользователя, в ней нет слишком большого количества опций, меню и т. Д., Которые могут напугать неопытного пользователя. Это настолько просто, что нам не нужно беспокоиться о том, как это работает, мы можем сосредоточиться только на процессе разработки. Мы пишем код Arduino, и IDE Arduino компилирует его и загружает скомпилированный код в плату Arduino. Вот это.
Более того, это открытый исходный код, и он работает на нескольких ОС, таких как Windows, Mac OS X и Linux.
В любом случае, если вы не чувствуете себя комфортно с Arduino IDE, есть несколько альтернатив, которые вы можете использовать при разработке проекта Arduino. В Arduino IDE отсутствуют некоторые функции, которые могут вас беспокоить, особенно если вы привыкли к такой среде IDE, как Eclipse, Visual Studio или IntelliJ, и это лишь некоторые из них. Одна недостающая функция в Arduino IDE, которая меня действительно беспокоит, – это автозаполнение. Это способ предсказать остальные команды, чтобы вам не приходилось писать все это. В среде IDE мне нравятся некоторые другие функции, такие как отображение параметров функций, подсказок, связанных с синтаксической ошибкой и т. Д.
Список альтернатив Arduino IDE
В этой статье содержится список альтернатив Arduino IDE, которые вы можете использовать при создании проекта Arduino, если вам не нравится стандартная IDE Arduino. Порядок случайный.
PlatformIO
PlatformIO – одна из наиболее известных альтернатив Arduino IDE. Это интегрированная среда разработки для Интернета вещей. Он поддерживает не только платы Arduino, но и многие другие платы, такие как Raspberry, ESP32, ESP8266 и многие другие.IDE поддерживает все ожидаемые функции, такие как завершение кода и так далее. Это не только IDE, но и поддержка CLI (интерфейса командной строки). Кроме того, PlatformIO поддерживает управление несколькими проектами, темами и библиотеками. Интерфейс очень привлекательный и простой в использовании, и он сильно отличается от стандартной Arduino IDE. Это открытый исходный код, и вы можете загрузить исходный код с Github. Он требует Python и работает на нескольких ОС. Эта IDE Arduino имеет две разные версии: одна построена на основе Atom, а другая – как плагин кода Visual Studio.Если вы хотите получить больше информации и знать, как использовать PlatfomIO, вы можете обратиться к этой статье.
Веб-сайт: https://platformio.org/
Eclipse Arduino IDE
Источник: https://www.eclipse.org/community/eclipse_newsletter/2017/april/article4.php
Это плагин для Eclipse . Все мы знаем Eclipse и IDE. Если вы наверняка программировали на Java, у вас была возможность протестировать и оценить возможности Eclipse IDE. Это почти стандарт в IDE. Eclipse – очень универсальная среда, которая поддерживает несколько языков программирования, от Jave до C / C ++ и так далее.Эта платформа использует плагины для расширения своих функций и добавления поддержки новой платформы.
Это плагин для Eclipse IDE, который помогает разрабатывать приложения Arduino. Вы можете скачать плагин прямо из Eclipse Marketplace. Конечно, сначала необходимо установить Eclipse C ++ IDE. После установки этого плагина в Eclipse IDE вам необходимо выбрать платформу или, другими словами, SDK, который включает все библиотеки, необходимые для создания приложения. После того, как плагин настроен, вы готовы разработать свой скетч Arduino.IDE – это, по сути, IDE Eclipse, поэтому, если вы знакомы с Eclipse, у вас не возникнет проблем с ее использованием. Эта среда разработки Arduino имеет все функции стандартной среды разработки Arduino, такие как последовательный монитор для отладки эскиза Arduino.
Веб-сайт: https://marketplace.eclipse.org/content/eclipse-c-ide-arduino
Programino IDE для Arduino
Programino Arduino IDE – это альтернатива Arduino IDE с несколькими функциями. Эта IDE Arduino может использоваться с платами Arduino / Genuino или совместимыми микроконтроллерами.Programino поддерживает язык C / C ++, но в любом случае добавляет поддержку других языков, таких как HTML, Javascript и так далее.
Он полностью совместим с Arduino и имеет следующие основные функции:
- Подсветка синтаксиса
- Обозреватель функций
- Конкурс кода
- Сворачивание кода
- Аппаратный просмотрщик
Эта последняя функция очень полезна, потому что у вас всегда есть представление о оборудования, которое вы используете, чтобы вам не нужно было запоминать, например, пин-код.
embedXcode
Это бесплатная IDE Arduino, разработанная для Mac OS X. Эта IDE поддерживает подсветку синтаксиса, нумерацию строк и т. Д. Это шаблон для XCode 5 и XCode 6. Эта IDE упрощает разработку эскиза Arduino с помощью интеллектуальной среды, которая помогает вам во время разработки. Эта IDE может использоваться с несколькими макетными платами, такими как Arduino, ESP32, ESP8266, Adafruit и платой на базе Atmel и Cortex. Вы можете ссылаться на его веб-сайт, чтобы получить дополнительную информацию.embedXcode имеет разные версии и лицензии. Существует бесплатная версия, которая поддерживает основные функции, а если вы хотите разблокировать все ее функции, вам следует рассмотреть возможность использования embedXcode +, для которого требуется лицензия.
Веб-сайт: http://playground.arduino.cc/Main/EmbedXcode
Ktechlab
KTechLab – это IDE для микроконтроллеров. Это больше, чем простая IDE, потому что она поддерживает моделирование схем и может моделировать микроконтроллер и его схему. Он способен моделировать линейные и нелинейные устройства, кроме того, этот IDE может визуализировать напряжение и ток, протекающие в цепи.Эта платформа с открытым исходным кодом, и вы можете загрузить исходный код с Github. Он работает в Linux и Windows.
Веб-сайт: https://sourceforge.net/projects/ktechlab/
Codebender
Codebender – это облачная среда разработки Arduino. Он работает онлайн, и вам не нужно устанавливать приложение локально. Это веб-среда Arduino IDE, которая предоставляет все функции, которые вы ожидаете от IDE. Он использует облачный компилятор для преобразования исходного кода и загрузки его в Arduino. Это платформа с открытым исходным кодом, и ее код доступен на Github.IDE Arduino поддерживает выделение кода и многие другие функции. Более того, ваш код Arduino находится в облаке, поэтому вы можете использовать его и получать к нему доступ везде. Он поддерживает несколько досок, и если вы не можете найти свою доску, вы можете загрузить ее определение. Эта функция делает эту платформу очень универсальной. Более того, у него есть важная особенность: возможность использовать код Arduino, написанный другими на вашей плате. Это поможет вам улучшить свои знания.
Веб-сайт: https://codebender.cc/
Другие полезные ресурсы:
Как использовать интерфейс Rest с Arduino
Как управлять светодиодами с помощью Arduino
11 Visual IoT Tools для разработки приложения IoT
Visual studio + Visual micro
Это плагин для Microsoft Visual Studio.Эта IDE Arduino полностью совместима с Arduino. Эта IDE помогает вам легко и быстро писать код Arduino с подсветкой синтаксиса, подсказками об ошибках кода и т. Д. Он поддерживает несколько плат Arduino, поэтому вы можете выбрать свою плату для написания кода. Его очень легко использовать, потому что он использует функции Visual Studio, поэтому у вас есть интегрированная среда, в которой вы можете писать код Arduino. Он поддерживает последовательную отладку и позволяет создавать диаграммы. Еще одна интересная особенность – возможность использовать библиотеки Arduino.Visual Micro Arduino IDE полностью поддерживает формат библиотеки Arduino, и вы можете легко добавить его в свой код Arduino с помощью диспетчера библиотек.
Веб-сайт: https://www.visualmicro.com/
Zeus IDE
Zeus IDE – редактор, поддерживающий несколько языков программирования: C #, Lua, Go и так далее. Эта среда IDE поддерживает несколько функций:
- Завершение кода C / C ++
- Подсветка синтаксиса
- Код интеллектуального отступа
и так далее. Даже если он не создан специально для Arduino, вы можете использовать его для разработки приложений Arduino.
Веб-сайт: http://www.zeusedit.com/
Atmel Studio
Это профессиональная платформа. Эта интегрированная платформа поддерживает микроконтроллеры SAM и AVR. Используя Atmel studio, вы можете кодировать, отлаживать и загружать свое приложение. Это законченное решение, которое не ограничивается Arduino и предоставляет все функции, облегчающие разработку вашего приложения.
Веб-сайт: http://www.microchip.com/mplab/avr-support/atmel-studio-7
ArduinoDroid
Это другая среда разработки Arduino.Он работает на устройствах Android, и с его помощью вы можете программировать свой Arduino. Это первая IDE, работающая на ОС Android. Об этом стоит упомянуть, потому что это помогает вам писать код с помощью устройства Android. Используя это приложение, вы можете написать и загрузить свой скетч. Он поддерживает несколько плат Arduino. Вы можете использовать драйвер Google
Это полнофункциональная IDE. Вы можете скачать его в Google Play.
Резюме
В этой статье перечислены несколько альтернатив Arduino IDE, которые вы можете использовать, если вас не устраивает стандартная IDE Arduino.Вы должны выбрать тот, который соответствует вашим потребностям и способу программирования. Все эти платформы помогают вам легко и быстро писать приложения Arduino.
16 Альтернатива Arduino IDE для начала программирования
В этой статье представлен список из 16 альтернатив Arduino IDE, которые мы можем использовать, если вас не устраивает классическая среда Arduino IDE или нам нужны дополнительные функции по сравнению с редактором Arduino.
Когда мы начинаем разработку проекта Arduino, мы обычно используем IDE Arduino IDE .В любом случае, есть несколько альтернатив Arduino IDE, которые мы должны рассмотреть, если нас не устраивает стандартная IDE. Как мы знаем, Arduino – одна из самых популярных макетных плат (с несколькими альтернативами), когда приходит время разработать проект IoT или когда мы создаем проект DIY. Обычно мы склонны использовать редактор Arduino не только с кабелями Arduino (такими как Uno, семейство MKR и т. Д.), Но добавляя расширения, которые мы используем с альтернативными платами, такими как ESP32, ESP8266, Wemos и т. Д.
Обычно Arduino IDE – это первый выбор, который мы используем, когда впервые приближаемся к Arduino. Это происходит по нескольким причинам:
- проста в использовании
- поддерживает все платы Arduino
- имеет встроенный менеджер библиотек проста в использовании
Кроме того, Arduino IDE очень удобна в использовании, не имеет большого количества опций, меню и т. Д. это могло напугать неопытного пользователя. Это настолько просто, что нам не нужно беспокоиться о том, как это работает, мы можем сосредоточиться только на процессе разработки.Мы пишем код Arduino, и IDE Arduino компилирует его и загружает скомпилированный код в плату Arduino.
Кроме того, у него открытый исходный код, и он работает на нескольких ОС, таких как Windows, Mac OS X и Linux.
В любом случае, если вы не чувствуете себя комфортно с Arduino IDE, есть несколько альтернатив, которые вы можете использовать при разработке проекта Arduino. В Arduino IDE отсутствуют некоторые функции, которые могут вас беспокоить, особенно если вы привыкли к такой среде IDE, как Eclipse, Visual Studio или IntelliJ, и это лишь некоторые из них.Одна недостающая функция в Arduino IDE, которая меня действительно беспокоит, – это автозаполнение . Это способ предсказать остальные команды, чтобы вам не приходилось писать все это. В среде IDE мне нравятся некоторые другие функции, такие как отображение параметров функций, подсказок, связанных с синтаксической ошибкой и т. Д.
Список альтернатив Arduino IDE
В этой статье содержится список альтернатив Arduino IDE, которые вы можете использовать при создании проекта Arduino, если вам не нравится стандартная IDE Arduino.Порядок случайный.
ПлатформаIO
PlatformIO – одна из самых известных альтернатив Arduino IDE. Это интегрированная среда разработки для Интернета вещей. Он поддерживает не только платы Arduino, но и многие другие платы, такие как Raspberry, ESP32, ESP8266 и многие другие. IDE поддерживает все ожидаемые функции, такие как завершение кода и так далее. Это не только IDE, но и поддержка CLI (интерфейса командной строки). Кроме того, PlatformIO поддерживает управление несколькими проектами, темами и библиотеками.Интерфейс очень привлекательный и простой в использовании, и он сильно отличается от стандартной Arduino IDE. Это открытый исходный код, и вы можете загрузить исходный код с Github. Он требует Python и работает на нескольких ОС. Эта IDE Arduino имеет две разные версии: одна построена на основе Atom, а другая – как плагин кода Visual Studio. Если вы хотите получить больше информации и знать, как использовать PlatfomIO, вы можете обратиться к этой статье.
Веб-сайт: https://platformio.org/
Код Visual Studio
Visual Studio Code – очень интересный инструмент от Microsoft.Это совершенно бесплатно и существует несколько версий для Linux, Windows и OSX. Он предлагает набор функций кода высокого уровня, очень полезных и простых в использовании. Интересно то, что у VSCode есть торговая площадка, где можно загружать новые расширения, которые добавляют новые функции в эту альтернативу IDE. Одно из этих расширений – PlatformIO, которое можно загрузить прямо в VSCode. У вас будут все функции PlatformIO, описанные выше, в совершенно новой среде IDE.
Веб-сайт: https: // code.visualstudio.com/
Eclipse Arduino IDE
Это плагин для Eclipse. Все мы знаем Eclipse и IDE. Если вы наверняка программировали на Java, у вас была возможность протестировать и оценить возможности Eclipse IDE. Это почти стандарт в IDE. Eclipse – очень универсальная среда, которая поддерживает несколько языков программирования, от Jave до C / C ++ и так далее. Эта платформа использует плагины для расширения своих функций и добавления поддержки новой платформы.
Это плагин для Eclipse IDE, который помогает разрабатывать приложения Arduino.Вы можете скачать плагин прямо из Eclipse Marketplace. Конечно, сначала необходимо установить Eclipse C ++ IDE. После установки этого плагина в Eclipse IDE вам необходимо выбрать платформу или, другими словами, SDK, который включает все библиотеки, необходимые для создания приложения. После того, как плагин настроен, вы готовы разработать свой скетч Arduino. IDE – это, по сути, IDE Eclipse, поэтому, если вы знакомы с Eclipse, у вас не возникнет проблем с ее использованием. Эта IDE имеет все функции, которые есть в стандартной IDE Arduino, такие как последовательный монитор для отладки эскиза Arduino.
Веб-сайт: https://marketplace.eclipse.org/content/eclipse-c-ide-arduino
Programino IDE для Arduino
Programino Arduino IDE – это альтернатива Arduino IDE с несколькими функциями. Эта IDE Arduino может использоваться с платами Arduino / Genuino или совместимыми микроконтроллерами. Programino поддерживает язык C / C ++, но в любом случае добавляет поддержку других языков, таких как HTML, Javascript и так далее.
Он полностью совместим с Arduino и имеет следующие основные характеристики:
- Подсветка синтаксиса
- Обозреватель функций
- Конкурс кода
- Сворачивание кода
- Средство просмотра оборудования
Эта последняя функция очень полезна, потому что у вас всегда есть представление об используемом оборудовании, чтобы вам не приходилось запоминать пин номер например.
Слобер
Sloeber – это IDE с открытым исходным кодом для программирования Arduino. Он основан на Eclipse. Он имеет несколько интересных особенностей:
- Раскраска с учетом контекста
- Поддержка нескольких проектов
- Несколько конфигураций
Кроме того, Sloeber поддерживает несколько макетов плат.
Веб-сайт: http://eclipse.baeyens.it/
встроенный Xcode
Это бесплатная среда разработки Arduino, разработанная для Mac OS X.Эта IDE поддерживает подсветку синтаксиса, нумерацию строк и т. Д. Это шаблон для XCode 5 и XCode 6. Эта IDE упрощает разработку эскиза Arduino с помощью интеллектуальной среды, которая помогает вам во время разработки. Эта IDE может использоваться с несколькими макетными платами, такими как Arduino, ESP32, ESP8266, Adafruit и платой на базе Atmel и Cortex. Вы можете ссылаться на его веб-сайт, чтобы получить дополнительную информацию. embedXcode имеет разные версии и лицензии. Существует бесплатная версия, которая поддерживает основные функции, а если вы хотите разблокировать все ее функции, вам следует рассмотреть возможность использования embedXcode +, для которого требуется лицензия.
Веб-сайт: http://playground.arduino.cc/Main/EmbedXcode
Ktechlab
KTechLab – это IDE для микроконтроллеров. Это больше, чем простая IDE, потому что она поддерживает моделирование схем и может моделировать микроконтроллер и его схему. Он способен моделировать линейные и нелинейные устройства, кроме того, этот IDE может визуализировать напряжение и ток, протекающие в цепи. Эта платформа с открытым исходным кодом, и вы можете загрузить исходный код с Github. Он работает в Linux и Windows.
Веб-сайт: https://sourceforge.net/projects/ktechlab/
Codebender
Codebender – это облачная среда разработки Arduino. Он работает онлайн, и вам не нужно устанавливать приложение локально. Это веб-среда Arduino IDE, которая предоставляет все функции, которые вы ожидаете от IDE. Он использует облачный компилятор для преобразования исходного кода и загрузки его в Arduino. Это платформа с открытым исходным кодом, и ее код доступен на Github. IDE Arduino поддерживает выделение кода и многие другие функции.Более того, ваш код Arduino находится в облаке, поэтому вы можете использовать его и получать к нему доступ везде. Он поддерживает несколько досок, и если вы не можете найти свою доску, вы можете загрузить ее определение. Эта функция делает эту платформу очень универсальной. Более того, у него есть важная особенность: возможность использовать код Arduino, написанный другими на вашей плате. Это поможет вам улучшить свои знания.
Веб-сайт: https://codebender.cc/
Visual Studio + Visual micro
Это плагин для Microsoft Visual Studio.Эта IDE Arduino полностью совместима с Arduino. Эта IDE помогает вам легко и быстро писать код Arduino с подсветкой синтаксиса, подсказками об ошибках кода и т. Д. Он поддерживает несколько плат Arduino, поэтому вы можете выбрать свою плату для написания кода. Его очень легко использовать, потому что он использует функции Visual Studio, поэтому у вас есть интегрированная среда, в которой вы можете писать код Arduino. Он поддерживает последовательную отладку и позволяет создавать диаграммы. Еще одна интересная особенность – возможность использовать библиотеки Arduino.Visual Micro IDE полностью поддерживает формат библиотеки Arduino, и вы можете легко добавить его в свой код с помощью диспетчера библиотек.
Веб-сайт: https://www.visualmicro.com/
Zeus IDE
Zeus IDE – редактор, поддерживающий несколько языков программирования: C #, Lua, Go и так далее. Эта IDE поддерживает несколько функций:
- Завершение кода C / C ++
- Подсветка синтаксиса
- Код интеллектуального отступа
и т. Д. Даже если он не создан специально для Arduino, вы можете использовать его для разработки приложений Arduino.
Веб-сайт: http://www.zeusedit.com/
Атмель Студия
Это профессиональная площадка. Эта интегрированная платформа поддерживает микроконтроллеры SAM и AVR. Используя Atmel studio, вы можете кодировать, отлаживать и загружать свое приложение. Это законченное решение, которое не ограничивается Arduino и предоставляет все функции, облегчающие разработку вашего приложения.
Веб-сайт: http://www.microchip.com/mplab/avr-support/atmel-studio-7
ArduinoDroid
Это другая IDE Arduino.Он работает на устройствах Android, и с его помощью вы можете программировать свой Arduino. Это первая IDE, работающая на ОС Android. Об этом стоит упомянуть, потому что это помогает вам писать код с помощью устройства Android. Используя это приложение, вы можете написать и загрузить свой скетч. Он поддерживает несколько плат Arduino. Вы можете использовать драйвер Google
Это полнофункциональная IDE. Вы можете скачать его в Google Play.
Плагин Netbeans для Arduino
Еще один интересный плагин. Этот плагин работает с Netbeans, поэтому у вас есть все возможности Netbeans при разработке эскиза Arduino.Он работает с Arduino Uno R3, Arduino Mega 2560 и Arduino Duemilanove. Если хотите попробовать, можете скачать плагин.
Веб-сайт: http://plugins.netbeans.org/plugin/46054/arduino
Кейт
Kate – это редактор нескольких документов, который можно использовать для разработки приложения Arduino. Это не компилятор, это просто редактор, который вы можете использовать для написания кода. Следовательно, вам нужно скомпилировать его с помощью других инструментов.
Веб-сайт: https://kate-editor.org/
CLion + плагин
CLion – это IDE для разработки приложений C / C ++.Это мощный инструмент, который предлагает интересные функции, такие как навигация по коду, поддержка редактирования кода, например создание методов и т. Д. В него встроена отладка, помогающая находить ошибки и анализировать код «на лету». Он поддерживает расширение плагина. Один из этих плагинов помогает нам разработать приложение для Arduino. Это очень интересный инструмент.
Веб-сайт: https://www.jetbrains.com/clion/
Arduino Pro IDE
Arduino Pro IDE – это следующая IDE Arduino. Это расширенная версия стандартной среды IDE, которая предлагает гораздо больше функций, что делает ее намного лучше, чем «стандартная» версия.Он поддерживает механизм расширения плагинов. Это современная среда разработки для Arduino с поддержкой отладки. Более того, эта альтернатива Arduino IDE предназначена для управления крупными проектами. Интересной особенностью является поддержка C, Python и Javascript. Эта IDE все еще находится в стадии бета-версии, и вы можете загрузить и использовать ее, если хотите попробовать.
Веб-сайт: https://www.arduino.cc/pro/arduino-pro-ide
Рекомендуется :
Arduino-cli: компиляция, загрузка и управление библиотеками, ядрами и платами
Сводка
В этой статье перечислены несколько альтернатив Arduino IDE, которые вы можете использовать, если вас не устраивает стандартная IDE Arduino.Вы должны выбрать тот, который соответствует вашим потребностям и способу программирования. Все эти платформы помогают вам легко и быстро писать приложения Arduino.
1. Семейство Arduino – Arduino: Технический справочник [книга]
За прошедшие годы дизайнеры Arduino.cc разработали ряд плат конструкции. Первая широко распространенная плата Arduino, Diecimila, была выпущен в 2007 году, и с момента его первого выпуска семейство Arduino разработаны для использования преимуществ различных типов устройств микроконтроллера Atmel AVR.Due, выпущенный в 2012 году, является первым Arduino, использующим 32-битную ARM. Процессор Cortex-M3, и он отличается от остального семейства с точки зрения как вычислительная мощность, так и конфигурация распиновки платы. Другие платы, например LilyPad и Nano также не имеют такой же распиновки, как других членов семьи, и предназначены для другого диапазона приложения – носимые устройства в случае LilyPad; портативные устройства для Эсплора; и компактный размер в случае Mini, Micro и Nano.
С каждым годом появляются новые типы плат Arduino, поэтому то, что здесь перечислено, может быть устаревшим к тому моменту, когда вы его читаете. В более новых версиях есть более продвинутые процессоры с большим объемом памяти и расширенными функциями ввода / вывода (I / O), но для по большей части они используют те же схемы распиновки и будут работать с существующие дополнительные платы, называемые щитами , и различные дополнительные такие компоненты, как датчики, реле и исполнительные механизмы. Табл. 1-1 списки типы Arduino, появившиеся с 2005 года.Более новые версии Arduino также будет запускать большинство эскизов, созданных для более старых моделей, возможно с небольшими настройками и новыми библиотеками, но скетчи написаны для последних версии могут работать или не работать со старыми моделями.
Таблица 1-1 не является руководством для покупателя. Предоставлено, чтобы дать смысл исторического контекста к Arduino. Как видите, 2007 и 2008 годы увидел введение LilyPad; платы малого форм-фактора, такие как Nano, Mini и Mini Pro; и введение Duemilanove в качестве естественный эволюционный шаг, основанный на Diecimila.Пока нет значительные физические различия между Diecimila и Duemilanove, Duemilanove включает некоторые усовершенствования в блоке питания, большинство особенно в его автоматическом переключении между питанием USB и внешний источник постоянного тока. Более поздние версии Duemilanove также используют микроконтроллер ATmega328, который предоставляет больше памяти для программ.
Таблица 1-1 не включает робота Arduino, которая представляет собой печатную плату с прикрепленными двигателями и колесами. Одна из новейших досок в линейка Arduino – это Yún, интересный зверь, в котором есть и микроконтроллер ATmega32U4 и модуль Linino с Atheros Процессор AR9331 на базе MIPS, способный запускать версию Linux на базе Операционная система OpenWrt.Я не попаду в конец Yún OpenWrt, но сторона Arduino – это просто стандартный Arduino (Леонардо, чтобы быть специфический). Если вы хотите узнать больше о Yún, я бы посоветовал проверить его на веб-сайте Arduino.
Название платы | Год | Микроконтроллер | Название платы | Год | Микроконтроллер |
---|---|---|---|---|---|
Diecimila | 2007 | ATmega168V | Мега 2560 | 2010 | ATmega2560 |
LilyPad | 2007 | ATmega168V / ATmega328V | Uno | 2010 | ATmega328P |
Нано | 2008 | ATmega328 / ATmega168 | Ethernet | 2011 | ATmega328 |
Мини | 2008 | ATmega168 | Мега ADK | 2011 | ATmega2560 |
Mini Pro | 2008 | ATmega328 | Леонардо | 2012 | ATmega32U4 |
Duemilanove | 2008 | ATmega168 / ATmega328 | Эсплора | 2012 | ATmega32U4 |
Мега | 2009 | ATmega1280 | Микро | 2012 | ATmega32U4 |
Fio | 2010 | ATmega328P | Юнь | 2013 | ATmega32U4 + Linino |
Если в таблице 1-1 показано более одного типа микроконтроллера, указывает на то, что изначально была сделана конкретная версия платы Arduino. с одним микроконтроллером, а затем с другим (обычно более способным) устройство.Например, более старая версия Duemilanove будет иметь ATmega168, тогда как более новые модели имеют ATmega328. Функционально ATmega168 и ATmega328 идентичны, но у ATmega328 больше внутренней памяти.
Последние дополнения к семейству Arduino: Leonardo, Esplora, Micro, и Юн, все используют ATmega32U4. Хотя эта часть похожа на ATmega328 он также включает в себя интегрированный компонент интерфейса USB-последовательный порт, который устраняет одну из частей интегральной схемы (ИС) на таких платах, как Уно и Дуэмиланове.
Интерфейс программирования также немного отличается от плат. которые используют ATmega32U4, но для большинства людей это должно быть в значительной степени прозрачным. Глава 2 описывает общие функции микроконтроллеров AVR, Глава 3 содержит описания конкретных типов микроконтроллеров AVR. найдены в устройствах Arduino, а в главе 4 приведены описания основных печатных плат Arduino и их распиновки.
Arduino * IDE Tutorial
Требуемое оборудование:
- Плата Intel® Galileo
- Блок питания (входит в комплект)
- Кабель Micro USB (тип B)
- Установлено и настроено программное обеспечение Arduino * v 1.5.3
Пример эскиза
Когда вы создаете файл в программном обеспечении Arduino *, он открывает эскиз с базовой компоновкой программы Arduino. Вот пользовательский интерфейс:
Слева направо значки в верхней части пользовательского интерфейса Arduino представляют следующее:
Verify compiles code. Используйте для проверки кода на наличие ошибок перед загрузкой скетча.
Загрузить эскиз.
Новое окно редактора открывает новое окно редактирования кода вместо текущего.
Открывает файл.
Сохраняет эскиз.
Serial Monitor открывает последовательный монитор, полезный для отладки.
Стрелка вниз дает вам такие опции, как добавление эскиза в текущий проект. Он открывается как новая вкладка в текущем редакторе кода, что полезно для организации кода в логические файлы.
Число в нижнем левом углу пользовательского интерфейса Arduino указывает номер строки, в которой находится курсор.
Примечание | Изображение представляет интерфейс программного обеспечения Arduino под названием BareMinimum и находится в Файл> Примеры> 0.1 Основные сведения . Ознакомьтесь с другими примерами и поэкспериментируйте. |
Комментарии
Две косые черты (между {и}) представляют начало встроенного комментария кода. Когда ваш код загружается на плату, компилятор игнорирует текст после двух косых черт. Использование встроенного комментария кода позволяет вам оставлять заметки для себя и для людей, читающих ваш код. Вы также можете писать многострочные комментарии, начав свой комментарий с / * и заканчившись * /.
/ * Вы читаете
пример комментария
, который состоит из многих строк. * /
Переменные
Передача данных по программе может быстро стать беспорядочной. Переменные похожи на контейнеры для хранения, в которых хранятся разные типы значений. Использование переменных для передачи значений – отличный способ сохранить ваш код организованным и читаемым.
При объявлении переменной (введении ее в программу) важен выбор правильного типа данных.Если вы пытаетесь измерить интенсивность света с помощью фотометра, вам может потребоваться точное показание. Объявление типа переменной double резервирует место в памяти для числа с десятичной точкой.
Пример: double light_sensitivity;
Где double
– это тип объявляемой переменной, а light_sensitivity
– это имя переменной. Чтобы ссылаться на переменную в вашем коде, просто используйте то имя, которое вы ей дали.
Примечание | Выберите имя переменной, соответствующее тому, на что вы ссылаетесь.Если имя состоит из более чем одного слова, используйте символ подчеркивания (_) между словами, чтобы повысить удобочитаемость. Обязательно проверьте написание слов, которые вы выбираете. Один неверный символ может привести к некорректной компиляции вашей программы. |
Для получения дополнительной информации о типах данных и переменных посетите справочную страницу Arduino.
Функции
Двумя строительными блоками скетча являются функция настройки и функция цикла .Все программы требуют использования этих двух функций, поскольку они являются необходимыми структурами для компиляции программы.
В функции настройки вы включаете такие вещи, как объявления переменных и инициализацию режимов вывода.
Функция цикла – это сердце вашей программы. Он выполняет то, что следует из названия, непрерывно зацикливается, выполняя основную логику вашей программы.
Функции бывают разных типов, как и переменные. Функция настройки и цикла имеют тип void. Это означает, что они делают только то, что им предписано, и не возвращают никакого значения (таким образом, void).