
Arduino *
Платформа для создания автоматики
Создаём систему радиоуправления для самодельного самолёта. Ч.1

У каждого человека есть определённая тема, к которой он испытывает некое иррациональное влечение. У автора этой статьи такой темой является авиамоделирование: на тот момент, когда ещё существовали авиамодельные кружки, автор пришёл в него записываться и ему сказали, что он ещё слишком мал и лучше прийти через пару лет. А через пару лет распался Советский Союз и всем стало совсем даже не до кружков — на дворе наступили «благословенные» 90-е годы…
Однако, «гештальт сам себя не закроет» и автор решил тряхнуть стариной и попробовать собрать свою первую авиамодель (лучше поздно, чем никогда, да и в авиамодельный кружок опять не возьмут — теперь уже по причине старости :-)
Радиоуправляемая машинка на Arduino для преодоления мини-бездорожья

Привет, меня зовут дядя Вова. Вероятно, вы уже читали мои статьи про тестирование. Но сегодня хочу рассказать вам о проекте, не связанном с работой — о радиоуправляемой машинке, которую я разрабатываю с нуля.
Когда‑то в статью моих коллег про хобби на удаленке попало начало рассказа об этом проекте, но сегодня хочу осветить разработку целиком. Это не тиражируемый конструктор, не кит‑комплект и не готовая модель на продажу. Но бегает она очень неплохо и в отличие от аналогов лишена лага радиоуправления. Скорее всего проект будет развиваться дальше.
Искусство кройки и шитья или возможность заменить игры в портативной игровой консоли SUP

Всем привет, меня зовут Александр. Увлекаюсь программированием и разработкой электроники в свободное время. Мне бы хотелось поведать Вам, товарищи, историю одного программатора.
Starting Electronics: руководство по веб-серверам на Arduino. Часть 6. Автоматическое AJAX взаимодействие с веб-сервером

От переводчика. На шестом уроке мы добрались до практически полезного кода — с его помощью можно создать работающий пример «бесшовного» автоматического взаимодействия между клиентом (страницей в веб-браузере) и Arduino веб-сервером, который передаёт данные о состоянии подключённого оборудования и внутренних переменных.
Тут нужно помнить, что это только «концептуальный» и базовый пример такого взаимодействия, максимально упрощённый для лучшего понимания начинающими сути самой технологии. Когда вы поймёте принцип, то далее сможете как угодно улучшать и модернизировать этот код. Например, уделить внимание его быстродействию и безопасности.
С чем едят конечный автомат

Машина Тьюринга и машина состояний, детерминированный и недетерминированный конечный автомат, конечный автомат Мура и конечный автомат Мили. Голова кругом от всех этих понятий. Как во всем этом разобраться новичку? Тем более, что и у бывалых спецов бывает такая каша в голове из этих понятий. Чего только стоит вебинар от Яндекс Практикум на тему «Конечные автоматы в реальной жизни». Именно случайный просмотр этого вебинара сподвиг меня написать статью. Я обратил внимание, что даже более опытные лекторы ловко жонглируют всеми этими понятиями или подменяют одни другими в своих лекциях. С этим можно просто смириться, или дойти до безумия, разбираясь что к чему. И как со всем этим жить начинающему ардуинщику, если про конечные автоматы в программировании трубят из каждого утюга, а добраться до истины самостоятельно непросто?
Не гарантирую, что после прочтения статьи все сразу станет на свои места, но, как минимум, постараемся выудить из всей этой «каши» что-то полезное для себя. Так что усаживайтесь по удобнее, тема не простая, под катом будет много текста.
Настольная динамическая балансировка маховика

Решил реализовать найденный на просторах интернета проект, но для него нужны были гироскопы. Для гироскопа нужен маховик, но последний имеет динамический дисбаланс. В этой статье разберём метод борьбы с вибрацией этого самого маховика.
Гусеничное шасси-робот на базе Arduino, часть 1

Дело было к вечеру, делать было нечего. Загорелся я как-то созданием универсальной гусеничной платформы для изучения Tenserflow. Причем хотелось сделать управление через ESP32, которая будет регулировать моторчики, даст в случае желание управление через браузер в локальной сети, а Raspberry Pi будет управлять ей, имитируя собственно меня. Плюс возможность запаять навечно ESP32 и обновлять по воздуху. Здесь я хочу изложить примерную хронологию создания.
Делаем датчик качества воздуха с Modbus RTU на ESP8266 и Arduino

Что‑то я не нашёл в интернете готового рецепта по созданию Modbus RTU устройства на Arduino и ESP8266. Всё, что попадалось было сильно оторвано от реальности: или предлагали по байтикам разбирать протокол, или для изменения параметров связи предлагали пересобирать прошивку.
А понадобилось мне это за тем, чтобы подключить сенсор CCS811 к тестовому стенду на контроллере с родным протоколом Modbus RTU. Так появилась эта статья.
Сначала мы напишем простой Modbus‑сервер (slave) с изменяемыми пользователем настройками подключения и сервисным режимом, потом добавим к нему сенсор CCS811. В финале подключим устройство к контроллеру Wiren Board: составим шаблон для modbus‑драйвера и напишем простой сценарий автоматизации.
Весь код опубликован на Гитхаб, ссылки вы найдёте в конце статьи.
Обзор M5Stack ATOM Lite — маленького, но очень гордого устройства

Наверное, практически каждому, кто имеет отношение к разработке под микроконтроллеры, знаком контроллер ESP32. На нём создаются системы умного дома, роботы, квадрокоптеры и многое другое. Отдельным плюсом этого контроллера является невообразимое количество плат и модулей на его основе. Достаточно зайти на tindie.com и можно увидеть всю палитру идей. Но сегодня, я хотел бы провести небольшой обзор устройства на базе ESP32 от компании M5Stack — M5Stack ATOM Lite.
Starting Electronics: руководство по веб-серверам на Arduino. Часть 5. AJAX взаимодействие с веб-сервером

От переводчика. С каждой новой статьёй уроки руководство становится всё более и более практичным и вот мы уже добрались до AJAX взаимодействия между клиентом (браузером) и сервером. Отсюда всего один шаг до практического применения кода и знаний, описанных в этом руководстве.
AJAX позволяет обновлять данные с контроллера на веб-странице, без необходимости каждый раз перезагружать саму страницу, что делает этот метод популярным и часто применяемым на практике, поэтому стоит уделить этому уроку достаточно вашего внимания, а также поэкспериментировать с кодом из этой статьи.
Первый взгляд на Arduino Lab for MicroPython и сравнение с Thonny IDE

В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python? Давайте разбираться.
EBYTE MA01-AACX2240: программирование работы реле

Продолжаем изучение внешнего RS485/ModbusRTU блока расширения MA01-AACX2240 компании EBYTE. Сегодня мы разберём устройство Modbus RTU регистров, принципов доступа к ним и получения информации от MA01-AACX2240 и управления его работой.
А также разберём практические примеры скетчей и программирования блока MA01-AACX2240. Особую ценность нашему исследованию придаёт то, что подобная информация отсутствует в интернете и мы выступим тут в качестве пионеров и первопроходцев на этом непростом пути.
В результате MA01-AACX2240 и все блоки линейки MA0x-xxCXxxx0 станут доступны для практического использования.
Итак…
Ближайшие события
Starting Electronics: руководство по веб-серверам на Arduino. Часть 4. Отображение состояния кнопки на веб-странице

От переводчика. В этой части руководства автор собирает ещё одну часть пазла и объясняет каким образом можно отображать состояние кнопки на веб-странице. Разумеется, это не обязательно должна быть кнопка, это может быть переключатель, джампер, контакты реле или что-то подобное.
Если посмотреть на этот вопрос шире, то становится понятно, что используя описанный в статье принцип, можно отображать на веб-странице как состояние подключённого оборудования, так и внутренних регистров, переменных, GPIO и т. д. самого микроконтроллера.
А это уже открывает неограниченные возможности для вашего творчества — вы, используя знания из этого и предыдущих уроков, можете как отображать состояние различных элементов на веб-странице, так и управлять ими с этой же страницы.
LGT8F328P: импортозамещение по-китайски (окончание)

Для написания и загрузки ассемблерных программ, как в AVR, так и в LGT8F328P необходимо обзавестись некоторыми специальными инструментами. Здесь не очень важно, какую именно среду использовать (любую из привычных вам, если вы справитесь с интеграцией в нее LGT8F328P), лишь бы она умела производить hex-файлы.
Как измерить ESR конденсатора при помощи FNIRSI DSO-TC2

Необходимо заметить, что данный пост - это моё мнение, основанное на теоретических выкладках, проверить которые на практике я пока не удосужился.
ESR - Equivalent Series Resistance - один из параметров конденсатора, характеризующий его активные потери в цепи переменного тока. Для исправных конденсаторов этот параметр крайне мал. От единиц Ом до Миллиом. Для электролитических кондёров этот параметр со временем деградирует, что связано с подсыханием электролита.
Многие обзорщики отметили, что красивенький прибор от Fnirsi - DSO-TC2 не умеет измерять данный параметр, что вызвало сильное разочарование в этом, в общем-то, неплохом приборе начального уровня.
Заниматься его обзором я тут не буду, в инете очень много уже снято и, надеюсь, в ютубе никого не забанили. Отмечу лишь, что данный прибор содержит простенький осциллограф и встроенный генератор меандра.
LGT8F328P: импортозамещение по-китайски (начало)
Однако, LGT8F328P и платы на его основе, если научиться правильно с ними обращаться, действительно могут заменить Arduino в большинстве применений, причем это потребует не очень большой возни. А если приложить усилия, то вы обнаружите, что LGT8F328P даже имеет довольно много преимуществ. Но приготовьтесь к трудностям: импортозамещение по-китайски означает, что большую часть времени вам придется потратить на угадывание «а что они тут имели в виду».
В этой статье не ставится задача показать все преимущества и особенности LGT8F328P. Мы далее попробуем только разобраться, как подключать некоторые более-менее распространенные платы, выполнять какие-то стандартные задачи, а также как использовать некоторые расширенные возможности LGT8F328P.
Так как статья получилась объемная, она разбита на две части: первая часть о простом программировании в Arduino IDE и вторая о программировании на низком уровне с обсуждением некоторых особенностей внутреннего устройства LGT8F328P.
HabraTab — девайс для хаброзависимых

Что-то часто стал заглядывать в профиль после каждой новой публикации. Так вот я и решил сделать табло, которое стояло бы на столе, и показывало место в рейтинге, карму, ну и само значение очков рейтинга.
EBYTE MA01-AACX2240: внешний RS485/ModbusRTU блок DI+AI+DO

Иногда возникает необходимость расширить функциональность какого-нибудь контроллера, например добавить ему цифровых и аналоговых входов или увеличить количество релейных и транзисторных выходов. Наиболее простой способ это сделать — использовать дополнительные блоки расширения, либо входящие в экосистему вашего контроллера, либо универсальные, предназначенные для работы с любым контроллером.
Подобные блоки могут поддерживать различные интерфейсы, наиболее популярным и демократичным из которых является RS485/ModbusRTU. Из всего разнообразия подобных устройств на AliExpress мне показалась интересной серия блоков MA0x-xxCXxxx0 с интерфейсами RS485/RS232 компании EBYTE.
В отличие от прочих подобных блоков расширения, изделия EBYTE имеют приличный внешний вид, вменяемую документацию, широкий модельный ряд и при этом вполне демократичную цену. Правда потом выяснилось, что производитель предоставляет только компьютерную утилиту для работы со своими блоками, а программирование Modbus RTU оставляет на откуп покупателя (а в интернете нет никаких примеров работы с этими блоками).
В результате мне пришлось провести исследовательскую работу, разобраться с железом MA01-AACX2240 и научится его программировать в составе контроллера на ESP32.
Обо всём этом мы и поговорим далее…
Вклад авторов
DAN_SEA 3291.0smart_alex 1919.6shiru8bit 884.0vladkorotnev 664.0AlexeyNadezhin 596.0Berkseo 516.0CyberBot 473.0MaFrance351 421.0chv 371.0gerasimenkoao 340.0