Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Raspberry в условиях помех. Чего ожидать.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Отладочные платы > Raspberry Pi
LeFou_Treize
Захотелось в рамках хоббийного проекта пощелкать компрессором кондиционера. Я, конечно, постараюсь минимизировать помехи, поставить буфера, драйверы, а также применить ферритовые бусины и прочее шаманство -- но кто знает, как оно там выйдет. Понимаю, что RPi не самый удачный выбор в этом плане, но уж больно удобный программный стек.
Чего можно ожидать, кроме рестарта и зависания системы? Помню, для каких-то МК сообщалось о спонтанном выполнении блоков кода -- то ли джамп случался непредвиденный, то ли ветвление шло неправильно в сильных помехах. Уж не знаю, правда ли это, такого сам не видел, хотя флешку по рестарту тёрло, было дело.
Последствия сбоя могут быть печальными для хобби, вкусный продукт может замерзнуть или упариться) При особо неудачном заходе можно также уложить компрессор -- повторный запуск после остановки позволителен лишь спустя минут 5, иначе есть шанс получить гидроудар.
В общем, при ресетах и зависаниях меня спасут аккуратная процедура старта, вочдог, read-only карточка. А вот от произвольного исполнения куска кода защищаться не хотелось бы.
Вопрос -- кто-нибудь наблюдал странности и глюки, которые не укладываются в рестарт и зависание? Ну, наверное, может отдельно отсыхать периферия. А еще?

Думал также про решение в духе ПЛК, типа принудительно обесточивать малину раз в час брутальным электромеханическим таймером. Но это как-то уж совсем грустно. И как она себя ведет по выходам при пропадании питания, мне неизвестно, вдруг мусорит в GPIO?

Мелькала также мысль не мучить зверюшку, и возложить управление тяжелой нагрузкой на отдельный модуль, висящий на I2C/SPI. С другой стороны, это означает, что появляются две сущности, подверженнеы помехам. Не уверен. что есть смысл.
muravei
Цитата(LeFou_Treize @ Aug 1 2016, 12:55) *
При особо неудачном заходе можно также уложить компрессор -- повторный запуск после остановки позволителен лишь спустя минут 5, иначе есть шанс получить гидроудар.

Сделайте аппаратную защиту(реле времени)- и спите спокойно.
AlexandrY
Цитата(LeFou_Treize @ Aug 1 2016, 12:55) *
Захотелось в рамках хоббийного проекта пощелкать компрессором кондиционера.


Такие вещи на Arduino делают.

А RPi будет виснуть скорее всего из-за сетевого и WLAN-овского флуда.
Хотя вылет программы в DDRAM из-за фоновой радиации тоже гарантирован раз в месяц.
LeFou_Treize
Ну делают такие вещи много на чем, а RPi я хочу за нормальный сетевой стек. Насчет "будет виснуть из-за флуда" непонятно - сетевой драйвер захлебывается в промискуитетном режиме, что ли? видел пару самоделок, торчаших в довольно забитую корпоративную сеть -- такого вроде не было. Уж скорее он будет терятьпакеты, чем виснуть, не?

Реле времени на 5 минут... думал об этом, конечно. Цифровое будет подвержено помехам, аналоговое электронное в общем тоже -- там же компаратор. Остается механика, пневматика и прочая экзотика. В общем, я был бы рад обойтись без этой детали, если получится.

Про вылет программы интересно. В общем да, контроля четности нет, рано или поздно сбойнет. И регулярными перезагрузками делу не помочь. Правда, шансов что перекинется именно ячейка с условием, которое я проверяю -- немного. а от накопления мелких сбоев регулярная перезагрузка поможет.
amiller
Цитата(LeFou_Treize @ Aug 2 2016, 13:53) *
Ну делают такие вещи много на чем, а RPi я хочу за нормальный сетевой стек. Насчет "будет виснуть из-за флуда" непонятно - сетевой драйвер захлебывается в промискуитетном режиме, что ли? видел пару самоделок, торчаших в довольно забитую корпоративную сеть -- такого вроде не было. Уж скорее он будет терятьпакеты, чем виснуть, не?

Реле времени на 5 минут... думал об этом, конечно. Цифровое будет подвержено помехам, аналоговое электронное в общем тоже -- там же компаратор. Остается механика, пневматика и прочая экзотика. В общем, я был бы рад обойтись без этой детали, если получится.

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

Похоже Вы собираетесь свой кондиционер в космос запускать...
Есть же простые проверенные решения для микроконтроллеров, называются - внешний WDT. микросхем таких полно, стоят едва ли больше 50 центов и предназначены специально для работы в условиях помех. Если включать в соответствии с APNotes, то вероятность сбоев только недалеко от эпицентра взрыва.
Вы же вероятно на своей малине ножками можете дергать? Пока дергаете, всё хорошо, как по каким то причинам перестали - автоматический сброс через заданное время.
А вообще для реализации надежного управления критичными устройствами должны применяться технические решения соответствующего класса.
И маловероятно, что в этот круг входят Raspberry или Arduino. А если это поделки на уровне хобби, то надо срочно уменьшать уровень паранойи.

muravei
Цитата(LeFou_Treize @ Aug 2 2016, 13:53) *
там же компаратор. Остается механика, пневматика и прочая экзотика.

Какой компаратор- затвора полевика будет достаточно, или вам нужна точность до мС?
А вдруг воздух кончится, и мы все умрем! crying.gif Как же тогда пневматика?
Или свет мигнет , бесперибойник на компрессор?
LeFou_Treize
Цитата(muravei @ Aug 3 2016, 12:44) *
Какой компаратор- затвора полевика будет достаточно, или вам нужна точность до мС?

555 таймер же.

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

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

Пожалуй, стоит и правда придать им дополнительные блокировки.
muravei
Цитата(LeFou_Treize @ Aug 4 2016, 00:15) *
555 таймер же.

Лишнее.
Достаточно rc на затвор полевика .
LeFou_Treize
Цитата(muravei @ Aug 4 2016, 06:16) *
Лишнее.
Достаточно rc на затвор полевика .

Без контроля фронтов там будет момент линейного режима. Если полевик прямо рулит нагрузкой, может нагреваться. Речь-то о временах в минуты. А если там два транзистора, то проще таймер wink.gif
muravei
Цитата(LeFou_Treize @ Aug 4 2016, 15:00) *
Без контроля фронтов там будет момент линейного режима. Если полевик прямо рулит нагрузкой, может нагреваться. Речь-то о временах в минуты. А если там два транзистора, то проще таймер wink.gif

А ваш таймер прямо рулит нагрузкой? laughing.gif
Маломощный полевик, мощное реле или маломощное (или оптрон) , семистор...
Минут там не будет ,большую часть выдержки времени , полевик будет закрыт.
agregat
Можно разместить RPI снаружи, снабдив ее IR светодиодом. Управлять как с дистанционного пульта.
muravei
Вот , что ТС просто необходимо.
sm.gif

Obam
TS, обратите внимание на схему управления мощной нагрузкой http://electronix.ru/redirect.php?https://...ds/blog/271090/
Многие вопросы даже не возникнут (;
LeFou_Treize
Цитата(Obam @ Aug 5 2016, 08:02) *
TS, обратите внимание на схему управления мощной нагрузкой http://electronix.ru/redirect.php?https://...ds/blog/271090/
Многие вопросы даже не возникнут (;

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

Но RPi, как мне показалось, в принципе капризная штука. Иголки от ипульсника в соседней розетке - и привет, за неделю точно ляжет при режиме 24/7

Цитата(agregat @ Aug 5 2016, 06:08) *
Можно разместить RPI снаружи, снабдив ее IR светодиодом. Управлять как с дистанционного пульта.


Шутки смехом, а это хороший способ снизить паразитную емкость, по которой наносекундный "мусор" может циркулировать. Пульт утерян, команды негде взять (
Obam
Но с реле это грамотно…

"Иголки от ипульсника в соседней розетке - и привет…" - свой блок питания совсем ни в дугу? Ни запаса по мощности, ни фильтрации?
LeFou_Treize
Цитата
"Иголки от ипульсника в соседней розетке - и привет…" - свой блок питания совсем ни в дугу? Ни запаса по мощности, ни фильтрации?

Запас тут вроде непричем. А фильтрация наносекунд - мало что хлопотное дело, так еще и непонятно, есть она или нет. Вот смотрю я на блоки питания в магазине. Как мне узнать, какой из них отфильтрует хорошо?

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

На RPi устанавливаете CodeSys Runtime. Там уже есть все нужные протоколы связи и доступ через Веб.
А в качестве I/O берете EtherCAT модули, например EK1100 + нужные модули к нему - они сертифицированы для индустриального применения. RPi засовываете в металлический шкаф, где вам удобно и где будет мало помех. EtherCAT модули можете поставить рядом с компрессором - от них надо протянуть простой Ethernet кабель к RPi - проблем с ними не будет.
В качестве блока питания RPi используйте оригинальную зарядку от Apple iPhone. Почему - http://www.righto.com/2012/05/apple-iphone...wn-quality.html и http://www.righto.com/2012/03/inside-cheap...nd-why-you.html
Далее рисуете диаграмму управления компрессором в ПЛК среде Codesys и отлаживаете тамже. Все.


LeFou_Treize
Насчет кодесиса - смешная мысль. Не то чтобы я большой фанат, но как способ употребить индустриального качества реле для компрессора -- вариант. Только очень ужасный там version control, просто днище.

А стек -- я на жаве думаю писать, благо I/O к ней прикрутили для RPi. смонтировть файловую систему read-only, а состояние системы хранить атомарно в базе, далеко на сервере.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.