Arduino для начинающих. Часть 1


Предисловие


Доброго времени суток, Хабр. Запускаю цикл статей, которые помогут Вам в знакомстве с Arduino. Но это не значит, что, если Вы не новичок в этом деле – Вы не найдёте ничего для себя интересного.


Введение


Было бы не плохо начать со знакомства с Arduino. Arduino – аппаратно-программные средства для построения систем автоматики и робототехники. Главным достоинством есть то, что платформа ориентирована на непрофессиональных пользователей. То есть любой может создать своего робота вне зависимости от знаний программирования и собственных навыков.


Начало


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


main(){
    void setup(){
    }
    void loop(){
    }
}

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


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


Для того, чтоб залить скетч на Arduino нам необходимо сначала просто сохранить его. Далее, во избежание проблем при загрузке, необходимо проверить настройки программатора. Для этого на верхней панели выбираем вкладку «Инструменты». В разделе «Плата», выберете Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или другие. Также в разделе «Порт» необходимо выбрать Ваш порт подключения (тот порт, к которому вы подключили Вашу платформу). После этих действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» выберете «Загрузка» (также можно воспользоваться сочетанием клавиш “Ctrl + U”). Прошивка платы завершена успешно.


Прототипирование/макетирование


Для сборки макета нам необходимы следующие элементы: светодиод, резистор, проводки (перемычки), макетная плата(Breadboard). Для того, чтоб ничего не спалить, и для того, чтоб всё успешно работало, надо разобраться со светодиодом. У него есть две «лапки». Короткая – минус, длинная – плюс. На короткую мы будем подключать «землю» (GND) и резистор (для того, чтоб уменьшить силу тока, которая поступает на светодиод, чтоб не спалить его), а на длинную мы будем подавать питание (подключим к 13 пину). После подключения, загрузите на плату скетч, если вы ранее этого не сделали. Код остаётся тот же самый.


На этом у нас конец первой части. Спасибо за внимание.

Комментарии (15)


  1. movis08
    04.04.2018 10:57
    +1

    Было бы лучше, если бы были фотографии и по больше конкретики. Например использовать резистор на 4,7K или 1R или какой под руку попадется. Начинающие не знают этого.
    А так да. Arduino для начинающих это круто)


    1. Yuliasha Автор
      04.04.2018 16:29

      Спасибо за Ваше мнение и совет. Буду учитывать это.


  1. MisterSmith
    04.04.2018 11:48

    Очередное мигание светодиодом? А это которое уже по счету?


    1. klirichek
      04.04.2018 16:22

      Вынужден вас огорчить.
      Там в коде — вечный цикл...


  1. a-tk
    04.04.2018 12:44

    Yet Another Arduino for Beginners.
    Да ещё с ошибками, рвущими глаза напрочь.


  1. sky_driver
    04.04.2018 12:51

    Неплохо бы дополнить все картинками и скринами


    1. Yuliasha Автор
      04.04.2018 20:08

      Будет учтено


  1. alexxisr
    04.04.2018 12:59

    подскажите — в ардуиновском варианте c++ правда можно вложенные функции писать?


    1. a-tk
      04.04.2018 13:14

      Нет, неправда. Там обычный С++, по умолчанию в свежих версиях 11 стандарт, но можно 14 прикрутить.


  1. saw_tooth
    04.04.2018 14:29

    да сколько можно то… а когда будет ардуино для заканчивающих?


  1. homeles
    04.04.2018 18:57

    Возможно у светодиода из заводской упаковки лапки и разной длины, НО — лучше бы дали совет как определить что-где у светодиода с одинаковыми ножками (а их и в магазине могут продать). А вообще — по ардуино ресурсов, в том числе и русскоязычных, и для начинающих — гора и кепка сверху…


    1. Gryphon88
      06.04.2018 18:57

      Согласен по обоим пунктам. Перепрыгнуть на ардуино с ненулевым опытом программирования просто, а вот потом хочешь сделать что-нибудь применимое в реальной жизни и начинает вылезать схемотехника в больших объёмах. В итоге профильные форумы, Сворень, Хоровиц и Хилл, Харрис и Харрис… Мне на первых шагах не хватало определителя и типовых схем, помню, как медитировал на триггер Шмитта на одной микросхеме.

      Хотел бы увидеть простенькую серию в стиле «а еще есть такой элемент, применяется там-то, подробно описан в такой-то книге», серию «Руководство по материалам электротехники для всех» приняли очень тепло, хотя тема на первый взгляд кажется старой и простой.


  1. homeles
    04.04.2018 19:00

    И в догонку — если уж делаете курс для «начинающих» — лучше начать с железа — что, как и зачем можно подключить. А то народ подумает, что на Analog IN можно 220В из розетки померять :)


  1. Vanellope
    05.04.2018 04:31

    Доколе, доколе, я вас спрашиваю, в ардуинах будет использоваться бейсикообразный делэй(1000)? Неужто нельзя изкаропки планировщик задач юзать?


    1. a-tk
      06.04.2018 18:39

      На 2 килобайтах RAM?