StandUp «Путь в IT» с Павлом Волей
Кнопка закрыть топ-бар
ГлавнаяБлогЯзык программирования Ардуино: что собой представляет
Как создать приложение для iOS
4 118
Время чтения: 16 минут

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

Сохранить статью:
Сохранить статью:
В статье рассказывается:
  1. Какой язык программирования на Ардуино
  2. Другие языки программирования, подходящие для Ардуино
  3. Команды языка программирования Ардуино С++
  4. Пример простой программы на Ардуино

Язык программирования Ардуино – прикладной язык. Используется для работы с микроконтроллерами. Это яркий пример того, как код может быть воплощен не просто в какую-то потенциальную программу, а в действие в прямом смысле этого слова. Всё, что вы запрограммируете, будет двигаться, выполняя определенные функции.

Основой для Ардуино является язык C/C++, однако для работы с микроконтроллерами используются и другие. О том, что собой представляет эта интересная среда разработки, вы узнаете из нашего материала.

Какой язык программирования на Ардуино

Стать хорошим специалистом в сфере IT бывает непросто из-за трудности с первоначальным выбором конкретного направления деятельности. Речь о многообразии современных технологий, и о том, что приходится определяться, к чему сильнее ваш интерес, к «железу» или всё-таки к программному обеспечению.

Вам хотелось бы создавать уникальные по внешнему виду и возможностям устройства, или контролировать их функционал, процессы обработки данных, быстродействие? Чтобы стать специалистом по Ардуино, не нужно быть ни виртуозным разработчиком, ни опытным «технарём».

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

Какой язык программирования на Ардуино
Какой язык программирования на Ардуино

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

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

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

На каком языке программирования работает Ардуино? На давно заработавшем себе популярность С++, который на сегодняшний день один из самых мощных (официальная среда разработки — Arduino IDE). Используемому новому языку разработчики дали название Arduino Wiring, потому что в стандартную библиотеку Arduino.h включен инструментарий и функционал из фреймворка Wiring. Что касается синтаксиса, то он берется именно из языка С++, поэтому если берётесь за язык программирования Ардуино с нуля, то придется изучить не только стандартные функции, но ещё какие-то справочники по С++.

Именно в них вы почерпнете кучу полезных сведений о языке, а конкретно — о его синтаксисе (а не о функционале Wiring). Даже в специальных уроках по Ардуино не найдётся столько ценной информации.

Другие языки программирования, подходящие для Ардуино

Какие ещё языки программирования используются в Ардуино? Есть среды разработки, в которых можно задействовать JavaScript (для него среда — Espruino WEB IDE), либо Basic (среда — B4R). А в XOD программы пишутся с помощью специальных блоков.

Ardublock

По сути, Ardublock – детский язык, представляющий собой адаптированный Scratch. Всё, что тут есть – подстроено под вашу платформу (блоки разных цветов, названия на русском языке, конструктор, упрощённые блоки). Данной адаптацией может пользоваться кто угодно, не имея вообще никаких представлений о программировании. В Logo, например, вы задаёте движение для виртуальной черепашки по виртуальной плоскости. Так и здесь можно показать ребенку, каким образом интерпретируются те либо иные действия в программе.

Для стандартной среды Arduino IDE потребуется установка плагина. Выбирайте версии примерно конца 2013 года, потому что более поздние – гораздо сложнее. Как устанавливать? Скачать файл, переименовать его на «ardublock-all» и положить в папку «Мои документы/Arduino/tools/ArduBlockTool/tool». Если изначально такой нет, значит нужно создать.

Snap!

Тут уже есть возможности использования функций, списков, имеются дополнительные блоки, которые отсутствуют в Ardublock. В общем, по своему функционалу уже более «взрослый» язык программирования для использования в Ардуино, хотя по сути – это всё тот же конструктор.

Чтобы его задействовать, придется дополнить свою операционку необходимыми компонентами (скачать на snap4arduino.org). Как устанавливать и пользоваться – смотрите на этом же сайте, там же есть и видеопримеры.

ТОП IT-профессий
2022 года с доходом
от 170 000 ₽
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Александр Сагун
Александр Сагун
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2022

pdf иконка

Подборка 50+ ресурсов об IT-сфере

pdf иконка

ТОП сервисов и приложений, на которые следует перейти уже сегодня

pdf иконка 3,7 MB
Уже скачали 11710 pdf иконка

Snap! подходит для младшей возрастной группы, либо тех, кто обучался программированию, но успел многое подзабыть. Либо если вам хочется вовлечь ребенка в ITсферу посредством знакомства с Scratch и Snap!.

Python

Ардуино работает на любом языке программирования, формально – даже на Piet можно скомпилировать любые операции в машинный код. Однако всё-таки Python лучше сбалансирован с точки зрения сложности и возможностей, недаром он считается одним из самых популярных языков. И, разумеется, он применяется в Arduino.

Что для этого нужно? Собственно, vPython и библиотеки PySerial (может они у вас уже есть, и вы применяли их для взаимодействия с портами компьютера).

Go и другие языки

Посредством библиотеки PySerial Аурдино может общаться не только с Python, но вообще с чем угодно, в частности, с Go, Java, HTML и проч. Платформа Arduino пользуется большой популярностью, и необходимость выбирать язык вряд ли остановит тех, кто хочет ею пользоваться. И уж если у вас в руках оказалась эта небольшая плата, придумайте с ней действительно нечто интересное. А инструментария для этого — предостаточно.

Команды языка программирования Ардуино С++

В состав языка входят операторы, данные, функции и библиотеки.

Язык Пример Описание
Операторы
setup() void setup()
{
pinMode(3, INPUT);
}
Функция идентифицирует переменные, задает выводам на плате режим работы и т.д. Функция запускается в работу один раз, всегда, когда на микроконтроллер подается питание.
loop() void loop()
{
digitalWrite(3, HIGH);
delay(1000);
digitalWrite(3, LOW);
delay(1000);
}
Функция loop – циклическая, по её управлением программа в нужный момент совершает вычисления и выдает на них запрограммированную реакцию. Наличие функций setup() и loop() в каждом скетче обязательно, даже если они вообще нигде не задействованы в программе.
Операторы управления
if
if (x > 100) digitalWrite(3, HIGH);
if (x < 100) digitalWrite(3, LOW);
Это оператор if применяется вместе с операторами сравнения и проверяет, является ли указанное условие истинным. В примере: если значение переменной х больше 100, то на выходе 13 срабатывает светодиод, а если это значение меньше – то светодиод гаснет.
if..else
if (x > 100) digitalWrite(3, HIGH);
else digitalWrite(3, LOW);
Данный оператор запускает проверку, отличную от той, которую делает оператор if. Это нужно для того, чтобы не выполнять повторяющиеся взаимоисключающие проверки. Если по результату одной из проверок не получилась ИСТИНА, то выполняются действия, прописанные в блоке else.
switch…case
switch (x)
{
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
default: digitalWrite(4, HIGH);
}
Оператор switch работает по аналогии с if, то есть задает порядок действий при выполнении того или иного условия. Break – команда выхода из оператора switch. А в default прописываются действия на случай, если ни одна из альтернатив не окажется выбранной.
for void setup()
{
pinMode(3, OUTPUT);
}
void loop()
{
for (int i=0; i <= 255; i++){
analogWrite(3, i);
delay(10);
}
}
for запускает повторения операций, описанных внутри фигурных скобок. Это может, например, быть плавное угасание затемнение светодиода. В заголовке цикла for имеется три раздела: for (initialization; condition; increment).

Initialization запускается на выполнение один раз. Затем идет проверка условия condition. Если оно выполняется, то запускается приращение increment. Все эти действия повторяются до тех пор, пока condition не станет ложным.

while void loop()
{
while (x < 10)
{
x = x + 1;
Serial.println(x);
delay(200);
}
}
while запускает цикличное выполнение определенных операций до тех пор, пока остается истинным условие, указанное внутри круглых скобок. В приведенном примере заданные действия будут выполняться циклично бессчетное количество раз всё время, пока переменная х меньше десяти.
do…while void loop()
{
do
{
x = x + 1;
delay(100);
Serial.println(x);
}
while (x < 10);
delay(900);
}
По принципу работы do…while схож с предыдущим. С той лишь разницей, что если условие, описанное в круглых скобках, оказывается выполненным, то осуществляется не выход из цикла, а продолжение его работы. Здесь приведен пример, в котором если х становится больше 10, все равно буде выполняться сложение, но с паузой 1000мс.
break
continue
switch (x)
{
case 1: digitalWrite(3, HIGH);
case 2: digitalWrite(3, LOW);
case 3: break;
case 4: continue;
default: digitalWrite(4, HIGH);
}
Оператор break в принудительном порядке выводит программу из циклов switch, do, for и while, даже если они не закончены.

Оператор continue выявляет в текущем шаге цикла операторы, оставшиеся невыполненными, и пропускает их.

Синтаксис
;
(точка с запятой)

digitalWrite(3, HIGH);
Точка с запятой ставится в конце оператора. В компиляции произойдет ошибка, если точку с запятой поставить в конце строки случайно.
{}
(фигурные скобки)
void setup()
{
pinMode(3, INPUT);
}
Фигурные скобки ставятся только в паре, то есть, должно быть и открытие “{”  и закрытие “}”. Если стоит лишь одна из скобок, это станет причиной скрытых ошибок.
//
(комментарий)
x = 5; // комментарий Комментарии – это пояснения к программе. Компилятор их не воспринимает, в память они не экспортируются и место там не занимают.
#define #define ledPin 3 Задает имя константе. Это нужно лишь для того, чтобы программа лучше читалась.
#include // библиотека для серво
#include <Servo.h>
С помощью данной директивы становится возможным введение в скетч сторонних библиотек. Важно: после #include и #define точка с запятой не ставится.
Типы данных
boolean boolean val = false; Любая переменная типа boolean занимает в памяти устройства один байт и может принимать значение true либо false.
char // оба значения эквивалентны
char val = ‘A’;
char val = ’65’;
Это обозначение для символьных типов данных. В памяти занимает 1 байт. Символ заключается в одинарные кавычки (‘А’), но в памяти хранятся в виде числовых значений.
byte byte val = 255; Цифровой тип данных для чисел от 0 до 255. Размер одной переменной – один байт.
int int val = 32767; Этим типом данных обозначаются целые числа. Имеются в иду целочисленные 16-битные значения, по величине – от -32768 до 32767.
unsigned int unsigned int val = 65535; Эта переменная предназначена для хранения еще и двухбайтовых значений. Но только не отрицательных, а лишь положительных, зато в большем диапазоне, от 0 до 65535.
float float val = 25.1547; Это переменная которой заименовываются числа с десятичным разделителем. Благодаря числам с плавающей точкой удается точнее (по сравнению с целыми числами) описывать аналоговые величины. Допускается использование дробных чисел, состоящих из 6-7 знаков (не после запятой, а всех вместе).
Зарегистрируйся на интенсив StandUp «Путь в IT»
с Павлом Волей
и получи подборку
полезных документов от Geekbrains
Павел Воля Павел Воля
19 мая в 18:00 мск.
Бесплатно
Павел Воля
Tелеведущий и гуманитарий

Мы вместе с экспертами по построению карьеры подготовили документы, которые помогут не ошибиться с выбором и определить, какая профессия в IT подходит именно вам.

Благодаря этим гайдам 76% наших студентов смогли найти востребованную профессию своей мечты!

Скоро мы уберем их из открытого доступа, успейте скачать бесплатно:

pdf иконка

Женщины в IT: мифы и перспективы в карьере

pdf иконка

Как прокачать свою технику речи

pdf иконка

100 тыс. руб за 100 дней с новой профессией

Список из 6 востребованных профессий с заработком от 100 тыс. руб

pdf иконка

Критические ошибки, которые могут разрушить карьеру

Собрали 7 типичных ошибок, четвертую должен знать каждый!

pdf иконка

Гайд по профессиям в IT

5 профессий с данными о навыках и средней заработной плате

pdf иконка 4,7 MB
pdf иконка 107 MB
Уже скачали 12623 pdf иконка

Пример простой программы на Ардуино

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

main(){

void setup(){

}

void loop(){

}

}

Важный момент: процессор Arduino сам создаёт функцию main() , которая в С++ является обязательной. И вот что видит в итоге разработчик:

void setup(){

}

void loop(){

}

Пример простой программы на Ардуино
Пример простой программы на Ардуино

Обязательная функция setup() используется единожды лишь при запуске микроконтроллера. Она же и задает базовые настройки.

Обязательная функция loop() является циклической. В процессе работы микроконтроллера обращение к ней происходит постоянно.

Принцип работы платформы понятнее выглядит на примере. Пусть это будет два варианта простейшей программы (Blink), которые отличаются лишь сборкой.

int Led = 13; // объявляем переменную Led на 13 пин (выход)

void setup(){

pinMode(Led, OUTPUT); // определяем переменную

}

void loop(){

digitalWrite(Led, HIGH); // подаём напряжение на 13 пин

delay(1000); // ожидаем 1 секунду

digitalWrite(Led, LOW); // не подаём напряжение на 13 пин

delay(1000); // ожидаем 1 секунду

}

Это работает так: светодиод горит в течение 1 секунды, а потом на 1 секунду потухает. Для реализации первого варианта придется собрать макет, потому что в платформе Arduino в 13-м пине есть встроенный светодиод.

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

Главное, как и в любом начинании – сделать первый шаг. И может быть, именно вы станете автором уникального изобретения, которое однажды покорит весь мир!
Автор статьи
Редакция сайта GeekBrains
Оцените статью
Рейтинг: 5
( голосов 1 )
Поделиться статьей
Добавить комментарий

Забрать
гарантированный
подарок
Забрать гарантированный
подарок
Скачать файл

Зарегистрируйся на интенсив StandUp «Путь в IT» с Павлом Волей и получи подборку полезных документов от Geekbrains

pdf-файл 302mb

Поздравляем!
Вы выиграли:

2-х дневный интенсив "Путь в IT"

Не пропустите сообщение!
Мы скоро свяжемся с вами!

Редирект для продолжения диалога