16 ноября 2021

RadAlert-2. Радиационный показометр.


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

Прибор - это, наверное, громко сказано. Ибо ни поверки нет, ни калибровки по контрольному источнику... В общем. не прибор, а показометр...

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

Под это дело подходил описанный на радиокоте "Нанит". Ну - почти подходил.

Хотелось
 а) на датчике СБМ-20, хоть он и больше
 б) что то своё. что б все хотелки не впихивать в чужой код, а написать свои
 в) поскольку я на тот момент начинал "щупать" STM32 - хотелось сделать на STM-ке....

В результате был сделан прибор на контроллере STM32F103C8, дисплее "от NOKIA 5110", с практически полным повторением высоковольтной части "Нанита", принципа накачки высокого напряжения и заимствованием части алгоритмов. Я уже его описывал в начале этого года. 

Изначально прибор был собран в большом пластиковом корпусе BOX Z-14 размерами 150х49х22 мм.

Там поместилось всё, включая трехуровневый фонарик. И места ещё оставалось много.
Потом еще был печатный корпус, чуть меньше в габаритах. У этого корпуса были свои недостатки... Ну и внешний вид был не самый идеальный.

И в какой то момент на глаза попался "брусочек" BOX Z-115 размерами 105х30х21,5 мм. Он доступен в черном и светло-светло-сером цветах.

Прикидка по чертежу показала, что в этом корпусе прекрасно можно разместить СБМ-20, батарейку толщиной до 4 мм и OLED-дисплей 0,96" 64х128 пикселей, врезав его в верхнюю крышку.


При этом с датчика даже не обязательно снимать колпачки (процесс достаточно стрёмный - нужно либо нагревать колпачок, либо как то механически пробовать его разрушить), а достаточно аккуратно срезать латунные контакты, постаравшись не оборвать проволочки, идущие к аноду и катоду (корпусу) СБМ-20.

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

Было/стало


Краткие характеристики.

  • Измерение моментального уровня фона с ежесекундным уточнением, адаптивный выбор расчетного интервала 36/18/9/4 сек, в зависимости от уровня фона ионизирующего излучения.
  • Отображение моментального фона и ежесекундного количества зарегистрированных ионизирующих частиц в виде гистограммы.
  • Средний фон и график фона за последние 5 минут
  • Средний фон и график фона за последний час, с дискретностью 1 минута
  • Средний фон и график фона за последние сутки, с дискретностью 1 час
  • Средний фон и график фона за 30 суток с дискретностью 1 сутки
  • Подсчет суточной дозы, сбрасываемый и несбрасываемый счетчики накопленной дозы с указанием периодов накопления
  • Фиксация максимального уровня фона
  • Настраиваемое предупреждение о превышении уровня фона - выбор уровня, тип оповещения (сообщение, звуковой сигнал, вибрация) и режим определения превышения - по моментальному фону или по среднему за 5 минут
  • 5-минутный таймер, облегчающий замер среднего фона за 5 минут.
  • Отключаемое звуковое/вибро-сопровождение нажатия на кнопки
  • Отключаемые щелчки при регистрации ионизирующей частицы
  • Счетчик времени наработки и счетчик времени работы дозиметра между зарядками аккумулятора
  • Настройка параметров генератора высокого напряжения
  • Контроль работы генератора высокого напряжения и исправности датчика СБМ-20
  • Часы

Схема

Вот тут - схема покрупнее, в PDF.

Питание. 

Устройство питается от литиевого аккумулятора. Примененный корпус ограничивает максимальную толщину аккумулятора в 4 мм. Но лучше оставить аккумулятору какое то пространство и применить акуумулятор толщиной 3-3.5 мм. Например, аккумулятор емкостью 200-250 мА*ч типоразмера 304020 с платой защиты.
Зарядка аккумулятора обеспечивается контроллером заряда LTC4054. Ток заряда определяется резистором R2.
Зарядное устройство подключается через MicroUSB-разъем. Применен разъем с двумя выводами питания и с креплением к плате через 2 монтажных отверстия.
Поскольку устройство сделано на МК STM32, не переваривающем питание выше 3.6 вольт - применен малопотребляющий LDO MC78LC33. По документации собственный ток потребления стабилизатора порядка 1.1 мкА, падение напряжения на токах до 10 мА не превышает 250 мВ.
Для измерения напряжения питания, превышающего питание МК, применен отключаемый делитель R3R5.
Предусмотрено оповещение о снижении напряжения питания ниже определенного порога при помощи периодических звуковых сигналов. При этом, поскольку устройство задумано как монитор 24/7 - автовыключения не предусмотрено. Просто устройство каждые 10 минут будет издавать противный звуковой сигнал. Полностью обесточить устройство можно при помощи выключателя SW1. При этом сбросится счетчик времени и потеряется статистика за последний неполный час.

Микроконтроллер. 

Применен STM32F103C8T6. Для подсчета времени в МК запущены часы реального времени, для них добавлен "часовой" кварц ZQ1.  Практически всё время МК проводит в режиме пониженного энергопотребления (спящем режиме), просыпаясь по секундным импульсам от часового счетчика, а так же по импульсам с датчика ионизирующего излучения. При этом ведутся все подсчеты фона, дозы, контроль порогового уровня и т.д..
Прошивка микроконтроллера осуществляется при помощи программатора ST-Link через разъем JP3.
Теоретически, сюда может стать китайский клон CS32F103C8T6, но я не проверял.

Хранение статистики. 

Вся статистика измерений хранится во внешней EEPROM 24C32 (их у меня уже кучка скопилась, снятые с китайских платок-доноров с DS3231). В целях энергосбережения питание на EEPROM подается только в моменты чтения или записи. В остальное время EEPROM обесточен.

Отображение информации. 

Информация отображается на OLED-дисплее на контроллере SSD1306 диагональю 0,96" и разрешением 128х64 пиксела. В спящем режиме дисплей так же отключен от питания. 
Размещение дисплея в корпусе возможно в двух вариантах - с подрезанием родной китайской платки (что бы входила по ширине в корпус) или с пересаживанием дисплея и его обвязки на отдельную платку.

Датчик ионизирующего излучения. 

Применен датчик СБМ-20. При пролёте ионизирующей частицы через объем датчика возникает пробой, в результате чего на аноде формируется короткий импульс с размахом порядка 50 вольт. Импульс через высоковольтный конденсатор C18 попадает в детектирующий узел - на базу транзистора Q8, далее он фильтруется цепочкой R18C17 и попадает на базу Q7. Фильтрация необходима, что бы импульсы высоковольтной накачки не вызывали ложных срабатываний детектирующего узла. Q7 уже подает сигнал в микроконтроллер, где и происходит дальнейшая обработка данных.

Источник высокого напряжения. 

Схемотехника источника высокого напряжения и схема детектирующего узла практически без изменений взяты из дозиметра "Нанит", за что отдельное спасибо его автору MadOrc-у.
Короткие импульсы накачки, открывая транзистор Q5, вызывают в первичной обмотке трансформатора выбросы самоиндукции, ограниченные по амплитуде до 18 вольт стабилитроном D2.
Ко вторичной обмотке трансформатора добавлен умножитель на быстрых диодах с малым током утечки D4-D6 и высоковольтных конденсаторах C14-C16. Причем вначале, пока конденсаторы разряжены - вся энергия самоиндукции уходит во вторичную обмотку и заряжает конденсаторы умножителя.
Когда же конденсаторы зарядятся, энергия самоиндукции будет через стабилитрон D2 выделяться а резисторе R15. Стабилитрон D1 - защитный.
Когда падение на резисторе R15 будет достигать уровня логической единицы - это будет сигнал для микроконтроллера, что все конденсаторы заряжены и рабочее напряжение для датчика достигнуто.
Это рабочее напряжение подается на датчик через цепочку высокоомных резисторов R19-R22. Цепочка L1R14C11C12 - фильтр, препятствующий проникновению помех от импульсов накачки в основную шину питания, и накопитель энергии для импульсов накачки.

Подсистема оповещения. 

В качестве средств оповещения и обратной связи применена пассивная пьезопищалка SP1 и плоский вибромоторчик М1.

Управление. 

Управление устройством осуществляется при помощи джойстика-качалки SW2.

Печатная плата.

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


Более внимательно рисунки плат можно рассмотреть на PDF-ках - раз и два.

Герберы для заказа на производстве - раз и два.

Сборка

Припаять детали, залить прошивку в МК, пользоваться. :)

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

В принципе, можно при сборке использовать следующую последовательность:
1. запаять LDO-стабилизатор и его обвязку
2. Запаять МК и JP3
3. Подключить МК к программатору, подать питание, убедиться, что МК живой и видится программатором.
4. Залить прошивку в МК.
5. Запаять цепи питания дисплея и подключить сам дисплей.
6. Подать питание и убедиться, что на дисплей выводится картинка.
7. Запаять всё остальное.

Трансформатор. Мотается на ферритовом колечке размером 8х3х2  и проницаемостью 600НН.

У меня было чуть большее колечко с проницаемостью 800НН - прекрасно работает. Как пишут на коте - не нужно гнаться за высокой проницаемостью феррита. 600, 800,  на крайний случай 1000НН.

Колечко нужно подготовить - надфилем сточить все острые грани, после чего покрыть кольцо 2 слоями изоляционного лака типа PLASTIK-70/71.

Сначала мотается вторичная обмотка - 170 витков проводом 0.1 мм. Желательно обмотку расположить в один заход по кольцу, но без намотки "внавал". Пропитать (без фанатизма!) обмотку изоляционным лаком. 

Потом мотается первичная обмотка - 16 витков провода 0.3 мм. Я мотал монтажным проводом, там как раз жилка порядка 0,3 мм, да еще столько же изоляции.

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

При намотке следует соблюдать направление намотки, при этом (см. схему) конец первичной обмотки подключается к началу вторичной.

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


Джойстик на плате размещен таким образом, что бы он практически не выступал из корпуса. Что бы в кармане или в сумке/рюкзаке на него случайно не нажать. Соответственно, для удобства управления в корпусе необходимо сделать выемку порядка 20х5 мм. Изнутри необходимо приклеить к корпусу или к выемке в плате фальшпанельку с прорезью для джойстика 12х2мм. Фальшпанельку можно изготовить из любого тонкого (0.5-1мм) пластика.

Плата крепится к корпусу коротким (5мм) саморезом.

Дисплей.

Дисплей необходимо "утопить" в верхней части корпуса, что бы он был вровень с наружной плоскостью корпуса либо чуть-чуть глубже. Главное, что бы там, где будет датчик - плата дисплея выступала из корпуса не более чем на 0.5-1мм. Либо переставить дисплей на плату-переходник. 

Установка дисплея в отфрезерованную дремелем выемку в корпусе, плата дисплея родная, но обрезана с двух сторон, что бы поместиться по ширине корпуса:



Вариант дисплея с платой-переходником


Аккумулятор приклеивается на свое место к плате двусторонним скотчем.

Пространство между платой и корпусом - 4 мм, соответственно, если применяется аккумулятор толще 3.5 мм - по его размеру в нижней крышке необходимо выбрать 1-1.5 мм выемку. Так же следует в области крепления аккумулятора откусить бокорезами  все торчащие выводы (выводы кварца 32кГц и 4 провода к дисплею).

Датчик СБМ-20.
Для размещения датчика в плате предусмотрена выемка, дополнительно датчик можно прихватить одним-двумя проволочными хомутами - для этого в плате предусмотрены 4 отверстия.

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

После сборки, заливки прошивки в контроллер и проверки работоспособности плату необходимо тщательно промыть изопропиловым спиртом, особенно в высоковольтной части. Далее просушить (можно несколько минут в потоке от фена с температурой 60-70°) и покрыть лаком Plastik70/71 как минимум высоковольтную часть. Необходимо следить, что бы лак не попал в джойстик, пищалку и USB-разъем.



Программирование контроллера.

Файл прошивки находится вот тут.

Для заливки прошивки в контроллер необходим программатор ST-LINK V2 и программа STM32 ST-LINK Utility.
Для прошивки МК  к программатору необходимо подключить 3 линии - Gnd, SWDIO и SWCLK.
Так же на МК необходимо подать питание. Питание можно подать как от аккумулятора, так и 5 вольт от программатора на специально  выделенный контакт разъема JP3. При этом необходимо замкнуть на плате перемычку vBat. Аккумулятор при этом должен быть отключен! Т.е. или аккумулятор, или внешнее питание. Перед подключением аккумулятора к плате перемычку vBat рекомендуется снять.

Для заливки прошивки необходимо, подключив плату к программатору, программатор к ПК, запустить программу ST-LINK Utility. 

Выбрать Target - Connect
После успешного подключения выбрать Target - Erase chip
Выбрать File - Open file - выбрать файл с прошивкой.
Далее Target - Program & Verify
После успешной заливки программы в МК - Target - Disconnect

Вот тут есть достаточно подробная видеоинструкция по заливке прошивки в контроллеры STM32.

Работа с устройством.

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

Это может быть моментальный фон (режим "ПОИСК") либо средний фон за 5 минут / час / сутки / 30 суток. Режимы отображения фона циклически переключаются джойстиком вверх-вниз.
В режиме моментального фона идет ежесекундное уточнение радиационного фона. На экране при этом справа налево движется гистограмма числа зарегистрированных в секунду ионизирующих частиц. В остальных режимах отображается график радиационного фона за соответствующий интервал времени. 

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

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

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

При превышении порогового фона на дисплее появляется соответствующее предупреждение:

Нажатие на джойстик отключает предупреждение на 5 минут. Если в течении 5 минут фон не снизится ниже порогового, предупреждение появится опять.
Если предупреждение не отключать, то через 1 минуту оно отключится само. Но точно так же, если фон не снизится ниже порогового, предупреждение будет появляться каждые 5 минут.

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

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

Аналогично, нажатием и удержанием джойстика производится включение устройства.

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

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

Во включенном режиме кратковременное нажатие на джойстик вызывает на экран меню управления устройством.

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

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

Меню устройства

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

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

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

Контроль работы высоковольтного генератора и исправности датчика СБМ-20

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

Если в течении 5 минут от датчика не приходит ни одного импульса - отображается сообщение о неисправности датчика.

______________________________________________________

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

Энергопотребление

Устройство разработано на не самом экономичном контроллере - согласно документации потребление МК в спящем режиме может достигать 14 мкА, плюс свой вклад (1.1 мкА, согласно документации) добавляет LDO. 
Ну да, так получилось, что я начинал тогда изучать STMки, начиная с BluePill - отладочной платы на базе STM32F103 семейства. 

По факту потребление устройства в спящем режиме - порядка 11 мкА.

График потребления устройства за 20 сек

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

Потребление при пробуждении от секундного таймера

Потребление при пробуждении от секундного таймера с циклом накачки

Видно, что потребление при ежесекундном пробуждении - порядка 8 ма на время до 2 мс. При цикле накачки ток достигает 12 ма на время прядка 3-4 мс. Основная энергия для накачки берется из конденсаторов C11C12, на графике потребления - как раз и видно экспоненциальное уменьшение тока потребления по мере восстановления заряда этих конденсаторов. Этот пик как раз виден на самом первом графике потребления (среднее за 20 сек).

Готовые устройства


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

Комментариев нет:

Отправить комментарий