DIY модуль со счётчиком Гейгера для измерения радиации


Этот модуль был куплен ещё с прошлой акции, которую публиковал сам же, и вдобавок пообещал читателям сделать на него обзор, поскольку эта тема вызвала интерес не только у меня. Теперь готов рассказать про него чуть более подробно. Модуль предназначен для регистрации ионизирующего излучения. Несмотря на то, что это голая плата, здесь уже установлен счётчик и можно пользоваться уже «из коробки» — при подаче 5В, буззер начнёт издавать щелчки. Тут будет работать простой принцип: если щелчки редкие — всё хорошо, если же щелчки частые или непрерывные — уже плохо. Но подключив эту плату к Arduino, мы получим возможность подсчитывать импульсы и соответственно выводить мощность дозы в цифрах. Это я тоже покажу.



Быстрая навигация по обзору


1. Технические характеристики
2. Внешний вид
— комплектация
— компоненты, органы управления
— сравнение с модулем от RHelectronics, энергопотребление
— калибровка высоковольной цепи
3. Синхронизация с различными устройствами
— вывод показаний в Radiation Logger под WINDOWS (через Arduino)
— вывод показаний в монитор порта Arduino IDE под WINDOWS (через Arduino)
— вывод показаний на дисплей Nokia 5110 (через Arduino)
— вывод показаний через 3.5мм аудиоразъём
4. Видео
5. Итоговая сводка

[НАВЕРХ]

Технические характеристики


Питающее напряжение — 4.5-5В
Поддерживаемые счётчики — M4011, STS-5, SBM20, J305, etc. (рабочее напряжение 330-600В)
Интерфейсы — SPI, AUX
Размеры платы — 93 х 108 х 20мм
Индикация — сигнальная линия, буззер, светодиод

[НАВЕРХ]

Внешний вид


Набор завёрнут в пупырку и упакован в картонную коробку



Комплектация включает:
— модуль с установленным счётчиком, прикрытые акриловой крышкой на нейлоновых стойках
— холдер под 3х АА батарейки
— соединительные штыревые провода 3х
— AUX-кабель
— DC-кабель 5.5х2.5мм


[НАВЕРХ]

Подробнее о компонентах:
1) — трубка J305 (аналог М4011), самая дорогая деталь здесь, она фиксирует гамма и бета излучение
2,4) — микросхемы 555, на которых собственно и работает данный модуль
3) — LM358P, двухканальный операционный усилитель
5) — перемычка J1 — отключает буззер, если звуковая индикация не нужна
6) — перемычка J4 — используется для калибровки
7) — контакты 5V, INT, GND, первый и последний из которых для подключения питания 4.5-5.5В. Контакт INT — сигнальный, используется для подключения к MCU (например Arduino), к разъёму, настроенному на получение внешних прерываний, и соответственно, с последующей обработкой полученных импульсов.
8) — разъём 3.5мм AudioJack, нужен для подключения к аудиоразъёму в смартфонах. Можно на смартфоне загрузить приложение и выводить подсчёты на экран.
9) — буззер, издаёт щелчок при регистрации импульса
10) — сдвижной выключатель, проще говоря ВКЛ./ВЫКЛ.
11) — DC-разъём питания 5В (5.5х2.5мм)
12) — контактная колодка для подключения питания 5В к модулю.
13) — светодиод, горит постоянно, если на модуль подаётся питание
14) — светодиод, кратко мигает при регистрации импульса.
15) — NPN-транзисторы S8050
16) — калибровочный потенциометр
17) — калибровочный контакт J2
18) — дополнительные контакты под зажим (если планируется установить СБМ20)



Установленная трубка в моём образце — J305 (аналогична М4011). Судя по маркировке изготовлена в феврале в 2019 году. Её стоимость отдельно — от 18$, деталь самая дорогая. Если во время работы наблюдаете такие вспышки, — это брак и нужно потребовать компенсацию. Трубка фиксирует гамма и мягкое бета излучение. Есть маркировка анода (+).


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






[НАВЕРХ]

Сравнение с модулем от RHElectronics (Израиль). Китайская плата короче и чуть шире.
Электрические отличия этих модулей в том, что в китайской плате высоковольтная часть построена на старой, но ходовой микросхеме 555; а израильская разработка более «свежая», её высоковольтная часть организована на PIC-микроконтроллере, — отсюда здесь более низкое энергопотребление, есть защиты от перенапряжения и падения напряжения при высоких радиационных нагрузках. Но плата от RHElectronics гораздо дороже: 33$ (в разобранном виде, без газоразрядного счётчика СБМ20) и 40$ (в спаянном виде, без газоразрядного счётчика СБМ20). Китайская плата попроще, но и доступнее в 2 раза по деньгам, и счётчик J305 уже идёт в комплекте.


Чтобы модули заработали, достаточно подать напряжение 5В. При естественном радиационном фоне буззеры изредка начнут издавать щелчки: 1-2 раза в 2-5 секунд. Израильская версия при естественном радиационном фоне потребляет почти ничего — 45мкА тока. При возникновении разрядов в газоразрядной трубке ток повышается до 200мкА.


Китайская же плата потребляет примерно в 280 раз больше тока — 12.5-13мА (при возникновении разрядов в счётчике J305 повышается примерно на ~500мкА). Довольно много. Но часть тока расходуется также и на постоянно работающий светодиод возле контактной колодки.


— если его выпаять, то токопотребление снижается за 3мА.



[НАВЕРХ]

Ранее было сказано про калибровку — дело касается калибровки напряжения в высоковольтной цепи. Разработчик прилагает инструкцию, как это можно проделать:
— извлечь трубку Гейгера
— повернуть ручку потенциометра R100 до величины ниже 50Ом
— установить перемычку J4
— подключить COM-щуп (чёрный) мультиметра к земле (любому минусовому контакту на плате)
— красный щуп мультиметра подключить к контакту J2 (я припаял к нему проводок и крокодилом подцепился)
— на мультиметре выставить измерение постоянного DC-напряжения
— удостовериться, что отмыт флюс и подать питание 5В на плату
— отрегулировать потенциометр R100 так, чтобы мультиметр показывал 57В



[НАВЕРХ]

Синхронизация с различными устройствами



Вывод показаний в Radiation Logger под WINDOWS (через Arduino)
Существует возможность подключить устройство к ПК под Windows, выводить показания на интерфейс и даже выстраивать графики. Приложение называется Radiation Logger.

Распиновка подключения такая:

VIN (плата) — вывод 2 (Arduino)
5V (плата) — 5V (Arduino)
GND (плата) — GND (Arduino)




Чтобы связка «плата -> Arduino -> ПК» заработала и успешно определилась в программе, в плату Arduino нужно закачать специальный скетч через ArduinoIDE:
Скетч для работы в Radiation Logger
#include <SPI.h>
#define LOG_PERIOD 20000    //период вывода CPM в миллисекундах, рекомендуется 15000-60000
#define MAX_PERIOD 60000    //маскимальный период мониторинга

unsigned long counts;             //переменная для записи количества импульсов с трубки
unsigned long cpm;                //переменная для CPM (количество распадов минуту)
unsigned int multiplier;          //множитель для подсчёта CPM
unsigned long previousMillis;     //переменная для записи времени

void tube_impulse(){              //обработчик внешнего прерывания,
  counts++;                       //где идёт подсчёт импульсов за отрезок LOG_PERIOD
}

void setup(){                           //Предварительные настройки
  counts = 0;                           //обнулить счётчик импульсов
  cpm = 0;                              //обнулить CPM
  multiplier = MAX_PERIOD / LOG_PERIOD; //расчёт множителя для перевода импульсов в CPM
  Serial.begin(9600);                   //скорость порта 9600
  pinMode(2, INPUT);                          //вывод 2 сделать входным
  attachInterrupt(0, tube_impulse, FALLING);  //внешнее прерывание на выводе 2 при смене уровня с 1 на 0
}

void loop(){                                        //Цикл
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > LOG_PERIOD){  //если разность переменных больше LOG_PERIOD, то выводим CPM в порт
    previousMillis = currentMillis;
    cpm = counts * multiplier;                      //CPM = количество импульсов * множитель
        Serial.print(cpm);                          //Отправить в порт рассчитанный CPM для Radiation Logger
        Serial.write(' ');                          //Отправить пробел для разделения величин
    counts = 0;                                     //Сбросить счётчик импульсов
  }
}


Пояснения по величинам и данным в скетче

Нормы естественного радиационного фона:

нормальный — 0.1-0.2 мкЗв/ч
допустимый — 0.2-0.6 мкЗв/ч
повышенный — 0.6-1.2 мкЗв/ч

С модуля по последовательному порту через Arduimo в компьютер будут отправляться импульсы — CPM (количество распадов в минуту), на основе которых в программе Radiation Logger будут формироваться логи и выстраиваться графики.
MAX_PERIOD 60000 — этот время в миллисекундах, актуальное для подсчёта CPM.
LOG_PERIOD 20000 — время обновления результатов подсчёта CPM, т.е. не обязательно ждать минуту, когда можно подсчитать распады/мин например за 15 секунд, а результат умножить на частное MAX_PERIOD 60000/LOG_PERIOD 15000 (60сек / 15сек). Однако, чем меньше время измерения, тем выше погрешность (ниже я это покажу). Для уменьшения погрешности замеры нужно производить дольше, желательно 1мин, а результаты сгладить, используя скользящую среднюю. В LOG_PERIOD можно задать другие промежутки вывода результатов подсчёта, например 20000 или 30000.

Закрываем Arduino IDE и запускаем Radiation Logger. На виду три табло с показаниями в мкЗв/ч (англ: uSv/h) и десятитысячными долями после точки:

Current Radiaton Level — текущий уровень радиации
Average Radiation Level — средний уровень радиации за последнюю минуту
Absorbed Value — поглощённая доза

Имеются опции и настройки:
— логирование измерений в файл (а также построение графика по логам)
— логирование измерений на сервисы в Xively и Radmon
— Alert Threshold — порог тревоги
— Коэффициент Conversion Factor для перевода CPM в мкЗв/ч (uSv/h) (для счётчика СБМ20 — коэффциент равен 0.0057, а для счётчиков J305/M4011, по информации из сети — 0.0081)



В пункте меню File -> Settings надо выбрать порт, к которому подключено Arduino с модулем, протестировать подключения, сохранить. После чего нажать на кнопку Start Log и данные будут поступать и логироваться, а табло соотвественно начнут выдавать показания.



Далее приведу скриншоты с графиками при разном времени обновления результатов измерения: 15c, 30c, 60c. Время обновления в скетче меняется в строке LOG_PERIOD. Например 15 секунд — это 15000, или 60 секунд — 60000


Во всех трёх случаях измерение производил в течении 1 часа. На графиках вы увидете «пилу» в нижней части — измерение фона и явно высокую точку подъёма — в этот момент я подносил к счётчику бусы. Сам же счётчик всегда лежал в одном и том же месте. По нижним графикам видно, что чем выше время обновления, тем точнее показания и ровнее графики

15 секунд


30 секунд


60 секунд


Чешские бусы сделаны из ураносодержащего стекла, которое излучает гамма+бета. Они имеют бледно-зеленоватый оттенок. В ультрафиолете начинают светится кислотно-зелёным цветом.


[НАВЕРХ]

Вывод показаний в монитор порта Arduino IDE под WINDOWS (через Arduino)

— упрощённый вариант вывода показаний, прямо в монитор порта ArduinoIDE. Скорость приёмо-передачи должна быть установлена на отметке 9600.
(!!!) Чтобы перевести импульсы CPM в микроЗиверты, для каждого счётчика существует свой коэффициент, например для СБМ-20 это множитель 0.0057, а вот для счётчиков J305/M4011 производитель рекомендует CPM делить на число 151 — в скетчах ниже оно встречается в виде значения 151.0

Скетч для вывода данных в монитор морта Arduino IDE

#include <SPI.h>
#define LOG_PERIOD 20000    //период вывода CPM в миллисекундах, рекомендуется 15000-60000
#define MAX_PERIOD 60000    //маскимальный период мониторинга

unsigned long counts;             //переменная для записи количества импульсов с трубки
unsigned long cpm;                //переменная для CPM (количество распадов минуту)
unsigned int multiplier;          //множитель для подсчёта CPM
unsigned long previousMillis;     //переменная для записи времени

float mkzvHours = 0.0; // мкЗв/ч

void tube_impulse(){              //обработчик внешнего прерывания,
  counts++;                       //где идёт подсчёт импульсов за отрезок LOG_PERIOD
}

void setup(){                           //Предварительные настройки
  counts = 0;                           //обнулить счётчик импульсов
  cpm = 0;                              //обнулить CPM
  multiplier = MAX_PERIOD / LOG_PERIOD; //расчёт множителя для перевода импульсов в CPM
  Serial.begin(9600);                   //скорость порта 9600
  pinMode(2, INPUT);                          //вывод 2 сделать входным
  attachInterrupt(0, tube_impulse, FALLING);  //внешнее прерывание на выводе 2 при смене уровня с 1 на 0
}

void loop(){                                        //Цикл
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > LOG_PERIOD){  //если разность переменных больше LOG_PERIOD, то выводим CPM в порт
    previousMillis = currentMillis;
    cpm = counts * multiplier;                      //CPM = количество импульсов * множитель
    mkzvHours = cpm / 151.0;                  //перевод CPM в мкЗв/час    

    Serial.print("CPM: ");    
    Serial.print(cpm);        // Вывод CPM в монитор порта
    Serial.print(" | ");      
    Serial.print(mkzvHours);  // Вывод дозы в мкЗв в монитор порта
    Serial.print(" uSv/h");
    Serial.print("\r\n");
    counts = 0;               //Сбросить счётчик импульсов
  }
}


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

15 сек — 0.29 мкЗв/ч
30 сек — 0.18 мкЗв/ч
60 сек — 0.10 мкЗв/ч



[НАВЕРХ]

Вывод показаний на дисплей Nokia 5110 (через Arduino)
Чтобы работать с дисплеем 5110, необходимо сперва скачать библиотеку LCD5110_Basic.h и поместить её по пути Arduino/Libraries.



Скетч, с подключённой библиотекой, для вывода данных на дисплей LCD5110

#include <SPI.h>
#include <LCD5110_Basic.h>  //Базовая библиотека для работы с LCD5110

#define LOG_PERIOD 20000    //период вывода CPM в миллисекундах, рекомендуется 15000-60000
                            //чем дольше, тем точнее
#define MAX_PERIOD 60000    //маскимальный период мониторинга

// Назначение выводов (SCK, MOSI, DC, RST, CS)
LCD5110 myGLCD(3,4,5,6,7); // порты в Ардуино для подключения LCD5110

// Шрифты
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t BigNumbers[];


unsigned long counts;             //переменная для записи количества импульсов с трубки
unsigned long cpm;                //переменная для CPM (количество распадов минуту)
unsigned int multiplier;          //множитель для подсчёта CPM
unsigned long previousMillis;     //переменная для записи времени
unsigned long currentMillis;      //переменная, засекающая мс

float mkzvHours = 0.0; // мкЗв/ч

void tube_impulse(){              //обработчик внешнего прерывания,
  counts++;                       //где идёт подсчёт импульсов за отрезок LOG_PERIOD
}

void setup(){                           //Предварительные настройки
  counts = 0;                           //обнулить счётчик импульсов
  cpm = 0;                              //обнулить CPM
  multiplier = MAX_PERIOD / LOG_PERIOD; //расчёт множителя для перевода импульсов в CPM
  Serial.begin(9600);                   //скорость порта 9600
  pinMode(2, INPUT);                    //вывод 2 сделать входным
 
  myGLCD.InitLCD(65);                   //задать контрастность LCD5110
  myGLCD.clrScr();                      //очистить дисплей
  myGLCD.setFont(SmallFont);            //использовать мелкий шрифт
  myGLCD.print("test example", CENTER, 8);    //вывести надпись на 2-й строке
  myGLCD.print("GEIGER COUNTER", CENTER, 24); //вывести надпись на 4-й строке
  
  delay(2000);                                //пауза 2 сек
  myGLCD.clrScr();                            //очистить дисплей
  myGLCD.print("Counting...", CENTER, 24);    //вывести в центре надпись "идёт подсчёт"

  attachInterrupt(0, tube_impulse, FALLING);  //внешнее прерывание на выводе 2 при смене уровня с 1 на 0
}

void loop(){                                        //Цикл
  currentMillis = millis();
  if(currentMillis - previousMillis > LOG_PERIOD){  //если разность переменных больше LOG_PERIOD, то выводим CPM в порт
    previousMillis = currentMillis;
    cpm = counts * multiplier;                      //CPM = количество импульсов * множитель
    mkzvHours = cpm / 151.0;                  //перевод CPM в мкЗв/час    

    myGLCD.clrScr();
    myGLCD.setFont(SmallFont);           //использовать мелкий шрифт
    myGLCD.print("uSv", RIGHT, 32);      //вывести ед.измерения млЗв/ч на 5-й строке справа
    if (cpm > 99){                       //если CPM > 99,
         myGLCD.print("CPM", RIGHT, 8);  //то ед.измерения CPM сдвинуть к правому краю
    }
    else{                                //в остальных случаях
         myGLCD.print("CPM", CENTER, 8); //ед.измерения CPM будет в центре
    }
    myGLCD.setFont(MediumNumbers);       //использовать средний шрифт
    myGLCD.printNumI(cpm, LEFT, 0);      //вывести величину CPM слева
    myGLCD.setFont(BigNumbers);          //использовать крупный шрифт
    myGLCD.printNumF(float(mkzvHours), 2, LEFT, 20); //вывести величину мкЗв/ч слева

    counts = 0;                          //Сбросить счётчик импульсов
  }
}


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

/* ПОДКЛЮЧЕНИЕ ДЛЯ Nokia_5110_Basic.h
   ПРИ ПОСЛЕДОВАТЕЛЬНОСТИ:
   LCD5110 myGLCD(3,4,5,6,7);

CLK (SCK)  -> 3
DIN (MOSI) -> 4
DC         -> 5
RST        -> 6
CE (CS)    -> 7

*/


Скетч загружен, питание подано, замеры пошли.
Живое видео смотрите в конце обзора.


[НАВЕРХ]

Вывод показаний через 3.5мм аудиоразъём
Скажу сразу своё мнение — фича откровенно слабая, но тем не менее, я покажу её реализацию.
На модуле предусмотрен разъём аудиоджек. По задумке разработчика, он необходим, чтобы посредством комплектного AUX-кабеля подключиться к микрофонному входу компьютера/ноутбука, посылать импульсы и в приложении считывать импульсы, конвертируя их потом в любые величины. Но при этом он не предоставил софт. А найти таковой мне не удалось. В таком случае, буду пытаться реализовать эту задумку при помощи смартфона.

В модуле от RHelectronix, который я обозревал в прошлом, распиновка аудиоразъёма 4-контактная и выполнена по стандарту CTIA, т.е. микрофонный (сигнальный) контакт — самый крайний.


А вот в китайском модуле разъём уже трёхконтактный. Крайний контакт — земля, средний контакт — сигнальный.


Так как в моём Android-смартфоне тоже используется 4-контактная распиновка CTIA, то пришлось паять свой переходник. После подключения кабеля в разъём смартфона, рядом с пиктограммой аккумулятора должен загореться значок наушников обязательно со значком микрофона.


Почему я сказал вначале про «слабую реализацию» — дело в имеющемся под Android софте, который до сих не может корректно подсчитывать приходящие на микрофонный вход импульсы, а настроек для гибкой подстройки входящего сигнала как-то не завезли. Для примера я всё-таки скачал и установил Android-приложение GeigerCounter (foxylab), — например в нём, при естественном фоне будут сильно завышаться показания CPM (количество импульсов = распадов в минуту).


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


[НАВЕРХ]

Видеоролики






Итоговая сводка



Недостатки израильского модуля:
— комплект более дорогой (в 2 раза, с учётом счётчика)
— нужно отдельно докупать счётчик

Достоинства израильского модуля:
— главное и основное — низкое энергопотребление 45мкА
— есть контакты для припаивания повышающего DC-DC-преобразователя 5В
— более современная элементная база

Недостатки китайского модуля:
— главный и основной недостаток — повышенное токопотребление 13мА (10мА с выпаянным светодиодом)
— не предусмотрены контакты для припаивания повышающего DC-DC преобразователя 5В
— общее качество монтажа радиодеталей

Достоинства китайского модуля:
— в 2 раза дешевле израильского аналога
— уже установлен какой-никакой, но счётчик

Для сильно точных измерений данный набор не годится, скорее как простой показометр. Впрочем и это вполне неплохо — для бытового применения. Можно использовать вкупе с Ардуино какой-нибудь стрелочный индикатор с условно говоря, тремя размеченными зонами: зелёная (в пределах нормы), жёлтая (повышенный фон), красная (опасный фон), либо на дисплее того же 5110 по мере учащения импульсов заполнять сегментами тревожную шкалу, например как-то так:


Что касается применения в портативно-носимом исполнении, то как всегда, всё упирается в срок автономности. Даже если использовать рекомендуемые 3хАА батарейки, то при беспрерывной работе проекта при естественном фоне, заряда батареек хватит не более, чем на 1 неделю, при условии, что светодиод выпаян, а среднее количество заряда в АА батарейке 1500мАч (бывает и 600 в новой батарейке, а бывает и 2000 — зависит от типа и бренда). Более подробно в этой таблице.

Этот набор я охарактеризую, как «дёшево и сердито», так как стоимость комплекта лишь немного превышает стоимость отдельной трубки J305, и сразу готов к работе/экспериментам из коробки. Довольно простая, но занимательная находка для энтузиаста-любителя, к коим и себя тоже отношу.

— набор документаций к китайскому модулю
— модель для распечатки корпуса на 3D-принтере


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

[НАВЕРХ]
Планирую купить +77 Добавить в избранное +138 +203
+
avatar
+5
Заморочились, но было интересно ) Спасибо.
+
avatar
  • CTAHOK
  • 21 января 2020, 10:03
+1
Хотелось бы ещё много чем обзор дополнить, например замерами на эталонном источнике, но увы, — где б его достать… Были только бусы:(
+
avatar
0
Можно поискать контрольный источник от ДП-5, правда эталонным его не назовешь, но хоть что-то.
+
avatar
  • Mplus
  • 21 января 2020, 10:11
0
Калийные удобрения, тот же сернокислый калий отлично фонит в бете
+
avatar
  • Jet
  • 21 января 2020, 11:56
+1
можно попробовать договориться с местной санэпидемстанцией, у них должны быть дозиметры и эталонные источники
+
avatar
  • DVANru
  • 21 января 2020, 13:16
+9
Бусы классные! Хоть начальнице, хоть теще!
+
avatar
0
датчик дыма HIS-07 с али
+
avatar
  • CTAHOK
  • 22 января 2020, 01:31
0
Спасибо, глянул обзор Олега на ютубе. Интересно, система «янтарь» на таможне разве не засекает такие вещи? Или излучение у них настолько слабое?
+
avatar
0
наша таможня это лотерея :D
+
avatar
0
Где эталонный источник взять — не знаю, но китайцы продают радиоактивные слабо светящиеся брелки, которые вроде как должны фонить бетой.
Я купил такой брелок, а также китайский счетчик, как у вас в обзоре. Счетчик подружил с arduino pro mini и дисплеем 16x2. на светящемся брелке — показал превышение фона процентов на 30 (в моей прошивке для точного измерения нужно выждать 10 минут).
Потом тот же самый брелок проверял дозиметром друга (не помню модель, но он со слюдяным датчиком) — секунд через 30 начал орать, что излучение превышает опасный порог)) при измерении подносили его максимально близко к датчику.
+
avatar
0
Отличный обзор! Хотел себе такой взять, но судя по большой разбежке показаний фонового излучения, нужно посмотреть в сторону моделей подороже:)
+
avatar
  • CTAHOK
  • 22 января 2020, 01:33
0
Тут главное, чтобы счётчик был хороший, ну от платы только требуется, чтобы напряжение стабильно держало.
+
avatar
  • dodo
  • 21 января 2020, 10:12
+6
Надеюсь, было интересно. Спасибо за внимание.
Не то слово! )) Спасибо.
+
avatar
  • habl
  • 21 января 2020, 10:12
0
Скажите, пожалуйста, марку трубки в израильской плате.
+
avatar
0
у Вас со зрением плохо, или автор подредактировал после Вашего вопроса? Вроде четко написано- СБМ20
+
avatar
  • habl
  • 21 января 2020, 10:38
+1
Наверное, просмотрел марку. В любом случае, спасибо.
+
avatar
  • CTAHOK
  • 22 января 2020, 01:34
0
СБМ-20 у нас нередко можно найти в продаже, даже упакованные в картонные мини-тубусы. Аналог СБМ20, это СТС-5, но они чуточку хуже
+
avatar
  • sav13
  • 21 января 2020, 10:13
+4
Ощущение как от набора «Сделай сам» собранного пятиклассником.
Хорошо хоть не на макетке )))
+
avatar
  • CTAHOK
  • 22 января 2020, 01:36
0
Да уж, судя по монтажу, платок этих наклепали «на весь Китай».
+
avatar
  • Ramiro
  • 21 января 2020, 10:17
0
автор, ты там не с Японией рядом?
+
avatar
  • CTAHOK
  • 22 января 2020, 01:37
+1
Если глобально, то скорее ближе к Припяти :)
+
avatar
  • BrB
  • 21 января 2020, 10:35
+3
Хороший обзор. Плюсую. И (вобщем то) не дорогая и реально нужная весч. НЕ то что там яцы пашот варить!
+
avatar
  • ksiman
  • 21 января 2020, 11:16
+5
НЕ то что там яцы пашот варить!
Так, яйца попрошу не трогать! :)
+
avatar
  • Brendon
  • 21 января 2020, 10:54
0
А не проще вам было взять его на JD, чтобы не покупать в непонятном магазине?
+
avatar
  • KimIV
  • 21 января 2020, 11:17
+2
Там дороже почти в два раза…
+
avatar
  • Brendon
  • 21 января 2020, 11:35
-5
+
avatar
+1
отобрать?)
+
avatar
  • CTAHOK
  • 22 января 2020, 01:39
0
А не проще вам было взять его на JD, чтобы не покупать в непонятном магазине?
Было две такие попытки, увы, отказали:( А зря, тема то востребованная
+
avatar
  • CLX
  • 21 января 2020, 11:43
+4
Ну вот что ж вы за люди такие…
Только я очередной раз устоял перед соблазном приобрести/собрать дозиметр/радиометр и вот опять…
+
avatar
0
Считать импульсы можно наоборот, замеряя интервал между импульсами и пропуская результат через сглаживающий фильтр. Получается почти что реалтайм, не нужно ждать 20 секунд до появления первых данных.
+
avatar
  • kirich
  • 21 января 2020, 11:58
+5
Обычно там пауза может быть разной. Т.е. вполне реальна ситуация когда проходит 2-3 импульса подряд, потом пауза, потом 1 импульс, еще пауза.
+
avatar
+1
Я ж говорю — сглаживающий фильтр. Простейшего калмановского фильтра будет достаточно.
+
avatar
  • kirich
  • 21 января 2020, 12:24
+1
Работать будет очень неустойчиво.
+
avatar
+1
Нормально это будет работать. Проверено.
+
avatar
0
Кстати, у меня есть дозиметр с Али, где судя по всему так и сделано. Во всяком случае он начинает показывать цифры и рисовать график сразу после прихода нескольких импульсов, в начале показания болтаются, но как только фильтр скушает достаточное количество сэмплов, показания стабилизируются. Этот метод обсуждали на iXBT где-то в 2011 году…
+
avatar
0
сглаживающий фильтр
Фильтр чего? Грубо — может прийти сразу 6 импульсов в очень короткий период и 20 секунд ничего. Или через пару секунд импульсы. Дальше, юзер не будет сидеть и ждать, пока статистика наберется. Он может секунд на 30 включить прибор и все. Не будет ваша идея работать
+
avatar
+1
Ну не будет так не будет. А тем, кто имел дело с алгоритмами цифровой фильтрации, предлагаю скетч на пробу.

Пример скетча

#include <Arduino.h>

float filteredValue = NAN;
float filterK = 0.1;
float calculatedCPM;
volatile boolean impulseHandled = false;
unsigned long lastImpulse = -1;

float filter(float value)
{
    if (isnan(filteredValue))
    {
        filteredValue = value;
    }
    else
    {
        filteredValue = filteredValue - filterK * (filteredValue - value);
    }
    
    return filteredValue;
}

void handleImpulse()
{      
    impulseHandled = true;
}

void setup() 
{
    Serial.begin(9600);
    pinMode(2, INPUT);
    attachInterrupt(0, handleImpulse, FALLING);
}

void loop() 
{
    if (impulseHandled)
    {
        if (lastImpulse > 0)
        {
            calculatedCPM = 60000/filter(millis() - lastImpulse);
            Serial.print(millis()); 
            Serial.print(" CPM:"); Serial.print(calculatedCPM, 1);
            Serial.print(" = "); Serial.print(0.0081 * calculatedCPM, 2); Serial.println(" uSv/h"); 
        }
        lastImpulse = millis();
        impulseHandled = false;
    }
}



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

Пример вывода скетча

+
avatar
0
Будет. Я подобный алгоритм реализовывал. Вместо «количество импульсов за единицу времени» в таком подходе ты наоборот считаешь время на Х импульсов". Оба подхода имеют место быть. Чел преувеличивает крутость его подхода, но метод абсолютно рабочий.
+
avatar
  • Aksakal
  • 21 января 2020, 12:11
0
Поясните? Поподробнее.
+
avatar
+2
Я эксперементировал с чем то подобным (там в описании видео детальное описание алгоритма)
www.youtube.com/watch?v=1Y5L29qG1-g
с одной стороны скользящее среднее это тема. С другой стороны статистику не обманешь. Когда у тебя импульсы раз в несколько секунд, плюс тебе их ещё нужно усреднять. Тебе в любом случае нужно ждать некоторое время для стабилизации результата. И при природном фоне тебе все равно нужно будет около минуты пока не наберется хоть какая то статистика.
+
avatar
0
И по поводу считать время между импульсами и считать количество импульсов за время. То имхо особой разницы нет. Скользящее среднее можно считать и так и так.
+
avatar
+1
Разница в том, что при подсчете времени между импульсами можно не использовать буфер и скользящее среднее, а просто пихать замеренные значения интервалов в фильтр Калмана.
+
avatar
  • CTAHOK
  • 22 января 2020, 01:42
0
замеряя интервал между импульсами
вроде в Терре похожий алгоритм используется?
+
avatar
0
Вот чуть выше в комментах я привел свой вариант скетча
+
avatar
  • usb350
  • 21 января 2020, 12:07
+6
Хочу предупредить желающих купить счетчик (не этот, а вообще) — вещь из того же класса, что и велотренажер.
Раза 3 попользуетесь и будет без дела валяться (в случае велотренажера это хорошая сушилка для маек) :)
+
avatar
+6
Его можно использовать для круглосуточного контроля радиационного фона с трансляцией показаний на Интернет-серверы мониторинга.
+
avatar
  • CLX
  • 21 января 2020, 12:37
+1
Как показания в интернете помогут например замерить фон выбираемых стройматериалов или приобретаемой квартиры.

А так да, согласен. Скорее всего будет валяться без дела 99,9(9)% времени.
+
avatar
0
Вы уж определитесь чего желаете — непрерывно контролировать радиационный фон местности или иметь портативный прибор. Во втором варианте, да, вы его использовать не будете почти никогда
+
avatar
  • CLX
  • 21 января 2020, 21:23
+1
Ну, что лично до меня, так я желаю перестать его (дозиметр) хотеть заполучить :)
+
avatar
  • kirich
  • 21 января 2020, 12:24
+7
С одной стороны да, чаще всего просто закинут в ящик стола, а с другой, может когда и пригодится.
Другое дело что китайцам почти ничего не стоило добавить счетный узел и получить более функциональный аппарат.

Этот дозиметр я делал очень много лет назад, ничего, еще работает и никаких микроконтроллеров и ардуин :)
+
avatar
-1
Как понимаю, выходы этих всех БП следует соединить последовательно что бы запитать СБМку, хитро!
+
avatar
  • kirich
  • 21 января 2020, 13:00
+1
Не. пожалуй не хватит, там по 3шт БП на 12, 24 и 48 Вольт, всего 252 в сумме, с для СБМ20 надо 400 :(
+
avatar
  • ksiman
  • 21 января 2020, 12:39
0
Куча БП его питает? :)
+
avatar
  • Dimon_
  • 21 января 2020, 12:51
0
КТ603/608 в золоте :) М-м-м…
У меня тоже такие есть. :)
А маленькие — это однопереходные КТ117 или полевеки типа КП103?
+
avatar
  • kirich
  • 21 января 2020, 12:55
0
КТ603/608 в золоте :) М-м-м…
Почти угадали, КТ630 :)

А маленькие — это однопереходные КТ117 или полевеки типа КП103?
Не, КТ3102Е
+
avatar
  • usb350
  • 21 января 2020, 14:04
+2
За намотку тороидального трансформатора с несколькими сотнями витков сразу лайк :)

У меня было так, открываю журнал («В помощь радиолюбителю», «Радио») — смотришь статью — ух ты, надо собрать. «Трансформатор изготовлен на ферритовом магнитопроводе марки 2000НН К12х8х4, перед намоткой острые края магнитопровода необходимо сточить надфилем и обернуть фторопластовой лентой. Первичная обмотка содержит 1400 витков провода ПЭВ 0.06» — да пошли вы в .....!!!

У меня вот такой:


По совету одного человека снял фольгу-экран (провод от него шел на плату). Значения увеличились. Но всё ради бэты — экран её скрывал. Верно поступил или вернуть?
+
avatar
  • Dockeee
  • 21 января 2020, 14:18
+3
Вы теперь измеряете попугаев. Хотя на данный момент (когда прибор был откалиброван — большой вопрос) вполне возможно и с фольгой попугаи были. Но, по моему мнению, снимать фольгу было не корректно.
Допустим прибор новый, калиброванный. Он откалиброван под те единицы измерения, указанные в паспорте и на корпусе. в данном случае эквивалентная доза. Снимая фольгу, вы даете доступ к счетчику еще и бета-частицам. В итоге вы не можете нормально измерить ни то, ни другое.
+
avatar
  • usb350
  • 21 января 2020, 15:23
0
Спасибо за ответ. Примерно так и думал.

Я читал что сам по себе этот прибор фуфлометр и нормальный счетчик регистрирует и тип частиц и их активность. И весит с десяток кг, а датчик — выносной. Там ещё что-то вроде встроенных бинокуляров а-ля «морской бой» (помните запах этой резинки?) в корпусе, для наблюдения.
+
avatar
  • Dockeee
  • 22 января 2020, 00:29
0
Вы путаете, наверное, со спектрометром. Они разные бывают. В основном используются сцинтилляционные детекторы. На крайняк, полупроводниковые, но они дороги. Бывают и переносные. Весом не более килограмма, с выносным. Но точность тоже под вопросом.
+
avatar
+2
Проблема сцинтилляционных детекторов в том, что нужно уметь правильно обрабатывать сигнал с них. Дело в том, что разные частицы обладают разной энергией просто считать количество частиц зарегистрированным сцинтиллятором не верно. Точнее такой подход имеет место быть, но имеет некоторые оговорки. Для правильного учёта мощности дозы нужно учитывать энергию каждой зарегистрированной частицы. Учитывать что разные частицы с разной энергией регистрируются кристаллом с разной вероятностью. Нужно учитывать что частица с высокой энергией может зарегистрироваться спектрометром как частица с низкой. И после того как ты всё это учтёшь ты получишь энергокомпенсированный сцинтиллятор, смоимостью много денег. Бытовые модели сцинтилляторов такое не умеют.
+
avatar
  • Dockeee
  • 22 января 2020, 20:31
0
Да. В принципе, я с вами согласен. Ежели этот ответ был мне.
+
avatar
0
Я хотел сказать, что энергокомпенсированный сцинтиллятор тоже от части спектрометр. В отличии от нормальных спектрометров ему не нужно очень высокое разрешение и для него допустимы косяки кристаллов (например когда в кристалле появляются обрасти с разным световыходом из за чего пики начинают двоиться). Но конструктивно это всё равно получаем устройство похожее на спектрометр ибо ему нужно определять энергии частиц.
+
avatar
0
Спектрометру еще и свинцовый домик неплохо бы… Только где ж столько свинца взять.
+
avatar
0
Обычно, когда что-то нужно было на феррите мотать, я использовал ферритовые чашки вместо колец. На порядок проще. Правда чашки было труднее найти :)
+
avatar
  • usb350
  • 21 января 2020, 18:26
+1
Ага, помню «ежика» на чашках Б22 делал. Из книги схема, автор — Шихатов вроде.

Одноклассников киловольтом бил.

Сейчас вспоминаю и жалею, что дураком был. Надо было умножитель напряжения вроде ун9/27 на выходе поставить :))))
+
avatar
  • oleg235
  • 24 января 2020, 00:11
0
Трансформатор изготовлен на ферритовом магнитопроводе марки 2000НН К12х8х4, перед намоткой острые края магнитопровода необходимо сточить надфилем и обернуть фторопластовой лентой. Первичная обмотка содержит 1400 витков провода ПЭВ 0.06
Такие вещи мотаются косичкой из десятка проводов сразу. Намотали 140 витков, зачистили концы, соединили в нужном порядке — обмотка готова.
+
avatar
0
вещь из того же класса, что и велотренажер. Раза 3 попользуетесь и будет без дела валяться
это у вас так. я проверяю постоянно всякую дребедень с али и фон иногда
+
avatar
  • CTAHOK
  • 22 января 2020, 01:44
+1
Хочу предупредить желающих купить счетчик (не этот, а вообще) — вещь из того же класса, что и велотренажер.
можно использовать как «тренажёр для программистского мозга» :)
+
avatar
+1
Эх, купить бы где нибудь задёшево нераспаянную плату-конструктор счётчика под СБМку (в месте с комплектухой, но без самой СБМки) и спаять всё это дело самому. Датчики в столе лежат, ждут своего часа.
+
avatar
  • Dockeee
  • 21 января 2020, 13:35
0
Хм. Уважаемый. Предложу вариант.
1. В интернетах полно различных схем. Выбираете.
2. Разводите плату. Поверьте — это просто. Тот же самый EasyEDA работает в браузере и библиотека компонентов большая.
3. Заказываете на JLCPCB (прямо с EasyEDA) с распайкой или просто с доставкой компонентов.
4. Собираете или просто подключаете.
5. PROFIT!
+
avatar
0
Так то да, я это всё проходил, но чёт
последнее время лень :)
Если заодно ещё и на продажу мелкую партию изготовить… это уже было бы интереснее. Только будет ли спрос?
+
avatar
  • Dockeee
  • 21 января 2020, 14:06
0
Лишнее — в какой-нибудь дом детского творчества. =) Пущай учатся.
+
avatar
0
Там же высокое напряжение! Детей жалко
+
avatar
  • Dockeee
  • 21 января 2020, 15:16
0
Токи мизерные. Проверено на коллеге и себе. Не убьет, так — пощиплет
+
avatar
  • CTAHOK
  • 22 января 2020, 01:46
0
Эх, купить бы где нибудь задёшево нераспаянную плату-конструктор счётчика под СБМку (в месте с комплектухой, но без самой СБМки)
посмотрите комплекты у израильского разработчика (ник paodaff на ebay).
+
avatar
  • standov
  • 21 января 2020, 13:07
0
Подскажите, какой ресурс у этих колб?
+
avatar
  • CTAHOK
  • 22 января 2020, 02:00
0
Про ресурс не нашёл информации. Вот документация к M4011 (J305)
+
avatar
0
У них в импульсах время жизни считается. M4011 рассчитана на 1E+9 ~ 1E+10 импульсов.
+
avatar
  • jackman
  • 21 января 2020, 13:55
+1
Последний вариант Скетча и подключение к ардуино + nokia экран выложите пожалуйста.
+
avatar
  • xstl
  • 21 января 2020, 14:03
-1
2,4) — микросхемы 555, на которых собственно и работает данный модуль
На корпусе 2 работает бузер встроенный. На операционнике — выход на 3.5 мм. А на 3м да — питальник, который серьезного счета не сдюжит. И трубка фоточуствительна Вообще больше образовательная плата. Питальник трубки не выдержит интенсивного счета.
Тема вообще интереснейшая. Сам сейчас делаю свой хооби-проект. СТС-5 (была прост). Питальник и формирователь со схемы ARDos'а, но вместо ардуины ESP8266 как MQTT издатель + сенсоры для бытового использования.
+
avatar
+2
В условиях интенсивного счета крепкие ботинки важнее питальника трубки ))
+
avatar
  • f1203
  • 21 января 2020, 14:09
0
Если кому нужно считывать данные с компорта в компьютер и обрабатывать дальше, скрипт в PoweShell

$port= new-Object System.IO.Ports.SerialPort COM6,9600,None,8,one # порт COM6, скорсть 9600
$port.Open()
$port.ReadLine()
#Цикл бесконечный
$a = 0 #просто переменная
While ($a -le 5)
{
$data = $port.Readline() # чтение данных с порта
$data # значение
sleep 3 # задержка
}
+
avatar
  • OreSama
  • 21 января 2020, 14:28
-1
О, моя любимая бага:

if(currentMillis — previousMillis > LOG_PERIOD)
В тот момент, когда currentMillis перевалит за 0xFFFFFFFF, будет весело.
+
avatar
0
Ну там хотя бы unsigned long, за это время владелец девайса наиграется и отправит его в шкаф ))
+
avatar
  • ACE
  • 22 января 2020, 02:07
+2
А нету тут баги. (0-0xFFFFFFFF) = 1 если все переменные unsigned long
Вот писать if(currentMillis > previousMillis + LOG_PERIOD) приведет к глюку на границе диапазона, да.
+
avatar
  • OreSama
  • 22 января 2020, 04:50
0
А вот есть. Если LOG_PERIOD не кратен 0x100000000 (а он не кратен), в момент пересечения границы условие сработает раньше, чем должно и выдаст заниженный результат.
+
avatar
  • ACE
  • 22 января 2020, 12:56
+1
Нет, нету. Не знаю, как объяснить на пальцах. Но оно работает. Попробую на примере.
previousMillis было 0xFFFFFFFF
прошло 1 мс, а LOG_PERIOD пусть 20 мс.
Тогда currentMillis станет равен 0, переполнение произошло.
Но currentMillis — previousMillis будет равно 1, всё равно. оно не может стать -0xFFFFFFFF, так как у нас тип беззнаковый.
Ну а сравнение (1 > LOG_PERIOD) уже понятно.

Особенность математики с переполнением. Если к 0xFFFFFFFF прибавить любое число, а потом это же число вычесть, результат всегда будет равен исходному числу. И наоборот. Если прибавить любое число (даже с переполнением), а вычесть исходное, то получим прибавленное значение.
+
avatar
+2
Не вижу тут баги. Хотя многое зависит от того, какой тип даных используется, но в целом такое работает нормально. Например:
0 — 0xFFFE (момент сохранения значения previousMillis)
1 — 0xFFFF
2 — 0x0000
3 — 0x0001
4 — 0x0002 (получение нового значения currentMillis)
Теперь из 0x0002 вычитаем 0xFFFE и получаем ответ 0x0004. Между этими двумя событиями прошло 4 тика. Никакой ошибки нет, несмотря на то, что произошло переполнение счётчика.
+
avatar
  • f1203
  • 21 января 2020, 15:10
0
У меня такой брелок валяется, насколько он точный?
+
avatar
0
При таких размерах и отсутствии индикации — ну разве что там сцинтиллятор на полкорпуса…
+
avatar
  • CTAHOK
  • 22 января 2020, 02:07
0
В БИРИ-2 тот же газоразрядный счётчик Гейгера, только поменьше СБМ-10
+
avatar
-2

У меня в городе зашкаливал бы)
+
avatar
0
А Креосан уже на глаз наверно радиацию определяет, и по нему самому можно тестировать дозиметры))
+
avatar
  • CTAHOK
  • 22 января 2020, 02:08
0
У него уже были видео, где он собирал самодельный дозиметр? Давно его не смотрел.
+
avatar
0
он по чернобылю ходит с фабричным
+
avatar
0
А он что, еще живой? :)
+
avatar
+1
Я купил подобный девайс. СБМ10 в брелочном корпусе, питание от круглой батарейки которой по заявлениям производителя должно хватить на 2 года. Вот на год уже хватило. Лежит в рюкзаке, есть не просит, пару раз попискивал в известных повышенным фоном местах. Значит работает. Цена вопроса около 5000р, но зато с ним спокойнее в наше неспокойное время. У нас ведь тебе ничего не скажут даже если у тебя в подвале дома реактор рванет.
+
avatar
+1
Здравствуйте! Можете подсказать модель своего девайса? Вы где брали?
+
avatar
0
Подскажите где брали? Интересует что-то не дорогое, носимое с собой, с определением уровня в режиме реального времени.
+
avatar
  • CTAHOK
  • 28 января 2020, 11:15
0
недорогое носимое

БИРИ-2
Родник-3
Соэкс 112

они на газоразрядных счётчиках СБМ-10 и СБМ 20-1. А вот японскую модель «Air Counter» на фотоэлементах лучше не рассматривать.

+
avatar
0
А я купил набор uradmonitor_kit1, правда я брал уже собранный и теперь он вещает из Киева.