Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Сыграйте в классический пасьянс и попробуйте разложить по порядку колоду из 52 карт, начиная с короля и заканчивая тузом. Игра имеет четыре варианта: с 1, 2, 3 и 4 мастями. Выиграйте как можно больше в каждом варианте и улучшите свои показатели.

Пасьянс Паук «Классический»

Карточные, Логическая, Мобильная

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Raspberry + Raspberry pi

С этим тегом используют

Arduino Своими руками Электроника Linux Программирование YouTube Компьютер Все
516 постов сначала свежее
31
antexdom
antexdom
5 лет назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

SCADA для LINUX. Есть ли жизнь на ARM е?⁠⁠

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Имея достаточно большой опыт работы в области промышленной автоматизации, мы вечно находимся в поиске оптимальных вариантов для решения своих задач. В зависимости от технического задания заказчика, приходилось останавливаться на той или иной программно-аппаратной базе. И если не было каких-то жестких требований по установке оборудования Siemens в связке с TIA-portal`ом, то, как правило, выбор падал на MasterSCADA 3.XX. Однако ничто не вечно под луной…


О своём опыте перехода на MasterSCADA 4D, предпосылках, особенностях её работы на встраиваемых компьютерах архитектуры ARM под катом данной статьи.


Предпосылки


Мы начали тестировать относительно новую разработку компании Insat – MasterSCADA 4D – не так давно. Предпосылок для этого было несколько. Во-первых, мы провели несколько независимых опросов среди специалистов в области промышленной автоматизации с целью выяснить, какие SCADA-системы наиболее популярны (рисунок 1). По результатам опроса первое место среди отечественных систем занимает система MasterSCADA.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 1 — Результаты опроса наиболее популярных SCADA-систем


Второй предпосылкой можно считать…


Теперь перейдем непосредственно к самой MasterSCADA 4D. Она состоит из двух программных продуктов, а именно: среда разработки и среда исполнения. О работе каждой из этих частей поговорим ниже.


Среда разработки


Проект системы создается в среде разработки MasterSCADA 4D, для этого необходимо получить бесплатную версию на сайте компании Insat и установить, следуя подсказкам.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 2 — Интерфейс среды разработки


Первое, что бросается в глаза — это приятный интерфейс среды разработки и удобная иерархическая структура построения проекта. Теперь в одном проекте можно создавать программу не только под АРМ, но и под весь объект, начиная с контроллера — заканчивая сервером или рабочим местом оператора.


Среда разработки работает только на ОС Windows, это относительно привычно и терпимо, а вот среда исполнения (RunTime) приятно удивила своей возможностью интегрироваться в различные операционные системы и архитектуры процессоров, но об этом дальше.


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

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 3 — Элементы визуализации


Коммуникационные протоколы


В системе поддерживаются различные драйверы (протоколы обмена), которые по умолчанию интегрированы в MasterSCADA 4D:


Modbus TCP/RTU, RTU поверх TCP

DCON

OPC UA/DA/HDA

IEC61850

SNMP

PostgreSQL

MQTT

IEC104

MSSQL

MySQL

Меркурий (отдельная библиотека) и др.


Среда исполнения


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


Устройство AntexGate


MasterSCADA Runtime предустановлена отдельной опцией на встраиваемый ПК AntexGate с архитектурой процессора ARM и операционной системой Debian, тесты будем проводить на этом устройстве.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 4 — Устройство AntexGate


Характеристики:


ЦПУ: 4-ядерный x64 ARM v8 Cortex-A53

1.2Mhz Оперативная память: LPDDR2 1024MB

Энергонезависимая память: 8/16/32GB eMMC


Подробнее об устройстве можно прочитать здесь.


Запустим программу в исполнительном устройстве. Для примера мы создали опрос и управление устройством по протоколу Modbus RTU, процесс настройки опроса интуитивно понятный и чем-то похож на настройку привычного OPC-сервера. Правда сейчас в RunTime встроены драйверы протоколов для обмена данными.


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

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 5 — Проект в среде разработки


В итоге у нас получилась простая мнемосхема (рисунок 6), которая работает в любом браузере с поддержкой HTML5.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 6 — Мнемосхема


Варианты отображения информации HMI


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

В нашем случае на устройстве предусмотрен вывод информации через HDMI, Ethernet, 3G.

При подключении через HDMI мы обращаемся на LocalHost 127.0 0.1:8043 через встроенный браузер в AntexGate, либо подключаемся к фиксированному IP:8043 адресу в интернете или локальной сети предприятия другим «Тонким клиентом».

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 7 — Структура мониторинга WEB


Интересной новостью стал долгожданный MQTT протокол, которого обычно не хватало для мониторинга удаленных объектов в SCADA системах.

На сегодняшний день каждый имеет возможность получить недорогой VDS-сервер в интернете с фиксированным IP-адресом (например, сервер сайта компании) и развернуть на нем MQTT Broker (например, Mosquito).

Получив один сервер с MQTT брокером, мы легко можем отвязаться от дорогих услуг оператора — фиксированного IP и платить в год 900 рублей вместо 4000 рублей за связь 3G, т.е. при подключении 500 устройств экономия в год более 1,5 млн.руб..

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 8 — Структура мониторинга MQTT


Такое построение сети позволит не только экономить на трафике, но и обезопасит данные, так как передача данных по протоколу Modbus TCP в сети интернет не гарантирует безопасность и качество связи.

Таким образом, вы можете продавать тиражируемые проекты, в которых клиент сам выбирает поставщика интернета. И ни у кого не болит голова с настройкой и выделением IP адресов: клиент сам вставляет любую SIM-карту или подключается к маршрутизатору с DHCP-сервером.


Быстродействие


Для проекта главное быстродействие, в этом нам помогут так называемые «Задачи». По умолчанию у каждого узла при его создании только одна — Основная задача. Разработчик проекта может создать их столько, сколько необходимо для работы конкретного проекта. Особенности вычисления, например, цикл вычисления, будут зависеть от настроек той или иной задачи. Каждая из них будет работать независимо от других в устройстве. Создание нескольких задач целесообразно, если необходимо обеспечить разные циклы вычисления разных программ проекта.


Данная функция особенно интересна для устройств, на борту которых процессор с несколькими ядрами. Каждая «Задача» запускается как отдельный процесс в системе и нагрузка распределятся равномерно на работу процессора. В устройстве AntexGate установлен процессор ARM с 4-мя ядрами по 1.2ГГц и 1ГБ оперативной памяти, что позволяет создать как минимум 4 крупные задачи и распределить нагрузку по ядрам. В сравнении с ПЛК, устройство AntexGate может предоставить как минимум в 4 раза больше вычислительных способностей за такую же цену.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 9 — Загрузка вычислительных способностей AntexGate в режиме исполнения


Как мы видим из рисунка 9, загрузка ЦП не более 2,5%, а памяти выделено всего 61Мб. Таким образом, небольшой проект в режиме исполнения потребляет очень мало встроенных ресурсов.

Устройство может использоваться не только как контроллер, но уже и как полноценный сервер с опросом более 2000 точек ввода-вывода и возможностью поддержки более 100 WEB-клиентов.


Для примера подключим 9 WEB-клиентов к устройству и посмотрим прогресс потребления ресурсов (рисунок 10).

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 10 — Загрузка вычислительных способностей AntexGate при подключении 9-ти WEB-клиентов


Как видно из рисунка выше, загрузка ЦП поднялась в среднем с 2,5% до 6%, а памяти выделено всего на 3Мб больше.

Благодаря большому запасу вычислительных ресурсов устройства, разработчику нет необходимости экономить на качестве программы, созданной в MasterSCADA 4D.


Кроссплатформенность


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


Заключение


MasterSCADA 4D — относительно новый продукт компании Insat. На сегодняшний день информации по работе с этим программным продуктом не так много, как хотелось бы. Однако можно скачать бесплатную среду разработки с официального сайта компании, она имеет весьма подробную справку по работе с программой.

SCADA для LINUX. Есть ли жизнь на ARM е? Scada, ПЛК, Linux, Raspberry pi, Гифка, Длиннопост

Рисунок 11 — Окно справки


В заключении хотелось бы сказать о том, что данная статья имеет вводные данные о программном продукте MasterSCADA 4D и много чего не сказано. Однако при Вашей поддержке, мы выпустим более подробные примеры и уроки по работе с этим программным продуктом.


Хотелось бы увидеть в комментариях, какие вопросы больше всего интересуют Вас. И самые часто задаваемые мы по возможности превратим в урок по созданию проектов в MasterSCADA 4D.

Показать полностью 11
[моё] Scada ПЛК Linux Raspberry pi Гифка Длиннопост
28
179
windoozatnick
windoozatnick
5 лет назад
Arduino & Pi

Самоуправляемый ГАЗ66 Monster Truck 1/16⁠⁠

Пикабу, привет!


Хочу рассказать вам о том, как я делал и сделал самоуправляему машинку)

Я мог бы рассказать сразу, как делать, сухо прикрепив схемы и bash команды, но так будет скучно. Предлагаю вам интересную (я надеюсь) историю о том, как лично я прошел этот путь, и куда пришел.


Те места, где было что фоткать, с фотками. Там, где про софт — скорее всего без фото)


Это будет действительно история в формате повествования, как я рассказывал бы вам за чашкой кофе) Это не про bash команды, python скрипты, и вот это вот всё)


Начнём с фотки и видео того, что получилось, и дальше вся история под катом

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

История пройдет по такому сценарию


Почему я этого захотел

Как устроена самоуправляемая машина (взгляд сверху)

Эпоха 1 — Gelendwagen из детского мира + Raspberry Pi Zero W + камера

Эпоха 2 — ГАЗ66 + NVIDIA Jetson Nano + Камера для RaspberryPi

Эпоха 3 — Remo Hobby SMAX

Эпоха 4 — Соединение SMAX и ГАЗ66

Эпоха 5 — Монтирование компонентов на монстр траке

Эпоха 6 — Установка Donkey Car и окружения

Эпоха 7 — Сборка трассы, поездки

Эпоха 8 — Поездки с джойстика

Эпоха 9 — Обучение нейронки

Эпоха 9 — Всё работает, наконец-то!

Что дальше?

Вызов на батл

Сообщество

Образ sd карты моей машинки


Наливайте кофе, мы выезжаем!


Почему я этого захотел


Всё началось с того, что я фрустрировал с того, что в одной большой IT компании России делают очень классные беспилотники, это невероятно круто, а я не у дел)

Не, ну правда, это же так круто — самоуправляемые тачки) Отличный сплав из механики и алгоритмов)

Фрустрация продолжалась до тех пора, пока я не соединил у себя в голове разные факты о себе, а именно:


- я умею писать на питоне

- я (примерно) понимаю как работает машинное обучение

- я знаю, как работать с линуксом в консольке

- я провел детство с паяльником

- у меня есть целая коробка с diy компонентами (raspberry pi, arduino, сенсоры, и т.д.)


Когда всё в голове сложилось, я решил — self drirving car (sdc) быть!

Для начала, решил я, стоит вообще разобраться, как устроена sdc, и об этом будет следующий раздел.


Как устроена самоуправляемая машина (взгляд сверху)


Для того, чтобы машина поехала сама, ей нужно четыре компонента — тележка, сенсоры, компьютер, алгоритм.


Давайте разберемся:

Тележка

То, что собственно, будет ездить. Колеса, моторы, батарея, которая это все питает.

Здесь есть две условных когорты машинок, которые я назвал для себя так — машинки из детского мира, и машинки для хобби.

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

Машинки из мира хобби — то, что вам нужно. У них мощные двигатели, хорошие батареи, сервоприводы на передних колесах для поворотов. Считайте, что это порог входа. Самое дешевое и нормальное, что мне удалось найти — Remo Hobby SMAX.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Сенсоры

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

Базово, джентельменский набор для SDC такой:

— Камера. Основа основ SDC. Смотрит на кусок пространства перед собой, передает изображение компьютеру, который распознает происходящее, и решает, что делать. Кажется, что я не встречал реализаций SDC без камеры.

— IMU сенсор. Штука, показывающая ускорение и угол наклона по осям. Помогает понимать, куда мы, собственно, едем, и как изменилось наше местоположение относительно точки старта. Используется почти во всех коптерах.

— Лидар. Одновременно и простая и сложная штука, которая стреляет лазером вокруг себя, измеряет время возвращения луча, и понимает расстояние до границы пространства. Лидары бывают дорогими, как в настоящих SDC, и довольно дешевыми, как в вашем роботе пылесосе. Для сравнения, лидар из пылесоса стоит 75$, тогда как лидар для большой SDC от Velodyne нагуглился мне за 4K$. Такая разница в цене объясняется тем, что дорогие лидары строят 3D картинку, тогда как пылесосный лидар находит просто границы комнаты в 2D.

— GPS. Не используется в маленьких машинках, так как слишком большая погрешность измерения на маленьких расстояниях, но о нем стоит сказать, так как в больших SDC активно используется.

— Камера глубины. Работает примерно как смесь лидара и камеры — получает картинку с точками, и расстоянием до них. Позволяет строить 3D карту видимой области.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Компьютер

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

В мире компьютеров для встраиваемой электроники правят бал энергоэффективные ARM процессоры (как в вашем телефоне), и одноплатные компьютеры на их основе.

На сегодня есть два самых популярных варианта одноплатников — RaspberryPi и NVIDIA Jetson.

RaspberryPi отличается меньшей ценой, бОльшим количеством разнообразных проектов, бОльшим сообществом.

NVIDIA отличается бОльшей ценой, меньшим количество проектов, но при этом бОльшей производительностью в задачах машинного обучению. Имеет на борту 128 CUDA ядер (как в вашей большей NVIDIA видеокарте), которые используются для ускорения алгоритмов машинного обучения.

В моей коллекции есть три штуки Raspberry Pi (ZeroW, 3, 4) и NVIDIA Jetson Nano. Машинку я решил собирать, конечно же, на Jetson.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Алгоритм

То, что принимает решение о действиях на основе показаний сенсоров. Обычно, для этого используется комбинация компьютерного зрения и нейросетей. В самом базовом варианте, вы ездите сами на своей машинке вдоль некоторой разметки, записываете видео таких поездок с трекингом газ/тормоз/поворот, и потом обучаете на этом нейросеть, чтобы она находила вам зависимость сигналов двигателя от картинок с камеры. Совсем просто, это задача распознавания разметки, и попытка держаться в ней.

Если вы хотите освежить, как работает нейросеть, то предлагаю вам посмотреть вот такое видео — www.youtube.com/watch?v=RJCIYBAAiEI

Здесь я описал самый простой вариант, где есть только камера и езда по разметке. Но есть варианты с бОльшим количеством сенсоров и другой логикой работы — об этом здесь будет отдельный пост.


Если очень высокоуровнено, то это всё.

Остается только:

— собрать тележку

— повесить сенсоры

— подключить компьютер

— нарисовать разметку

— поездить по ней

— обучить нейросеть

— поехать


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


Эпоха 1 — Gelendwagen из детского мира + Raspberry Pi Zero W + камера


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

Окей, подумал я, гелик есть, теперь нужен компьютер и сенсор. Подумано — сделано. Заказал RPi Zero W и камеру для неё. Пока ждал компьютер и камеру, зашел, купил для этого дела пауэрбанк.

Итак, всё на месте, пора собирать. Нашел вот такой проект, решил идти по нему - https://becominghuman.ai/building-self-driving-rc-car-series...
Разобрал гелик, вытащил его родные мозги, перекинул их на контроллер двигателя, его, в свою очередь, перекинул на RPi, к ней подключил камеру, запитал всё это дело пауэрбанком, остался доволен.


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

Тут-то меня и ждала пара провалов.

Первый — Raspberry Pi Zero W очень слабая в плане производительности.

Второй — Проходимость гелика из детского мира почти никакая, его останавливало почти любое минимальное препятствие.

Уже сейчас стало понятно, что проект мертворожденный, но ради интереса я попробовал собрать для Raspberry Pi Zero компьютерное зрение (OpenCV) прямо на ней же. Это заняло, без шуток, больше суток, и стало последним гвоздем в крышку гроба этой реализации SDC.

Стало понятно, что нужно менять и компьютер для большей производительность, и тележку, для большей проходимости.


Получилось довольно смешно

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 2 — ГАЗ66 + NVIDIA Jetson Nano + Камера для RaspberryPi


Итак, на этом моменте стало понятно, что нужно какая-то более проходимая машина, и желательно, грузовик, чтобы положить в кузов все компоненты. После штудирования одного сервиса по подбору товаров, стало понятно, что мне подходит модель нашего родного ГАЗ66, он же шишига в народе. Окей, заказал, жду, пора думать про компьютер. К этому моменту NVIDIA как раз готовила старт продаж своих Jetson Nano, и я оформил заказ в первый день продаж.

Приехал грузовик, я продолжал ждать Jetson, в нетерпении катался на шишиге по дому, катал котят, которых родила кошка, упомянутая выше. Не сказать, что котятам нравилось — пришлось перестать.

Тем временем, Jetson еще ехал, а я заказал из Китая пылесосный лидар — пока не знал, как конкретно буду его применять, но понимал, что хочу.

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

Пора собирать! Но сначала, надо разобрать, лол. Разобрал шишигу, выкинул ее родные мозги, смазал механизмы, начал собирать уже на базе компьютера.

Подключил камеру, контроллер двигателя, поворотный двигатель, двигатель газ/тормоз, завел питоновские скрипты для теста — снова облом!

В этот раз история такая — у шишиги для поворота используется обычный двигатель, не сервопривод. А значит, у него нет обратной связи. А значит, я не могу им упрвлять точно, а значит, он не подходит для SDC.

Штош, снова нужно как-то это решать, что-то делать. Переходим к следующей эпохе.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 3 — Remo Hobby SMAX


Так как в этот момент времени было понятно, что машинка нужна не только проходимая, но и минимально хорошая по комплектующим, выбор пал на магазины для тех, у кого RC, это хобби.

Не мудрствуя лукаво, я приехал в один такой магазин, и не таясь рассказал, что делаю, и какая мне нужна машинка. Продавец, будь ласка, рассказал мне, какая машинка подходит под мои минимальные требования, и это был Remo Hobby SMAX. Купил.

Приехал домой, достал шишигу, скинул всё с неё, сел подключать к SMAX. И что, как вы думаете? Правильно — снова неудача!

Базово, RC машинки устроены так, что двигатель подключается к контроллеру двигателя, а тот, в свою очередь, подключается к радио модулю, который общается с пультом. И вот именно SMAX устроен так, что там контроллер двигателя и радио модуль были объединены — у меня буквально не было возможности подключиться к контроллеру двигателя вместо радио модуля.

Окей, надо что-то снова делать. Возвращаюсь на сайт RC машинок, лезу в комплектующие. Ковыряюсь там, и ура, нахожу такой контроллер двигателя, у которого есть отдельный провод до радио модуля.

Заказываю, привозят, собираю всё заново — работает, но только повороты. А газ и реверс нет! Да что, блин, такое, думая я, но продолжаю ковыряться.

В этот раз не работало то, что, оказывается, для того, чтобы двигатель SMAX проснулся, пульт должен прислать ему определенное значение (360) через радиомодуль. Но я об этом не знал, и вводил значения непосредственно для газа тормоза. А двигатель не реагировал, исходя из логики, что никто его не просил просыпаться.

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

Сначала я перебирал по 100 — мимо. Потом по 50 — мимо. И вот когда дошел до перебора по 10, на 360 услышал какой-то приветственный писк — ура! Работает!

Потестил из консоли газ/реверс/лево/право, все работает. Вот это огонь, вот это я программист =)

Кажется, пора собирать, но есть проблема — положить компоненты совершенно некуда. RC машинки устроены так, что их верх — весьма условная вещь. Во первых, верх состоит из очень тонкогоо пластика, во вторых, он изображает из себя джип, и типа просто некуда всё положить.

В этот момент я решил поискать, а как, собственно, это делают другие.

Нашел проект donkey car, в котором есть всё под ключ, чтобы собрать свою SDC — и Hardware примеры, и Software фреймворк. Казалось бы, круто, бери и пользуйся, но, есть нюансы:

— они печатают верх машины на 3D принтере, и машину оно потом напоминает очень отдаленно. некрасиво, короче, не эстетично

— их 3D модели совместимы с такими машинами, которые у нас не продаются

Окей, запомним Donkey Car, возьмем потом их Software фреймворк, но пока надоо думать про hardware.

В какой-то день, крутя в своей кваритре головой, я посмотрел на разобранную шишигу, на SMAX без верхней части, и подумал — хммм, а они, кажется, одного масштаба (1/16). Взял шишигу, взял SMAX, просто на глазок приложил одно к другому — и правда, подходит! И выглядит круто! Штош, надо делать! Переходим к следующей эпохе.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 4 — Соединение SMAX и ГАЗ66


Итак, на старте этой эпохи у меня есть внутренний таргет — соединить верх от одной машины с низом от другой. Так как мы с коллегами скинулись на 3D принтер, и я являюсь его совладельцем (серьезный инвестор), то было решено нарисовать соединение в CAD программе, распечатать, и таким образом их соединить.

С этой идеей я ходил около 2 месяцев, думая, что вот-вот сяду разбираться в CAD системах. Лол, нет. Признавшись себе в том, что я не хочу разбираться в CAD системах, я стал думать, какие еще есть варианты.

Зашел снова в десткий мир, решил посмотреть конструкторы, вдруг они мне как-то помогут. Купил классический металлический конструктор, который был у меня, когда я учился в школе (аш олдскулы свело).

Притащил его домой, положил две части машинки рядом, и стал прикладывать к ним всякие элементы конструктора. Долго ли, коротко ли, стало появляться какое-то понимание, как, хотя бы в теории, это можно было бы сделать.

Начал делать. Провел не один день с детским гаечным ключом, гайками, и пространственным мышлением.

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

Спустя примерно три переделки и три дня я увидел перед собой этот монстр трак — ГАЗ66 SMAX Edition by Beslan.

Итак, кажется, hardware база готова, переходим к следующей эпохе.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 5 — Монтирование компонентов на монстр траке


Наконец-то:

— у меня есть тележка с хорошими компонентами

— у меня эстетичный и вместительный верх

— на этой тележке нормально работают газ/тормоз/повороты

— верх и низ даже соединены вместе =)


Пора монтировать на этой красоте компоненты.

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


Сделал на кабине крепление для камеры, которое позволяет регулировать угол наклона камеры. Кинул от камеры длинный шлей до Jetson, который, в свою очередь, поселился в кузове.

Помимо Jetson, в кузове поселились:

— пауэрбанк для питания компьютера (пожертвовал свой основной, классный, с usb power delivery, чтобы jetson не проваливался по питанию)

— PCA9685 (ШИМ контроллер) для управления двигателями

— батарея для питания двигателя машины


Так как проект уже на этот момент считался долгостроем, с лидаром решил пока не связываться, и сделать MVP хотябы на камере и софте от Donkey Car.

По приколу подключил родные фары от ГАЗ66, чтобы было красивее и увереннее в темноте.


Штош, моя машинка включается, двигатели реагируют на команды из питона, камера дает картинку, фары горят, все окей, пора ставить софт.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 6 — Установка Donkey Car и окружения


Благо, на прошлых этапах я нашел проект Donkey Car, и он очень упростил мне жизнь, избавим меня от написания всего самостоятельно. Говоря по простому, DonkeyCar, это фреймворк, в котором уже есть все, что нужно для SDC. И у них даже есть гайды по тому, как ставить софт. Но, как это обычно бывает с OpenSource — гайды устарели, и моментами противоречят друг другу.

Штош, придется разбираться. Для нормальной работы фреймворка нужны следующие библиотеки:

— OpenCV

— tensorflow-gpu (gpu именно для jetson, ибо есть cuda ядра. для rpi там tensorflow-lite)

— tensorrt (библиотека для ускорения инференса нейронок)

— и все то, что ставится автоматически исходя из списка окружения


Начнем с OpenCV.

В гайде DonkeyCar сказано, что его нужно собрать самом из исходников, ибо для ARM нет OpenCV в pip-е. Я это даже проделал, скомпилял OpenСV, но перед установкой решил проверить, вдруг в системе есть старая версия OpenCV, и ее надо снести. Позвал питон, заимпортил cv2, спросил версию, а она бац, и актуально. Быстренько поискал, и узнал, что оказывается, в последние версии linux4tegra (который в jetson) ребята из NVIDIA стали класть OpenCV. Круто, мне меньше дел. Молодец, что смог сам скомпилять)


Дальше, tensorflow-gpu.

В гайде DonkeyCar указана, во первых, устаревшая ветка версий (1.xx), во вторых, даже не последняя версия из устаревших. Я решил их не слушать, и поставить последнюю актуальную версию (2.0).


Следующий шаг — tensorrt

Гайд по установке tensrort на jetson написан отдельной вики страницей, и по ней понятно, что автор не читал основной гайд =) Ибо в гайде по tensorrt переназначаются переменные окружения, и перестает работать OpenCV. Я покрутил это и так и этак, откатил всё назад, и решил забить на окружения и переменные окружения — вкатил прямо в основное окружение.


Довольный собой открыл питон, по очереди позвал cv2, tensorflow, tensorrt, и потом спросил у питона их версии — они все заимпортились, все показали актуальные версии. Круто!

Процесс установки самого donkey car довольно простой, не буду описывать, предлагаю почитать их гайд. Единственное, что отмечу сейчас — в конфиге donkey car можно повысить разрешение картинки с 86х86 для RPi до 224х224 для Jetson (ибо больше производительности и так будет выше точность).


Итак, все готово, время запускать и тестировать!


Моя машинка действительно включается, на ней стартует веб сервер на том IP, которой машинке выдал роутер. И туда реально можно зайти, и из браузера поездить джойстиком, смотря на картинку с камеры.


Еще пришлось откалибровал значения, подаваемые на ШИМ (PCA9685), чтобы найти полный ход вперед, полный назад, максимальные повороты в стороны.

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


Круто, пора переходить к подготовке трассы!


Эпоха 7 — Сборка трассы, поездки


Алгоритм Donkey Car так устроен, что там нейронка, обучаемая учителем. А это значит, что трекается картинка с камеры, и рядоом с каждой картинкой появляется json файл, в которой пишется имя картинки, ускорение, поворот, timestamp. И для того, чтобы обучить нейронку, таких пар «картинка + json» нужно минимум 5К.

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

Окей, решил собирать в одной комнате. Купил 4 рулона малярного скотча, и наклеил им по полу трассу.

Поставил машинку, запустил, поехал, и снова провал — оказывается, одна комната слишком маленькая, и моя машинка банально не входит в поворорты. Точнее входит, но на такой скорости, что будет стыдно потом =)


Штош, надо делать вторую итерацию, и нужно большое помещение. Выбор пал на офис — места много, полы однотонные, открыто 24Х7. Проблема только в том, что ночью работают уборщики, и трассу нужно будет убрать. То есть, надо сделать все в один заход — поездить руками, чтобы быть учителем, обучить модель, закинуть обратно в машинку, и поехать уже без управления руками.


Окей, день Х, после ивента про А/Б эксперименты решено остаться в офисе, и делать трассу.

Место выбрано, скотч готов, команда строителей трассы в игре. Буквально час, и в коридоре офиса появляется отличная трасса.

Ставлю машинку, включаю, пробую ездить — ура, в повороты входит, и скорость пришлось ограничить всего до 80%.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

Эпоха 8 — Поездки с джойстика


Итак, у меня есть трасса, есть машина, и мне нужно 5К пар картника+json.

Опытным путем я выяснил, что один круг моей трассы, это 250 пар фотка+json, а это значит, что мне нужно отъездить минимум 20 кругов.

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


Начал пытаться ездить по 20 кругов без перерыва, и это, должен сказать, не самая простая задача.

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


Штош, значит надо сделать так, чтобы коннект был с того устройства, с которым я сам хожу за машинкой, когда езжу. А это значит, что надо ездить из браузера телефона.

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

Хм, значит нужно как-то объединить телефон и джойстик. Окей, у меня есть читалка, она достаточно большая, на ней поместится и телефон и джойстик — подойдет. Взял скотч, и примотал скотчем к читалке телефон, а чуть ниже джойстик. Смотрел на это чудо, и думал — что ты такое, вообще)

Но, сработало) С этой штукой мне удалось отъездить 20 кругов. А на саомм деле, даже 25, ибо я вошел во вкус где-то к 15 кругу))

Такс, готово, у меня есть датасет для обучения нейронки, пора обучать!


Эпоха 9 — Обучение нейронки


В этот момент у меня есть машинка, трасса, датасет — да я в одном шаге от результата!

Дома крутился PC на холостом ходу, с NVIDIA RTX 2070, на котором я и планировал обучаться. Благо, для умного дома у меня есть внешний IP, и нужно было всего лишь прокинуть 22 порт из интернета на PC. Хорошо, что нашлись помощники, которые сделали это для меня, пока я был в офисе.

Итак, захожу по ssh на комп с убунтой, монитирую домашную папку по sshfs, закидываю файлы. Казалось бы, всего 40 мегабайт, но это длилось около 30 минут. Так вышло, я так понимаю, потому, что их было очень много.

Файлы на компе, tensorflow-gpu установлен, софт от DonkeyCar установлен, пора обучать.

Зову скрипт от DonkeyCar для обучения нейронки, указываю ему на папки с датасетом — побежало.

Пока нейронка бегает, nvtop (монитор загрузки видеокарты) показывает 1406% утилизации, обычный htop показывает 100% загрузки cpu по всем 16 ядрам, дело идет)

Спустя каких-то 20 минут у меня есть обученная модель для управления тачкой. Казалось бы, бери, пользуйся. Но нет)

Помните, я выше писал про tensorrt, который оптимизирует инференс нейронок и запускает их на cuda ядрах? Конечно-же, я хочу выполняться через него.

А это значит, что мне нужно:

— зафризить модель (упаковать всё нужно для модели в один файл)

— сконвертировать результат фриза в пригодный для tensorrt формат


Пытаюсь зафризить модель, зову скрипт от DonkeyCar, неудача. А тем временем, дело к ночи, скоро уборщики демонтируют мою трассу, мне нужно быстро.

Родилась гипотеза, что это потому, что я взял не тот tensorflow, что был у DonkeyCar. Окей, сношу tensorflow 2.0, ставлю 1.15, пробую еще раз — успех, ура!


Теперь конвертация, и снова расстройство — команда не найдена. Окей, отправляюсь искать, в чем дело. Оказалось, NVIDIA пометили эту функцию как устаревшую, и оторвали поддержку. Теперь, мол, нужно конвертировать руками. Благо, я нашел гит репо, где был аналогичный запрос, и пользователь нашел то место, где лежит собственно питоновский скрипт, который конвертирует модели.

Зову скрипт из того места, и правда отзывается. Но, говорит, никаких тебе третьих питонов, давай второй.

Окей, зову второй питон. Он мне говорит — у меня нет tensorflow. Хорошо, прошу его поставить tensorflow-gpu 1.15, а он мне говорит, что такой версии нет, есть только 1.14. Ладно, соглашаюсь я, давай рискнем, и поставим разные версии в разные питон окружения. Поставил tensorflow во второй питон, позвал конвертацию — ура, сработало!


Штош, у меня есть модели для tensorrt и для обычного tensorflow-gpu, закидываю в машинку.


Запускаю машинку с моделью для tensorrt, огромный трейсбек ошибки, время давит — окей, попробую обычную модель.

Запускаю обычную, снова ошибка, но на этот раз довольно четкая — ваш размер картинки 224X224, тогда как ожидается 86X86. Помните, где-то сильно выше я писал о том, что правил конфиг, менял разрешение картинки с камеры?

Так вот, на машинке я поправил, а на хост компьютере нет.

Самоуправляемый ГАЗ66 Monster Truck 1/16 Своими руками, Радиоуправляемая машина, Tensorflow, Машинное обучение, Raspberry pi, Arduino, Видео, Длиннопост

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

Запускаю машинку с моделью для tensorrt, и…


Эпоха 10 — Всё работает, наконец-то!


Ура! Моя машинка поехала! Сама, без меня. Очень круто. Я невероятно рад)

Почти год я всё это делал, и вот)


Что дальше?


На дальнейшее развитие есть ряд планов, пойду от простого к сложному

— Добавить в модель IMU сенсор, чтобы, возможно, повысить точность. Например, что при движении в горку нужно больше усилия двигателю.

— Перевести логику на поездки не по трассе, а просто ездить, объезжая препятствия

— Добавить лидар и учитывать показания с него


Вызов на батл


Если вы сам, или с компанией друзей, чувствуете, что хотите гонок, то пишите мне, давайте устроим соревнования =)


Сообщество


Еще я собрал чатик по интересам, и готовлю канал. Я не уверен, что по правилам пикабу так можно, так что пришлю в личку по запросу


Образ sd карты моей машинки


По запросу, так же, я пришлю вам img образ моей тачки, если хочется сделать на аналогичной базе, и не хочется париться с настройкой

Показать полностью 11 1
[моё] Своими руками Радиоуправляемая машина Tensorflow Машинное обучение Raspberry pi Arduino Видео Длиннопост
39
GlebSiverov
GlebSiverov
5 лет назад

Накамерный рекордер своими криворучками. Prores, 10 bit, 422⁠⁠

Уже неделю мне не дает покоя замутить собственный видеорекордер по типу Atomos'ов. Тема с его покупкой, понятное дело отпадает.
Так вот основная идея в чем: берем плату видеозахвата, которая может тянуть изображение с камеры по hdmi и переносить это изображение на устройство, способное кодировать и сохранять данные данные. В качестве такого устройства подумываю применить какой нибудь микрокомп, типа Малины 4.
Естественно нужно получить видео высокой четскости, 4к, 10 бит, 422, prores и остальные плюшки, на которые фапают многие видеографы.
Вот тут и встает куча вопросов:
1. Какую плату видеозахвата применить, чтобы не упороть качество.
2. Может ли малина кодировать в prores.

Накамерный рекордер своими криворучками. Prores, 10 bit, 422 Raspberry pi, Своими руками, Рекордер, Видео, HDMI, Prores422, Видеограф, Canon
[моё] Raspberry pi Своими руками Рекордер Видео HDMI Prores422 Видеограф Canon
11
49
antexdom
antexdom
5 лет назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

SCADA на Raspberry: миф или реальность?⁠⁠

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Winter Is Coming. На смену программируемых логических контроллеров (ПЛК) постепенно приходят встраиваемые персональные компьютеры. Это связано с тем, что мощности компьютеров позволяют одному устройству вобрать в себя функционал программируемого контроллера, сервера, и (при наличии у устройства выхода HDMI) еще и автоматизированного рабочего места оператора. Итого: Web-сервер, OPC-часть, база данных и АРМ в едином корпусе, и всё это по стоимости одного ПЛК.


В статье рассмотрим возможность применения таких встраиваемых компьютеров в промышленности. Возьмем за основу устройство на базе Raspberry Pi, поэтапно распишем процесс установки на него открытой бесплатной Open Source SCADA-системы российской разработки — Rapid SCADA, а также разработаем в ней проект абстрактной компрессорной станции, в задачи которой будет входить удаленное управление компрессором и тремя вентилями, а также визуализация технологического процесса производства сжатого воздуха.


Сразу оговоримся, что задачу можно решать двумя вариантами. Принципиально они не отличаются друг от друга никак, вопрос лишь в эстетической и практической составляющей. Итак, нам необходимо:


1.1 Первый вариант подразумевает наличие непосредственно самого Raspberry Pi 2/3/4, а также наличие USB-конвертера в RS485 (так называемого «свистка», который можно заказать с Alliexpress).

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 1 — Raspberry Pi 2 и USB-конвертер в RS485


1.2 Второй вариант включает в себя любое готовое решение на базе Raspberry, рекомендованное для инсталляций в промышленных условиях cо встроенными RS485 портами. Например, такое, как на рисунке 2, на базе модуля Raspberry CM3+.

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 2 — Устройство AntexGate



2. Устройство с Modbus на несколько управляющих регистров;


3. ПК на Windows для конфигурирования проекта.


Главы статьи:


Часть I. Установка Rapid SCADA на Raspberry;

Часть II. Установка Rapid SCADA на Windows;

Часть III. Разработка проекта и его загрузка на устройство;

Выводы.


Часть I. Установка Rapid SCADA на Raspberry


1. Заполняем форму на сайте Rapid Scada для получения дистрибутива и скачиванием последнюю версию для Linux.


2. Разархивируем скаченные файлы и копируем папку «scada» в директорию /opt устройства.


3. Кладем три скрипта из папки «daemons» в директорию /etc/init.d


4. Даем полный доступ трем папкам приложения:


sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/config
sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/log
sudo chmod -R ugo+rwx /opt/scada/ScadaWeb/storage

⠀5. Делаем скрипты исполняемыми:


sudo chmod +x /opt/scada/make_executable.sh
sudo /opt/scada/make_executable.sh

⠀6. Добавляем репозиторий:


sudo apt install apt-transport-https dirmngr gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/debian stable-stretch main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update

⠀7. Устанавливаем Mono .NET Framework:


sudo apt-get install mono-complete

⠀8. Устанавливаем Apache HTTP-сервер:


sudo apt-get install apache2

⠀9. Устанавливаем дополнительные модули:


sudo apt-get install libapache2-mod-mono mono-apache-server4

⠀10. Создаем ссылку на Web-приложение:


sudo ln -s /opt/scada/ScadaWeb /var/www/html/scada

⠀11. Из скаченного архива в папке «apache» копируем файл scada.conf в директорию /etc/apache2/sites-available


sudo a2ensite scada.conf

⠀12. Переходим по этому пути sudo nano /etc/apache2/apache2.conf и добавляем следующее в конец файла:


<Directory /var/www/html/scada/>
<FilesMatch "\.(xml|log|bak)$">
Require all denied
</FilesMatch>
</Directory>

⠀13. Выполняем скрипт:


sudo /opt/scada/svc_install.sh

⠀14. Перезагружаем Raspberry:


sudo reboot

⠀15. Открываем веб-сайт:


http://IP-адрес устройства/scada

⠀16. В открывшемся окне вводим логин «admin» и пароль «12345».


Часть II. Установка Rapid SCADA на Windows


Установка Rapid SCADA на Windows потребуется для настройки Raspberry и конфигурации проекта. В теории можно это делать и на самой малине, но в технической поддержке нам посоветовали использовать среду разработки на Windows, поскольку здесь она работает корректнее, чем на Linux.


Итак, приступим:


Обновляем Microsoft .NET Framework до самой свежей версии;

Скачиваем дистрибутив Rapid SCADA для Windows и устанавливаем в автономном режиме;

Запускаем приложение «Администратор». В нём мы будем разрабатывать сам проект.


При разработке необходимо обратить внимание на некоторые моменты:


1. Нумерация регистров в данной SCADA-системе начинается с 1 адреса, поэтому нам пришлось увеличить нумерацию своих регистров на единицу. В нашем случае это: 512+1 и так далее:

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 3 — Нумерация регистров в Rapid SCADA


2. Для перенастройки директорий и корректного развертывания проекта на операционной системе Linux, в настройках необходимо зайти в «Сервер» -> «Общие параметры» и нажать кнопку «Для Linux»:

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 4 — Перенастройка директорий в Rapid SCADA


3. Определяем порт опроса для Modbus RTU таким образом, как он определяется в системе Linux устройства. В нашем случае это /dev/ttyUSB0

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 5 — Перенастройка директорий в Rapid SCADA


При возникновении каких-то вопросов, все дополнительные инструкции по установке можно получить на сайте компании или на их youtube-канале.


Часть III. Разработка проекта и его загрузка на устройство


Разработка и визуализация проекта создается непосредственно в самом браузере. Это не совсем привычно после десктопных SCADA-систем, но вполне имеет место быть.


Отдельно хотелось бы отметить ограниченный набор элементов визуализации (рисунок 6). Из встроенных компонентов здесь есть светодиод, кнопка, тумблер, ссылка и указатель. Однако большой плюс в том, что данная SCADA-система поддерживает динамические изображения и текст. При минимальных знаниях графических редакторов (Corel, Adobe Photoshop и др.) можно создавать собственные библиотеки изображений, элементов и текстур, а поддержка GIF-элементов позволит добавить анимацию в визуализацию технологического процесса.

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 6 — Инструменты редактора схем в Rapid SCADA


В рамках данной статьи не было цели расписывать поэтапно процесс графического создания проекта в Rapid SCADA. Поэтому подробно не будем останавливаться на этом пункте. В среде разработчика наш простенький проект «Системы подачи сжатого воздуха» компрессорной станции выглядит следующим образом (рисунок 7):

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 7 — Редактор схем в Rapid SCADA


Далее заливаем наш проект на устройство. Для этого указываем IP-адрес устройства для передачи проекта не на localhost, а на наш встраиваемый компьютер:

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 8 — Загрузка проекта на устройство в Rapid SCADA


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

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 9 — Проект компрессорной станции (GIF-анимация)


Здесь вы можете скачать файл данного проекта для ознакомления.


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

SCADA на Raspberry: миф или реальность? Scada, Raspberry pi, Зима близко, Гифка, Длиннопост

Рисунок 10 — SCADA-система на Raspberry


Выводы


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


Если у вас есть опыт рисования в различных графических редакторах и вас не смущает то, что вам придется самостоятельно создавать элементы мнемосхем, то вариант с Rapid SCADA под Raspberry весьма оптимален. Её функционал как готового решения несколько ограничен, поскольку это Open Source, однако и он позволяет покрыть задачи небольшого производственного здания. Поэтому если подготовить для себя шаблоны визуализации, то вполне можно использовать это решение для интеграции если не всех, то какой-то части своих проектов.

Показать полностью 10
Scada Raspberry pi Зима близко Гифка Длиннопост
87
699
sbtransport.ru
sbtransport.ru
5 лет назад
Авиация и Техника

Тариф BUSINESS от FlightRadar24 за 4000 рублей!? Легко! Простые лайфхаки для серьезной экономии средств⁠⁠

Тариф BUSINESS от FlightRadar24 за 4000 рублей!? Легко! Простые лайфхаки для серьезной экономии средств Авиация, Самолет, Компьютер, Raspberry pi, Flightradar24, Транспорт, Транспортная компания, Бизнес, Длиннопост

Наверное, очень многие грузоперевозчики и любители авиации знают, что такое Flightradar24. Для тех, кто это название слышит впервые – FR24 – очень удобный сервис отслеживания любого самолета в мире в режиме реального времени. Плюс можно получить данные о погоде, номерах рейсов, тех или иных задержках, высоте и скорости полета, скорости ветра на маршруте. Также сайт хранит данные о тех или иных уже оконченных рейсах, и можно уже после перелета обратиться ко всей вышеперечисленной информации.

Спрашивается, а как получить доступ? Легко!


Только лишь скачав приложение, вы уже сможете наблюдать за происходящим с помощью простого и бесплатного тарифа Basic. Но есть и ограничения. Срок хранения данных 7 суток вместо 730 дней. Куча функций заблокирована. Нам это не подходит.


Мы хотим тариф BUSINESS, который продается за 499$ в год и открывает нам все возможности без лимитов. Но вот беда: мы не хотим платить столько денег!

Надо что—то придумать.


Решение очень простое. Организовать у себя в офисе/дома ресивер (он же транспондер) по передаче данных на сайт сервиса. Дело в том, что FR – энтузиасты авиации и стремятся к тому, чтобы покрытие территории приемниками, улавливающими сигналы транспондеров лайнеров, было максимальным. Для улучшения качества приёма. А взамен – готовы отдать требуемый тариф совершенно бесплатно, пока ты транслируешь им полученные данные с бортов.


Если точнее, то вот более подробная информация (откуда-то честно скопипи....позаимствована)):

Веб-сервис FR24, для слежения и получения информации о воздушных судах использует технологию ADS-B. Самолёт, оборудованный ADS-B-транспондером, во время всего полёта, примерно каждую секунду генерирует и отправляет в эфир (на частоте 1090 МГц) широковещательное, открытое радиосообщение, в котором содержатся актуальные на момент отправления данные — свои точные координаты (определённые с помощью GPS), свою текущую скорость, высоту и другую информацию.

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

В конце 2015 года Flightradar24 использует около 9000 ADS-B приёмников, установленных по всему миру, которые получают информацию от самолётов и отправляют её на сервер Flightradar24.
На скрине ниже - места дислокации таких точек.
Тариф BUSINESS от FlightRadar24 за 4000 рублей!? Легко! Простые лайфхаки для серьезной экономии средств Авиация, Самолет, Компьютер, Raspberry pi, Flightradar24, Транспорт, Транспортная компания, Бизнес, Длиннопост

ADS-B приёмник, говорите? Легко! Cчитай, сделано.


Остается техническая часть. Идем на сайт компании.


На сайте FR24 в особом разделе имеется специализированный софт для разных моделей компьютеров. Среди них – Raspberry Pi. Он не дорог, третья версия платы стоит около 3000 рублей. Еще в 1000 обходится специальная антенна для приема сигнала и приемный модуль. И то, и другое можно легко купить в Интернете.


Вот это другое дело – нам подходит.


В общем, чтобы не мучать вас подробностями, скажу, что все приборы были куплены буквально за несколько минут. Закупленное было собрано в подходящую по размеру коробку, закрыто стеклом во избежание пыли и повреждений. Подключена коммутация. Протестирована работоспособность девайса. Мини-компьютеру обеспечен доступ в Интернет.


Вот так выглядит коммутация системы.

Тариф BUSINESS от FlightRadar24 за 4000 рублей!? Легко! Простые лайфхаки для серьезной экономии средств Авиация, Самолет, Компьютер, Raspberry pi, Flightradar24, Транспорт, Транспортная компания, Бизнес, Длиннопост

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


Остается зайти на сайт FR24.


• Регистрируемся там,
• Включаем наш уже подготовленный компьютер с установленным ПО,
• Жмем прямо в аккаунте «добавить» девайс.
• Далее система ищет в твоей Интернет-сети уже включенное устройство, и найдя, регистрирует его.
• Вы получаете цифробуквенный код, который нужно зафиксировать.
• Лишь после этого вы можете подключить профессиональный аккаунт Business, чего мы всё это время и добивались.

Ну и помимо всего прочего, с этого момента вы начинаете транслировать данные с пролетающих над вашей головой самолетов.


Размеры 12 на 17 см, не больше.

Тариф BUSINESS от FlightRadar24 за 4000 рублей!? Легко! Простые лайфхаки для серьезной экономии средств Авиация, Самолет, Компьютер, Raspberry pi, Flightradar24, Транспорт, Транспортная компания, Бизнес, Длиннопост

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

Сплошные плюсы.


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


ПС: Спасибо, что дочитали до конца!)
Показать полностью 4
[моё] Авиация Самолет Компьютер Raspberry pi Flightradar24 Транспорт Транспортная компания Бизнес Длиннопост
109
0
defurniture
defurniture
5 лет назад
Программирование на python

Raspberry pi zero w и arduino⁠⁠

Вот думаю, почему бы не запилить какой нибудь +- глобальный проект используя  raspberry pi zero w с его возможностью использовать python для работы с  gpio пинами и arduino? Малинка может спокойно взять на себя большинство вычислений, а ардуинка будет просто посредником. Есть конечно платы использующие огрызок python похожий на версию для ms-dos но это не серьёзно. Даже уже примерно наметил первый проект: python скрипт потихоньку парсит маки клиентов в сети(Если так низя можно использовать костыль в виде bash скрипта который будет писать маки в файл), а при подключении, моего в данном случае, телефона - открывать дверь или включать пк.

PS Автору 9 лет и у него уже давно поплыли мозги и держатся только на костылях))

Python Командная оболочка bash Raspberry pi Arduino Текст
35
antexdom
antexdom
5 лет назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

Российский Linux похожий на Винду⁠⁠

Российский Linux похожий на Винду Raspberry pi, Linux, Контроллер, Тестирование, Видео

Внимание для пользователей Windows в ОС Astra Linux предусмотрен пасьянс!

На днях протестировали Astra linux и установили его на комп на базе процессора ARM.

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


Видео работы:

Советы по ускорению системы:

1. Использовать монитор с невысоким разрешением или вручную снизить разрешение в файле /boot/config.txt до 1280х720.

2. Установить утилиту автоматического управления частотой процессора

sudo apt-get install cpufrequtils

поправить в /boot/config.txt

force_turbo=1

Тестировали ОС на устройстве AntexGate, этот дистрибутив подходит для Raspberry PI 3, правда загрузку с SD карты вдвое дольше!


А это видосик шутки ради))

Показать полностью 2
[моё] Raspberry pi Linux Контроллер Тестирование Видео
20
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

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

Попробовать

Ремонт Теплый пол Текст
77
antexdom
antexdom
5 лет назад
Arduino & Pi
Серия Контроллер интернет вещей AntexGate

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit⁠⁠

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Уважаемые друзья!


Мы решили поделиться с Вами бюджетным готовым решением, надеемся Вы оцените наши старания. Решение проверенное, рабочее. Во вложении можно скачать все файлы программ и настройки. Отдаем все бесплатно.


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


Речь пойдет о некоторых проблемах и решениях, связанных именно с освещением в доме, как о неотъемлемом блоке «умного дома».


Проблема 1: Если система централизованная, то в случае сбоя центрального контроллера программа не может управлять реле включения света.


Решение: Использовать распределенные модули управления с внутренней логикой, по нашему опыту одним из самых зарекомендовавших себя устройств в этом — программируемое реле ПР200 производства компании ОВЕН. Советуем использовать версию 220в, т.к. бытовые выключатели рассчитаны именно на это напряжение и будет меньше проблем с логической «единицей» на дискретном входе.

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Это устройство имеет 8 каналов (реле) которые можно запрограммировать с использованием внутренней логики (как распределенную систему), дополнительно подключаются еще модули расширения 2шт. по 8 каналов, но тут есть риск остаться без большего количество управляемых светильников при выходе из строя самого ПР200 (8 каналов против 24), если соберетесь экономить, подумайте!

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Несмотря на то, что программу выглядит просто, к ней мы шли несколько лет не по своей вине, компания Овен относительно недавно (после появления ПР200) добавила возможность управлять сетевой переменной как снаружи, так и изнутри.


Подробнее о программе:


I8 – это дискретный вход с 8 выключателя в доме или комнате


RTRIG – детектор переднего, необходим для формирования единичного (на один цикл программы) импульса


TO INT – преобразования Bool в INT можно было бы и обойтись, но Slave сетевая переменная в Owen Logic не поддерживает bool.


XOR – исключающее или, если на одном входе 1, то и выход 1, если на оба входа подать 1 выход обнулится, основной элемент программы, который решает по нажатию на выключатель включить или выключить свет.


Реле8 – входная и выходная сетевая переменная, как я и говорил выше с недавнего времени можно использовать эти две переменные с одним регистром (адресом) Modbus, это нам дает возможность сохранить в нее необходимое нам состояние как снаружи, так и внутри без использования различных триггеров. Эти сетевые переменные имеют энергонезависимую память, поэтому при скачке напряжения освещение вернется в последнее состояние.


TO BOOL – конвертируем INT в BOOL значение, потому как реле на выходе имеет состояние False/True.


Шаг 1: программу для 8 каналов можно скачать по ссылке в конце статьи и залить в программируемое реле, не забудьте сменить целевую платформу для своей версии ПР200/110 иначе прошить устройство не удастся!


Проблема 2: стандартные бытовые выключатели имеют состояния включен либо выключен, что в корне противоречит логике управления освещением в умном доме, нам нужны кнопки без фиксации (с пружинками).


Решение 1: Использовать готовые кнопки без фиксации, которые есть у большинства производителей выключателей таких как Shneider, Biticino, ABB и др. (рекомендованное решение, хоть кнопки в одном положении и включенных и выключенных ламп это выглядит эстетически красиво)


Решение 2: Отлавливать в ПР200/110 изменение состояния входа при использование типичного бытового выключателя с фиксацией и дальше посылать импульс программе которую скачали выше, если свет был включен то он погаснет и наоборот (не рекомендуется, т.к. через некоторое время все кнопки будут перепутаны верх и низ)


Проблема 3: верхний уровень у большинства производителей систем умного дома не дотягивает до эстетического и функционального совершенства.


Решение: используем HomeKit от Apple, которое: функционально, удобно и есть голосовое управление.


Шаг 2: стыкуем ПР200/110 с HomeKit


Для этого необходимы следующие инструменты:


Решение рекомендованное для демонстраций:


Raspberry Pi 2/3/4 и к нему usb конвертер rs485 (например с Alliexpress)

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Решение рекомендованное для инсталляций:

Устройство на базе модуля Raspberry CM3+ в промышленном исполнении c 2 двумя встроенными RS485 портами:

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Устройство AntexGate. Документацию можно посмотреть тут.

Подключите Ваше устройство на базе Raspberry к питанию и домашней сети желательно патчкордом, а не по wifi.


Соедините RS485 порт Вашего устройства и ПР200/110.


Далее определите IP адрес который выдал Ваш роутер и подключитесь по SSh например через программу PUTTY (по умолчанию логин pi пароль raspberry)


Установите программный продукт node-red для стыковки протокола HomeKit на верхнем уровне и Modbus Rtu на нижнем, смотри инструкцию по установке тут.


Не забудьте сделать Ваш node-red сервисом для автозагрузки.


Установите пакет HomeKit и modbus для node-red


cd ~/.node-red
npm install node-red-contrib-homekit
npm install node-red-contrib-modbus
sudo reboot

Ждем перезагрузки и переходим в браузер «ВАШ IP»:1880 (например 192.168.1.110:1880)


Копируем следующий поток (код в конце статьи) и вставляем в веб интерфейс «движка» правил node-red


Заходим в Menu -> import -> вставляем код потока

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост
Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост
Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Необходимо применить поток нажав на кнопку Deploy


В случае неудачи советуем правильно указать RS485 порт в настройках Modbus плагина «Запрос модбас» и «Write Reset FC6» (пример /dev/ttyUSB0).


Для достоверности перезагрузите Ваше устройство.


Шаг 3. Настройка приложения на Вашем Apple устройстве довольно простая.

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Даем имя нашему дому по желанию, в нашем примере ПР200

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Добавляем и соглашаемся использовать несертифицированный аксессуар

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Вводим код доступа, в нашем случае 111 11 111, его можно заменить в настройках Node-red в каждом из аксессуаров HomeKit

Умный Дом — голосовое управление в три шага. Raspberry + HomeKit Raspberry pi, Homekit, Smarthouse, Контроллер, Интернет вещей, Программирование, Длиннопост

Добавляем все наши лампы в комнаты, это можно сделать позже.


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


Внимание:


Мы не агитируем к коммерческому использованию протокол HomeKit, любые действия противоречащие лицензионному соглашению APPLE по использованию протокола HomeKit разработчик берет на себя!


Программу для ОВЕН ПР200 и скрипт для NodeRed можно бесплатно скачать тут.

Показать полностью 11
[моё] Raspberry pi Homekit Smarthouse Контроллер Интернет вещей Программирование Длиннопост
38
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии