Урок 1. Вводный урок по Arduino

Добрый день, дорогие читатели,ученики и просто проходившие мимо :). Я собираюсь в течение нескольких уроков/статей рассказать вам об основах работы с МК Arduino , о её возможностях; приведу вам много примеров своего кода и т.д.

Ну, во-первых, вам потребуется купить « Arduino» или её аналог, для работы с ней :), а во-вторых – установить специальную среду разработки с сайта производителя.

В принципе это всё, что нужно по-минимуму, хотя я ещё покупал монтажную плату и «туеву хучу» всяких микросхем, диодов, резисторов.… Советую купить ещё и монтажную плату. Всё! Переходим к основной части!

Ардуино — это достаточно мощный и многофункциональный микроконтроллер, лично я считаю, что самое удобное в нём то, что (1) – он сразу готов к любой работе: пишите код, даже программатора не нужно (кто не понял – не задумывайтесь), (2) – это простой язык программирования (ЯП.): облегчённый «С».

Я вроде бы уже говорил, что построить на Ардуино можно практически всё, что угодно: будь то какой-то хитрый девайс для дома, ваш личный робот или управляемое откуда угодно «Нечто» :).

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

Схема есть! Но даже если и нет, то сейчас это неважно. Сейчас мы будем учиться писать «первый» код: соблюдать синтаксис, объявлять переменные, назначать ножки ввода/вывода, настраивать их и многое- многое другое. В общем виде любая программа состоит из трёх «блоков»: блок назначения, блок настройки и основной бок: блок непосредственного выполнения.

На схеме наглядно показан «мини-шаблон» для любой программы. Любая программа начинается с:

  1. назначения «ножек» и переменных, затем
  2. настройка ввода и вывода в функции «void setup()»
  3. написание программы в кавычках » { } » в функиции «void loop()»

Грубо говоря, это и есть наша программа. Наша элементарнейшая программа. а точнее — разъяснение перед ней… Теперь рассмотрим настоящий код. Но, вам придётся собрать простенькую схему — к ножке МК подсоединить светодиод, светодиод соединить с резистором, а резистрор заземлить (подсоединить на минус).

(на приведённой картинке плата Nano. Внимание, для каждой платы своя распиновка! Гуглите её внимательней!)

// led - наша переменная, подключённая на ножку №3
int led = 3; 

void setup()
{
// так настраивается ножка, названная переменной, на вывод
pinMode(led, OUTPUT); 
}

void loop()
{
// на ножку подаётся "высокое" напряжение, то есть импульс
digitalWrite (led, HIGH); 

//задержка в 500 милисекунд (1000 = 1 секунда)
delay (500); 

// "выключение" ножки, выключающий импульс
digitalWrite (led, LOW); 
}

Однако хочу вас всех сразу предупредить, что импульс — это импульс. Да, он может тускло включить светодиод, но двигатель — никогда! По-этому, необходимо сделать «драйвер-двигателя» — очень полезная и универсальная вещь. Это — микро девайс, построенный на основе микросхемы L293D — по сути это только микросхема Читать статью про драйвер двигателей — тут!

А теперь рассмотрим маленькие, но важные нюансы, на которых может попасться каждый.

В программу, для работы со специфическим оборудованием (например: LCD-дисплейInternet- ShieldWi-Fi— или Bluetooth— модуль связисервомашинки) необходимо приписывать

«библиотеку» (файл — .h) в начало кода. Допустим, для работы с сервомашинкой это будет: Не надо пугаться, для любого оборудования очень легко можно нагуглить библиотеку. Вообще в среду разработки уже включены несколько библиотек, однако их надо вставлять из специального меню: Sketch > Import Library… > нужная библиотека.

В конце КАЖДОЙ строчки ставится знак » ; » — это синтаксис и на этом можно погореть. Однако «точка с запятой» не ставится после строк «void …» и после скобки завершения кода «}».

Назначение ножек МК — тоже задача не из лёгких: тут

надо быть внимательным вдвойне. Ведь есть два типа непосредственно работающих ножек: это Digital-ножки (на любой плате обозначены D и цифрой — персональным номером каждой ножки) и Analog-ножки (всё тоже самое, только буква — А). Вообще, эти ножки — одинаковые по своим функциям, но только Digital — более «грубые» они могут подавать или считывать импульс лишь в

«формате» HIGH (1) или LOW(0), в то время, как Analog-ножки считывают и задают абсолютно точный импульс ( Возможно, сейчас вам будет трудно это осознать, но со времнем мудрость дойдёт и до вас). Из это следует логичный вывод — использовать Digital-ножки для управления базовой, ходовой частью: например, включать/выключать двигатели, светодиоды и прочее, а Analog-ножки для коррекции всего этого, для работы с датчиками или сенсорами.

А теперь — самое главное что вам предстоит узнать про эти ножки: для работы с ножками, во время их назначения надо записывать тот номер который написан на плате, рядом с ножкой (это ОЧЕНЬ важно. Я, не зная этого, разбирался в чём дело почти месяц!). Это необходимо для обоих типов ножек!

И ещё маленький секрет: Analog — ножки можно не назначать, а прямо сразу вызывать из программы. Это удобно, если необходимо пару раз снять какие-то небольшие показания; хотя, каждый сам для себя решит степень удобности.

Итак, что-то вы, я надеюсь, уже усвоили, поэтому я представляю вам мой дальнейший план статей/ уроков. Я объясню вам, как работать с переменными и почему переменные — наше всё; как управлять Ардуино напрямую и «извне»; расскажу про кнопки и датчики; какие, как, а

главное — зачем можно сделать механизмы; как сделать себе игрушку или помощника… Да, пока не густо, но это только начало, так как я буду отвечать на ваши вопросы, а на самые интересные пожелания тоже постараюсь сделать понятные статьи. На сегодня это всё, но, чтобы вы не скучали, я выложил несколько фотографий своих развивающихся «творений», привёл вам примеры моего собственного кода, дал шаблоны для подвижных платформ — ваших будущих роботов.

Заходите на сайт Kiloom.ru — за новой пищей для мозгов!

Добавить комментарий

Ваш адрес email не будет опубликован.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>