Что можно сделать на Arduino — ТОП 17 проектов для начинающих


Уроки
На чтение 7 мин Просмотров 6.4к. Опубликовано 14.01.2023
Основы Ардуино
Самый популярный вопрос « Что собрать на Ардуино ?» Ардуино – платформа, позволяющая сделать самому различные виды устройств.
Самые сложные устройство, которые продаются в магазинах техники и не только, стоящие десятки тысяч рублей, можно сделать потратив несколько тысяч. К примеру, все слышали о летающем дроне, роботах на дистанционном управлении, погодных станциях, которые измеряют влажность, давление, температуру, углекислый газ и другие параметры. И все эти устройства можно сделать самому в домашних условиях не имея большое количество навыков. Причем это самый минимум возможностей системы Ардуино. Данная система управляет всеми процессами, происходящими в устройстве.

Проекты на Ардуино
Разберём несколько конкретных примеров, которые можно сделать с помощью Ардуино.
| Устройства на Ардуино | |
| Часы | Понадобится не так ж и много комплектующих. Прошиваем плату, далее спаиваем все нужные элементы и собираем вместе, в том числе сразу же с Ардуино. Создаём корпус, встраиваем устройство в корпус. |
| Увлажнитель воздуха | Закупаем все составляющие, прошиваем плату Ардуино, собираем всё вместе, спаиваем, придумываем как это всё будет выглядеть, собираем до конца. Можно усовершенствовать данное устройство, добавить датчик влажности, перепрошиваем плату уже с измененным кодом и теперь устройство распыляет воду автоматически, когда влажность воздуха маленькая. |
| Руль для компьютера | Все уже видели руль для игр в гонки на ПК. И даже такое устройство можно создать самому, хотя в магазинах техники оно стоит достаточно дорого. Делается механизм педалей и руля, соединяется всё проводами и конечно же соединяется всё с Ардуино. Устройство подключается к компьютеру и всё работает. |
| Бегущая строка | Делается также не очень сложно. Покупается дисплей и остальные комплектующие, в том числе плата Ардуино. Плата будет регулировать подачу света на светодиоды и осуществлять нужный порядок свечения. |
Список проектов для начинающих
С помощью Ардуино можно собрать для начинающих большое количество устройств, приведём наиболее распространенные примеры.
Мигающий диод – самый начальный проект, с помощью которого делают введение в общий курс программы Ардуино. Самый простой проект. Применение можно найти с лёгкостью и уже потом усовершенствовать, добавить компонентов и устройство будет в разы усовершенствованно по сравнению с первоначальной версией. Настраивается скорость включения и выключения (мигания) светодиода.
- Светодиодный куб – также устройство созданное на основе диодов, здесь Ардуино управляет их включением и выключением, а также одновременным горением. Переключаются режимы такого устройства, с помощью кнопки, которая тоже подключена к плате Ардуино. Для создания такого куба используется шестьдесят четыре светодиода, которые соединяются вместе, а также четыре резистора. Также понадобится макетная плата, источник питания от девяти вольт и проводники.
- Теплица для растений – Ардуино можно разместить в теплице с растениями. Так она поможет следить за условиями содержания растений. Например, поставив в теплицу датчик влажности, подключив его, мы можем отслеживать влажность. Подключаем к этой системе распылитель воды, допустим ультразвуковой. Меняем код, на то чтобы при определенном значении распылитель начинал свою работу, при достижении нужной влажности он отключался. Можно добавить также и датчик температуры, подключить нагреватель или охладитель по такому же принципу.

- Bluetooth-колонка – распространенный проект для Ардуино, не требует специальных знаний. Добавляем динамики, модули необходимые для работы нашего устройства, соединяем всё вместе, объединяем всё в корпус и готово.
- Термометр – такое устройство можно сделать и на Ардуино добавив дисплей для удобного отображения температуры.
- Светильник – устройство, которое можно использовать как в доме, так и на улице. Устанавливаем определенное время в скетче и согласно этому времени устройство будет включаться самостоятельно, через определенное, установленное время прибор выключится. Сюда можно добавить и таймер, а так же различные датчики. Светильник можно сделать и с реакцией на свет. К примеру, устанавливаем датчик света, как только он засекает свет, сам светильник самостоятельно, без какиз либо действий выключается. Когда начинается вечер, темнеет, светильник автоматически включается. Удобное приспособление, которое можно сделать самому.

- Повербанк – аккумуляторное устройство, применяющееся везде, можно брать с собой или заряжаться от него дома. Добавляем аккумулятор, подсоединяем к плате Ардуино, которая будет регулировать подачу напряжения на выход.
- Ёлочный шар с подсветкой – берётся специальная плата, на которой размещены SMT диоды. Подключается данная установка к Ардуино и управляется с помощью записанного на него скетча, где прописывается нужный алгоритм свечения.
- Счётчик входящих людей – такое устройство думаю каждый встречал в супермаркетах и обычных магазинах. На входе стоят специальные датчики, которые определяют проход человека во внутрь зала, тем самым подсчитывая количество посетителей в день. Такой можно сделать самостоятельно с помощью платы Ардуино. Подключаем специальные датчики, счётчики к плате и подключаем внешнее питание. Устанавливаем на нужное место и всё готово. При необходимости можно соединить с предыдущими описанными устройствами, например чтобы свет включался, когда человек проходил в торговый зал или дом.
Даже неопытному новичку будет не сложно разобраться с процессом работы платы Ардуино, можно начать даже с маленькой платы Ардуино Nano, для всех этих устройств хватит даже её. Причём все перечисленные устройства в этом списке имеют широкое назначение и их можно доработать. Благо в Интернете всего этого достаточно.
Проекты, которые можно сделать для дома
Сделать на Ардуино для дома можно также большое число устройств:
- Контроллер света – подключаются диоды к плате Ардуино, загружается прошивка. Это всё тестируется и добавляем к этой схеме пульт, который будет управлять нашим устройством.
- Подсветка лестницы – если в вашем доме есть лестница, то это хорошая идея для вашего дома. Берётся необходимое количество светодиодных лент (соответственно для каждой ступеньки) и объединяются они с помощью Ардуино, которое осуществляет управление их работой. В таком устройстве буде три режима, а так же добавив датчик, ленты будут самостоятельно регулировать яркость в зависимости от яркости в комнате.

- Робот пылесос – на базе Ардуино можно сделать даже его. По характеристикам он не будет отличаться от покупного, хотя по цене будет отличаться значительно. Нужно закупить все составляющие детали и спаять их вместе, соединив с платой. В основном, в нём содержатся датчики, которые определяют положение объектов и самого пылесоса в пространстве.
- Система охлаждения компьютера – с помощью такой установки можно осуществлять контроль за нагревом частей ПК. С помощью датчиков, плата получает информацию о температуре составных частей компьютера. Подключается к кулеру и к остальным охлаждающим компьютер частям. Плата, замечая нагрев охлаждающей жидкости, автоматически включает работу охлаждающих элементов.

- Будильник со светом – подключается таймер, реле с переключателем, свет, которым будет управлять Ардуино и другие компоненты. Всё соединяется с в одну систему. Выставляется в скетче время, на котором будет загораться свет и будить вас.
- Домашняя метеостанция – ставятся различные датчики, в том числе датчик влажности, часы-таймер, датчик температуры, датчик атмосферного давления, датчик углекислого газа и прогноз осадков. Берется дисплей, плата Ардуино, всё соединяется вместе с помощью проводов, добавляется кнопка и разъём для питания от сети. Есть несколько режимов на дисплее, где отображается даже прогноз погоды.
- Система автополива – сделать на базе Ардуино можно и такое устройство (причем самая простая система для новичков) берется система управления, от которой идут провода прямо к системе полива, от которой наливается вода. На дисплее показывается влажность в различных горшках с растениями.
- Измеритель уровня шума – можно сделать и такой прибор, к Ардуино нужно подключить датчик и индикаторы, которые будут показывать насколько шумно в помещении.
Как уже видно, существует большое количество устройств для дома, которые можно сделать на базе Ардуино. В открытом доступе содержится много схем, библиотек, готовых скетчей, с помощью которых можно самостоятельно что-то сделать. Даже сами платы Ардуино выполнены в разных форматах, которых достаточно много для разнообразия ваших устройств.
Заключение
Так мы можем заметить, что даже стартовый набор Ардуино позволяет делать вещи, которые продаются в магазинах по достаточно большим ценам. Освоив систему Ардуино ещё лучше, можно изобретать устройства самому, разобравшись как всё работает. Можно с лёгкостью соорудить устройства для дома, для сада, для работы даже неопытным новичкам. Для этого потребуется только интерес и несущественные вложения в комплектующие для вашего устройства. Сама плата Ардуино, стоит относительно не дорого.
Аrduino для начинающих
В этой статье я решал собрать полное пошаговое руководство для начинающих Arduino. Мы разберем что такое ардуино, что нужно для начала изучения, где скачать и как установить и настроить среду программирования, как устроен и как пользоваться языком программирования и многое другое, что необходимо для создания полноценных сложных устройств на базе семейства этих микроконтроллеров.
Тут я постараюсь дать сжатый минимум для того, что бы вы понимали принципы работы с Arduino. Для более полного погружения в мир программируемых микроконтроллеров обратите внимание на другие разделы и статьи этого сайта. Я буду оставлять ссылки на другие материалы этого сайта для более подробного изучения некоторых аспектов.
Что такое Arduino и для чего оно нужно?
Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!
С помощью ардуино можно обучаться программированию, электротехнике и механике. Но это не просто обучающий конструктор. На его основе вы сможете сделать действительно полезные устройства.
Начиная с простых мигалок, метеостанций, систем автоматизации и заканчивая системой умного дома, ЧПУ станками и беспилотными летательными аппаратами. Возможности не ограничиваются даже вашей фантазией, потому что есть огромное количество инструкций и идей для реализации.

Стартовый набор Arduino
Для того что бы начать изучать Arduino необходимо обзавестись самой платой микроконтроллера и дополнительными деталями. Лучше всего приобрести стартовый набор Ардуино, но можно и самостоятельно подобрать все необходимое. Я советую выбрать набор, потому что это проще и зачастую дешевле. Вот ссылки на лучшие наборы и на отдельные детали, которые обязательно пригодятся вам для изучения:
| Базовый набор ардуино для начинающих: | Купить |
| Большой набор для обучения и первых проектов: | Купить |
| Набор дополнительных датчиков и модулей: | Купить |
| Ардуино Уно самая базовая и удобная модель из линейки: | Купить |
| Беспаечная макетная плата для удобного обучения и прототипирования: | Купить |
| Набор проводов с удобными коннекторами: | Купить |
| Комплект светодиодов: | Купить |
| Комплект резисторов: | Купить |
| Кнопки: | Купить |
| Потенциометры: | Купить |
Среда разработки Arduino IDE
Для написания, отладки и загрузки прошивок необходимо скачать и установить Arduino IDE. Это очень простая и удобная программа. На моем сайте я уже описывал процесс загрузки, установки и настройки среды разработки. Поэтому здесь я просто оставлю ссылки на последнюю версию программы и на статью с подробной инструкцией.
Язык программирования Ардуино
Когда у вас есть на руках плата микроконтроллера и на компьютере установлена среда разработки, вы можете приступать к написанию своих первых скетчей (прошивок). Для этого необходимо ознакомиться с языком программирования.
Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:
- После каждой инструкции необходимо ставить знак точки с запятой (;)
- Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
- Так же необходимо указывать тип данных перед объявлением переменной.
- Комментарии обозначаются: // Строчный и /* блочный */
Подробнее о типах данных, функциях, переменных, операторах и языковых конструкциях вы можете узнать на странице по программированию Arduino. Вам не нужно заучивать и запоминать всю эту информацию. Вы всегда можете зайти в справочник и посмотреть синтаксис той или иной функции.
Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().
Функция setup
Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства. Обычно в этой функции декларируют режимы пинов, открывают необходимые протоколы связи, устанавливают соединения с дополнительными модулями и настраивают подключенные библиотеки. Если для вашей прошивки ничего подобного делать не нужно, то функция все равно должна быть объявлена. Вот стандартный пример функции setup():
void setup() < Serial.begin(9600); // Открываем serial соединение pinMode(9, INPUT); // Назначаем 9 пин входом pinMode(13, OUTPUT); // Назначаем 13 пин выходом >
В этом примере просто открывается последовательный порт для связи с компьютером и пины 9 и 13 назначаются входом и выходом. Ничего сложного. Но если вам что-либо не понятно, вы всегда можете задать вопрос в комментариях ниже.
Функция loop
Функция loop() выполняется после функции setup(). Loop в переводе с английского значит «петля». Это говорит о том что функция зациклена, то есть будет выполняться снова и снова. Например микроконтроллер ATmega328, который установлен в большинстве плат Arduino, будет выполнять функцию loop около 10 000 раз в секунду (если не используются задержки и сложные вычисления). Благодаря этому у нас есть большие возможности.
Макетная плата Breadbord
Вы можете создавать простые и сложные устройства. Для удобства я советую приобрести макетную плату (Breadbord) и соединительные провода. С их помощью вам не придется паять и перепаивать провода, модули, кнопки и датчики для разных проектов и отладки. С беспаечной макетной платой разработка становится более простой, удобной и быстрой. Как работать с макетной платой я рассказывал в этом уроке. Вот список беспаечных макетных плат:
| Макетная плата на 800 точек с 2 шинами питания, платой подачи питания и проводами: | Купить |
| Большая макетная плата на 1600 точек с 4 шинами питания: | Купить |
| Макетная плата на 800 точек с 2 шинами питания: | Купить |
| Макетная плата на 400 точек с 2 шинами питания: | Купить |
| Макетная плата на 170 точек: | Купить |
| Соединительные провода 120 штук: | Купить |
Первый проект на Arduino
Давайте соберем первое устройство на базе Ардуино. Мы просто подключим тактовую кнопку и светодиод к ардуинке. Схема проекта выглядит так:

Обратите внимание на дополнительные резисторы в схеме. Один из них ограничивает ток для светодиода, а второй притягивает контакт кнопки к земле. Как это работает и зачем это нужно я объяснял в этом уроке.
Для того что бы все работало, нам надо написать скетч. Давайте сделаем так, что бы светодиод загорался после нажатия на кнопку, а после следующего нажатия гас. Вот наш первый скетч:
// переменные с пинами подключенных устройств int switchPin = 8; int ledPin = 11; // переменные для хранения состояния кнопки и светодиода boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() < pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); >// функция для подавления дребезга boolean debounse(boolean last) < boolean current = digitalRead(switchPin); if(last != current) < delay(5); current = digitalRead(switchPin); >return current; > void loop() < currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) < ledOn = !ledOn; >lastButton = currentButton; digitalWrite(ledPin, ledOn); >
В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть целый урок на моем сайте. Обязательно ознакомьтесь с этим материалом.
ШИМ Arduino
Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.
В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в этом разделе.
Для использования ШИМ в Arduino есть функция analogWrite(). Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:
// Светодиод подключен к 11 пину int ledPin = 11; void setup() < pinMode(ledPin, OUTPUT); >void loop() < for (int i = 0; i < 255; i++) < analogWrite(ledPin, i); delay(5); >delay(1000); for (int i = 255; i > 0; i--) < analogWrite(ledPin, i); delay(5); >>
Аналоговые входы Arduino
Как мы уже знаем, цифровые пины могут быть как входом так и выходом и принимать/отдавать только 2 значения: HIGH и LOW. Аналоговые пины могут только принимать сигнал. И в отличии от цифровых входов аналоговые измеряют напряжение поступающего сигнала. В большинстве плат ардуино стоит 10 битный аналогово-цифровой преобразователь. Это значит что 0 считывается как 0 а 5 В считываются как значение 1023. То есть аналоговые входы измеряют, подаваемое на них напряжение, с точностью до 0,005 вольт. Благодаря этому мы можем подключать разнообразные датчики и резисторы (терморезисторы, фоторезисторы) и считывать аналоговый сигнал с них.
Для этих целей в Ардуино есть функция analogRead(). Для примера подключим фоторезистор к ардуино и напишем простейший скетч, в котором мы будем считывать показания и отправлять их в монитор порта. Вот так выглядит наше устройство:

В схеме присутствует стягивающий резистор на 10 КОм. Он нужен для того что бы избежать наводок и помех. Теперь посмотрим на скетч:
int sensePin = 0; // Пин к которому подключен фоторезистор void setup() < analogReferense(DEFAULT); // Задаем опорное значение напряжения. Эта строка не обязательна. Serial.begin(9600); // Открываем порт на скорости 9600 бод. >void loop() < Serial.println(analogRead(sensePin)); // Считываем значение и выводим в порт delay(500); // задержка для того что бы значений было не слишком много >
Вот так из двух простейших элементов и четырех строк кода мы сделали датчик освещенности. На базе этого устройства мы можем сделать умный светильник или ночник. Очень простое и полезное устройство.
Вот мы и рассмотрели основы работы с Arduino. Теперь вы можете сделать простейшие проекты. Что бы продолжить обучение и освоить все тонкости, я советую прочитать книги по ардуино и пройти бесплатный обучающий курс. После этого вы сможете делать самые сложные проекты, которые только сможете придумать.
19 комментариев
- Владимир 2019-01-29 16:31:50
Добрый день, господа!
Очень интересный сайт. Много полезной информации и подача материала спокойная.
Мне нравиться.
Вопрос у меня. Чую попал на грамотных спецов.
Приобрел я на Али китайскую чудо технику — лазерный гравировщик-выжигатель (2 Ватт.).
Плата управления Arduino Nano, драйвера на двигатели на красных платках.
Как водится описание слабое, информация. да все по-китайски. Начал разбираться.
Собрал, заработала машина, задымила. Поправил конфигурацию, на одной оси сделал инверсию.
Самое отвратительное — это ПО. Только зайчиков выжигать. Решил сменить.
Залил GRBL v1.1, программу взял LaserGRBL (версия из последних).
Программа увидела девайс, подключилась на СОМ, ожила, тут бы обрадоваться, да нет.
G-код готовится правильно, но команды включения М3 и выключения М5 лазера, которые прописаны в коде, не выполняются.
Лазер включается при включении девайса, и находится включенным все время, даже в остановленном состоянии (G-код еще не запущен, передвижения нет). При быстром передвижении лазера по рисунку он не выключается и все время жгет, рисуя за собой прожженную черту.
Подскажите, пожалуйста, как заставить лазер отключаться согласно G-коду? Как заставить девайс выполнять команды G-кода М3 и М5? Пробовал в конфигурации ставить и $32=1, и $32=0 — никак не реагирует. Жгет без остановки. Перепрошивал v1.1 — бесполезно.
Мне уже 65 отроду. Некогда досконально изучать Arduino. Говорят, что не поступают команды на лазер.
Да тут и ежику понятно. Как это можно исправить? В настройках галочку с ШИМ снял.
Подскажите, пожалуйста.
С уважением Владимир
- Евгений 2019-12-02 09:02:15
дело в том, что легче написать новую прошивку, чем разбираться в прошивке, а для этого надо понимать, как работает ваше устройство! т.е. надо работать вместе программист, и пользователь!
иначе никак!
илли 2 способ- изучите программирование, и пишите сами что вам надо!
поверьте- это не так сложно!
Arduino — как это программировать: основы для новичков


Даниил Шатухин Редактор в «Хабре», тестировщик и любитель веба
Arduino — программирование, которое можно потрогать. Плата позволяет не только поработать с кодом, но и реализовать его в физическом мире. Например, запрограммировать плату помигать светодиодами или сделать из нее музыкальный инструмент. Разбираемся, как начать программировать на Arduino с нуля, какие IDE подходят для работы с платой и приводим примеры кода.

Освойте профессию
«Python-разработчик»
Что такое Arduino

Arduino — аппаратная платформа на базе микроконтроллера, предназначенная для разработки умных устройств и автоматизированных систем. С помощью Arduino можно запрограммировать собственный дверной замок с магнитным ключом, построить робота с распознаванием голосовых команд или собрать автоматическую кормушку для питомца. К основной плате можно подключать дополнительные модули от сторонних производителей. Так систему можно оснастить дисплеем, датчиками, аккумуляторами и беспроводной связью. Arduino придумали в Италии в начале 2000-х годов. Разрабатывали систему для быстрого и легкого обучения программированию и схемотехнике, поэтому платформу изначально делали гибкой, чтобы ее можно было использовать в любых школах и кружках.
Профессия / 9 месяцев
Frontend-разработчик
Создавайте интерфейсы сервисов, которыми пользуются все
2 400 ₽/мес 4 000 ₽/мес

Все разработки Arduino открыты для использования, поэтому, кроме оригинальных плат, можно найти китайские копии. Компания всегда публикует чертежи своих разработок, схемотехнику и программную часть. В результате копии практически ничем не уступают платам из Италии.
На чем программируют Arduino
Код для всех плат семейства Arduino пишется на языке Arduino, созданном на базе C++ и фреймворка Wring. Создатели платформы выбрали C++ из-за скорости работы и высокой эффективности при разработке для устройств с ограниченным количеством памяти. Фреймворк Wring отвечает за управление аппаратной частью Arduino. Код компилируется с помощью avr-gcc. Некоторые платы поддерживают программирование на языке MicroPython. Для этого нужно самостоятельно установить все необходимое окружение и подготовить аппаратную часть контроллера к обработке такого кода. Программировать удобнее всего в интегрированных средах разработки. У плат семейства Arduino есть Arduino IDE. Приложение доступно для Windows, Linux и macOS. В нем собрали все инструменты, которые могут пригодиться во время разработки собственных проектов. В Arduino IDE можно писать код, оптимизировать работу платы, получать данные об эффективности кода, устанавливать сторонние библиотеки и разрабатывать свои. Arduino IDE можно скачать с официального сайта компании, код проекта открыт и опубликован на GitHub.
Если нет возможности установить Arduino IDE, то программировать плату можно в браузере, в облачной среде разработки. В ней поддерживается работа с кодом, отправка написанного кода на плату, взаимодействие с библиотеками и мониторинг. Возможности облачной IDE ограничены, и для полного доступа необходимо приобрести подписку Arduino Cloud.
Разрабатывать код для Arduino можно и в редакторе кода Visual Studio Code от Microsoft. Это возможно благодаря стороннему плагину PlatformIO, который упрощает взаимодействие с железом. Плагин бесплатный и предоставляет функции для разработки, отладки и прошивки плат.
Визуальное программирование Arduino

Новичкам может быть сложно сразу начать писать код на Arduino C из-за того, что в основе языка лежит достаточно сложный C++. Далеко не все платы поддерживают MicroPython, поэтому решением может стать визуальное программирование, построенное на перетягивании нужных фрагментов кода друг за другом. Такой способ будет полезен не только начинающим, но и детям на кружках по программированию. Проект Массачусетского технологического института S4A представляет собой модификацию языка визуального программирования для Arduino. С его помощью можно собирать блоки кода в готовую прошивку для фирменных плат. Проект давно не обновлялся, но все равно стабильно работает. Есть русский язык и подробная документация по установке. Проект ArduBlock от российских разработчиков активно поддерживается и предлагает актуальные функции для большинства плат Arduino и ESP. Программирование с помощью блоков, а также уроки и инструкции на русском языке доступны в браузере. Вместе с ArduBlock авторы проекта выпускают стартовые наборы для начинающих.
Основы программирования Arduino
Файл с кодом проекта для Arduino в сообществе принято называть скетчем. Скетчи пишут по специальным правилам, обеспечивающим корректную работу с железом и выполнение команд. Базовая структура выглядит следующим образом:
#include «name» void setup() < >void loop()
В самом начале скетча в главный файл подключают сторонние библиотеки с помощью директивы #include и названия библиотеки. Название можно указать с помощью кавычек («») или галочек (<>). В первом случае поиск к файлу библиотеки производится сначала в папке со скетчем, а потом в папке с установленными библиотеками. Если использовать галочки, то система будет искать указанный файл только в папке с установленными библиотеками. Далее следует функция setup() , которая выполняется при каждом запуске скетча на Arduino. В этот момент система задает вводам и выводам на плате режим работы, получает значения переменных и подготавливает плату для работы с остальной частью кода. Функция loop() выполняется по кругу и управляет Arduino. В этой части разработчики пишут основной код скетча, который реализует логику всего проекта. Выполнение loop() запускается сразу за setup() . Эти две функции обязательно должны быть в скетче каждого проекта, даже в тех случаях, когда в функциях нет никаких инструкций. Без них невозможно выполнение кода на Arduino.

Станьте Java-разработчиком
и создавайте сложные сервисы
на востребованном языке
Комментарии и разделители
Arduino программируют на языке, спроектированном на базе C++, поэтому он наследует многие его особенности. Так, однострочные комментарии задаются с помощью двойного слэша (//). Весь текст внутри комментария компилятор будет игнорировать, обычно текст в слэшах используют для пояснения работы кода. Комментарии в первую очередь нужны людям, которые пишут код и работают с ним, а не компьютеру. Для комментирования сразу нескольких строк используется конструкция из слэша и звездочки (/* комментарий */). Такую конструкцию обязательно надо закрывать, иначе компилятор не сможет найти конец комментария.
// Однострочный комментарий // Второй однострочный комментарий /* А это уже Многострочный комментарий */
Все инструкции нужно отделять точкой с запятой (;). Эта особенность тоже пришла в синтаксис Arduino из C++. Если этого не делать, код не соберется и скетч нельзя будет загрузить на плату.
Переменные Arduino
Переменные в Arduino нужны, как и во всех языках программирования, для хранения данных. В программировании Arduino мы должны указывать тип переменной перед ее именем. Существуют следующие типы данных:
Разработка под Arduino *
Дисплей для Ариты или тайна четырёх перемычек
Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 3.2K

В прошлой статье цикла мы начали проект по приведению в чувство контроллера NORVI Arita Model 5, лишённого почти всех возможностей — дисплея, Ethernet интерфейса, картридера для microSD карт памяти и т. д. и произвели хирургическую операцию по имплантации в него Ethernet модуля на W5500. В результате Арита значительно «похорошела» и теперь имеет возможность работы в сети, значение чего трудно переоценить.
Сегодня мы продолжим наши изыскания и попытаемся добавить ей утраченный дисплей, который, как вы сами понимаете, не будет лишним в любом контроллере, а тем более в таком замечательном, как NORVI Arita.
На этом пути нам придётся преодолеть ряд трудностей и разгадать парочку шарад, любезно размещённых на платах Ариты инженерами компании Norvi. В частности, мы, наконец, приоткроем «великую тайну четырёх перемычек», которые присутствуют на большинстве контроллеров Norvi.
И да, чуть не забыл, последний аргумент хакера тоже поучаствует в реанимации Ариты.
Всего голосов 25: ↑25 и ↓0 +25
Добавить в закладки 13
Новости
все подряд лучшие
smart_alex 5 ноя в 11:01
8 профилировщиков потребляемой мощности для embedded и IoT систем
Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 4.5K

От переводчика. Вниманию читателей предлагается обзорная статья в которой автор рассматривает восемь устройств из очень интересной и специфической области — профилирования энергопотребления embedded и IoT устройств.
Для тех, кто занимается разработкой энергоэффективных устройств на микроконтроллерах это будет интересная и полезная информация — в обзоре присутствуют как довольно дорогие девайсы ($800), так и приборы с вполне демократичной ценой $55–$120, которые может позволить себе любой любитель электроники.
Всего голосов 30: ↑30 и ↓0 +30
Добавить в закладки 48
smart_alex 30 окт в 11:01
Скромное обаяние ClimateGuard CG Mini
Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 4.2K

Сегодня мы поговорим об одном неприметном, но на самом деле довольно интересном устройстве — микроконтроллерной плате ClimateGuard CG Mini. Это специализированная плата на ESP32 для построения проектов «сенсорики», по определению самого производителя.
Под «сенсорикой» тут понимаются проекты с подключением множества датчиков — климат, метеостанции и прочее подобное, на что у вас хватит фантазии. Но интересна она не этим (вернее не только этим), а своей архитектурой и применёнными схемотехническими решениями — многое из того, что есть на этой плате я не встречал ранее нигде, по крайней мере в таком виде и в таком сочетании.
Ну и давайте посмотрим что там и как с CG Mini…
Всего голосов 16: ↑16 и ↓0 +16
Добавить в закладки 32
CyberexTech 23 окт в 17:01
«Глупый» электросчетчик VS умный дом или как интегрировать электросчетчик без смарт функций в Home Assistant
Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 21K

Однажды у меня возникла потребность подключения своего узла учета электрической энергии к системе умного дома «Home Assistant», но вот беда, установленный счетчик ЭНЕРГОМЕРА СЕ101 не обладал смарт функциями, позволяющими без проблем подключать его к системам умного дома, а цена электросчетчиков со смарт функциями просто заоблачная. Но я нашел экономичное решение с ценой решения задачи менее $5 и об этом далее.
Всего голосов 39: ↑38 и ↓1 +37
Добавить в закладки 117
Истории
MikeKozlovAVR 22 окт в 15:31
Мал, да удал. ASCADA. Простейшая система диспетчеризации (SCADA) для Arduino и других микроконтроллеров
Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 16K

Я, как любой другой любитель «поковыряться» в различных железках, связанных с датчиками, микроконтроллерами и сопутствующих штуках, несколько лет назад столкнулся с необходимостью связать очередную микроконтроллерную историю с ПК, а именно, мне нужно было выводить в реальном времени значения различных сигналов с микроконтроллера на дисплей компьютера в виде различных графиков, прогресс‑баров, а также, с помощью кнопок и ползунков управлять моим «железом».
Имея достаточный опыт работы с промышленными SCADA‑системами было принято написать свою! Да такую, чтобы с ней справился совсем уж начинающий программист.
Рад поделиться своими наработками и буду вдвойне рад если это пригодится еще кому‑то еще кроме меня!
Всего голосов 25: ↑25 и ↓0 +25
Добавить в закладки 66
smart_alex 19 окт в 11:01
ClimateGuard RadSens: раскуриваем трубку Гейгера-Мюллера
Уровень сложности Средний
Время на прочтение 13 мин
Количество просмотров 8.1K
Решил я на досуге поэкспериментировать с измерением радиации (а почему бы и нет?), посмотрел доступные девайсы, почитал статьи и пришёл к выводу, что мне нужен датчик уровня радиации, который я могу подключить к микроконтроллеру и интегрировать в свою IoT систему.
Выбор пал на сенсор RadSens компании ClimateGuard, а вот о том, что последовало за этим, о моих приключениях и о том, что из всего этого вышло вы узнаете из этой статьи.
Всего голосов 26: ↑26 и ↓0 +26
Добавить в закладки 40
CyberB 17 окт в 12:37
BadUSB: Эксперименты с Arduino и Flipper Zero
Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 3.9K

Часть 1. Arduino
Если верить Википедии, BadUSB — класс хакерских атак, основанный на уязвимости USB устройств. Благодаря отсутствию защиты от перепрошивки в некоторых USB‑устройствах, злоумышленник может видоизменить или полностью заменить оригинальную прошивку и заставить устройство имитировать любое другое устройство. BadUSB предназначен для доставки и исполнения вредоносного кода. При этом я бы хотел уточнить, что BadUSB — это атака против USB стека компьютера, который по умолчанию слепо доверяет любому устройству (в том числе и зловредному).
Впервые понятие BadUSB было введено в августе 2014 года, исследователями организации Security Research Labs, Карстеном Нолом и Джейкобом Леллом, которые выступили с докладом «BadUSB — On Accessories that Turn Evil» на конференции BlackHat USA 2014. Данной уязвимости подвержены все устройства с незащищенными USB контроллерами на борту. При этом для успешного проведения данной атаки не требуется наличия особого ПО на компьютере «жертвы», а так же она работает под любыми операционными системами, поддерживающими USB‑HID устройства.
BadUSB — это целое семейство атак на USB‑порт, при которых подключаемое устройство выдает себя за другой девайс, например:
Всего голосов 10: ↑9 и ↓1 +8
Добавить в закладки 34
smart_alex 15 окт в 11:01
Снижение потребления LoRa ноды (TPL5010/TPL5110)
Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 3.4K

От переводчика. В этой статье автор исследует тему снижения тока потребления беспроводной LoRa ноды при помощи использования специализированных микросхем семейства нано-потребляющих таймеров TPL5010/TPL5110. Плюс затрагивает вопрос влияния Arduino загрузчика на время жизни батарейных сенсоров. Статья будет интересна тем, кто интересуется методами снижения энергопотребления батарейных устройств.
Всего голосов 26: ↑23 и ↓3 +20
Добавить в закладки 33
EfimkinDM 9 окт в 09:00
Генератор управляющего сигнала LNB
Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.2K

Для настройки спутникового телевидения необходимо управлять диапазоном конвертера(LNB). Для переключения диапазона используется управляющий сигнал 22 кГц. В статье описаны два варианта синтеза сигнала управления, соответствующего требованиям протокола управления спутниковым оборудованием.
Всего голосов 4: ↑4 и ↓0 +4
Добавить в закладки 7
smart_alex 8 окт в 11:01
Starting Electronics: руководство по веб-серверам на Arduino. Часть 17. Завершающий урок и итоги
Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 4K

От переводчика. Итак, дорогие друзья, нам с вами всё-таки удалось совершить маленькое чудо — перевести на русский язык и сделать доступным для широкого круга русскоговорящих любителей электроники, микроконтроллеров и IT технологий, можно сказать, культовый курс по построению веб-серверов на Arduino.
Это стартовая площадка, которая даёт базовое понимание ключевых технологий: микроконтроллеры, сетевое взаимодействие, структура веб-страниц, HTML, CSS, JavaScript, Ajax, Wiring, C++ и т. д. и т. п. и позволяет в дальнейшем проектировать и создавать ваши собственные IoT системы.
В заключительной статье автор подводит итоги, обобщает данную на курсе информацию и даёт рекомендации по дальнейшему изучению этой темы.
Всего голосов 17: ↑17 и ↓0 +17
Добавить в закладки 61
CyberexTech 5 окт в 11:01
Как я делал бюджетное устройство мониторинга качества среды и что из этого вышло
Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 6.9K

В начале немного предыстории.
Однажды я был в гостях у своего товарища, который как и я, активно занимается домашней автоматизацией. Я увидел у него смонтированную систему приточной вентиляции и поинтересовался, как он реализовал автоматизацию этой системы. В ответ услышал, что он её включает вручную, так как у него нет устройства, которое анализирует качество воздуха, а готовые решения имеют зачастую слишком неоправданную цену для систем бытового применения. Недолго думая, я предложил ему своё решение, о котором далее и пойдет речь.
Всего голосов 35: ↑34 и ↓1 +33
Добавить в закладки 70
smart_alex 4 окт в 11:01
KC868-ASR: креа-нода (креативная для креативных)
Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 2.9K

Сегодня мы поговорим об ещё одном изобретении сумрачного китайского гения — устройстве под кодовым номером KC868-ASR. Судя по самоназванию «Sensor Record Extension», компания Kincony предполагает использование этого устройства в качестве беспроводного сенсора с возможностью записи данных на microSD карту памяти, но наличие на борту часов реального времени (RTC), двух реле, microSD карты памяти, свободных GPIO, да и самого микроконтроллера ESP32 как бы намекает нам, что использование его в этом качестве — это что-то вроде стрельбы из пушки по воробьям.
Я бы сказал, что это скорее ESP32 нода с настолько широким диапазоном ролей использования, насколько хватит вашей фантазии, креатива и квалификации в программировании. Тонким местом тут, как всегда, является фантазия (смайл), поскольку возможностей для интеграции в вашу IoT инфраструктуру (у вас ведь есть своя IoT инфраструктура?) у KC868-ASR предостаточно.
Обо всём этом мы и поговорим далее.
Всего голосов 20: ↑20 и ↓0 +20
Добавить в закладки 20
YRevich 2 окт в 11:28
HYT939 и калибровка датчиков температуры-влажности
Время на прочтение 16 мин
Количество просмотров 3.3K

Фото с сайта market.yandex.ru
Индивидуальная калибровка ширпотребовских датчиков температуры-влажности, как показал многолетний опыт, — абсолютно необходимая операция. Для почти всех имеющихся в продаже типов разброс по температуре в ±2 градуса и ±5% влажности – не исключение, а норма. И очень некрасиво, когда уличный датчик показывает +2° при замерзших лужах, а поставленный рядом с комнатным собратом демонстрирует влажность на 10% выше. И это средняя норма — попадаются экземпляры с куда большим отклонением, как вы увидите, прочитав эту статью до конца. В принципе ±5% отклонения влажности — вполне допустимая величина (ГОСТ на измерения микроклимата в помещениях допускает такой разброс), но согласитесь, что два датчика рядом должны все-таки показывать близкие величины, а на практике случай, когда родственные датчики впадают в противоположные крайние отклонения — совсем не редкость.
Тема достоверности данных с массовых датчиков становится все острее — существует уже немало сервисов, предоставляющих общий доступ к частным измерительным системам параметров окружающей среды (вот самый, вероятно, известный). Даже звучный термин появился — «гражданская наука» (citizen science)!
Если температуру калибровать относительно несложно (достаточно точные лабораторные термометры не представляют дефицита), то влажность представляет проблему, почти непреодолимую в домашних условиях. В конце концов я решился на покупку дорогущего (в европейских каталогах более $100) датчика швейцарской фирмы iST под непроизносимым для русскоязычного пользователя названием HYT939. Швейцарцы декларирует «из коробки» отклонение ±0.2° по температуре (в диапазоне от 0 °C до +60 °C) и ±1.8 % по влажности (в диапазоне от 0% до 90%). Конечно, употреблять его при такой дороговизне можно только в качестве образцового, но и это уже много: по крайней мере есть с чем сравнивать без боязни промахнуться «с точностью до наоборот».