Сообщество - Arduino & Pi

Arduino & Pi

1 540 постов • 20 944 подписчика

Популярные теги в сообществе:

262

Аналог промышленного контроллера Schneider Electric на российском микроконтроллере АМУР MIK32⁠⁠

Серия Моими разработками, соревнуюсь с Брендами в АСУ ТП
Аналог промышленного контроллера Schneider Electric  на российском микроконтроллере АМУР MIK32

В прошлом году я начал публиковать первые тесты своего компилятора WIA32 и среды разработки 3o|||sheet на различных микроконтроллерах и FPGA  (STM32, CH32, Altera Cyclone 4). Был и российский АМУР MIK32.

На одном известном ресурсе, по поводу подобных МК  были возражения типа - 16 КБ ОЗУ, что из этого можно сделать в современном мире?

Рантайм (регистровая ВМ) моей разработки выполняющая байткод на стороне железа,  требует всего 5 КБ RAM, поэтому в подобный МК как  АМУР MIK32 с 16 КБ влезает достаточно много(в сотни LD\FBD блоков, или несколько сотен ST  строк ) программы причем с изолированным выполнением. То есть, речь идет не о зависшей задаче, это  - самый легкий сценарий ,так как  планировщик все равно  задачи меняет. Речь об устойчивости к  тотальному краху данных.

Таким образом 3o|||sheet является первой(?) средой где АМУР MIK32 успел побывать полноценным  промышленным контроллером хоть и в тестовом режиме, а не игровой консолью, умным домом или мигалкой светодиода.

ПЛК на АМУР MIK32 как аналог Schneider Zelio Logic

Своему софт-процессору и набору команд дал название  - WIA32 (переводится как - широкий непосредственный адрес) который и отображается на графике синим. Тут данные по скорости выполнения программ лестничных диаграмм или функциональных блоков (ST - не тестирую, так как в документации брендов ПЛК нет данных производительности алгоритмов на ST чтоб сравнивать).

Не путать тест с бенчмарками, производительностью машинных инструкций и программ написанных на СИ.

Тестирование производительности ПЛК на базе MIK32 Амур в сравнении с ПЛК разных брендов с рынка.

Тестирование производительности ПЛК на базе MIK32 Амур в сравнении с ПЛК разных брендов с рынка.

Если б я делал ПЛК на АМУР MIK32 то получил бы аналог программного реле Schneider Zelio Logic. Это с  точки зрения производительности, хотя в данный момент  моя ВМ - трансформируется, и не оптимизирована под конкретную архитектуру. Я не производитель ПЛК и не занимаюсь глубокими оптимизациями своей ВМ под отдельный чип для  максимума.

Но в отличии от среды Schneider , у меня более продвинутые функции, так как мой компилятор WIA32 поддерживает:

Сложные данные (структуры в структурах, многомерные массивы и прочее).

Такой вид данных поддерживается моим компилятором:

Гибкость. Использование сложных структур и многомерных массивов данных в программе Промышленного Контроллера.

Гибкость. Использование сложных структур и многомерных массивов данных в программе Промышленного Контроллера.

Сложные структуры любого уровня можно  использовать  в лестницах и блоках.

Менеджер адресов который точно расставляет данные\инструкции в памяти, расставляет адреса и не промахнется ни на один байт среди миллиарда - отдельный шедевр мысли.

Так как у нас свой компилятор  и собственный софт процессор - есть возможность безопасно добавлять структуры данных и менять код на лету не перезагружая ПЛК вообще. Добавлять новые программы которые тут же заработают как в смартфоне установленное только что приложение с маркета.

Schneider , китайские, российские и многие другие страны создающие ПЛК (те которые  на собственной среде, а не  на  Codesys) не поддерживают работу с многомерными массивами, вытесняющими задачами, заменой кода на лету и другими возможностями для которых нужен собственный компилятор. Практика перевода языков МЭК 61131-3 (IEC 61131-3) в  язык СИ а потом прошивка в ПЛК обычным компилятором,  как это делают в Beremiz и 95% разработчиков ПЛК - дает легкий и быстрый эффект в разработке, но такие ПЛК очень деревянные/неповоротливые, и подвержены трудно уловимым ошибкам с тяжелой (или невозможной) отладкой.

Сама среда, графический движок от  Schneider - сильно уступает моим наработкам тоже. У Schneider можно создавать “строки” из 5 элементов и одной катушки, в то время как мой движок (без каких либо фреймворков - рисует примитивами) - может отображать любые разветвленные ветки и связи любой сложности, создавать собственные блоки любых размеров с любым количеством переменных и структур и описывать их программно.

Программируемые Машинные Контроллеры.

Промышленный процессор на базе микроконтроллеров с 4-6 КБ ОЗУ как MIK32 Амур или STM32G030 можно использовать не только как ПЛК, но и - Конструктор кастомного пульта - рабочее место оператора.

То есть не пульт с вылитым корпусом на фабрике, или корпуса в которых надо что то сверлить или отвертками крутить . Имеет смысл - дизайн модулей с разным набором кнопок, ползунков и т.д с использованием настройки экосистемы и среды для  ПЛК.

Когда процессор от ПЛК может стать процессором пульта и обратно, подключая нужные наборы кнопок, джойстиков или модулей ввода/вывода.

Аналог промышленного контроллера Schneider Electric  на российском микроконтроллере АМУР MIK32

Но идея не только в дизайне, но и подходе к надежности. В чем лично моя идея это - разработка самого надежного отказоустойчивого пульта в  промышленности, работающий по принципу  Zero Protocol.

Обычно в АСУ ТП между модулями идет общение по CAN  и подобных протоколах. Я разработал гибрид с конфигурацией на подобии идеи конфигурации FPGA:

Шина,например CAN/RS485  -  тоже есть,  для конфигурации,и низкоприоритетных задач.

Шина Zero Protocol - прямые линии- провода(в зависимости от количества  входов у процессора CPU).

Визуально это выглядит вот так:

Аналог промышленного контроллера Schneider Electric  на российском микроконтроллере АМУР MIK32

Подключение к процессору - модулей с кнопками (на подобии модулей ввода вывода)

с нужными комбинациями энкодеров, кнопок , ползунков и т.п. С двумя шинами: протокольная (CAN\RS485) и прямая Zero Protocol.

Преимущества дизайна:

Единая среда разработки программ для ПЛК и пультов с автоматической детекцией подключаемых, типов кнопок/ползунков/энкодеров,в  единый дизайн.

Кнопки можно покупать конечно отдельно и подключать их к ПЛК, но это годится только для закрытых шкафов. Для пульта внутри машины/или управлять светом на дискотеке со сцены - не практично и не красиво. Я не просто инженер, по второму диплому (и со стажем) - преподаватель живописи и графики. Дизайн - неотъемлемая часть моего мышления, нахожу это - красивым.

Преимущества технические:

Реакция на нажатие кнопки, энкодера и т.д - нулевая задержка. Прямой провод, никакого зависания коллизий линии  и прочее.

Подтверждение (прошел сигнал/не прошел) - как второстепенная информация. Если подтверждение придет через 0.5 -1  секунд  - неважно, главное реакция на нажатие оператором - сработает 100% без зависаний.

Если оператор видит машины или механизмы своими глазами - все подтверждения по проводам - избыточны.

Если оператор не видит глазами - происходящее (задвижка какая нибудь), то задержка подтверждения  в  0.5 - 1 секунду роли никакой не сыграет для реакции человека, зато может сыграть  для критического сигнала (например кнопки STOP) 0.5  сек - это много,  и есть смысл  убрать протоколы замедляющие сигнал идущий в -> сторону машин и механизмов.

Мы имеем программируемые модули кнопок, с автоматическим отображением переменных в среде, при том сохраняя всю скорость реакции как у прямого примитивного железа.

Таким образом у нас машинный контроллер имеет три приоритета на реакции:

1) Высокий приоритет, например кнопка  STOP и подобное, работает в обход  процессора (к процессору подключен  но  только для регистрации времени события например или для сообщений в SCADA).

2) Средний приоритет - так же работает  без протокола, по прямому проводу,  но есть задержка в размер цикла (программируемая реакция, может быть добавлен алгоритм обработчик).

Это как будто бы вы подключили просто кнопку/рубильник к входу  обычного ПЛК как упоминалось ранее, но естественно эта кнопка не отобразится в обычных ПЛК  и средах,  все нужно прописывать руками. В  нашей Среде она  - отобразится автоматически (тип, название) по протокольной шине.

3) Самый низкий приоритет  - те кнопки и элементы которые полностью на линии CAN/TCP  и др., там время реакции большое:

Сигнал должен пройти все рукопожатия, контрольные суммы, побороть коллизии + быть обработан в цикле ПЛК.

Как раз на этом уровне и работают всякие модули в  ПЛК  мировых вендоров, И они это называют - надежным модулем. В моем представлении это считается самым медленным и ненадежным в сравнении с Zero Protocol.

Перефразируя коротко мою идею - это так:  обеспечить прохождение сигнала в ту сторону (до машины) без помех и риска, а обратно (от машины) - как у всех, через шину с протоколом типа CAN/RS485.

Я больше склоняюсь к RS485 (и с ним экспериментирую ) так как такой модуль кнопок  можно обеспечить на совсем примитивных и дешевых  микроконтроллерах с UART и 1-2 кб  ОЗУ и получить надежность превышающую дорогие пульты называющие себя - отказоустойчивыми.

Вот такой был тест MIK32 AMUR  и мое масштабное видение применения слабого железа к своим наработкам.

Пишите критические мысли в  комментарии или на почту zoshytlogic@gmail.com

Показать полностью 5 3
29

Спасибо вам!⁠⁠

Спасибо вам!

Хочу сказать спасибо за такое количество активности и советов. Вижу многим не понравилось отсутствие сертификата, но прошу понять что я в этом деле новичок и решил создать сайт со всем в одном месте потому что для меня это было проблемой. И конечно комментарии про функционал были, но я буду пробовать улучшать сайт.

И раз вы проявили так много активности то вот соц сети:

ТТ - @arduinfo

ТГК - @arduinfo_off

И конечно ссылочка на сайт http://arduinfo.ru (второй раз повторюсь пока без сертификата, если можете помочь то помогите)

Показать полностью 1
60

Автополив с Пикабу: собрал в симуляторе три версии, от Nano до ESP32 с веб-админкой и MQTT⁠⁠

Рабочий вариант автополива с фитолампой с симуляторе ESP32

Рабочий вариант автополива с фитолампой с симуляторе ESP32

На днях в ленте попался пост Azatey.n про автоматический полив со схемой и скетчем. Схема понравилась: два насоса, фитолампа, меню на энкодере. Всё по делу, ничего лишнего.

И я подумал: а что если собрать это в моём симуляторе PinPort и заодно прокачать проект?

Сразу про честность:

  • Схему я подсмотрел у автора. Это его идея, ему спасибо.

  • Код мой, новый. Из поста я его не брал, писал с нуля.

Три версии одного проекта

Одну и ту же теплицу я сделал в трёх вариантах, от простого к навороченному:

  1. Автополив и фитолампа на Arduino Nano: классика, меню на энкодере, экран, часы.

  2. Автополив и фитолампа на ESP32 с веб-админкой: то же самое, плюс страничка, с которой всё настраивается.

  3. Автополив и фитолампа на ESP32: веб-админка и MQTT: то же самое, плюс связь с брокером, чтобы данные летали в облако.

Как и у автора, меню управляется энкодером. В новых версиях к нему добавились веб-интерфейс и MQTT.

Что в схеме

  • ESP32 в роли мозга.

  • Три реле на 10 А: два для насосов, одно для лампы.

  • Цепь 12 В: блок питания, два тумблера и два насоса по 6 Вт.

  • Цепь 230 В: ввод, автомат, выключатель и сама фитолампа.

  • Датчик температуры и влажности, часы, экран и энкодер KY-040.

В реальной жизни 230 В в теплице штука опасная. В симуляторе можно спокойно набивать шишки: перепутал провод, увидел, что не работает, поправил. Дым из монитора не идёт.

Веб-админка

Самое приятное в версии с ESP32 поднимает свою страничку, где видно:

  • время, температуру и влажность;

  • статус MQTT («на связи», брокер MQTT);

  • состояние фитолампы: горит или нет, по какому расписанию;

  • обратный отсчёт до следующего полива каждого насоса;

  • кнопки «Полить сейчас».

А ещё там настраивается всё расписание: во сколько включать и выключать лампу, сколько секунд качать, раз в сколько дней поливать, в каком часу. Нажал «Сохранить», и пошло.

Сейчас, например, лампа работает с 7:00 до 21:00. Насос P1 качает 100 секунд раз в 3 дня в 20:00, а P2 качает 60 секунд раз в 2 дня в 8:00. Всё это меняется в два клика, без перепрошивки.

Что пришлось доработать в самом симуляторе

Чтобы такое вообще собрать, пришлось научить PinPort гибридным схемам. Раньше были отдельно лаборатории с контроллерами, отдельно с 12 В и 230 В. Теперь в одной схеме могут жить плата, цепь на 12 В и цепь на 230 В, и всё это связано реле.

Так что проект получился не только про автополив, но и хорошим тестом для самого симулятора. Ну и заодно ещё раз убедился, что вайбкодинг работает: код писали вместе с нейросетью, а я гонял и ругался.

Попробовать самому

Автополив и фитолампа на Arduino Nano

Автополив и фитолампа на ESP32 с веб-админкой

Автополив и фитолампа на ESP32: веб-админка и MQTT

Все три проекта открываются без регистрации, гостем: заходите по ссылкам выше, жмите «Старт» и смотрите, как оно работает. Можно подсмотреть, как соединены детали, и заглянуть в код.

Свои схемы собирать пока могут только зарегистрированные, а регистрация закрыта. Если хочется собрать что-то своё, напишите в личку или в комментарии, и я дам доступ в личный кабинет.

Расскажите, что бы вы автоматизировали в первую очередь. Огурцы, рассаду, аквариум? И как всегда: помидоры принимаются, желательно спелые. 🍅

Проект: pinport.ru

Показать полностью 1
32

Не Wokwi, но тоже мигает: мой симулятор Arduino и ESP32 в браузере⁠⁠

Давайте сразу по-честному: это пост про мой проект. Смотрю, соседи по Пикабу пиарят свои поделки, и я такой: а чем я хуже? Так что вот, закидывайте помидорами, только желательно спелыми и по делу.

Да, это вайбкодинг, я не скрываю!

Сразу признаюсь: проект сделан вайбкодингом. Я придумывал, что и как должно работать, объяснял это нейросети, она писала код, а я тестировал, ругался и просил переделать. Получилось что-то среднее между программированием и режиссурой.

Идея и решения мои, а код делала нейросеть. Судить, что вышло, вам.

Пять лабораторий в одной вкладке

Что хотите собрать, то и открываете:

  • ESP32: Wi-Fi, датчики, дисплеи, код.

  • Arduino: Uno, Nano, Mega.

  • 12 В: реле, лампы, моторы, автоэлектрика.

  • 230 В: щиток, автоматы, УЗО, кабель, нагрев.

  • Электроника: транзисторы, RC-цепи, осциллограф.

Что внутри

  • Схемы мышкой. Детали таскаешь на холст, выводы соединяешь проводами. Схема хранится обычным текстом, её можно скопировать, положить в git или скинуть коллеге.

  • Настоящий код. Прошивка собирается настоящим arduino-cli, а работает в браузере. Пишешь на C++, жмёшь «Старт», и оно едет.

  • Осциллограф и логический анализатор. Двухканальный осциллограф с курсорами и логический анализатор, чтобы смотреть сигналы во времени.

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

  • Тепловая карта. Видно, какой кабель греется и где вот-вот запахнет. Виртуальный дым из монитора, правда, не пахнет.

  • Wi-Fi без интернета. ESP32 умеет веб-сервер и HTTP-запросы прямо в симуляторе.

  • Ошибки на русском. Ошибки компилятора переведены, а разбор схемы находит перепутанные SDA и SCL ещё до запуска.

Проект щитка однокомнатной квартиры. Попробуй собери свой

Проект щитка однокомнатной квартиры. Попробуй собери свой

Галерея: 367 готовых примеров

Любой проект можно открыть, запустить и сделать своей копией. У каждого есть разбор: что на схеме, какие библиотеки нужны и что делает код. Примеры разложены по платам и темам: ESP32, Arduino, 12 В, 230 В, электроника. Есть и всякая экзотика, вроде фильтров на одних данных или разбора трёх фаз в офисном щитке.

Уроки и калькуляторы

Для тех, кто начинает с нуля, есть уроки с проверкой прямо в модели: 38 уроков и 73 задачи. Не получилось, и проверка скажет, что именно не сходится. Есть подсказки и баллы, как в игре, только про электронику.

Курсы такие:

  • ESP32 с нуля

  • Arduino с нуля

  • Автоэлектрика 12 В

  • Электрика в квартире

  • Основы электроники

  • От схемы к устройству

Ещё есть калькуляторы: резистор для светодиода, закон Ома, делитель напряжения, цветовая маркировка резисторов, сечение кабеля, автомат по мощности, падение напряжения на 12 В. Любой результат можно открыть готовой схемой и посмотреть на приборах, врёт калькулятор или нет.

Двухканальный осцилограф, работает в схемах электротехники.

Двухканальный осцилограф, работает в схемах электротехники.

А чем отличается от Wokwi?

Честно: Wokwi зрелый и мощный проект, и я не пытаюсь его «убить». Просто у PinPort другой набор фишек:

  • Русский интерфейс и русскоязычные материалы.

  • Цепи на 220 В. Насколько я знаю, в Wokwi такого нет, а мне хотелось безопасно потренироваться и с сетевым напряжением.

  • Живые схемы в блоге. Статья и симуляция в одном месте, без копирования проекта к себе.

Если вы уже пользуетесь Wokwi, зайдите и сравните. Мне будет очень интересно услышать, чего не хватает.

А еще можно записывать gif к любому своему проекту и показывать друзьям.

Кому пригодится

  • Новичкам, которые хотят понять Arduino и ESP32 до покупки набора.

  • Студентам, у которых лабораторная завтра, а стенд занят.

  • Тем, кто хочет проверить код «на коленке» перед сборкой железа.

  • Всем, кто любит ковыряться в схемах ради удовольствия.

Как попробовать

Прямо сейчас регистрация временно отключена: зайдите на сайт как гость и запускайте любые проекты из галереи. Можно смотреть, как работают схемы, жать «Старт» и подглядывать, как всё собрано.

Свои схемы могут собирать только зарегистрированные пользователи, а регистрация закрыта: проект молодой, и я хочу спокойно его дорабатывать без наплыва народа. Но если хочется собрать что-то своё, напишите мне в личку или в комментариях, и я выдам доступ в личный кабинет.

А ещё скажите, чего не хватает: каких датчиков, модулей и плат добавить в первую очередь? Читаю всё.

Проект: pinport.ru

P.S.

И да, не все еще работает. Знаю, чиним.

Показать полностью 3
1817

Сделал сайт про Arduino для тех, кто только начинает — без рекламы и воды⁠⁠

Начинал с Arduino год назад и столкнулся с проблемой: информация

разбросана, половина статей устарела, а калькуляторы либо платные,

либо неудобные.

Решил собрать всё в одном месте:

— 12 проектов с пошаговыми схемами и кодом. От «мигающего светодиода»

до дисплея и датчиков.

— Калькулятор резисторов (цветовая маркировка) — считает сразу,

без кнопок.

— Закон Ома, LED-калькулятор, делитель напряжения, время работы

от батареи.

— Основы: какие пины за что отвечают, что такое ШИМ, как загрузить скетч.

Никакой рекламы, регистрации и «подпишись на курс». Просто сайт.

http://arduinfo.ru

Если найдёте ошибки — пишите, поправлю.

Показать полностью 2

Робота, который имитирует любой почерк изобрели в России⁠⁠

Изначально машину создали для школьников и студентов, но она также может сэкономить время педагогам и врачам. Система оцифровывает моторику, а затем владелец устройства должен только вставить ручку и выбрать текст на смартфоне. Стоит робот около 20 тысяч рублей.

Показать полностью
12

Интересная подборка роботов для самостоятельной сборки и программирования⁠⁠

Интересный комплект для конструирования интеллектуального робота-автомобиля. После сборки и программирования на Arduino или Python робот сможет отслеживать линии, обходить препятствия, дистанционно управляться и тд. Имеет контроллер esp32. Стоит такой набор около 4 900 руб. Кому интересно, ссылка на такого робота

Похожий набор от Acebott для сборки робота с манипулятором. Прекрасная возможность для детей и взрослых начать увлекаться робототехникой и программированием. Стоит такой около 8 600 руб. Ссылка на него

Прикольный набор для сборки двуного мини-робота, который умеет выполнять различные команды, ходить, танцевать, следить за объектом и тд. Стоит такой около 4 000 руб. Ссылка на него

Ещё она модель интеллектуального робота-автомобиля на обычных колёсах для сборки и программирования. Такой стоит около 3 300 руб. Ссылка на него

Набор для сборки робота на гусеницах и с камерой 3МП. Умеет распознавать препятствия, ездить по линии, воспроизводить мелодии и тд. Стоит такой около 8 700 руб. Ссылка на него

Набор для сборки умного робота-автомобиля Picar-X AI для Raspberry Pi. Стоит такой около 5 800 руб. Ссылка на него

Интересная подборка роботов для самостоятельной сборки и программирования

Программируемый мобильный робот с большими глазами. Стоит такой комплект для сборки около 4 600 руб. Ссылка на него

Крутой бионический робот-паук для Arduino. Возможность управления через Wi-Fi. Стоит такой паучок-конструктор около 4 800 руб. Ссылка на него

Интересный умный дом для Arduino. Обучающий набор подойдёт для начинающих программистов и детей от 8 лет. Простой и увлекательный способ освоить основы электроники и программирования. Используя среду ACECode и Arduino IDE, вы можете изучить логику написания кода на C++ и научиться применять его в своих проектах. Стоит такой набор 3 600 руб. Кому интересно, ссылка на него

P.S

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

Также не забывайте добавлять страницу в закладки, чтобы не потерять и заказать понравившиеся наборы роботов позже.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Показать полностью 1 7
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества