RSS блога
Подписка
DIY модуль со счётчиком Гейгера для измерения радиации
- Цена: $27
- Перейти в магазин
Этот модуль был куплен ещё с прошлой акции, которую публиковал сам же, и вдобавок пообещал читателям сделать на него обзор, поскольку эта тема вызвала интерес не только у меня. Теперь готов рассказать про него чуть более подробно. Модуль предназначен для регистрации ионизирующего излучения. Несмотря на то, что это голая плата, здесь уже установлен счётчик и можно пользоваться уже «из коробки» — при подаче 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:
Пояснения по величинам и данным в скетче
Закрываем 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.
Разбег (разность максимального и минимального значения) показаний на счётчике J305 оказался побольше, чем на другом наборе со счётчиком СБМ-20. У вас эти разбеги показаний на анаголичных наборах могут отличаться, так как точность измерений сильно зависит от качества изготовления самих счётчиков.
15 сек — 0.29 мкЗв/ч
30 сек — 0.18 мкЗв/ч
60 сек — 0.10 мкЗв/ч
[НАВЕРХ]
Вывод показаний на дисплей Nokia 5110 (через Arduino)
Чтобы работать с дисплеем 5110, необходимо сперва скачать библиотеку LCD5110_Basic.h и поместить её по пути Arduino/Libraries.
Правильная распиновка подключения для этого скетча. Впрочем, при желании вы их можете изменить:
Скетч загружен, питание подано, замеры пошли.
Живое видео смотрите в конце обзора.
[НАВЕРХ]
Вывод показаний через 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-принтере
Надеюсь, было интересно. Спасибо за внимание.
[НАВЕРХ]
Быстрая навигация по обзору
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-принтере
Надеюсь, было интересно. Спасибо за внимание.
[НАВЕРХ]
Самые обсуждаемые обзоры
+69 |
3258
133
|
+50 |
3523
65
|
+28 |
2457
46
|
+37 |
2771
40
|
+55 |
2022
37
|
Я купил такой брелок, а также китайский счетчик, как у вас в обзоре. Счетчик подружил с arduino pro mini и дисплеем 16x2. на светящемся брелке — показал превышение фона процентов на 30 (в моей прошивке для точного измерения нужно выждать 10 минут).
Потом тот же самый брелок проверял дозиметром друга (не помню модель, но он со слюдяным датчиком) — секунд через 30 начал орать, что излучение превышает опасный порог)) при измерении подносили его максимально близко к датчику.
Хорошо хоть не на макетке )))
Только я очередной раз устоял перед соблазном приобрести/собрать дозиметр/радиометр и вот опять…
Вот что получается при запуске, как можно видеть фильтр стабилизировался довольно быстро, можно еще поиграть с коэффициентом фильтрации.
www.youtube.com/watch?v=1Y5L29qG1-g
с одной стороны скользящее среднее это тема. С другой стороны статистику не обманешь. Когда у тебя импульсы раз в несколько секунд, плюс тебе их ещё нужно усреднять. Тебе в любом случае нужно ждать некоторое время для стабилизации результата. И при природном фоне тебе все равно нужно будет около минуты пока не наберется хоть какая то статистика.
Раза 3 попользуетесь и будет без дела валяться (в случае велотренажера это хорошая сушилка для маек) :)
А так да, согласен. Скорее всего будет валяться без дела 99,9(9)% времени.
Другое дело что китайцам почти ничего не стоило добавить счетный узел и получить более функциональный аппарат.
Этот дозиметр я делал очень много лет назад, ничего, еще работает и никаких микроконтроллеров и ардуин :)
У меня тоже такие есть. :)
А маленькие — это однопереходные КТ117 или полевеки типа КП103?
Не, КТ3102Е
У меня было так, открываю журнал («В помощь радиолюбителю», «Радио») — смотришь статью — ух ты, надо собрать. «Трансформатор изготовлен на ферритовом магнитопроводе марки 2000НН К12х8х4, перед намоткой острые края магнитопровода необходимо сточить надфилем и обернуть фторопластовой лентой. Первичная обмотка содержит 1400 витков провода ПЭВ 0.06» — да пошли вы в .....!!!
У меня вот такой:
По совету одного человека снял фольгу-экран (провод от него шел на плату). Значения увеличились. Но всё ради бэты — экран её скрывал. Верно поступил или вернуть?
Допустим прибор новый, калиброванный. Он откалиброван под те единицы измерения, указанные в паспорте и на корпусе. в данном случае эквивалентная доза. Снимая фольгу, вы даете доступ к счетчику еще и бета-частицам. В итоге вы не можете нормально измерить ни то, ни другое.
Я читал что сам по себе этот прибор фуфлометр и нормальный счетчик регистрирует и тип частиц и их активность. И весит с десяток кг, а датчик — выносной. Там ещё что-то вроде встроенных бинокуляров а-ля «морской бой» (помните запах этой резинки?) в корпусе, для наблюдения.
Одноклассников киловольтом бил.
Сейчас вспоминаю и жалею, что дураком был. Надо было умножитель напряжения вроде ун9/27 на выходе поставить :))))
1. В интернетах полно различных схем. Выбираете.
2. Разводите плату. Поверьте — это просто. Тот же самый EasyEDA работает в браузере и библиотека компонентов большая.
3. Заказываете на JLCPCB (прямо с EasyEDA) с распайкой или просто с доставкой компонентов.
4. Собираете или просто подключаете.
5. PROFIT!
последнее время лень :)
Если заодно ещё и на продажу мелкую партию изготовить… это уже было бы интереснее. Только будет ли спрос?
Тема вообще интереснейшая. Сам сейчас делаю свой хооби-проект. СТС-5 (была прост). Питальник и формирователь со схемы ARDos'а, но вместо ардуины ESP8266 как MQTT издатель + сенсоры для бытового использования.
$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 # задержка
}
В тот момент, когда currentMillis перевалит за 0xFFFFFFFF, будет весело.
Вот писать if(currentMillis > previousMillis + LOG_PERIOD) приведет к глюку на границе диапазона, да.
previousMillis было 0xFFFFFFFF
прошло 1 мс, а LOG_PERIOD пусть 20 мс.
Тогда currentMillis станет равен 0, переполнение произошло.
Но currentMillis — previousMillis будет равно 1, всё равно. оно не может стать -0xFFFFFFFF, так как у нас тип беззнаковый.
Ну а сравнение (1 > LOG_PERIOD) уже понятно.
Особенность математики с переполнением. Если к 0xFFFFFFFF прибавить любое число, а потом это же число вычесть, результат всегда будет равен исходному числу. И наоборот. Если прибавить любое число (даже с переполнением), а вычесть исходное, то получим прибавленное значение.
0 — 0xFFFE (момент сохранения значения previousMillis)
1 — 0xFFFF
2 — 0x0000
3 — 0x0001
4 — 0x0002 (получение нового значения currentMillis)
Теперь из 0x0002 вычитаем 0xFFFE и получаем ответ 0x0004. Между этими двумя событиями прошло 4 тика. Никакой ошибки нет, несмотря на то, что произошло переполнение счётчика.
У меня в городе зашкаливал бы)
БИРИ-2
Родник-3
Соэкс 112
они на газоразрядных счётчиках СБМ-10 и СБМ 20-1. А вот японскую модель «Air Counter» на фотоэлементах лучше не рассматривать.