Как программируют arduino

Arduino IDE

Программное обеспечение Arduino является открытым и доступным для всех и публикуется под лицензией Creative Commons Attribution Share-Alike 2.5. Кроме того, среда разработки Arduino (IDE) является свободным программным обеспечением и публикуется в соответствии с лицензией GNU General Public License Version2.   На официальной странице Arduino  вы можете найти много информации об этом, в том числе скачать Arduino IDE с соответствующей страницы.

Цифровой мультиметр AN8009
Большой ЖК-дисплей с подсветкой, 9999 отсчетов, измерение TrueRMS…

Подробнее

Платформа разработки Arduino IDE содержит область текстового редактора для написания кода, область сообщений, меню, панель инструментов с кнопками для общих функций. Среда разработки IDE предназначена для загрузки программ в контроллер Arduino, а также взаимодействия друг с другом.

Как было сказано ранее, программный код обычно называют «скетч» (англ. sketch — «эскиз, набросок, зарисовка»). Скетч пишется с помощью текстового редактора в IDE. Он имеет опции для копирования/вставки и поиска/замены текста. Консоль отображает сообщения среды Arduino, включая сообщения об ошибках и другую техническую информацию.

С помощью кнопок на панели инструментов можно проверить скетч, загрузить скетч в Arduino, создать новое окно, открыть и сохранить скетч, открыть монитор последовательного порта.

В дополнение к базовой версии IDE Arduino существует также бесплатное программное обеспечение с открытым исходным кодом — «Scratch for Arduino».

Преимуществом «Scratch for Arduino», по сравнению с «IDE Arduino», является использование графического программирования (аналоговые и цифровые функциональные блоки).

Еще одним программным продуктом является «Ardublock», в котором программирование осуществляется графическим методом с помощью готовых блоков. Из отечественных разработок программ подобного типа можно назвать «FLProg».

В следующей статье рассмотрим, что еще нам понадобиться для начала работы с Arduino и приведем небольшой список необходимых компонентов.

Как настроить Ардуино?

Одним из главных преимуществ конструктора является его безопасность относительно настроек пользователя. Ключевые настройки, потенциально опасные для Arduino, являются защищенными и будут недоступны.

Поэтому даже неопытный программист может смело экспериментировать и менять различные опции, добиваясь нужного результата. Но на всякий случай очень рекомендуем прочитать три важных материала по тому как не испортить плату:

  • Как уберечь Arduino и другие платы от кривых рук
  • 10 способов «убить» микроконтроллер Arduino

Алгоритм классической настройки программы Arduino выглядит так:

  • установка IDE, которую можно загрузить ниже или здесь или с сайта производителя;
  • установка программного обеспечения на используемый ПК;
  • запуск файла Arduino;
  • вписывание в окно кода разработанную программу и перенос ее на плату (используется USB кабель);
  • в разделе IDE необходимо выбрать тип конструктора, который будет использоваться. Сделать это можно в окне «инструменты» — «платы»;
  • проверяете код и жмете «Дальше», после чего начнется загрузка в Arduino.
1.8.7 Код на Github
1.8.6 Код на Github
1.8.5 Код на Github
1.8.4 Код на Github
1.8.3 Код на Github
1.8.2 Код на Github
1.8.1 Код на Github
1.8.0 Код на Github
1.6.13 Код на Github
1.6.12 Код на Github
1.6.11 Код на Github
1.6.10 Код на Github
1.6.9 Код на Github
1.6.8 Код на Github
1.6.7 Код на Github
1.6.6 Код на Github
1.6.5 Код на Github
1.6.4 Код на Github
1.6.3 Код на Github
1.6.2 Код на Github
1.6.1 Код на Github
1.6.0 Код на Github
1.5.8 BETA Код на Github
1.5.7 BETA Код на Github
1.5.6-r2 BETA Код на Github
1.5.5 BETA Код на Github
1.5.4 BETA Код на Github
1.5.3 BETA Код на Github
1.5.2 BETA Код на Github
1.5.1 BETA Код на Github
1.5 BETA Код на Github

Почему Arduino становится такой популярной

Совсем недавно еще никто не слышал об Ардуино. И до сих пор многих отпугивают слова: программируемый микроконтроллер, одноплатный компьютер, система для разработки устройств автоматизации. На деле все гораздо проще. Именно благодаря простоте и дешевизне Ардуино получила такую популярность. Существуют и другие проекты со схожими целями. Но ардуино обладает рядом преимуществ:

  1. Низкая стоимость. Ардуино можно купить всего за 2$
  2. Кроссплатформенность. Программное обеспечение ардуино очень универсально. Есть версии для большинства операционных систем.
  3. Arduino IDE. Это очень простая в освоении и удобная в использовании среда разработки. Она устанавливается и настраивается всего за несколько кликов мышкой.
  4. Открытый исходный код. Это позволяет людям создавать свои собственные функции и библиотеки. В интернете огромное количество готовых программных решений для любых целей. Вам не придется самостоятельно разбираться в принципах действия модулей. Вы можете скачать и установить готовую библиотеку, написанную для конкретного модуля, и использовать ее.

Что такое Arduino?

Как я уже сказал, Arduino — это микроконтроллер, для того чтобы быть микрокомпьютером ему не хватает многих компонентов. Он очень прост и гибок, поэтому подходит для разработки различных проектов.

Arduino воспринимает окружающую среду с помощью различных кнопок, датчиков и других сенсоров. Также можно воздействовать на окружение путем контроля светодиодов, моторов, сервоприводов и реле. Проекты Arduino могут оставаться автономными или взаимодействовать с программным обеспечением, установленным на компьютере. Они могут взаимодействовать с другими Arduino, Raspberry Pi, NodeMCU и любыми другими устройствами.

Микроконтроллер Arduino очень сильно упрощает процесс создания проекта, даже если вы раньше не делали ничего в сфере программируемой электроники. В сети есть тысячи руководств среди которых вы сможете найти то, что нужно.

В дополнение к простоте Arduino, эта плата стоит достаточно дешево и имеет открытый исходный код. Самая популярная модель arduino для начинающих — Arduino Uno, основная на микроконтроллере ATMEGA 16U2 от фирмы Atmel. Есть много различных моделей, которые отличаются размером, мощностью, спецификациями и другими параметрами.

Схемы публикуются под лицензией Creative Commons, поэтому опытные электронщики и производители могут делать свои версии Arduino, это приводит к очень низкой стоимости распространения устройств.

5. Загрузка первого скетча

Среда настроена, плата подключена. Пора прошивать платформу.

Arduino IDE содержит большой список готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи.

  1. Откройте распространенный пример — «Blink»:
    Файл
    Примеры
    01.Basics
    Blink.
  2. Откроется окно с демонстрационным примером.
  3. Немного модифицируйте код, чтобы увидеть разницу с заводским миганием светодиода. Замените строчки:
      delay(1000);

    на:

      delay(100);

    Полная версия кода:

    blink.ino
    void setup() {
      // initialize digital pin LED_BUILTIN as an output
      pinMode(LED_BUILTIN, OUTPUT);
    }
     
    void loop() {
      // turn the LED on (HIGH is the voltage level)
      digitalWrite(LED_BUILTIN, HIGH);
      // wait for a second  
      delay(100);
      // turn the LED off by making the voltage LOW                    
      digitalWrite(LED_BUILTIN, LOW);
      // wait for a second
      delay(100);
    }
  4. Нажмите на иконку «Компиляция» для проверки кода на ошибки.
  5. Нажмите на иконку «Загрузка» для заливки на плату.
  6. После прошивки платформы светодиод «L» начнёт загораться и гаснуть каждые 100 миллисекунд — в 10 раз быстрее исходной версии. Это значит, что ваш тестовый код успешно загрузился и заработал. Теперь смело переходите к экспериментам на Arduino.

Язык Arduino

Если опытный программист посмотрит на код для Arduino, он скажет, что это код на C++. Это недалеко от истины: основная логика Ардуино реализована на C++, а сверху на неё надет фреймворк Wiring, который отвечает за общение с железом.

На это есть несколько причин:

  1. У С++ слава «слишком сложного языка». Arduino позиционируется как микроконтроллеры и робототехника для начинающих, а начинающим иногда трудно объяснить, что С++ не такой уж сложный для старта. Проще сделать фреймворк и назвать его отдельным языком.
  2. В чистом С++ нет удобных команд для AVR-контроллеров, поэтому нужен был инструмент, который возьмёт на себя все сложные функции, а на выходе даст программисту часто используемые команды.
  3. Разработчики дали программистам просто писать нужные им программы, а все служебные команды, необходимые для правильного оформления кода на С++, взяла на себя специальная среда разработки.

Среда разработки (IDE) Arduino.

ШИМ Arduino

Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой

Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

ШИМ ардуино

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.

В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.

Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:

Нужно ли знать программирование?

Первые шаги по работе с платой Arduino начинаются с программирования платы. Программа, которая уже готова к работе с платой, называют скетчем. Переживать о том, что вы не знаете программирование не нужно. Процесс создания программ довольно несложный, а примеров скетчей очень много в интернете, так как сообщество Ардуинщиков очень большое.

После того как программа составлена она загружается (прошивается) на плату. Ардуино в этом случае имеет неоспоримое преимущество – для программирования в большинстве случаев используется USB-кабель. Сразу после загрузки программа готова выполнять различные команды.

Начинающим работать с Arduino нужно знать две ключевые функции:

  • setup() – используется один раз при включении платы, применяется для инициализации настроек;
  • loop() – используется постоянно, является завершающим этапом настройки setup.

Пример записи функции setup():

void setup() {
	Serial.begin(9600);	// Открываем serial соединение
	pinMode(9, INPUT);	// Назначаем 9 пин входом
	pinMode(13, OUTPUT); // Назначаем 13 пин выходом
}

Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства.

Функция loop() выполняется после функции setup(). Loop переводится как петля, или цикл. Функция будет выполняться снова и снова. Так микроконтроллер ATmega328 (большинстве плат Arduino содержат именно его), будет выполнять функцию loop около 10 000 раз в секунду.

Также вы будете сталкиваться с дополнительными функциями:

  • pinMode – режим ввода и вывода информации;
  • analogRead – позволяет считывать возникающее аналоговое напряжение на выводе;
  • analogWrite – запись аналогового напряжения в выходной вывод;
  • digitalRead – позволяет считывать значение цифрового вывода;
  • digitalWrite – позволяет задавать значение цифрового вывода на низком или высоком уровне;
  • Serial.print – переводит данные о проекте в удобно читаемый текст.

Помимо этого Ардуино начинающим понравится то, что для плат существует множество библиотек, которые представляют собой коллекции функций, позволяющих управлять платой или дополнительными модулями. К числу наиболее популярных относятся:

  • чтение и запись в хранилище,
  • подключение к интернету,
  • чтение SD карт,
  • управление шаговыми двигателями,
  • отрисовка текста
  • и т. д.

Основы Arduino

Ардуино – платформа, позволяющая множеству инженеров со всего мира создавать свои проекты с минимальными вложениями.

В первую очередь – это специальный микроконтроллер с одноимённой системой управления и библиотеками, построенными на языке С++. Соответственно, если вы планируете создавать что-то уникальное, вам следует изучить все нюансы, которые имеет программирование Arduino.

Давайте же составим краткое описание программирования Arduino и уточним моменты, на которые стоит обратить внимание, если вы впервые занимаетесь подобным. Прежде чем приступать к решению конкретной задачи на Ардуино, лучше всего иметь базис в сфере программирования

Поэтому давайте рассмотрим, что вообще обозначает этот термин. Абсолютно любой проект построен на поэтапной блок-модели, в которой описывается, что необходимо сделать вашему микроконтроллеру и как это сделать

Прежде чем приступать к решению конкретной задачи на Ардуино, лучше всего иметь базис в сфере программирования. Поэтому давайте рассмотрим, что вообще обозначает этот термин. Абсолютно любой проект построен на поэтапной блок-модели, в которой описывается, что необходимо сделать вашему микроконтроллеру и как это сделать.

Для упрощения работы пользователей в Ардуино созданы готовые библиотеки функций, вам достаточно лишь вводить команды из них, чтобы добиться какой-то цели. Естественно, таким образом вы многого не добьётесь, но для создания собственных библиотек потребуется знание языка С++ на котором и построена прошивка чипа.

Ключевая особенность системы в том, что характеристики Arduino могут быть улучшены с помощью докупаемых компонентов, и вы всегда можете их подстроить под конкретный проект. Соответственно, единственным вашим ограничением является знание языка и его возможностей, а также собственная фантазия.

Все функции строятся из простейших операнд, которые характерны для С++. Этими операндами являются переменные различных типов и способы их применения. Поэтому любая функция, используемая в микроконтроллере для получения сведений или отправки сигнала, – это набор простейших операций, который записан в главной библиотеке. И вы будете ограничены до тех пор, пока не получите достаточно опыта и практики, чтобы понимать, какую библиотеку и для какой цели вам стоит написать.

Главный же недостаток конструирования с Arduino сложных проектов в том, что вам придётся с нуля писать код и подбирать компоненты для системы, поэтому лучше сначала попрактиковаться на простейших задачах.

Также, учитывайте, что язык написания библиотек системы – низкоуровневый, а соответственно, состоит из простейших команд, в отличие от высокоуровневых python или pascal, удобных для пользователей. С другой стороны, он также является мультипарадигмальным, поэтому подходит для решения любой задачи с помощью удобной вам парадигмы программирования.

Чаще всего применяется ООП. Сам С++ имеет ядро из многочисленных библиотек и дополнительных функций или методов, поэтому, если вы собираетесь разобраться во всём кардинально, стоит начинать с освоения языка с нуля.

Моделирование событий

Моделирование событий в реальном времени было основой многих отраслей. На протяжении многих лет некоторые крупные процессы симуляции были областью аэронавтики и авиации. Сегодня симуляторы Ардуино позволяют всем новичкам и профессиональным проектировщикам учиться программировать и тестировать идеи, не опасаясь потери энергии впустую вместе со своими деньгами.

Симуляторы Arduino — отличные платформы для программистов и дизайнеров, которые хотят изучить основы проектирования и схемотехники. Успех таких программ связан с тем, что он предоставляет вам возможность учиться, не опасаясь повредить устройство. Кроме того, студенты, у которых могут возникнуть проблемы с приобретением электрооборудования, не имея понятия о том, как они будут функционировать, могут понять многие нюансы через пробы и ошибки с помощью этих симуляторов. Это сэкономит вам много денег и времени.

Еще одно большое преимущество симуляторов Ардуино заключается в том, что он поддерживает построчную отладку, поэтому пользователь точно знает, где и в какой строке он или она сделал что-то не так. Симуляторы существуют в различных формах и разработаны для совместимости с основными операционными системами — Windows, Linux и Mac OS. Поэтому, чтобы упростить поиск отличного симулятора Arduino, созданного для экосистемы вашего компьютера мы составили список самых популярных программ.

Настройка Arduino IDE

После установки необходимо настроить программу. Сделать это очень легко:

1. Сначала подключите вашу ардуинку к компьютеру с помощью USB кабеля.

2. Потом перейдите в «Пуск >> Панель управления >> Диспетчер устройств«. Там надо найти «Порты COM и LPT». В этом списке будет указана ваша arduino и порт к которому она подключена (COM2). Запомните это значение.

Arduino Uno в диспетчере устройств

3. Теперь запускаем Arduino IDE и сразу идем в меню «Инструменты >> Порт«. Там необходимо выбрать тот COM порт, который вы запомнили.

Выбор COM порта

4. Далее надо выбрать плату. Для этого в меню»Инструменты >> Платы» выбираете модель вашей платы.

Выбор платы ардуино

На этом настройка закончена. Не забывайте, что эти настройки придется менять если вы подключите плату к другому USB порту или будите использовать другую плату.

Что такое PlatformIO?

Почему стоит перейти с Arduino IDE на PlatformIO

В сети выделяют следующие недостатки Arduino IDE:

  • отсутствие кастомизации (темы, подсветка синтаксиса);
  • нет автодополнения кода (как в современных IDE);
  • не очень удобная организация проектов;
  • нет поддержки каких-либо плагинов;
  • неудобный менеджер библиотек;
  • не очень вразумительный builder, с которым достаточно трудно искать ошибки в программе;
  • другие мелкие баги, которые чаще всего встречаются при работе с Arduino IDE с операционной системе Windows.

Именно эти недостатки и вынуждают ряд пользователей переходить с Arduino IDE на PlatformIO или другие аналогичные платформы.

Преимущества PlatformIO

PlatformIO позволяет производить быструю разработку приложений и, подобно C/C++, поддерживает быстрое завершение кода и интеллектуальный код линтера, недоступные в Arduino IDE. В дополнение к этому PlatformIO предлагает полную поддержку тем с темными и светлыми цветами, умную навигацию по коду и форматирование кода. Ядро платформы включает мультиплатформенный builder, менеджер библиотек, монитор последовательного порта и многое другое.

Единый (унифицированный) отладчик поддерживает множество архитектур и платформ разработки. В отладчике есть такие функции как условные точки останова, выражения и точки наблюдения (Watchpoints), диспетчер памяти, “горячий” рестарт текущей сессии отладки. Ядро PlatformIO написано на Python 2.7 и работает на Windows, macOS, Linux, FreeBSD и даже на некоторых платформах с ARM-архитектурой: Raspberry Pi, BeagleBone, CubieBoard, Samsung ARTIK и т.п. Также в составе PlatformIO есть проводник файлов (File Explorer), который помогает в удобной организации хранения ваших проектов.

Охарактеризуйте язык функциональных блок-схем fbd.

Язык FBD
(Function
Block
Diagram)
– графический язык программирования
высокого уровня, обеспечивающий
управление потоками данных всех типов.
Позволяет использовать очень мощ­ные
алгоритмы простым вызовом функций и
функциональных блоков. Удовлетворяет
непрерывным динамическим процессам.
Замечателен для небольших приложений.
Хорош для сложных ве­щей подобно ПИД
регуляторам, массивам и т. д. Имеет
большую библиотеку блоков. FBD
заимствует символику булевой алгебры
и, так как булевы символы имеют входы и
выходы, которые могут быть соединены
между собой, FBD
является более эффективным для
представления структурной информации,
чем язык релейно-контактных схем.

2. Что такоеEFB,DFB,UDEFB?

EFB
(Elementary
Function
Block)
– элементарные функции и элементарные
функциональные блоки; они находятся в
библиоте­ках. Логика обработки в EFB
(программа) написана на языке С и не
может быть изменена в редакторе FBD.
Изменять можно только параметры блоков;

DFB(Derived
Function
Block)
– функции и функциональные блоки
пользователя; они конструируются
пользователем из EFB;

UDEFB(User
Defined
Elementary
Function
Block)
– разработан­ные пользователем на
языке С; они оформляются как объекты
библиотек.

3.Каково назначение
входовENи выходовENOфункциональных блоков?

Все FFB
могут быть вызваны с дополнительными
(необязатель­ными) формальными
параметрами: EN
(входом) и ENO
(выходом).

Конфигурирование (включение
или выключение) параметров EN
и ENO
осуществляется в диалоговом окне
Property
(свойства) FFB,
которое вызывается посредством команд
Object,
Property
(Объекты, Свойства), или двойным нажатием
левой клавиши (ЛК) мыши на изображении
FFB.

Если FFB
вызывается с параметрами EN/ENO
и при этом значе­ние EN
равно нулю, то алгоритмы, определяемые
FFB,
не будут вы­полняться. В этом случае
значение ENO
автоматически устанавлива­ется равным
0. Если же значение EN
равно 1, то алгоритмы, опреде­ляемые
FFB,
будут выполнены. После выполнения этих
алгоритмов без ошибок значение ENO
автоматически устанавливается равным
1. Если же возникает ошибка во время
выполнения этих алгоритмов, то значение
ENO
будет установлено равным 0.

Поведение FFB
одинаково как в случае вызова FFB
с EN
= 1, так и при вызове без параметров
EN/ENO.

4. Какую структуру имени, присваиваемого
автоматически, имеет FFB?

Для EFB,
DFB
и UDEFB
принято общее обозначение – FFB
(Functions/Function
Block).
Каждый из перечисленных объектов
представляет собой подпро­грамму,
которая помещается в одну из библиотек,
используемых при разработке программы
работы ПЛК. Таким образом обеспечи­вается
возможность вызова и хранения FFB
в форме библиотек.

Имя экземпляра является уникальным
идентификатором для функционального
блока в проекте. Имя экземпляра создается
автоматически и имеет следующую
структуру: FBI_n

FBI = Экземпляр Функционального Блока

n = порядковый номер функционального
блока в проекте

Это автоматически генерируемое имя
может быть изменено для наглядности.
Имя экземпляра (максимум 32 символа)
должно быть уникальным в пределах всего
проекта и не является чувствительным
к регистру. Имя экземпляра должно
соответствовать общим соглашениям об
именовании.

5.Для чего служат связи?

Связи являются соединениями между FFB.
Несколько связей могут быть соединены
с FFB выходом. Пункты любого такого
соединения отмечаются жирной точкой.
Входы/выходы, которые будут соединены,
должны иметь соответствующие типы
данных. Связи могут быть отредактированы
в режиме Выбора. Перекрывание с другими
объектами разрешается. Связи не могут
использоваться для конфигурации
контуров, потому что не возможно ясно
определить порядок обработки в секции.
Контуры должны решаться с помощью
фактических параметров.

6. Какое значение
назначается по умолчанию несвязанным
входамFFB?

Несвязанным входам FFB назначается по
умолчанию значение ”0”.

Наборы и конструкторы Ларт

ЛАРТ Сармат Армага

Набор на основе контроллера Ардуино, при помощи которого можно собрать робота, движущегося по линии. Главный компонент комплекта – миниатюрная плата Ардуино Нано, которая позволяет подключать не только входящие в состав набора компоненты, а и другие элементы совместимые с Ардуино, как механического, так и электронного типа. Это дает возможность совершенствовать полученного робота.

ЛАРТ Печенег Батана

Комплект включает плату Ардуино Нано и имеет достаточное количество элементов для разработки и строительства роботов, которых при помощи состава набора можно собрать две разновидности: робот, движущийся по черной линии и робот с датчиком ультразвука. Для программирования применяется текстовая среда Arduino IDE. Для разных модификаций роботов имеется возможность использования совместимых с Ардуино компонентов, а при помощи дополнительной пластины можно установить большее количество датчиков.

Выбрать и купить наборы ЛАРТ можно на официальном сайте: lartmaster.ru/

Конструктор Смарт Робо

Готовый конструктор для создания электронного робота на основе Ардуино, в комплект входит необходимое количество элементов, и руководство к сборке. Базовый элемент набора – плата от Keyestudio (100% аналог Ардуино). Полученный робот может быть запрограммирован на движение по линии, возможность объезда препятствий и управление от дистанционного пульта. Все элементы соединяются при помощи быстроразъемных соединителей и не требуют пайки. Доработать и усовершенствовать полученную конструкцию можно добавив на плату дополнительные элементы, совместимые с контроллером Ардуино.

Конструктор Смарт

Серия наборов, которые отличаются по комплектации. Основной компонент – плата Smart Uno – аналог контроллера Ардуино Уно, не уступающий ему по качественным характеристикам. В зависимости от комплектации (Смарт 10, Смарт 20 и Смарт 30) набор содержит элементы, как для начального уровня проектирования, так и для разработки более сложных проектов. При необходимости возможно подключение других электронных компонентов, совместимых с микроконтроллером.

Смарт Genuino

Серия наборов – Смарт 10 Genuino, Смарт 20 Genuino, Смарт 30 Genuino, которые отличны по количеству деталей в комплекте. Главный базовый компонент – плата Genuino Uno, кроме которой в составе имеются электронные детали, беспаечная макетная плата, провода и руководство по проектированию. Набор будет интересен как новичкам, так и профессиональным пользователям.

Выбрать и купить конструктор SmartElements можно на официальном сайте: https://smartelements.ru/

Робоплатформа Robbo (ScratchDuino)

Конструктор предназначен для обучения детей и взрослых основам робототехники и электроники. Управление роботизированным механизмом может осуществляться из различных сред программирования (Scratch, Lazarus, Кумир) или же пульта управления. Базовый компонент – картридж Ардуино. В зависимости от типа комплектации варьируется количество составных элементов.

Выбрать и купить конструктор Robbo можно на официальном сайте: https://robboclub.ru/

5Общение с Arduino

Как же процессор узнаёт, что именно ему следует делать? Вы должны рассказать ему это. Написание сообщений для Arduino называется программирование. Существует язык для общения с микроконтроллером, упрощённый и адаптированный специально для Arduino. Освоить этот язык совсем не сложно при желании и определённой настойчивости, даже если вы никогда раньше не программировали.

И для упрощения этого процесса разработана специальная программная среда – Arduino IDE. В её состав включены десятки примеров хороших, работающих программ. Изучив их, вы очень быстро многое узнаете о языке общения с Arduino.

Внешний вид среды разработки для программирования Ардуино – Arduino IDE

Arduino позволит вашим программам выйти из виртуального мира в мир реальный. Вы сможете увидеть, как написанные вами программы заставляют мигать светодиод или вращать вал двигателя, а затем делать и более сложные и полезные вещи. Arduino позволит вам узнать много нового и интересного и в электронике, и в программировании. В итоге это может послужить вам отличным хобби, увлекательным занятием с детьми, замечательным и полезным времяпровождением.

Ну и напоследок, посмотрите, какие разные и замечательные проекты можно воплотить с помощью Ардуино!

3Среда разработки B4R (Basic for Arduino)

Логотип B4R

Ещё одна интересная альтернатива Arduino IDE – B4R, или «Basic for Arduino». Эта среда разработки уникальна тем, что использует язык Basic, а не Си. Она также поддерживает функцию автодополнения кода. Кроме того, она полностью бесплатна.

При первом запуске среда B4R также требует указать путь к директории с Arduino IDE и, при необходимости, дополнительным нестандартным библиотекам и общим модулям. Эти настройки можно задать и позже через меню Tools Configure Paths.

Настройки среды B4R

А также выбрать плату: Tools Board Selector:
Выбор платы Arduino в B4R

Давайте напишем вот такой скетч и заодно немного ближе познакомимся со средой разработки.

Главное окно B4R IDE

В центральной части находится поле для редактирования кода. В правой – область вкладок и сами вкладки: доступных библиотек, модулей скетча, журнала и поиска. На приведённый фотографии открыта вкладка с журналом. Видно, что сюда выводятся сообщения, которые в программе задаются командой Log(). В данной среде разработки можно ставить точки останова, что весьма полезно в процессе отладки, а также использовать закладки для более быстрой навигации по коду.

Вы не сможете сразу начать программировать в этой среде разработки, т.к. она использует другой, более объектно-ориентированный язык, чем классическая Arduino IDE, с другим синтаксисом. Тем не менее, удобство этой среды и наличие хорошего руководства от разработчиков полностью окупает эти недостатки.

Знакомство с интерфейсом Ардуино

Одним из основных элементов ардуино является главное меню программы, которое позволяет получить доступ ко всем доступным функциям нашей программы.

Ниже расположена панель с иконками, которые отображают наиболее используемые функции Arduino IDE:

  • загрузка программы;
  • проверка на наличие ошибок;
  • создание нового скетча;
  • сохранение скетча;
  • загрузка сохранения;
  • открытие окна порта микроконтроллера;

Следующим по важности элементом является вкладка с файлами проекта. Если это простой скетч, то файл будет всего один

Однако сложные скетчи могут состоять из нескольких файлов. В таком случае на панели вкладок можно быстро переключить просмотр с одного файла на другой. Это очень удобно.

Самым большим из блоков является поле редактора наших скетчей. Тут мы можем просмотреть и, при необходимости, отредактировать нужный нам программный код. Отдельно реализовано поле для вывода системных сообщений. С его помощью можно убедиться, что сохранение вашего скетча или его загрузка были проведены успешно, и вы можете приступать к следующим действиям. Также в программе существует окно, отображающее наличие в ходе компиляции вашего скетча.

Компиляция – преобразование исходного кода языка высокого уровня в машинный код или на язык ассемблера.

Ужасная документация

Документация по функциям в Arduino ничего не сообщает о том, какие в них используются периферийные модули (не говоря уж о более глубоком уровне), скрывая это от обычных пользователей. Раньше я использовал openFrameworks. По крайней мере, с их средой разработки можно в коде посмотреть, как реализуются те или иные функции. С Arduino вы работаете вслепую. Можно ли обращаться к таймеру из функции servo()? Будет ли отправка строки в последовательный порт блокировать выполнение программы? Будет ли функция analogWrite() влиять на другие функции времени? В руководстве по Arduino вы об этом не прочитаете.

В справочнике по Arduino также описывается её «язык программирования». В базовой структуре используются некоторые функции Си и Си++, описанные, опять же, непонятно. «Arduino» – не тот язык, который вы не постеснялись бы указать в своем резюме. Чтобы считаться программистом, надо уметь программировать на Си! Сходства и различия этих функций неясны, что приводит к путанице при переходе на другие микроконтроллеры или в среды разработки ANSI-C. Где используются классы? Где используются структуры? Я понимаю, что Arduino не хочет отпугивать новых пользователей, но как же они станут «продвинутыми» пользователями?

Начало использования Arduino

Если вы никогда ранее не программировали, и это ваш первый опыт, то программирование микроконтроллеров Arduino пойдёт куда проще, если вы начнёте с основ.

Конечно, когда в планах у вас нет никаких сложных проектов, можете работать на готовых библиотеках и параллельно разбирать, из чего состоят их функции. Это один из хороших способов обучения, но тогда стоит искать наборы функций, которые писались профессионалами, чтобы быть уверенным в их правильности.

Иначе вы можете увидеть неправильное решение задачи и, в результате, применять те в своих проектах.

Но куда лучше начать с основ и посвятить хотя бы неделю освоению алгоритмизации и научиться разбивать свои проекты на блоки, а те – уже на конкретные шаги. Подобное построение блок-схем вам не раз пригодится в будущем.

Когда вы изучите весь базис, можно переходить к практике и самообучению на С++, подойдут любые простейшие проекты или заготовленные в интернете задачи.

На этом этапе вашей целью станет понять основные парадигмы и научиться их использовать, а также изучить возможности языка, чтобы вы чётко знали, что он может, и могли здраво оценить реализуемость ваших проектов.

С чего начать работу с Ардуино

Если вы делаете первые шаги в мире Ардуино, то советуем вам заранее приготовиться к двойному потоку знаний. Во-первых, вам придется разобраться с тем, что такое контроллер Arduino, какие устройства можно к нему подключить и как это сделать. Потребуется разобраться с основами электроники. Во-вторых, придется научиться навыкам программирования в Arduino. Для профессиональной работы нужны знания C++, для начинающих доступны многочисленные графические среды с блочным программированием. Например, mBlock или ArduBlock. При отсутствии реальной платы можно воспользоваться одним из эмуляторов ардуино.

Все это потребует и времени, и знаний, но результатом станет удивительное ощущение восторга от сделанных своими руками умных устройств

Счастья от того, что вы стали почти волшебником, приближаясь шаг за шагом к вершинам технического мастерства. Крайне важно, чтобы теория сочеталась с практикой и вы как можно быстрее переходили от чтения статей к созданию реальных устройств