Оглавление
- Ардуино платы
- mBlock для программирования Arduino
- Оператор if…else
- Первые шаги в Tinkercad
- Особенности программирования плат Arduino
- Что можно изменить
- PSpice
- Подключение устройств
- Описание пинов Ардуино
- Что можно и чего нельзя
- Дистанционное управление «умным» домом
- Варианты питания Ардуино Уно
- Установка Ardublock
- Начало использования Arduino
- Альтернативы Ardublock
- О комментариях
- Аналоговые входы Arduino
- Теперь поинтереснее
- AutoCAD 123D
Ардуино платы
Arduino — небольшая плата, предназначенная в первую очередь для создания прототипов, которая воплощает любые идеи в жизнь. Используя Arduino, можно создать робота, электронный гаджет и многое другое. Нет предела! На фото ниже плата Ардуино Уно.
Плата Arduino Uno
Например, для запуска двигателей с заданными интервалами может использоваться плата Arduino, которая подключается к четырем двигателям (плюс к двигателю управления). Вы должны поручить Arduino управлять двигателями с использованием языка программирования, где вы пропишите шаги, а готовую программу загрузите в плату, чтобы проект заработал.
Микроконтроллер имеет собственный язык программирования, хотя этот язык состоит из функций, выведенных из C/C++.
Однако вы можете использовать другие языки для программирования Arduino, как правило, используя сторонний инструмент, такой как Snap4Arduino, ArduBlock и другие. Одной из таких программ является mBlock, которая позволяет использовать визуальный язык программирования Scratch с Arduino.
В этом уроке мы рассмотрим основы использования mBlock для программирования Arduino с Scratch.
mBlock для программирования Arduino
Отличительные особенности:
- Есть возможность подсоединения к микроконтроллеру и обновления его прошивки. Это выполняется в верхнем меню в программе. Такая функция значительно облегчает процесс – например, в S4A приходится скачивать специальные файлы, открывать их в Arduino IDE и загружать на сам контроллер. В mBlock все значительно проще.
- В верхнем меню есть возможность выбора нужной платы.
- Существует специальный ящик команд, который называется Робот. В нем содержатся различные блоки, помогающие считывать данные и управлять контроллером. Их можно комбинировать с командами из других ящиков.
- Присутствует возможность генерирования кода Ардуино и редактирования его в среде Arduino IDE. Код создается из виртуального скрипта. Таким образом, можно визуально оценить, как работает та или иная команда в программе, и изучить синтаксис языка программирования.
- Для работы существует специальный робот на базе Ардуино – mBot. К нему есть специальные обучающие материалы и инструкции, которые будут полезны новичкам любого возраста.
Основное отличие mBlock – простота и интерактивность программирования.
Оператор if…else
Расширенным оператором if является оператор if….else. Он обеспечивает выполнение одного фрагмента кода, когда условие выполняется (true), и выполнение второй фрагмент кода, если условие не выполняется (false). Синтаксис операторf if….else выглядит следующим образом:
if (условие) { // команда A } else { // команда B }
Команды «A» будут выполняться только в том случае, если условие выполнено, команда «B» будет выполняться, когда условие не выполнено. Одновременное выполнение команды «A» и «B» невозможно. Следующий пример показывает, как использовать синтаксис if…else:
Электрический паяльник с регулировкой температуры
Мощность: 60/80 Вт, температура: 200’C-450’C, высококачествен…
Подробнее
if (init()) { Serial.print(«ок»); } else { Serial.print(«ошибка»); }
Подобным образом можно проверить правильность выполнения функции и информировать об этом пользователя.
Обычной практикой является отрицание условия. Это связано с тем, что функция, которая выполнена правильно возвращает значение 0, а функция, которая отработала неверно по какой-то причине, возвращает ненулевое значение.
Объяснение такого «усложнения жизни» — просто. Если функция выполнена правильно, то это единственная информация, которая нам нужна. В случае же ошибки, стоит иногда понять, что пошло не так, почему функция не выполнена правильно. И здесь на помощь приходят числа, отличающиеся от нуля, т. е. с помощью цифровых кодов мы можем определить тип ошибки. Например, 1 — проблема с чтением какого-то значения, 2 — нет места в памяти или на диске и т. д.
В последнем измененном примере показано, как вызвать функцию, которая возвращает ноль при правильном выполнении:
if (!init()) { Serial.print(«ок»); } else { Serial.print(«ошибка»); }
Первые шаги в Tinkercad
Регистрация онлайн
Для начала работы необходимо получить эккаунт Autocad. Регистрация в Tinkercad абсолютно бесплатная. Зайдите на сайт и выполните простые шаги.
Tinkercad Dashboard – Начальная страница
Преодолев этап регистрации, мы попадем на главную страницу, на которой слева видим список сервисов и под ним – список проектов. Навигация очень проста, хотя некоторые ссылки выглядят не очень заметными, но разобраться, что к чему, можно легко. Выбрав элемент слева мы видим справа список соответствующих объектов. Для раздела Circuits, этими объектами будут схемы и скетчи.
Создаем и редактируем проект
Для создания проекта просто нажимаем кнопку «Создать проект», расположенную под списком проектов. Будет создан проект с названием типа Project N. Нажав на него, мы перейдем в режим просмотра списка схем, включенных в этот проект. Там же мы сможем изменить свойства проекта (включая название), нажав на соответствующий значок сразу под названием.
Добавляем новую схему Circuits
Создать новую схему в Tinkercad можно двумя способами:
- В меню слева выбрать Circuits и справа над списком схем выбрать команду Create new Circuit (на момент написания статьи все основные интерфейсные элементы не переведены). Новая схема будет создана вне какого-либо проекта.
- Создать схему в определенном проекте. Для этого надо сначала перейти в окно проекта, а затем нажать на кнопку «Create» сверху над списком. Появится перечень типов схем, мы выбираем Circuit. Созданная схема будет доступна в этом списке и в списке всех проектов в меню Circuits.
После выполнения команды вы сразу же перейдете в режим редактирования схемы, не вводя названия. Имя для схемы формируется автоматически.
- Чтобы изменить название схемы и отредактировать ее свойства нужно перейти в режим просмотра списка схем, навести на область с названием схемы и нажать на иконку «Настройки». Откроется окно, в котором вы сможете отредактировать параметры.
- Для удаления схемы надо в том же режиме выбрать в настройках команду «Удалить».
- Для просмотра краткой информации о схеме нужно просто щелкнуть на ней
- Для перехода в режим редактирования нужно навести курсор мышки и выбрать появившуюся команду «Изменить».
Все изменения в процессе редактирования схемы сохраняются автоматически.
Описание интерфейса Тинкеркад в режиме редактирования
Нажав на команду «Изменить» мы попадаем в режим редактирования схемы. С помощью удобного и простого графического интерфейса можно нарисовать желаемую электрическую схему. Мы можем выделять, переносить объекты, удалять их привычным всем способом с помощью мыши.
В режиме редактирования рабочее окно сервиса поделено на две половины: снизу расположена панель с закладками – это библиотека компонентов. Над ней находится область визуального редактирования схемы с панелью инструментов и пространством, на котором будет размещена схема.
На полосе инструментов в верхней части слева находятся основные команды:
- Повернуть элемент
- Удалить
- Масштабировать по размерам экрана
- Отмена
- Повтор
Кнопки в правой части панели:
- Отобразить панель программирования, и отладки
- Отобразить панель библиотеки компонентов
- Запустить симулятор схемы
- Экспорт в Eagle .brd
- Поделиться
В целом интерфейс достаточно прост, не перегружен лишними элементами и интуитивно понятен. Практически любые операции можно выполнить «на ощупь».
Особенности программирования плат Arduino
Именно язык, на котором базируется система, и является главной особенностью Ардуино программирования.
Ведь при том, что сама плата и работа с ней достаточно просты, с низким порогом вхождения, чтобы освоить низкоуровневый язык программирования и в совершенстве владеть им, потребуется несколько лет.
У программирования на Ардуино имеются как свои достоинства, так и недостатки, и вам стоит изучить обе стороны вопроса, чтобы понимать, с чем вы имеете дело и чего ожидать от микроконтроллера в принципе, во время работы с ним. Среди достоинств Ардуино, пользователи отмечают:
- Низкий порог вхождения. Этот пункт будет и в недостатках, так как из-за простоты системы и отсутствия требований к базису по программированию в сети гуляет множество библиотек, написанных ужасным образом. На то, чтобы разобраться, как они работают, уйдёт больше времени, чем на создание своей собственной. А стандартных функций от разработчиков не хватает для серьёзных задач.
- Обширное комьюнити. Это главное достоинство Ардуино перед его конкурентами, ведь вы найдёте пользователей, занимающихся созданием проектов на нём, как русскоязычных, так и англоязычных. Но если вы хотите получать действительно ценные советы и погрузиться в работу комьюнити, следует всё же изучить английский язык. Так как большая часть проблем, что вам встретятся, уже давно решены в Гугле, но, зачастую, ответы на английском.
- Большое количество библиотек, под разные случаи. Но, как уже описано чуть выше, у этого есть и свои недостатки.
Имеется у программирования на Ардуино и ряд весомых минусов:
- Низкая планка для вхождения превращает большую часть библиотек, коими наполнена сеть, в полностью бесполезный мусор. Ведь какие-то из них работают просто медленно и написаны без каких-либо знаний основ алгоритмизации, а часть – вовсе не работает, и непонятно, зачем авторы их создавали. Чтобы найти подспорье под конкретный проект, необходимо перелопатить несколько англоязычных форумов или же самостоятельно создать функции с нуля.
- Сложности программирования на С++. На деле – это один из сложнейших языков мультипарадигмального программирования, для создания прошивок и низкоуровневых задач. Однако, если вы имели опыт работы с ним и знаете хотя бы основные алгоритмы, а также работали хоть с одним другим мультипарадигмальным ЯП, тем более используя объектно-ориентированное программирование, вам будет значительно проще освоиться.
- Низкая скорость отклика самих чипов и их слабые характеристики. Да, микроконтроллеры Ардуино можно подстраивать под конкретную задачу, докупать компоненты и датчики, но это играет с ними злую шутку. Так как разработчики не знают, для чего будут использовать их детище, они усредняют все показатели, чтобы значительно уменьшить стоимость конечного продукта. В результате люди, создающие простейшие поделки, переплачивают за ненужную мощность, а тем, кто занимается робототехникой или автоматизацией каких-то процессов, приходится докупать и паять множество дополнительных плат.
Как вы можете заметить, Ардуино имеет множество нюансов, и не столь дружелюбна для новичков, как выглядит на первый взгляд. С другой стороны, если вы имеете малейший опыт работы с языками программирования, вам будет куда проще освоиться.
Что можно изменить
Давайте пользуясь только полученными знаниями сделаем несколько вариаций программы, чтобы лучше понять
принцип.
Вы можете подключить внешний светодиод или другое устройство, которым нужно «мигать» на другой пин.
Например, на 5-й. Как в этом случае должна измениться программа? Мы должны всюду, где обращались к 13-му
пину заменить номер на 5-й:
void setup() { pinMode(5, OUTPUT); } void loop() { digitalWrite(5, HIGH); delay(100); digitalWrite(5, LOW); delay(900); }
Компилируйте, загружайте, проверяйте.
Что нужно сделать, чтобы светодиод мигал 2 раза в секунду? Уменьшить время сна так, чтобы в сумме получилось
500 мс:
void setup() { pinMode(5, OUTPUT); } void loop() { digitalWrite(5, HIGH); delay(50); digitalWrite(5, LOW); delay(450); }
Как сделать так, чтобы светодиод при каждом «подмигивании» мерцал дважды? Нужно поджигать его дважды с небольшой
паузой между включениями:
void setup() { pinMode(5, OUTPUT); } void loop() { digitalWrite(5, HIGH); delay(50); digitalWrite(5, LOW); delay(50); digitalWrite(5, HIGH); delay(50); digitalWrite(5, LOW); delay(350); }
Как сделать так, чтобы в устройстве были 2 светодиода, которые мигали бы каждую секунду поочерёдно? Нужно
общаться с двумя пинами и работать в то с одним, то с другим:
void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop() { digitalWrite(5, HIGH); delay(100); digitalWrite(5, LOW); delay(900); digitalWrite(6, HIGH); delay(100); digitalWrite(6, LOW); delay(900); }
Как сделать так, чтобы в устройстве были 2 светодиода, которые переключались бы на манер железнодорожного светофора:
горел бы то один то другой? Нужно просто не выключать горящий светодиод тут же, а дожидаться момента переключения:
void setup() { pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop() { digitalWrite(5, HIGH); digitalWrite(6, LOW); delay(1000); digitalWrite(5, LOW); digitalWrite(6, HIGH); delay(1000); }
Можете проверить другие идеи самостоятельно. Как видите, всё просто!
PSpice
Каждый студент, занимающийся электротехникой и электроникой, должен был столкнуться с PSpice в течение месяцев, потраченных на изучение основ проектирования схем и программирования. Но для тех кто не знает что такое PSpice — это интуитивный симулятор, который можно использовать для моделирования Arduino из-за множества функций, интегрированных в приложение. PSpice поддерживается операционной системой Windows и Linux и поставляется в разных модулях или типах.
Студенты могут использовать PSpice Lite, который абсолютно свободен, чтобы изучить основы программирования Ардуино, в то время как компании, преподаватели и другие эксперты могут использовать платный PSpice. PSpice в настоящее время используется в различных отраслях промышленности — автомобилестроении, образовании, энергоснабжении и т.д.
Подключение устройств
Подключение любых устройств к плате осуществляется путем присоединения к контактам, расположенным на плате контроллера: одному из цифровых или аналоговых пинов или пинам питания. Простой светодиод можно присоединить, используя два контакта: землю (GND) и сигнальный (или контакт питания).
Самый простой датчик потребует задействовать минимум три контакта: два для питания, один для сигнала.
При любом варианте подключения внешнего устройства следует помнить, что использование платы в качестве источника питания возможно только в том случае, если устройство не потребляет больше разрешенного предельного тока контроллера.
Видео с инструкциями:
Описание пинов Ардуино
pinMode
- Пины 0 и 1 – контакты UART (RХ и TX соответственно) .
- Пины c 10 по 13 – контакты SPI (SS, MOSI, MISO и SCK соответственно)
- Пины A4 и A5 – контакты I2C (SDA и SCL соответственно).
Цифровые пины платы Uno
Пины с номерами от 0 до 13 являются цифровыми. Это означает, что вы можете считывать и подавать на них только два вида сигналов: HIGH и LOW. С помощью ШИМ также можно использовать цифровые порты для управления мощностью подключенных устройств.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK)
К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino) |
Аналоговые пины Arduino Uno
Аналоговые пины Arduino Uno предназначены для подключения аналоговых устройств и являются входами для встроенного аналого-цифрового преобразователя (АЦП), который в ардуино уно десятиразрядный.
Пин | Адресация в скетче | Специальное назначение |
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Дополнительные пины на плате
- AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
- RESET – подача низкого сигнала на этом входе приведет к перезагрузке устройства.
Что можно и чего нельзя
Ардуино работает на одноядерном и не шибко шустром процессоре. Его тактовая частота — 16 мегагерц, то есть 16 миллионов процессорных операций в секунду. Это не очень быстро, плюс ядро только одно, и оно исполняет одну команду за другой.
Вот какие ограничения это на нас накладывает.
Нет настоящей многозадачности. Можно симулировать многозадачность с помощью приёма Protothreading, но это скорее костыль. Нельзя, например, сказать: «Когда нажмётся такая-то кнопка — сделай так». Вместо этого придётся в основном цикле писать проверку: «А эта кнопка нажата? Если да, то…»
Нет понятия файлов (без дополнительных примочек, библиотек и железа). На контроллер нельзя ничего сохранить, кроме управляющей им программы. К счастью, есть платы расширения, которые позволяют немножко работать с файлами на SD-карточках.
Аналогично с сетью: без дополнительных плат и библиотек Ардуино не может ни с чем общаться (кроме как включать-выключать электричество на своих выходах).
Полегче со сложной математикой: если вам нужно что-то сложное типа тригонометрических функций, будьте готовы к тому, что Ардуино будет считать их довольно медленно. Для вас это одна строчка кода, а для Ардуино это тысячи операций под капотом. Пощадите.
Отчёты? Ошибки? Только при компиляции. У Ардуино нет встроенных средств сообщить вам, что ему нехорошо. Если он завис, он не покажет окно ошибки: во-первых, у него нет графического интерфейса, во-вторых — экрана. Если хотите систему ошибок или отчётность, пишите её
Если серьёзно, то перед заливом программы на контроллер компилятор проверит код и найдёт в нём опечатки или проблемы с типами данных. Но на этом всё: если у вас случайно получилась бесконечная петля в коде или при каких-то обстоятельствах вы повесите процессор делением на ноль — жмите перезагрузку и исправляйте код.
Дистанционное управление «умным» домом
Для подключения платы к интернету, понадобится:
- Wi-Fi-адаптер, настроенный на прием и передачу сигнала через маршрутизатор;
- или подключенный через Ethernet кабель Wi-Fi роутер.
Также, есть вариант дистанционного управления по блютуз. Соответственно, к плате должен быть подключен Bluetooth модуль.
Есть несколько вариантов управления умным домом Arduino: с помощью приложения для смартфона или через веб. Рассмотрим каждое подробнее.
Приложения управления
Так как данная система-конструктор – не закрытая экосистема, то и приложений, реализованных для нее очень много. Они отличаются друг от друга не только интерфейсом, но и выполнением различных задач.
Blynk
Приложение на андроид и iOS с отличным дизайном, позволяет разрабатывать проекты, имеющие напрямую доступ к триггеру событий, на плате Ардуино. Но для работы приложения нужно интернет подключение, иначе взаимодействовать с ним не возможно.
Virtuino
Крутое бесплатное приложение на Android, позволяющее совмещать проекты в одно целое и управлять с помощью Wi-Fi или Bluetooth сразу несколькими платами.
Разрешает создавать визуальные интерфейсы для светодиодов, переключателей, счетчиков, приборов аналоговой схематехники. В нем есть учебные материалы и библиотека знаний о процессе работы с системой.
Bluino Loader – Arduino IDE
Приложение для телефона, представляет собой программную среду для кодирования Arduino. С его помощью можно быстро и легко скомпилировать код в файл, а затем отправить по OTG-переходнику на плату.
Arduino Bluetooth Control
Приложение контролирует контакты Arduino и управляет основными функциями по Блютузу. Но, программа не направлена на удаленное управление, только мониторинг.
RemoteXY: Arduino Control
С помощью приложения пользователь может создать свой собственный интерфейс управления платой. Подключение происходит с помощью Wi-Fi, Блютуз или интернет, через облачный сервер.
Bluetooth Controller 8 Lamp
Созданное с помощью Bluetooth-модулей HC-05, HC-06 и HC-07 приложение, обеспечивает восьмиканальный контроль. Таким способом достигается контроль и регулирование работы Ардуино, в соответствии с каждым из 8 светодиодов.
BT Voice Control for Arduino
Приложение специально заточено под дистанционное управление данными с ультразвукового датчика, подключенного по блютуз через Arduino. Реализуется подключения через модуль HC-05.
Подключившись, ультразвуковой датчик сможет передавать информацию о расстоянии до объекта, которая отобразится в интерфейсе приложения на телефоне.
IoT Wi-Fi контроллер
Приложение с интерфейсом, информирующем о конфигурации каждого входа/выхода в плате Arduino. В утилите можно переключать в реальном времени GPIO и показывать значение АЦП.
Веб-клиент
Управлять удаленно платой умного дома можно, разместив получение и обработку данных умного дома на веб-сервере. Естественно, сервер для умного дома Ардуино нужно создавать самостоятельно.
Для этих целей понадобится Arduino Ethernet Shield – сетевое расширение для пинов Ардуино Уно, позволяющее добавить разъем RJ-45 для подключения к сети.
При удаленном подключении, необходимо обеспечить внешнее питание платы не от USB.
Затем, подключите по USB плату к компьютеру, а по Ethernet плату к роутеру, которой раздает интернет компьютеру. При правильном установлении соединения, вы увидите зеленый свечение на порту.
После этого, нужно использовать библиотеки шилдов Ethernet и в среде разработки IDE написать код для создания сервера и отправки данных на сервер. Пример самодельного сервера неплохо описан в данной инструкции.
Уведомления по SMS
С помощью подключаемой библиотеки GSM в Arduino IDE можно:
- Работать с голосовыми вызовами.
- Получать и отправлять СМС.
- Подключаться к Интернету через GPRS.
Работает схема через специальную плату расширения GSM, содержащую специальный модем.
О создании универсальной сигнализации на Arduino, с отправкой СМС уведомления на смартфон можно узнать из соответствующей видеоинструкции.
Варианты питания Ардуино Уно
Рабочее напряжение платы Ардуино Уно – 5 В. На плате установлен стабилизатор напряжения, поэтому на вход можно подавать питание с разных источников. Кроме этого, плату можно запитывать с USB – устройств. Источник питания выбирается автоматически.
- Питание от внешнего адаптера, рекомендуемое напряжение от 7 до 12 В. Максимальное напряжение 20 В, но значение выше 12 В с высокой долей вероятности быстро выведет плату из строя. Напряжение менее 7 В может привести к нестабильной работе, т.к. на входном каскаде может запросто теряться 1-2 В. Для подключения питания может использоваться встроенный разъем DC 2.1 мм или напрямую вход VIN для подключения источника с помощью проводов.
- Питание от USB-порта компьютера.
- Подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.
Пины питания
- 5V – на этот пин ардуино подает 5 В, его можно использовать для питания внешних устройств.
- 3.3V – на этот пин от внутреннего стабилизатора подается напряжение 3.3 В
- GND – вывод земли.
- VIN – пин для подачи внешнего напряжения.
- IREF – пин для информирования внешних устройств о рабочем напряжении платы.
Установка Ardublock
Для начала работы с программой необходимо ее установить. Для этого выполним несколько простых действий, алгоритм таков:
- Открыть Arduino IDE/Menu /Arduino/ Preferences, там вы найдете строку Sketchbook location
- Создайте папку “tools/ArduBlockTool/tool” внутри папки “Arduino” в строке “Sketch location” и скопируйте архив “ardublock-all.jar” в папку “tool”. Например, если имя пользователя “user”, то путь в среде Windows будет таким: “C:\Users\user\Documents\Arduino”
- Перезапустите Arduino IDE и у Вас должен появиться пункт “ArduBlock” в меню “Tool”
При установки на Mac для пользователя user путь будет следующим: “/Users/user/Documents/Arduino/tools/ArduBlockTool/tool/ardublock-all.jar”
При установке на Linux: “/home/user/sketchbook/tools/ArduBlockTool/tool/ardublock-all.jar”
Начало использования Arduino
Если вы никогда ранее не программировали, и это ваш первый опыт, то программирование микроконтроллеров Arduino пойдёт куда проще, если вы начнёте с основ.
Конечно, когда в планах у вас нет никаких сложных проектов, можете работать на готовых библиотеках и параллельно разбирать, из чего состоят их функции. Это один из хороших способов обучения, но тогда стоит искать наборы функций, которые писались профессионалами, чтобы быть уверенным в их правильности.
Иначе вы можете увидеть неправильное решение задачи и, в результате, применять те в своих проектах.
Но куда лучше начать с основ и посвятить хотя бы неделю освоению алгоритмизации и научиться разбивать свои проекты на блоки, а те – уже на конкретные шаги. Подобное построение блок-схем вам не раз пригодится в будущем.
Когда вы изучите весь базис, можно переходить к практике и самообучению на С++, подойдут любые простейшие проекты или заготовленные в интернете задачи.
На этом этапе вашей целью станет понять основные парадигмы и научиться их использовать, а также изучить возможности языка, чтобы вы чётко знали, что он может, и могли здраво оценить реализуемость ваших проектов.
Альтернативы Ardublock
Хотя Ardublock может показаться чем-то новым и уникальным для Arduino, правда в том, что это не единственная программа или инструмент, который мы должны выполнять для визуального программирования. Существует несколько инструментов, которые ориентированы на визуальное программирование до такой степени, что все альтернативы Ardublock — это уникальные программы, а не расширения или плагины для Arduino IDE.
Первая из этих альтернатив называется Minibloq. Minibloq — это полная программа, ориентированная на визуальное программирование.Следовательно, его экран разделен на три части: часть с блоками, которые нужно создать, другая часть, куда мы будем перемещать блоки, которые мы хотим использовать в программе, и третья часть, которая покажет код, который мы создадим, для более продвинутые пользователи. Миниблок можно получить через это ссылка.
Второй инструмент называется Scratch для Arduino. Этот инструмент пытается адаптировать детскую программу Scratch к любому уровню и с той же философией создавать программы. Scratch для Arduino — это полноценная программа, так сказать вилка Scratch.
Третий из инструментов еще недостаточно хорошо освоен, но это многообещающий инструмент в инструментах визуального программирования. Этот инструмент называется Модкит, инструмент который родился на Kickstarter, но постепенно развивается и отлично развивается. Отличие от других программ может больше специализируется на начинающих пользователях, чем на продвинутых.. Наконец, другой альтернативой Ardublock могло бы быть традиционное использование Arduino IDE, альтернативы, которая не является визуальной и будет доступна только самым опытным программистам.
О комментариях
Одно из правил качественного программирования: «пишите код так, чтобы он был настолько понятным, что не
нуждался бы в пояснениях». Это возможно, но не всегда. Для того, чтобы пояснить какие-то не очевидные
моменты в коде его читателям: вашим коллегам или вам самому через месяц, существуют так называемые
комментарии.
Это конструкции в программном коде, которые полностью игнорируются компилятором и имеют значение только
для читателя. Комментарии могут быть многострочными или однострочными:
/* Функция setup вызывается самой первой, при подаче питания на Arduino А это многострочный комментарий */ void setup() { // устанавливаем 13-й пин в режим вывода pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(100); // спим 100 мс digitalWrite(13, LOW); delay(900); }
Как видите, между символами и можно писать сколько угодно строк комментариев.
А после последовательности комментарием считается всё, что следует до конца строки.
Итак, надеемся самые основные принципы составления написания программ стали понятны.
Полученные знания позволяют программно управлять подачей питания на пины Arduino по
определённым временны́м схемам. Это не так уж много, но всё же достаточно для первых
экспериментов.
Аналоговые входы Arduino
Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.
Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:
Подключение фоторезистора к Ардуино
В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:
Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.
Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.
Теперь поинтереснее
Давайте объединим потенциометр и диод. И у нас выйдет плавное управление яркостью светодиода. Подключаем всё по следующей схеме:
После подключения давайте напишем код к нашему импровизированному светильнику:
int pot = A0; // потенциометр подключён к А0 int val; // переменная для хранения значений int LED = 3; // светодиод подключён к 3 пину void setup() { Serial.begin(9600); // настраиваем скорость обмена данных на 9600 бит в секунду pinMode(pot, INPUT); pinMode(LED, OUTPUT); } void loop() { val = analogRead(pot); // считываем данные с потенциометра Serial.println(val); // с новой строки выводим значения val = val / 4; // делим значения с потенциометра на 4 analogWrite(LED, val); // выводим значение переменной, которое получаем после деления на 4 }
Короткие объяснения по коду. Деление на 4 необходимо для следующего. Потенциометр может принимать значения от 0 до 1023. А вот аналоговый вход/выход передаёт значения только в диапазоне от 0 до 255. Поэтому деление нам в данном случае просто необходимо.
AutoCAD 123D
Перейти на сайт Autodesk
Роль Autodesk в разработке электрических схем на протяжении многих лет нельзя переоценить. 123D — это еще одно из предложений компании Autodesk совместимых с Arduino
Во-первых, важно отметить, что 123D — это приложение САПР, которое имеет специальную функцию для проектирования схем. Поэтому при загрузке бесплатного приложения вы получите как приложение САПР, так и симулятор Ардуино
Как и другие симуляторы, упомянутые выше, 123D — действительно отличный инструмент для изучения основ программирования Arduino и проектирования схем. Приложение работает на Windows и экосистеме Android. Оно также имеет очень большую базу ресурсов и поддержку (как и большинство продуктов Autodesk) для разработки схем или обучения с нуля. Это приложение настоятельно рекомендуется большинству пользователей.