Добрый день, дорогие читатели,ученики и просто проходившие мимо :). Я собираюсь в течение нескольких уроков/статей рассказать вам об основах работы с МК Arduino , о её возможностях; приведу вам много примеров своего кода и т.д.
Ну, во-первых, вам потребуется купить « Arduino» или её аналог, для работы с ней :), а во-вторых – установить специальную среду разработки с сайта производителя.
В принципе это всё, что нужно по-минимуму, хотя я ещё покупал монтажную плату и «туеву хучу» всяких микросхем, диодов, резисторов.… Советую купить ещё и монтажную плату. Всё! Переходим к основной части!
Ардуино — это достаточно мощный и многофункциональный микроконтроллер, лично я считаю, что самое удобное в нём то, что (1) – он сразу готов к любой работе: пишите код, даже программатора не нужно (кто не понял – не задумывайтесь), (2) – это простой язык программирования (ЯП.): облегчённый «С».
Я вроде бы уже говорил, что построить на Ардуино можно практически всё, что угодно: будь то какой-то хитрый девайс для дома, ваш личный робот или управляемое откуда угодно «Нечто» :).
Для начала надо определиться, что мы хотим: пусть каждый определит это для себя, а здесь посмотрит/почитает полезную информацию в статьях. В любом случае будет очень неплохо, если вы попытаетесь изобразить схему желаемого на бумаге для наглядности: это беспроигрышный вариант (я лично пишу на бумаге ещё и весь код, очень помогает всё и сразу обдумать).
Схема есть! Но даже если и нет, то сейчас это неважно. Сейчас мы будем учиться писать «первый» код: соблюдать синтаксис, объявлять переменные, назначать ножки ввода/вывода, настраивать их и многое- многое другое. В общем виде любая программа состоит из трёх «блоков»: блок назначения, блок настройки и основной бок: блок непосредственного выполнения.
На схеме наглядно показан «мини-шаблон» для любой программы. Любая программа начинается с:
- назначения «ножек» и переменных, затем
- настройка ввода и вывода в функции «void setup()»
- написание программы в кавычках » { } » в функиции «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- Shield, Wi-Fi— или Bluetooth— модуль связи, сервомашинки) необходимо приписывать
«библиотеку» (файл — .h) в начало кода. Допустим, для работы с сервомашинкой это будет: Не надо пугаться, для любого оборудования очень легко можно нагуглить библиотеку. Вообще в среду разработки уже включены несколько библиотек, однако их надо вставлять из специального меню: Sketch > Import Library… > нужная библиотека.
В конце КАЖДОЙ строчки ставится знак » ; » — это синтаксис и на этом можно погореть. Однако «точка с запятой» не ставится после строк «void …» и после скобки завершения кода «}».
Назначение ножек МК — тоже задача не из лёгких: тут
надо быть внимательным вдвойне. Ведь есть два типа непосредственно работающих ножек: это Digital-ножки (на любой плате обозначены D и цифрой — персональным номером каждой ножки) и Analog-ножки (всё тоже самое, только буква — А). Вообще, эти ножки — одинаковые по своим функциям, но только Digital — более «грубые» они могут подавать или считывать импульс лишь в
«формате» HIGH (1) или LOW(0), в то время, как Analog-ножки считывают и задают абсолютно точный импульс ( Возможно, сейчас вам будет трудно это осознать, но со времнем мудрость дойдёт и до вас). Из это следует логичный вывод — использовать Digital-ножки для управления базовой, ходовой частью: например, включать/выключать двигатели, светодиоды и прочее, а Analog-ножки для коррекции всего этого, для работы с датчиками или сенсорами.
А теперь — самое главное что вам предстоит узнать про эти ножки: для работы с ножками, во время их назначения надо записывать тот номер который написан на плате, рядом с ножкой (это ОЧЕНЬ важно. Я, не зная этого, разбирался в чём дело почти месяц!). Это необходимо для обоих типов ножек!
И ещё маленький секрет: Analog — ножки можно не назначать, а прямо сразу вызывать из программы. Это удобно, если необходимо пару раз снять какие-то небольшие показания; хотя, каждый сам для себя решит степень удобности.
Итак, что-то вы, я надеюсь, уже усвоили, поэтому я представляю вам мой дальнейший план статей/ уроков. Я объясню вам, как работать с переменными и почему переменные — наше всё; как управлять Ардуино напрямую и «извне»; расскажу про кнопки и датчики; какие, как, а
главное — зачем можно сделать механизмы; как сделать себе игрушку или помощника… Да, пока не густо, но это только начало, так как я буду отвечать на ваши вопросы, а на самые интересные пожелания тоже постараюсь сделать понятные статьи. На сегодня это всё, но, чтобы вы не скучали, я выложил несколько фотографий своих развивающихся «творений», привёл вам примеры моего собственного кода, дал шаблоны для подвижных платформ — ваших будущих роботов.
Заходите на сайт Kiloom.ru — за новой пищей для мозгов!