Ардуино как программировать

Содержание
  1. УРОКИ ARDUINO: БАЗОВЫЙ УРОВЕНЬ
  2. alex-day › Блог › Arduino: Программирование без программирования
  3. Arduino для начинающих. Часть 1
  4. Вступление
  5. Введение
  6. Начало
  7. Первая программа
  8. Firmware Arduino
  9. Прототипирование/макетирование

Подключение и программирование Ардуино для начинающих

Изучение микроконтроллеров кажется чем-то сложным и неясным? До возникновения Арудино – это было на самом деле очень сложно и требовало конкретный набор программаторов и другого оборудования.

Ардуино как программировать

Что такое Arduino?
Это как бы электронный конструктор.

Изначальная задача проекта – это позволить людям легко обучаться программированию устройств электроники, при этом уделяя небольшое время электронной части.
Сборка сложных схем и соединение плат может выполняться без паяльника, а при помощи перемычек с разъёмными соединениями «отец» и «мама». Так могут подключаться как подвесные детали, так и платы увеличения, которые на лексиконе ардуинщиков зовут просто «Шилды» (shield).

Ардуино как программировать

Какую первую плату Arduino приобрести новичку?


Базовой и самой распространенной платой считается Arduino Uno. Эта плата размером напоминает банковскую карточку.

Довольно большая. Большинство шилдов которые есть в продаже прекрасно подойдут к ней. На плате для подсоединения внешних устройств размещены гнезда.

Ардуино как программировать

В российских магазинах на 2017 год её цена порядка 4-5 долларов. На сегодняшних моделях её сердцем считается Atmega328.

Ардуино как программировать

Изображение платы ардуино и расшифровка функций каждого вывода, Arduino UNO pinout
Микроконтроллер на этой плате это длинна микросхема в корпусе DIP28, что говорит про то, что у него 28 ножек.

Следующая по популярности плата, стоит практически в двое доступнее предыдущей – 2-3 доллара. Это плата Arduino Nano.

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

Ардуино как программировать

Кол-во пинов (ножек) этой платы сходится, зато вы можете наблюдать что микроконтроллер сделан в намного компактном корпусе TQFP32, в корпусе добавлены ADC6 и ADC7, иные две «лишних» ножки дублируют шину питания. Её размеры довольно небольшие – приблизительно, как большой палец вашей руки.
Третья по популярности плата – это Arduino Pro Mini, на ней нет USB порта для подсоединения к компьютеру, как выполняется связь я расскажу чуть-чуть позднее.

Ардуино как программировать

Сравнение размеров Arduino Nano и Pro Mini

Это очень маленькая плата из всех рассмотренных, в остальном она аналогична идущим до этого двум, а её сердцем считается все так же Atmega328. Иные платы рассматривать не будем, так как это статья для начинающих, да и сравнение плат – это тема индивидуальной статьи.
Arduino Pro Mini pinout, сверху схема подсоединения USB-UART, пин «GRN» – разведен на цепь сброса микроконтроллера, может именоваться по другому, для чего это необходимо вы узнаете дальше.

Если UNO удобная для макетирования, то Nano и Pro Mini комфортны для окончательных версий вашего проекта, так как занимают ограниченность места.

Ардуино как программировать

Как подключить Arduino к компьютеру?
Arduino Uno и Nano подсоединяются к компьютеру по USB. При этом нет аппаратной поддержки USB порта, тут применено схемное решение изменения уровней, в большинстве случаев называемое USB-to-Serial или USB-UART (rs-232).

При этом в микроконтроллер прошит специализированный Arduino загрузчик, который дает возможность прошиваться по этим шинам.
В Arduino Uno воплощена эта вязь на микроконтроллере с поддержкой USB – ATmega16U2 (AT16U2).

Выходит такая ситуация, что дополнительный микроконтроллер на плате необходим для firmware ключевого микроконтроллера.
В Arduino Nano это реализовано микросхемой FT232R, или её аналогом CH340. Это не микроконтроллер — это преобразователь уровней, данный факт делает легче сборку Arduino Nano с нуля собственными руками.

В большинстве случаев драйвера монтируются автоматично при подключении платы Arduino. Однако, когда я купил китайскую копию Arduino Nano, устройство было опознано, но оно не работало, на преобразователе была приклеена круглая наклейка с данными о дате выпуска, не знаю специально ли это было выполнено, но отклеив её я увидел маркировку CH340.

До этого я не сталкивался с подобным и считал, что все USB-UART преобразователи собраны на FT232, понадобилось скачать драйвера, их очень не проблема найти по запросу «Arduino ch340 драйвера». После лёгкой установки – все заработало!

Через данный же USB порт может и питаться микроконтроллер, т.е. если вы подсоедините его к адаптеру от мобильника – ваша система будет работать.
Что сделать если на моей плате нет USB?


Плата Arduino Pro Mini имеет маленькие размеры. Это достигли тем что убрали USB разъём для firmware и тот самый USB-UART преобразователь. По этой причине его необходимо докупить отдельно.

Самый простой преобразователь на CH340 (очень недорогой), CPL2102 и FT232R, продаётся стоит от 1 доллара.
Во время покупки внимание свое обратите на какое напряжение рассчитывается этот переходник.

Pro mini бывает в вариантах 3.3 и 5 В, на преобразователях часто размещён джампер для переключения напряжения питания.

Ардуино как программировать

При firmware Pro Mini, конкретно перед её самим началом нужно жать на RESET, но в преобразователях с DTR это делать не следует, схема подсоединения на рисунке ниже.

Ардуино как программировать

Состыковываются они специализированными клеммами «Мама-Мама» (female-female).

Ардуино как программировать

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

Ардуино как программировать

Как писать программы для Arduino?
Для работы со скетчами (наименование firmware на языке ардуинщиков), существует особенная соединенная среда для разработки Arduino IDE, скачать бесплатно её можно с официального сайта или с любого тематического ресурса, с установкой как правило нет проблем.

Ардуино как программировать

Так смотрится интерфейс программы.

Писать программы можно на собственно разработанном для ардуино упрощенном языке C AVR, по существу это набор библиотек, который именуют Wiring, а еще на чистом C AVR. Применение которого делает легче код и убыстряет его работу.
Сверху окна находится обычное меню, где можно открыть файл, настройки, подобрать плату, с которой вы работаете (Uno, Nano и огромное множество других) а еще открыть проекты с готовыми примерами кода.

Ниже размещён набор кнопок для работы с firmware, назначение клавиш вы сможете увидеть на рисунке ниже.

Ардуино как программировать

Снизу окна – область для вывода информации о проекте, о состоянии кода, firmware и наличии ошибок.
Основы программирования в Arduino IDE
Перед началом кода необходимо объявить переменные и подключить дополнительные библиотеки, если они имеются, выполняется это так:
#include biblioteka.h; // подсоединяем библиотеку с наименованием “Biblioteka.h”
#define peremennaya 1234; // Объявляем переменную со значением 1234
Команда Define дают компилятору самому подобрать вид переменной, зато вы можете его задать вручную, к примеру, целочисленный int, или с плавающей точкой float.

int led = 13; // создали переменную “led” и присвоили ей значение «13»
Программа может определять состояние пина, как 1 или 0. 1 –это закономерная единица, если пин 13 равён 1, то напряжение на его физической ножке будет равняться напряжению питания микроконтроллера (для ардуино UNO и Nano – 5 В)
Запись цифрового сигнала выполняется командой digitalWrite (пин, значение), к примеру:
digitalWrite(led, high); //запись единицы в пин 13(мы его объявили выше) лог.

Единицы.
Как вы могли понять обращение к портам идёт по нумерации на плате, подобающей цифрой. Вот пример подобного предыдущему коду:
digitalWrite (13, high); // устанавливаем вывод 13 в едиицу

Часто популярная функция задержки времени вызывается командой delay(), значение которой задаётся в миллисекундах, микросекунды достигаются при помощи
delayMicroseconds() Delay (1000); //микроконтроллер будет ждать 1000 мс (1 секунду)
Настройки портов на выход и вход задаются в функции void setup<>, командой:
pinMode(NOMERPORTA, OUTPUT/INPUT); // доводы – наименование переменной или номер порта, вход или выход на выбор
Понимаем первую программу «Blink»
В качестве своеобразного «Hello, world» для микроконтроллеров считается программа мигания светоизлучающим диодом, давайте разберем её код:

Перед началом командой pinMode мы сказали микроконтроллеру назначить порт со светоизлучающим диодом на выход. Вы уже увидели, что в коде нет объявления переменной “LED_BUILTIN”, А дело все в том, что в платах Uno, Nano и прочих с завода к 13 выводу подключен встроенный светоизлучающий диод и он распаян на плате.

Он может быть применен вами для индикации в ваших проектах либо для самой простой проверки ваших программ-мигалок.
Дальше мы установили вывод к которому подпаян светоизлучающий диод в единицу (5 В), следующая строка заставляет МК обождать 1 секунду, а потом устанавливает пин LED_BUILTIN в значение нуля, ждет секунду и программа повторяется по кругу, подобным образом, когда LED_BUILTIN равён 1 – светоизлучающий диод(да и любая иная нагрузка подключенная к порту) включен, когда в 0 – выключен.

Все работает и все ясно? Тогда идём дальше!
Читаем значение с аналогового порта и применяем прочитанные данные

Микроконтроллер AVR Atmega328 имеет встроенный 10 битный аналогово цифровой преобразователь. 10 битный АЦП позволяет считывать значение напряжение от 0 до 5 вольт, с шажком в 1/1024 от всего размаха амплитуды сигнала (5 В).
Чтобы было понятнее рассмотрим ситуацию, допустим значение напряжения на аналоговом входе 2.5 В, значит микроконтроллер прочитает значение с пина «512», если напряжение равно 0 – «0», а если 5 В – (1023).

1023 – так как счёт идёт с 0, т.е. 0, 1, 2, 3 и т.д. до 1023 – всего 1024 значения.

Вот как это смотрится в коде, на примере типового скетча «analogInput»

УРОКИ ARDUINO: БАЗОВЫЙ УРОВЕНЬ

15.01.2019 конспект был обновлён: поправлено оформление и добавлена информация!
Ласкаво просим в цикл “Уроки Ардуино с нуля, для чайников и учащихся начальной школы”, это официальная страница проекта “Заметки Ардуинщика“.

Цикл охватывает все типовые операторы и функции Ардуино и возведен подобным образом, что от выпуска к выпуску у зрителя идёт плавное формирование “базы”, каждый дальнейший урок (видео-урок) содержит в себе информацию из предыдущих, другими словами уроки усложняются и становятся комплексными.
Урок #0 – Что такое Arduino?

Возможности

Урок #0.5 – первые шаги, подключение и настройка

Урок #1 – структура скетча и типы данных


Урок #1.1 – операции с переменными и константами

Урок #2 – работа с последовательным портом

Урок #3 – относительный оператор и оператор выбора


Урок #4 – функции времени: задержки и таймеры

Урок #5 – цифровые порты и подключение кнопки

Урок #6 – флажки и расширенное управление кнопкой

Урок #7 – правильное подключение светоизлучающих диодов

Урок #8 – подключение и управление реле

Урок #9 – подключение и управление мосфетом


Урок #10 – оцифровка аналогового сигнала


Урок #11 – ШИМ сигнал, плавное управление


Урок #12 – работа с циклами

alex-day › Блог › Arduino: Программирование без программирования

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

В таком случае идет речь о “зрительном программировании”, т.е. графических средах разрешающих не писать программы, а рисовать их.
Итак встречаем: Scratch, ArduBloсk и FLProg — три попытки сделать таким образом, чтобы программирование стало доступно даже дошкольникам 🙂
Scratch
Страница проекта — s4a.cat/
В 2003 году группа экспериментаторов под управлением Митчела Резника из MIT Media Lab решила сделать доступный язык программирования. В результате через 4 года возник Scratch — “среда для обучения учащихся начальной школы программированию”.
В данной обстановке можно создавать и играть с разными объектами, изменять их вид, перемещать их по экрану, ставить формы взаимные действия между ними. Это объектно-ориентированная среда, в основе которой лежит принцип конструктора LEGO и в которой программы собираются из многоцветных блоков-кирпичиков команд точно также, как собираются из многоцветных кирпичиков конструкторы Лего.
Среда русифицирована, для нее имеется множество руководств и руководств на русском. Проекты, создаваемые в Scratch, ложатся на ресурсе проекта scratch.mit.edu/, они все доступны для скачивания и применения.

Среда доступна для работы ребенка с молодого возраста, чуть-чуть умеющего читать и пользоваться мышью.
База среды – блоки команд, разделенные на группы: движение, внешность, звук, перо, контроль, сенсоры, операторы, переменные. Встроенная «рисовалка» позволяет изобразить необходимый объект, а блоки команд (их необходимо перетаскивать мышью) – задать программу действий, также с использованием условных операторов и циклов. Разумеется, у Scratch отсутствует масса функций настоящего языка программирования, но и имеющихся достаточно для создания очень непростых программ и игр.

В самой программе есть очень высока база уже готовых нарисованных зверей, домов, предметов и так дальше, а более того, в качестве образца можно применить любой из тысяч опубликованных на просторах интернета программ примеров, выполненных взрослыми и детьми.
В 2008 году возник проект Scratch для Arduino (в оригинале: Scratch For Arduino или сокращённо — S4A) — это модификация Scratch, которая дает возможность обычного зрительного программирования контроллера Arduino, а еще содержит новые блоки для управления датчиками и исполнительными механизмами, подключаемыми к Arduino.
S4A собой представляет скетч firmware s4a.cat/downloads/S4AFirmware15.ino, которая загружается в Ардуино, выполняет его исполнительным устройством, программа осуществляется на компьютере, Ардуино её физически делает, передавая сигналы на выходы платы. Ардуино в данном варианте через Serial-соединение получает от Скретча команды какие порты в какой уровень установить и передает на ПК измеренные уровни с входов.
Более детально можно выяснить либо на странице проекта, либо посмотрев видео от Амперки — www.youtube.com/playlist?…OzZQGDFdoRfldtqbmNU6a-PIp
ArduBloсk
Страница проекта -blog.ardublock.com/
Имен разработчиков и их локализации мне найти не получилось, но этот проект активно продвигается разработчиком плат sparkfun, по этой причине ИМХО это их проект.
Ardublock это графический язык программирования для Arduino, который предназначен для непрограммистов и обычный в применении. В отличие от Скретча ArduBloсk встраивается в среду Arduino IDE и генерит программый скетч, загружаемый в МК.

Причем, после закачки в платформу, исполнение кода произойдет независимо, т.е. не потребуется непосредственное управление с компьютера по проводной или беспроводной связи.
Среди руссоязычного сообщества проект известен благодаря учителю-энтузиасту из Лабинска Александру Сергеевичу Аликину — geektimes.ru/post/258834/
FLProg
Страница проекта — flprog.ru/
Проект развивается силами одного человека — Сергея Глушенко. Главная идея состоит в том, чтобы приспособить применяющиеся в области программирования промышленных контроллеров языки FBD и LAD к Ардуино.
FBD (Function Block Diagram) — графический язык программирования стандарта МЭК 61131-3. Программа образуется из перечня цепей, осуществляемых постепенно сверху вниз. При программировании применяются наборы библиотечных блоков.

Блок (компонент) — это подпрограмма, функция или практичный блок (И, ИЛИ, НЕ, триггеры, таймеры, счётчики, блоки обработки аналогового сигнала, математические операции и др.). Каждая отдельная цепь собой представляет выражение, составленное графически из индивидуальных элементов. К выходу блока подсоединяется еще один блок, организуя цепь.

В середине цепи блоки делаются строго в порядке их соединения. Результат вычисления цепи записывается во внутреннюю переменную либо подается на выход контроллера.
Ladder Diagram (LD, LAD, РКС) — язык релейной (лестничной) логики. Синтаксис языка хорош для замены логических схем, сделанных на релейной технике. Направлен на инженеров по автоматизации, работающих на промпредприятиях.

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

Протекание или отсутствие тока в данной цепи отвечает результату логической операции (истина — если ток течет; обман — если ток не течет). Важными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки.

Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной. Отличаются хорошо замкнутые и хорошо разомкнутые контактные детали, которые можно сравнить с хорошо замкнутыми и хорошо разомкнутыми кнопками в электроцепях.
Результатом работы FLProg считается конечный код, который вероятно будет подгружен в МК.
Это не все проекты, разрешающие осуществить зрительный способ программирования. Есть и прочие — возможно лучшие и более прогрессивные, но мало известные.

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

Вступление

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

Однако это не означает, что, если Вы не новичок в данном деле – Вы не сможете найти ничего для себя интересного.

Введение

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

Другими словами каждый может создать собственного робота не зависимо от знаний программирования и своих знаний.

Начало

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

В действительности их существует очень много, но мы будем программировать в необычной обстановке – Arduino IDE. Сам код будем писать на С++, адаптированным под Arduino. Скачать можно на официальном сайте.

Скетч (эскиз) – программа, написанная на Arduino. Давайте взглянем на структуру кода:

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

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

Функция loop() — циклическая. Она вызывается в бесконечном цикле на протяжении всего рабочего времени микроконтроллера.

Первая программа

Для того, чтобы лучше понять рабочий принцип платформы, давайте разработаем первую программу. Эту простейшую программу (Blink) мы выполним в 2-ух вариантах.

Разница между ними только в сборке.
Рабочий принцип данной программы довольно простой: светоизлучающий диод воспламеняется на 1 секунду и тухнет на 1 секунду.

Для первого варианта нам не понадобиться собирать макет. Так как в площадке Arduino к 13 пину подключён встроенный светоизлучающий диод.

Firmware Arduino

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

В разделе «Плата», подберёте Вашу плату. Это может быть Arduino Uno, Arduino Nano, Arduino Mega, Arduino Leonardo или остальные. Также в разделе «Порт» стоит предпочесть Ваш порт подсоединения (тот порт, к которому вы подключили Вашу платформу).

После данных действий, можете загружать скетч. Для этого нажмите на стрелочку или во вкладке «Скетч» подберёте «Загрузка» (также воспользуйтесь комбинированием клавиш “Ctrl + U”).

Firmware платы закончена удачно.

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

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

Есть у него две «лапки». Короткая – минус, длинная – плюс.

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

На этом у нас конец первой части. Благодарю за внимание.

Как выращивать шампиньоны на даче
Как заливают фундамент, видео
Вопросы о ремонте
0 0
Как лучше залить фундамент
Вопросы о ремонте
0 0
Комментариев нет, будьте первым кто его оставит

13 + 3 =