Ненавязчивая автоматизация ректификационной установки

Форум самогонщиков, пивоваров, виноделов Оборудование Автоматика
1 2 3 4 ... 54 1
OldBean Кандидат наук Красноярск 450 788
30 Дек 16, 13:12
Оглавление

1. Введение
    1.1. Почему ненавязчивая?
    1.2. Тестирование системы
    1.3. Мотивация
2. Общее описание установки
3. Подготовительные операции
    3.1. Доработка платы Arduino Pro Mini 5V/16MHz
    3.2. Доработка "железа"
4. Контроллер ТЭНа
5. Первый шаг ненавязчивой автоматизации
6. Контроллер электромагнитного клапана отбора
7. Немного о концепте
8. Датчик RMS (среднеквадратичного напряжения сети)
9. Датчик атмосферного давления
10. Классы-обертки
    10.1. Классы-обертки для датчиков - модуль sens
    10.2. Классы-обертки для контроллеров (исполнительных устройств) - модуль contr
11. Еще немного о концепте
12. О пользовательском интерфейсе
13. Испытание нового софта в "боевых условиях"
    13.1. Первый этап испытаний - запуск колонны
    13.2. Второй этап испытаний - отбор хвостов и пропарка колонны
    13.3. Скрипт автоматизации - подробности
14. Технические вопросы
    14.1. Вариант организации работы с малинкой
    14.2. Подготовка Raspberry Pi к работе
        14.2.1. На рабочей станции под Ubuntu
        14.2.2. На рабочей станции под Mac (от коллеги ram78)
        14.2.3. На рабочей станции под Windows
        14.2.4. Настройка статического IP малинки в локальной сети (от коллеги C-Bell)
        14.2.5. Еще вариант подготовки малинки к работе + Samba (от коллеги U-M)
    14.3. Как "прошить" ардуинку при помощи USBasp программатора
    14.4. Особенности реализации протокола i2c на малинках
15. Простейшие критерии отбора основной фракции (тела)
    15.1. Коррекция температурной уставки при изменении атмосферного давления
    15.2. Импульсный регулятор скорости отбора тела (aka "старт-стоп")
    15.3. Позиционный (релейный) регулятор скорости отбора тела
    15.4. Регулирование скорости отбора по температуре в кубе. Теория
    15.5. Регулирование скорости отбора по температуре в кубе. Практика
    15.6. Гибридные методы
    15.7. Заключение
    15.8. В качестве эпилога к первому варианту автоматизации: учет дифференциальной составляющей
16. Ревизия софта после года эксплуатации системы
    16.1. Подготовка к работе малинки, снабженной монитором, клавиатурой и мышкой
        16.1.1. Часть 1. Установка и настройка ОС Raspbian
        16.1.2. Часть 2. Установка и настройка дополнительного ПО, необходимого для программирования
17. Вариант Lite
    17.1. Блок-схема, крейт и общая компоновка
    17.2. Датчик RMS с детектором нуля
      17.2.1. Макет
      17.2.2. Плата. Варианты разводки и реализации
      17.2.3. Прошивки
    17.X. Тупиковые варианты
      17.X.1. Температурный сервер
      17.X.2. Реализация I2C для связи малинки (master) с МК ATtiny85 (slave)
      17.X.3. Силовой модуль
      17.X.4. Контроллер контактора. Firmware

---------------------------------------------------
Полезные ссылки (обновлено 11.04.2017)

===================================================

1. Введение

1.1. Почему ненавязчивая?

По нескольким причинам.

Во-первых, процесс изготовления этой системы получился на удивление легким и приятным. Потому что система модульная. Я разрабатывал ее последовательно по отдельным модулям. Каждый модуль представлял собой законченное функциональное устройство на основе микроконтроллера, которое могло работать как совершенно независимо (в том числе и в "ручном" режиме), так и в различных сочетаниях друг с другом "под чутким руководством" управляющего микрокомпьютера Raspberry Pi (ака "малинка").

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

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

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

Системой можно управлять (в том числе и удаленно) с любого компьютера (под Linux, Windows, Android и т.п.) поддерживающего защищенный протокол SSH. Интерфейс пока аскетичный (старая привычка работать с консолью неистребима). Но, в принципе, можно по SSH работать и с рабочим столом малинки в графике. Просто еще не уверен нужен ли мне GUI или нет. Пока устраивает консоль. Зато работать можно хоть по телефонным проводам и модему с парой сотен бит в секунду :))) С малинкой легко и веб интерфейс организовать. Но пока это просто не интересно.

1.2. Тестирование системы

С помощью этой системы (в уже в полном объеме) было проведено около 10 полноценных ректификации сахарного сырца, две из которых двойные. Каждая ректификация продолжалась в среднем порядка 20-25 часов (с перерывами на ночь и дополнительными циклами разгона утром). За это время произошел один единственный сбой автоматики в процессе работы установки - устойчивая ошибка ввода-вывода по шине i2c, вызванный некачественной распайкой разъема (один проводочек шины был плохо пропаян и тайно "отлепился" под термоусадкой). Система тихо выключилась (естественно, притушив все, до чего дотянулись руки малинки) и сообщила об ошибке. Благодаря модульной структуре и полной независимости всех модулей неисправность была быстро найдена и ликвидирована.

Пару раз (не во время работы, а ночью во время перерывов в работе) малинка полностью "теряла" все датчики температуры (DS18B20). С причиной этого я еще не разобрался. Возможно какой-нибудь датчик как-то пакостит на шине. Лечится легко перезагрузкой температурных датчиков - отключаем шину 1 wire (питание) от малинки, пауза несколько секунд и опять подключаем шину. Далее все работает штатно. Этот косяк происходил когда система простаивала. Высокое в это время снято, все низковольтное остается включенным, вода охлаждения отключена и система остывает естественным образом. Но в процессе работа такого еще ни разу не было.

1.3. Мотивация

Итак, с моей точки зрения система получилась приятной, гибкой, расширяемой и достаточно надежной. Вот я и подумал, что может быть имеет смысл описать ее поподробнее на форуме? В виде своеобразных "прописей". Чтобы ее можно было легко повторить или позаимствовать какие-то решения, если кому понравятся такой ненавязчивый подход. Это, конечно, не самая дешевая автоматизация, но все равно она получается существенно дешевле, чем если покупать что-нибудь готовое с такой же функциональностью. Для ее изготовления не требуется шибко высокая квалификация ни в электронике, ни в программировании. Средненького (любительского) уровня вполне хватит. Я сам берусь за паяльник только когда очень сильно припрет, но никаких трудностей с разработкой, изготовлением и наладкой этой системы я не испытывал.

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

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

2. Общее описание установки

Общая схема установки представлена на рисунке ниже, а фотографии общего вида железа и электроники - в приложении к топику.

171406.gif

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

К железу пристроены четыре датчика температуры: в кубе, в нижней трети колонны, на входе дефлегматора (чуть выше входного фланца) и на выходной трубке хлаждения дефлегматора. Последний датчик выполняет только защитную функцию. Данные с датчиков температуры считываются неперерывно с интервалом приблизительно 3.5 сек непосредственно управляющим микрокомпьютером (Raspberry Pi) по шине 1 Wire.

В стандартный куб от Добровара емкостью 23 л врезан ТЭН на 1.5 кВт. Мощность нагрева ТЭНа регулируется отдельным микроконтроллером за счет пропуска/непропуска целых полупериодов сетевого напряжения к нагревателю. Используется модифицированный алгоритм регулировки, основанный на диффузии ошибки дискретизации (ака Брезенхем). Модификация алгоритма заключается в компенсации постоянной составляющей за счет выравнивании количеств отрицательных и положительных полупериодов, пропускаемых к ТЭНу. Всеми этими хлопотами занят контроллер ТЭНа. От управляющего микрокомпьютера (по шине i2c) он получает только команду какой процент от номинальной мощности нагрева нужно обеспечить. Остальное все он делает сам независимо от других узлов системы. Если нужно, контроллер может работать и совершенно автономно. В этом случае мощность нагрева устанавливается двумя кнопками ("+" и "-"), установленными на плате контроллера.

Для регулирования отбора спирта из узла отбора дефлегматора используется электромагнитный клапан AR-HX-3 MSQ, выполненный из нержавеющей стали, с силиконовым кляпом. В переходнике непосредственно перед входом в клапан установлен жиклер. Отверстие в жиклере выполнено таким образом, чтобы максимальная скорость отбора клапана была приблизительно 1000 мл/час. Для плавной регулировки средней скорости отбора используется ШИМ (широтно-импульсная модуляция) с периодом следования импульсов 10 сек. Непосредственной работой с клапаном заниматся тоже отдельный контроллер. От управляющего компьютера (по шине i2c) он получает только команду какую скорость отбора нужно обеспечить. Все остальное - уже его забота. Контроллер электромагнитного клапана (естественно, с клапаном) может работать тоже совершенно автономно. В этом случае скорость отбора регулируется вручную кнопками, установленными на плате контроллера.

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

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

Сам управляющий компьютер (штатно работает Raspberry Pi 2, но иногда экспериментирую и с версией 3) подключен к внешней сети через Wi-Fi. Общение с ним (с ПК) ведется по защищенному протоколу SSH. Можно работать с любого места на земле, где есть TCP/IP, и с любого компьютера, поддерживающего эти протоколы. В принципе, к Raspberry легко подключается и монитор, и клавиатура, и мышка, но с рабочей станции по SSH получается как-то удобнее.

Ну вот и все из общей информации об установке и ее составных частях. Далее, по мере наличия времени и возможностей, попробую рассказать о каждом узле подробнее. Может быть кому-нибудь и пригодится. В любом случае рассказывать кому-нибудь подробно о своих поделках - очень полезное занятие еще и для себя. Начинаешь лучше понимать все плюсы-минусы того, что наваял, появляются новые идеи и т.п.
------------------------------------------------
С Новым годом, коллеги!
================================================
Предыдущий топик  Вернуться к оглавлению  Следующий топик
001_Блок-схема_установки.gif
1136x1110 77Кб
002_Общий_вид_железа.JPG
659x3680 165Кб
003_Общий_вид_электроники.JPG
2619x2980 752Кб
capsolo Профессор Зелик 5061 1719
Отв.1  30 Дек 16, 16:03
Здоровый минимализм. На небольших мощностях (как твой тэн) Брезенхем вполне подходящий вариант управления. Для больших нагрузок могут быть заметные просадки по фазе в момент включения-отключения. Наверняка ты уже изучил смежные темы и видел фазовые регуляторы мощности с открытым кодом, к примеру заслуживают внимания работы коллеги sebra. Фазовый регулятор более универсальный вариант.Очень интересна часть с малинкой, а именно интерфейсный софт для работы с периферийными МК и протокол, который торчит наружу
msg31 Научный сотрудник Барнаул 3923 1836
Отв.2  30 Дек 16, 16:09, через 6 мин
Ну вот и все из общей информации об установке и ее составных частях.OldBean, 30 Дек 16, 13:12
Ну вот наконец-то появилась новая толковая тема про автоматизацию на современных элементах.
Самое главное, что все реализовано. А то обычно толкнет кто-то идею, и тут сразу начинается кто-то малину советует, кто-то хренину, третий фигину, четвертый говорит что Atmega8 справится со всеми задачами. И пошло-поехало по кругу. И в итоге выхлопа 0.
А тут сразу готовое решение.
сообщения удалены (3)
HBB Кандидат наук Москва 335 68
Отв.3  31 Дек 16, 01:11
OldBean, Спасибо за  тему! Отличный  подарок  к Новому Году! Иду по похожему пути - малинка управляет модулями. Работаю в содружестве с C-Bell, развивая тему Smart Distiller (Умный дистиллятор с управлением по интернет) на Малинке.
Хотели с Володей создать тему, но  ты опередил  Улыбающийся
Какой язык выбрал для программирования -  С++ или Python?
C-Bell Научный сотрудник Улан-Удэ 1685 1106
Отв.4  31 Дек 16, 02:03, через 52 мин
Мне Raspberry PI 3 прислал коллега HBB (Виталий), чтобы совместно создать на её базе автоматизацию самогонных процессов.

Этот одноплатный компьютер имеет приличные вычислительные мощности и оперативную память в 1 Гб, "жесткий диск" на SD-карте, куда и записывается образ операционной системы.
Есть четыре USB-разъема, WiFi и Bluetooth на борту, монитор подключается кабелем HDMI.

И что очень важно, на плате установлен разъем GPIO, через который осуществляется управление и связь с внешними устройствами :


Из коробки поддерживаются различные интерфейсы:
- SSH для работы через терминал;
- VNC для доступа к рабочему столу через сеть;
- SPI,I2C,Serial - последовательные интерфейсы;
- 1-Wire для подсоединения 1-wire устройств, таких как цифровой термометр DS18B20;
- Remote GPIO для удаленного управления портами ввода/вывода.

Я успел прикрутить к Raspberry PI 3 пять цифровых термометров.
Чтобы это сделать дополнительно потребовался только один резистор на 4,7 кОм и практически никакое программирование на Python.

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

В целом Raspberry PI понравилась и был рад обнаружить тему с готовым решением на этом одноплатнике.
Присоединяюсь к коллегам, которые ждут её продолжения.
сообщения удалены (2)
msg31 Научный сотрудник Барнаул 3923 1836
Отв.5  31 Дек 16, 12:37
нафига вся эта мощаsevpro, 31 Дек 16, 11:35
Наверное потому, что это работает и стоит недорого.
slony Магистр Сочи 243 56
Отв.6  31 Дек 16, 14:59
Под этот проект было бы лучше нулевую малину. Ее больше чем достаточно, а цена в несколько раз ниже (5$) чем у Raspberry Pi 2.Mnz, 30 Дек 16, 17:03
Я думаю, можно достаточно переносимо сделать. Это же линукс. Хотя тоже хочется подробностей реализации.
HBB Кандидат наук Москва 335 68
Отв.7  31 Дек 16, 16:03
OldBean, Ты рассматривал возможность установки датчика давления в кубе? Если да, то какой датчик рассматривал? Если нет, как думаешь, сложно ли MPX2200DP с малинкой поженить?
сообщения удалены (4)
C-Bell Научный сотрудник Улан-Удэ 1685 1106
Отв.8  01 Янв 17, 05:28
C-Bell, задам банальный вопрос: нафига вся эта моща если задача центрального модуля лишь отдавать команды управления периферии по одному из стандартных интерфейсов?sevpro, 31 Дек 16, 11:35

Тут уже ответили, напишу и свою позицию:

1. Автоматика должна быть максимально "умной", чтобы самостоятельно управлять объектом автоматизации и принимать решения по нештатным ситуациям.
2. Вмешательство оператора в работу автоматики необходимо только для её первоначальной настройки и в случае аварии.
3. Контроль со стороны оператора должен быть удалённым (лучше по воздуху, чтобы не тянуть лишних проводов).
4. Автоматика должна собирать статистику своей работы для последующего анализа и более тонкой настройки.

Если первые три пункта ещё может выполнить процессор с небольшой памятью (типа Ардуино), то последний пункт, требующий достаточных объемов памяти для сохранения статистики и достаточных вычислительных мощностей для её анализа, таким процессорам не по зубам.

Одноплатные же компьютеры с такой задачей справляются уверенно.
Для примера, статистика работы перегонной автоматики на одноплатном компьютере pcDuino:


Данные собираются один раз в примерно 1,5 секунды.
Длительность перегона на приведенном графике примерно 9 часов.
OldBean Кандидат наук Красноярск 450 788
Отв.9  01 Янв 17, 08:23
С Новым годом, коллеги! Я очень рад, что тема актуальна и форумные посты не превратятся просто в блог для самовыражения. С удовольствием включусь в процесс коллективного творчества.
Я вот думаю мои опыты с малиной и cubietruck сюда пихать или отдельной темой?ys1797
ys1797, решайте сами как Вам удобнее. Я специально сформулировал название темы максимально широко, чтобы можно было обсуждать разные (не только мои) решения. Главное - находиться в рамках обсуждаемого концепта - иерархическая организация управления ректификационной установкой: есть низкоуровневые устройства (контроллеры исполнительных устройств и интеллектуальные датчики с цифровым интерфейсом) и есть высокоуровневое устройство - управляющий компьютер, который руководит их работой, решает ресурсоемкие задачи, связанные с управлением (например, оценивает спиртуозность флегмы в колонне по температуре кипения и давлению или занимается краткосрочным прогнозом состояния системы для нестационарных режимов работы колонны (точнее - неКВАЗИстационарных :)))), ведет журнал и обеспечивает приемлемый интерфейс с пользователем.

sevpro, вопрос о достаточной мощности управляющего компьютера, конечно, интересный, но, согласитесь, не очень актуальный. Если есть возможность поставить на управление более мощный компьютер, почему бы не поставить? Хуже же не будет. Этот стенд действительно планировался как экспериментальная установка для изучения кубовой ректификации на насадочных колоннах. Зачем же искусственно ограничивать возможности его мозгов? Да и мозгов другого думающего "населения" установки. Мы же с Вами не либеральное правительство. :)))

С увеличением мощности управляющего компьютера можно поднимать новые задачи, или по-другому решать старые. Ну, например, некоторые варианты 3-ей малинки уже четырехядерные. Отличный повод РАСПАРАЛЛЕЛИТЬ три основные задачи, которые должен решать управляющий компьютер:
  • Стабилизация режима работы колонны по одному из критериев (по мощности нагрева, по перепаду давления в колонне или еще чему-нибудь). Это один процесс (ядро)
  • Регулирование отбора для минимизации примесей в продуктах. На самом деле это самая нетривиальная задача, которая может потребовать много ресурсов. Это второй процесс (ядро). ИМХО, не стоит забывать, что ПРОСТОЕ управление по температуре (неважно, в одной точке, по дельте или еще как-нибудь) - это всего лишь управление по одной из примесей - воде. Она, конечно, основная примесь, но органолептику-то определяет не она :))) Химические сенсоры в настоящее время развиваются очень бурно. Кто знает, может быть скоро будут доступны сенсоры и на основные примеси, содержащиеся в сырце, которые можно будет прицепить к колонне. Тогда и задачу управления отбором можно будет решить по-человечески на втором ядре. Вот счастье-то будет! :)))
  • Ну и, наконец, журнал и пользовательский интерфейс. Это уже третий процесс (ядро).
Четвертое ядро - на запас. ИМХО, вполне интересная задачка по параллельному программированию...
-----------------------
Я, конечно, с благодарностью буду учитывать конкретные замечания, улучшающую установку (коллега woddy, мне тоже не нравятся клеммники с простыми винтами. Винты сильно деформируют и подрезают даже хорошо пролуженные оконечники проводов. Просто поставил, что было под рукой. Чтобы не болтались провода. При случае, обязательно заменю их на более приличные. Спасибо!). Тем не менее, основная моя цель на данный момент (просто потому что пока есть время писать побольше) - максимально подробно описать уже существующий вариант стенда. Чем и собираюсь заняться в новогодние каникулы.
slony Магистр Сочи 243 56
Отв.10  01 Янв 17, 11:28
4. Автоматика должна собирать статистику своей работы для последующего анализа и более тонкой настройки.C-Bell, 01 Янв 17, 05:28
Как вариант можно реализовать на клиенте.
сообщения удалены (4)
IvanAltay Доктор наук Бийск 502 97
Отв.11  01 Янв 17, 14:34
Ребят, я вот маленько с Малиной работал. Вопрос такой, если я на Малину, на шлейф GPO поставлю дисплей с тачскрином.
Сколько у меня портов останется на внешние девайсы?
сообщения удалены (2)
PavelSaratov Кандидат наук Саратов 416 38
Отв.12  01 Янв 17, 16:22
 Флудить так флудить.
 STM32 надо тут. Малинка дорогая.

1. По делу - у ТС отваливается 1-wire датчик. Прикол в том, что лучше бы их по отдельности каждый на каждую ногу заводить - сейчас зальет один датчик - и хана всем датчикам. У меня даже есть подозрение что датчик который в трубке отвода паров стоит всему виной.
2. I2C? Какой резон? Куда надежнее линию на обрыв -4-20 мА запустить, как это делается повсеместно для критичной автоматики. Но хозяин барин конечно же..

Если нужен только контроль, то любого браузера достаточно. Если предполагается логи сохранять для анализа, то уже без компа не обойтись. Вопрос нужен для этого отдельный сервер или нет ?
Сервер БД может понадобиться для долговременного хранения архивов (а вообще нафиг тут не нужна БД). Для кратковременого - вполне куча памяти в этой самой малинке. Семплы же не по 10 штук в секунду храниться будут.
сообщение удалено
ys1797 Доктор наук Санкт-Петербург 841 192
Отв.13  01 Янв 17, 17:16, через 55 мин
если у тебя ник 1797, то я в 1978 году родился. Не мешай пацанам забивиться с микрокомпьютерами!!!IvanAltay, 01 Янв 17, 15:57
Это UIN ЛГУшный, кто в теме тот знает, что это такое.


По делу - у ТС отваливается 1-wire датчик. Прикол в том, что лучше бы их по отдельности каждый на каждую ногу заводитьPavelSaratov, 01 Янв 17, 16:22
Я вот хочу через DS2482S-800+ завести датчики. (7 каналов), вроде каналы независимы.

HBB Кандидат наук Москва 335 68
Отв.14  01 Янв 17, 17:23, через 7 мин
STM32 надо тут. Малинка дорогая.PavelSaratov, 01 Янв 17, 16:22
Вполне возможно. Но мы с С-Bell перешли на малинку и вполне довольны. Стоимость окупается - прекрасное коммьюнити и на всякий случай - сейчас свисток DS9490R стоит столько же, сколько и малинка. На PCDUINO нам так и не удалось без него запустить 1-wire.

Добавлено через 23мин.:

OldBean, как-то стремно у тебя датчик перед дефом вывешен в агрессивной среде.  Ты его как-то изолировал дополнительно? У меня отбор по пару идет, схема немного другая, но чтобы в дефе температуру пара мерить, трубку длинную для датчика (10 см) делал сам.
сообщение удалено
capsolo Профессор Зелик 5061 1719
Отв.15  01 Янв 17, 18:13, через 51 мин
Ребят, здорово, что инет теперь позволяет изучить любую тему при желании, однако желание прокомментировать любую тему без изучения не пропадет никогда Улыбающийся Надо пользоваться благами цивилизации и самообразовываться.
Пользователям *nix систем намного проще врубаться в малинки и апельсинки, тем более, что стоимость на связь и железо упала ниже низкого, и свой блэкджек и красавиц можно поднять на LAMP меньше 10 баков.
Касательно логов и графиков RRDTool вполне себе чума.
Лучше поделитесь опытом что такое можно к малинке-апельсинке подрубить, чтобы можно было надежно перезаписывать, ну и чтобы дешево и сердито. SD, думаю, для этого не очень подходят? Хотя RRDTool со своим циклическим архивом не скоро по второму разу начнет записывать на флэшку 32ГБ. SSD тоже стремно. Что то вроде RAM партишна, который время от времени бэкапится на фрешку.
makh Доцент Caught Somewhere In Time 1427 671
Отв.16  01 Янв 17, 18:51, через 38 мин
Что то вроде RAM партишна, который время от времени бэкапится на фрешкуcapsolo, 01 Янв 17, 18:13

При загрузке /var дампить в RAM, при выгрузке обратно. Конкретно на малине/дебиане так не делал, но не совру, если скажу что второе десятилетие работают у меня такие системы на базе Vortex86/OpenBSD.
Рабочий вариант, прелесть которого в независимости от имеющейся инфраструктуры.
Но, если инфраструктура располагает хотя бы модемом с USB-хардом или NAS-файлопомойкой -- проще и грузиться по сетке. Или грузиться с readonly носителя и монтировать /var из сети.
Да много чего можно напридумывать. Вплоть до того чтоб не париться, и клонировать /var при каждом сеансе работы на новый носитель -- оно счас ничего не стоит .)
woddy Модератор Новосиб 1275 472
Отв.17  01 Янв 17, 19:00, через 9 мин
весь флуд или отрежу или удалю. уже по 10 раз обсуждение было. данный топик посвящен только авторской конструкции и совместимым варинтам (переферийные модули, портирование на другие борды).
после того как автор опубликует подробности

Добавлено через 48мин.:

Лучше поделитесь опытом что такое можно к малинке-апельсинке подрубить, чтобы можно было надежно перезаписывать, ну и чтобы дешево и сердито. SD, думаю, для этого не очень подходят?capsolo, 01 Янв 17, 18:13
какой график работы аппарата? если раз в месяц то и флешки хватит на твою жизнь. в видеорегистраторах работают флешки по скольку?

если автоматика нужна каждый день - то не жмотиться на железе. SSD отлично работает на домашних компах, а тут нагрузки в разы выше.
делайте бэкап в облако если данные важны. линукс же. но это мы о надежности уровня сервера уже будем говорить.
куда важнее яркая лампочка которая загорится при ошибках/сбоях диска.
сообщения удалены (2)
OldBean Кандидат наук Красноярск 450 788
Отв.18  02 Янв 17, 04:39
В общем-то гипертексту флуд не помеха :))) Но, будем помаленьку продвигаться дальше...

3. Подготовительные операции

Перед изготовлением установки были выполнены некоторые подготовительные операции, которые можно разделить на две группы: изготовление на базе простейшей ардуинки (Pri Mini) своеобразной "рабочей лошадки" для низкоуровневых узлов автоматики (контроллеров и датчиков) и некоторые модификации покупного железа от Добровара, без которых систему трудно было бы заставить хорошо работать. Начнем с первой группы.

3.1. Доработка платы Arduino Pro Mini 5V/16MHz

В основе обоих контроллеров (куба и клапана отбора) и датчика среднеквадратичного напряжения сети лежит одна и та же гибридная схема, состоящий из микроконтроллера ATmega328/P, оформленного в виде небольшой платы Arduino Pro Mini 5V/16MHz, в которую непосредственно впаян трехразрядный 7-сегментный индикатор 5631AX. Такая своеобразная "гибридная микросхема" оказалась весьма удобным модулем при изготовления цифровых контроллеров или датчиков, которые могут работать как совершенно автономно, так и в сочетании с управляющим компьютером. Поэтому уместно начать именно с этого узла.

Схема модуля представлена на рисунке ниже слева. Далее на схемах этот гибрид будет изображаться в виде единой гибридной микросхемы так, как изображено на этом же рисунке справа.
171504.gif
Особенностью этого модуля является минимум деталей (всего три резистора, кроме самой ардуинки и индикатора) и непосредственное подключение индикатора к пинам микроконтроллера. Это становится возможным если развертку делать не по цифрам, а по сегментам. В последнем случае в каждый момент времени могут гореть не более трех светодиодов (сегментов) и выходы микроконтроллера вполне справляются с такой нагрузкой.

Рассмотрим этот вопрос чуть подробнее. Как видно из схемы трехразрядного 7-сегментного индикатора, приведенной ниже, светодиоды (сегменты) объединены в группы. Это делается для того, чтобы сократить количество проводов и снизить нагрузку.
171505.png
Из схемы мы видим, что в каждый момент времени мы можем показать либо только одну цифру, либо только один и тот же сегмент каждой цифры. Поэтому в таких индикаторах (ну как в кино), используется инерция человеческого зрения. Если мы некоторое (короткое) время будем показывать одну цифру, затем вторую, затем третью, опять первую и так далее по циклу, то при какой-то скорости переключения мы перестанем видеть мелькание цифр и нам будет казаться что все цифры показываются одновременно. Это - развертка по цифрам. Такого же эффекта мы можем достигнуть если будем "пробегать" не по цифрам, а по одноименным сегментом всех цифр одновременно. Например, сначала подсвечиваем (конечно, только там где нужно!) сегменты A, затем B и т.д. по циклу. Это - развертка по сегментам.

На следующем рисунке эти варианты разверток изображены более наглядно. На индикатор выводится число 138.
171506.gif
Из рисунка видно, что при развертке по сегментам рабочий цикл удлиняется, но зато существенно снижается нагрузка на пины микроконтроллера, т.к. одновременни может гореть не более трех сегментов. Этот факт как раз и дает возможность подключать индикаторы непосредственно к пинам микроконтроллера безо всяких буферных элементов.

Перейдем теперь непосредственно к изготовлению гибрида.

Существует много модификаций плат, совместимых с Arduino Pro Mini 5V/16MHz. Мне больше всего нравится вариант, изображенный на следующем рисунке.
171507.jpg
У этой модификации слева есть два ряда выводов, включащие в себя помимо пинов A4 и A6, необходимы для шины i2c еще и 6 выводов, позволяющие непосредственно подключать стандартный 6-пиновый разъем ISP-программатора. Так как Arduino Pro Mini не имеет USB-интерфейса, то для прошивки необходимо использовать либо отдельный USB-UART преобразователь, либо программатор. Последний вариант мне как-то привычнее и удобнее. Поэтому везде далее я буду иметь в виду именно эту модификацию платы Arduino Pro Mini. Но, в принципе, можно использовать любые другие варианты плат, но придется внести корреции в печатные платы модулей, где эти гибриды будут использоваться, и (если планируеся использовать ISB-программатор) сделать дополнительные выводы для подключения программатора.

На следующем рисунке изображены остальные детали, необходимые для сборки гибрида.
171508.jpg
Можно использовать индикаторы как с общими катодами (как на рисунке слева), так и с общими анодами (как справа). В последнем случае в скетче необходимо просто закомментировать одну строку текста (там есть соответствующий комментарий). Главное, чтобы высота индикатора (направление по высоте цифр :))) была 19 мм. В этом случае ножки индикатора можно впаять непосредственно в отвестия платы ардуинки.

Процесс подготовки индикатора к монтажу показан на следующем рисунке.
171509.jpg
Откусываем вывод 6 индикатора (главное не перепутать - см. внимательно рис.5 выше или datasheet!!!) и подпаиваем резисторы.

Подготовка платы ардуинки показана на следующем рисунке.
171510.jpg
Аккуратно отпаиваем кнопку сброса. Она просто мешает и в общем-то не нужна, если использовать ISP-программатор (там reset подается отдельно). Впаиваем однорядные линейки (папы). Обратите внимание на количество пинов в линейках.

Все. Теперь можно соединить ардуинку с индикатором. Окончательный вид гибрида показан на следующем рисунке.
171511.jpg

Подключаем ISP-программатор (я использую простейший USB-ASP программатор, который сейчас легко найти в любом профильном магазине или сделать самому). Загружаем прилагаемый тесктовый скетч, прошиваем. При прошивке не нужно забывать жать shift (ctrl+shift+U) или пользоваться меню "Загрузить через программатор". Если все сделано правильно, то на индикаторе сначала будет тестовый показ всех сегментов индикатора с последующим выводом растущих целых чисел (см. следующий рисунок)
171512.jpg

Тестовый скетч достаточно подробно прокомментирован. Он в приложении к топику. Если все-таки останутся какие-то непонятные места - дайте знать - я добавлю дополнительные комментарии. Чуть позже я его немножко почищу и сделаю поуниверсальнее (3-х и 4-х разрядные индикаторы). Такой вариант практически готов, просто в данный момент его нет под рукой.

========================================================
Предыдущий топик  Вернуться к оглавлению  Следующий топик
004_Схема_гибрида.gif
1341x537 81Кб
005_схемы_индикаторов.png
693x942 77Кб
006_Варианты_разверток.gif
458x833 49Кб
007_Arduino_Pro_Min_5V-16MHz.jpg
1784x616 88Кб
008_Индикаторы_и_резисторы.jpg
1190x554 43Кб
009_Подготовка_индикатора.jpg
1220x732 41Кб
010_Подготовка_ардуинки.jpg
1235x433 48Кб
011_Соединяем_ардуинку_с_индикатором.jpg
1232x468 41Кб
012_Прошиваем_и_любуемся.jpg
1193x699 51Кб
leddd05.ino.zip (2Кб - загружено 142 раз)
сообщение удалено
woddy Модератор Новосиб 1275 472
Отв.19  02 Янв 17, 11:33
Удалить все посты и дать слово автору.C-Bell, 02 Янв 17, 03:55
посты относящиеся непосредственно к конструкции автора оставляю. холивары по выбору платформы - снес нафиг. 

Добавлено через 4мин.:

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