
Серия «Гамма-спектрометр своими руками»: Часть 1: Физика → Часть 2: Детекторы → Часть 3: Схема → Часть 4: МКА и программы
Аналоговая схема сформировала красивый гауссов импульс. Теперь нужно измерить его амплитуду, добавить в гистограмму нужный канал — и так сотни тысяч раз. Это и есть задача многоканального анализатора (МКА, или MCA — Multichannel Analyzer).
В предыдущей части мы собрали аналоговый тракт. Теперь — цифровая часть и программное обеспечение.
Что такое МКА
МКА — это по сути очень быстрый 8192-канальный (или 4096, 1024...) вольтметр-гистограмматор. Алгоритм прост:
- Ждём импульса (нарастание сигнала выше порога)
- Находим максимум импульса (пиковый детектор)
- Оцифровываем амплитуду — получаем номер канала
- Прибавляем 1 к счётчику этого канала
- Возвращаемся в п.1
После накопления тысяч событий каналы с индексами соответствуют энергиям, а их высоты — интенсивности. Это и есть гамма-спектр.
Требования к АЦП
Разрешение спектра определяется разрядностью АЦП:
- 8 бит → 256 каналов → грубый спектр, Cs-137 (662 кэВ) и K-40 (1460 кэВ) едва разрешаются
- 10 бит → 1024 канала → Arduino Uno — минимально приемлемо
- 12 бит → 4096 каналов → рекомендуемый минимум для нормальной работы
- 14–16 бит → 16 384–65 536 каналов → профессиональный уровень
Скорость: импульсы длительностью ~100 мкс (Theremino) или ~3–5 мкс (прямое АЦП) требуют выборки минимум в 5–10 раз быстрее.
Подход 1: Звуковая карта + Theremino MCA

Семейство Raspberry Pi: слева — одноплатные компьютеры, справа — Pico (маленькая плата). Для Open Gamma Detector используется Raspberry Pi Pico 2 (RP2350): 12-бит АЦП, 150 МГц, стоит ~500 руб. Источник: Wikimedia Commons / CC BY-SA 4.0.
Идея: формирователь растягивает импульс до ~100 мкс. USB звуковая карта (16 бит, 192 кГц) успевает оцифровать его полностью. Программа Theremino MCA на Windows анализирует звуковой поток и строит гистограмму.
Что нужно:
- USB аудиоинтерфейс с линейным входом (Roland UA-1G, Behringer UCA202, ~2 000–5 000 руб.)
- Theremino PMT Adapter — плата с формирователем, выход идёт прямо на звуковую карту
- Компьютер с Windows
- Программа Theremino MCA (бесплатно, theremino.com)
Плюсы: минимум паяния, проверенная система, отличная документация на theremino.com.
Минусы: только Windows, максимум ~5 000 событий/сек (звуковая карта — узкое место), нужен постоянно включённый компьютер.
Настройка Theremino MCA:
- Подключить PMT Adapter к звуковой карте через 3,5 мм jack
- Запустить Theremino MCA, выбрать устройство (USB аудиоинтерфейс)
- Убедиться, что сигнал виден в осциллоскопном режиме
- Установить порог детектирования (Threshold) чуть выше шума
- Запустить накопление спектра
Подход 2: Open Gamma Detector (Raspberry Pi Pico 2)
Это самый современный и рекомендуемый подход для новых сборок.
Open Gamma Detector — полностью открытый проект (github.com/OpenGammaProject/Open-Gamma-Detector):
- Плата на Raspberry Pi Pico 2 (двухъядерный ARM Cortex-M33, 150 МГц)
- Встроенный 12-битный АЦП (4096 каналов)
- Встроенный операционный усилитель и схема обработки сигнала для SiPM
- Прошивка через Arduino IDE (drag-and-drop .uf2 файл)
- Подключение к компьютеру через USB как обычный COM-порт
- Работает с Windows, Linux, macOS
Характеристики:
- Разрешение энергии: ~7% при 662 кэВ (с хорошим кристаллом)
- Количество каналов: 4096
- Скорость счёта: до 50 000 событий/сек
- Интерфейс: USB CDC (виртуальный COM-порт)
Полная стоимость:
- RPi Pico 2: ~500 руб. (Aliexpress)
- Плата Open Gamma Detector (можно заказать PCB на JLCPCB, ~500 руб. за 5 шт.)
- NaI(Tl) 25×25 мм + SiPM Hamamatsu: ~10 000–15 000 руб.
- Итого: ~12 000–18 000 руб.
Подход 3: Arduino + внешний АЦП
Для любителей Arduino есть вариант с внешним 12-битным или 16-битным АЦП по SPI:
- ADS1256 (24 бит, но медленный — до 30 кГц) — слишком медленный для прямого измерения пиков
- AD7928 (12 бит, 1 MSPS) — подходит
- STM32F401 (встроенный 12-бит АЦП до 2,4 MSPS) — лучший вариант для Arduino-совместимого подхода
Прошивка: цикл опроса АЦП, поиск максимума импульса, запись в массив histogram[4096], вывод по USB. Детали реализации — на Arduino Forum и Gamma Spectacular Forum.
Программное обеспечение для анализа
Theremino MCA (Windows, бесплатно)
Полнофункциональный анализатор с:
- Реальным временем отображения спектра
- Инструментами калибровки (задать энергию для любого канала)
- Пиковым поиском и аннотациями
- Экспортом данных в CSV
Скачать: theremino.com → Download → MCA
PRA (Pulse Recorder and Analyzer, бесплатно)
Разработан Мареком Доллейзером (Сиднейский университет). Очень популярен после 2011 года.
- Работает со звуковой картой
- Дополнительный аудиорежим: высота тона пропорциональна энергии — слышать спектр в реальном времени
- Мобильная версия: Atom-Spectra (Android)
- Скачать: siegelsoft.com/gammaspec
Веб-интерфейс Open Gamma Detector
Прошивка Open Gamma Detector включает веб-сервер. Подключив RPi Pico через USB к компьютеру (или RPi Zero через Wi-Fi), открываете браузер и видите спектр в реальном времени без установки ПО.
Python для анализа
Для продвинутых пользователей — анализ сохранённых спектров в Python:
import numpy as np
import matplotlib.pyplot as plt
from scipy.signal import find_peaks
from scipy.optimize import curve_fit
# Загрузка спектра из CSV (формат Theremino)
data = np.loadtxt('spectrum.csv', delimiter=',')
channels = data[:, 0]
counts = data[:, 1]
# Поиск пиков
peaks, props = find_peaks(counts, height=50, distance=20)
# Гауссова аппроксимация пика
def gaussian(x, A, mu, sigma):
return A * np.exp(-(x - mu)**2 / (2 * sigma**2))
# Калибровка: канал → энергия (линейная)
# Два известных пика: K-40 @ 1460 кэВ (канал ~900) и Am-241 @ 59.5 кэВ (канал ~37)
cal_a = (1460 - 59.5) / (900 - 37) # кэВ/канал
cal_b = 59.5 - cal_a * 37
energy = cal_a * channels + cal_b
plt.semilogy(energy, counts)
plt.xlabel('Энергия, кэВ')
plt.ylabel('Счёт')
plt.title('Гамма-спектр')
plt.grid(True, alpha=0.3)
plt.show()
Библиотеки: numpy, scipy, matplotlib для базового анализа. Для профессионального: PyROOT (Python-интерфейс к CERN ROOT), Gammapy (гамма-астрофизика, но применима к спектрометрии).
Мёртвое время (dead time)
При высокой скорости счёта спектрометр «пропускает» часть событий. Пока он обрабатывает один импульс, новые игнорируются. Это мёртвое время.
Типичные значения:
- Theremino (звуковая карта): ~200 мкс → максимум ~5 000 событий/с
- Open Gamma Detector (RPi Pico): ~20–50 мкс → до 50 000 событий/с
Для большинства домашних источников (природный фон, урановое стекло, Am-241 из датчика дыма) скорость счёта редко превышает 1 000 событий/с, так что мёртвое время не критично.
В финальной части серии — сборка в корпус, экранирование, калибровка по KCl и первые измерения.
Комментарии
Загрузка...
Оценить статью