radGPS

Installation
Bedienung
GPS Logs
Einstellungen
FT-Labs
Smart-Geiger

BR-6
GMC 320+
Impulszähler
PCM-Recorder


radGPS

Ein Geigerzähler fürs Smartphone

Route mit radGPS
Version 0.8 - 16.7.2022
radgps.apk

Ich möchte hier eine Android-App vorstellen, die einen Impulszähler mit einem GPS-Logger kombiniert, gut geeignet, um mit einem Geigerzähler mit Audio-Ausgang Tracklogs zu erstellen. Man benötigt allerdings ausser dem Impulsgeber ein Handy mit einer Klinkenbuchse - das ist ja heutzutage nicht mehr ganz selbstverständlich, manche Mobiltelefone haben nur noch eine Bluetooth-Schnittstelle.

Auf Wanderungen oder Autofahrten kann man mit dem radGPS bequem GPS-Routen aufzeichnen, wobei das Höhendiagramm "missbraucht" wird, um die Anzahl der eingehenden Impulse pro Zeiteinheit zu speichern.

Wenn es einfach nur um das Zählen von Impulsen aus beliebigen Quellen geht, kann das radGPS bis zu einer Frequenz von 5kHz auch dafür verwendet werden. Es werden die cpm (counts per minute) angezeigt, teilt man diese durch 60 erhält man die Frequenz in Hz.

Für einen Geigerzähler, der über USB (genauer: einen Arduino) angeschlossen wird, siehe https://rad.prypjat.de/. Dort habe ich auch meine Motivation begründet, einen Geigerzähler zu bauen. Das dort beschriebene Gerät eignet sich auch - mit einem Pegelwandler und einer passenden Batterie, beispielsweise einer USB-Powerbank - als Ergänzung zu der hier vorgestellten Software.

Hardware

Benötigt wird eine Signalquelle, beispielsweise eben ein Geigerzähler der eine Anschlussmöglichkeit zum Abgreifen der Impulse aufweist. Üblicherweise sind das 2 Anschlüsse, Masse/GND (der "Minuspol") und der Signal-Pin.

Wenn der Geigerzähler keinen Impulsausgang besitzt, wird es etwas frickeliger, aber nicht verzagen, meistens lässt sich, wie beispielhaft weiter unten im Abschnitt "BR-6" gezeigt, eine Lösung finden. Die meisten Geigerzähler haben einen Lautsprecher, eine blinkende LED oder ähnliches, um Impulse optisch oder akustisch anzeigen zu können. Dort kann man oft ein geeignetes Signal abgreifen.

Hat man nun also Impulse, müssen die irgendwie ins Handy. Die Klinkeneingänge haben so gut wie immer 4 Pins (Masse, 2x Ausgang Stereo und der Mikrofonpin), hier wird aber nur Masse und der Mikrofon-Pin benötigt. Auch dafür gibt es eine Lösung in Form eines passenden Adapterkabels Klinke Headset und eines Mono Klinkensteckers 3.5mm, an den sich die Signalquelle mit Vorwiderstand anlöten lässt:

Mikrofonadapter Klinkenstecker

Nun hängt es davon ab, welchen Pegel die Signale haben, die Mikrofoneingänge der aktuellen Handies sind zwar erstaunlich robust, aber um Beschädigungen vorzubeugen sollte ein Pegelwandler eingesetzt werden. Dieser richtet sich natürlich nach der Art und Amplitude der Impulse und das klingt kompliziert, meistens genügt es allerdings, einen Widerstand in der Grössenordnung von 100k in Reihe zwischen den Signal-Pin und die Klinkenbuchse des Handies zu schalten.

Bei einer angenommenen Höhe der Impulse von 5V (recht viel mehr kommen selten vor) können dann noch I=U/R=5V/100k=50µA fliessen, das macht nahezu jeder Eingang problemlos mit.

Installation

Die Software liegt als Android *.apk Datei vor und muss heruntergeladen und installiert werden. Sie ist nicht über den Playstore zu bekommen, ein bisschen Arbeitsaufwand ist also nötig:

Meistens ist es die einfachste Lösung, mit dem Handy auf diese Seite zu navigieren und dort (Link oben im grauen Kasten) die App herunterzuladen und zu installieren.

Man kann die App auch auf einen PC herunterladen und dann über USB auf die SD-Karte im Handy kopieren. Dann muss man mit einem Dateimanager dorthinfinden (meistens unproblematisch) und das Programm von dort installieren.

Wenn man die apk das erste mal startet, wird man nach Berechtigungen gefragt, und zwar Zugriff auf das GPS, auf den externen Speicher des Handies um die Tracklogs im Ordner "radGPS" auf der SD-Karte zu speichern, und auf das Mikrofon, um dort eingehende Impulse zu empfangen. Selbstverständlich wird keine dieser Freigaben für irgendeinen anderen Zweck als hier beschrieben verwendet.

Bedienung

radGPS mit BR-6, Standardansicht Rechts sieht man die normale Anzeige der App (also ohne Debug), eigentlich ziemlich selbsterklärend, oder? Die cpm (counts per minute) sind zu folgendem gut:

Bei einer statischen Messung, also wenn man den angeschlossenen Geigerzähler und das Messobjekt nicht bewegt (und die Halbwertszeit des Messobjektes gross ist, verglichen mit der Dauer der Messung), wird dieser Wert immer genauer.

Hat man das Gerät unterwegs dabei ist dieser Wert allerdings bedeutungslos, dafür wird dort der darunter angezeigte Wert interessanter:

Es wird dort der gleitende Durchschnitt über eine einstellbare Anzahl von Datenpunkten angezeigt, wobei jede Sekunde ein neuer Wert in den Datenpuffer hineingeschrieben wird, und der älteste Wert aus dem Puffer gelöscht wird. Die Werte in diesem Puffer werden aufsummiert und durch die Länge des Puffers dividiert, man erhält die counts per second. Dieser Wert wird dann noch mit einem Konversionsfaktor multipliziert und kann damit an verschiedene Zählrohre angepasst werden.

Um das ein wenig verständlicher zu machen folgendes Beispiel:
Gleitender Durchschnitt über 8 Werte

Für ein SBM-20 Zählrohr beispielsweise, wie es in vielen Consumer-Geigerzählern verbaut ist, kann man hier einen Wert von grob 0.4 eintragen, um ein Ergebnis in µSv/h zu bekommen, das sind aber dann nur Anhaltswerte.

GPS-Logs

Das radGPS erzeugt GPS-Daten (wer hätte es gedacht). Dazu wird auf dem externen Speicher des Handies, üblicherweise eine SD-Karte, ein Ordner "radGPS" erstellt, und dort Trackinglogs erzeugt. Es gibt die Möglichkeiten, nur minimale Datensätze in der Form

Index Jahr-Monat-Tag Stunden:Minuten:Sekunden Latitude Longitude cpm-Wert

zu speichern, oder komplette GPS-Tracks im GPX-Format. Letztere können dann mit einem GPS-Viewer angezeigt werden, wobei die Höhendaten ("elev") die cpm Werte angeben. Ein solcher cpm-Wert wird bei jeder gemeldeten Positionsänderung berechnet und gespeichert, diese Zeitabstände können je nach Empfang und Geschwindigkeit voneinander abweichen.

GPS-Viewer findet man einige im Netz:

https://www.j-berkemeier.de/ShowGPX.html

https://www.bernhard-gaul.de/gpxviewer/gpxviewer.php

https://www.gpsvisualizer.com

Einstellungen

Die wichtigsten Parameter in den Einstellungen sind Schwellenwert (Threshold) und Totzeit:

BR-6, Umbau

Ab einer einstellbaren Impulshöhe (dem Schwellenwert) wird eine steigende Flanke des Signals als count gezählt. Dieser Wert kann im Bereich von 0 - 32768 (16bit signed Integer) liegen.

Danach schaltet sich die Messung für eine einstellbare Zeit "taub", es werden keine Impulse mehr gezählt, auch wenn sie den Schwellwert überschreiten. Diese Zeit wird in Samples angegeben, wobei ein Sample 2.27µs lang ist (es wird mit 44.100kHz gesampled).

Weiterhin einstellbar ist ein oberer Schwellenwert, Impulse mit einer Amplitude grösser als dieser Wert werden ignoriert. Dieser Wert kann auf Null gesetzt werden, dann ist diese Funktion deaktiviert.

Das CPM-Intervall (Grösse des Datenpuffers) und der Konversionsfaktor sind ja oben bereits erklärt, wobei ersteres zwischen 1s und 3600s (1h) liegen kann und der Konversionsfaktor als "Kommazahl" (double) eingegeben wird.

Zuletzt gibt es die 2 Checkboxen, ob GPS Logs angelegt werden sollen und ob diese als kompletter GPX-Datensatz oder nur die Daten gespeichert werden sollen.

Debugmodus

Ist diese Checkbox gesetzt, sieht das Display etwas anders aus: Ausser den oben beschriebenen Einstellungen wird ein Min/Max-Wert dargestellt. Dieser gibt die Grenzen der erreichten Impulshöhe an. Hat man ein neues Messgerät angeschlossen, lässt sich damit abschätzen, in welchem Bereich der Schwellenwert liegt.

Das wird kein fester Wert sein, sondern etwas schwanken (mehrere Messungen durchführen). Man stellt hier den Schwellenwert deutlich darunter ein, so dass keine Impulse verlorengehen, aber auch hoch genug, dass keiner doppelt gezählt wird.

FT-Labs "Smart Geiger"

radGPS mit Ft Labs Smart Geiger Einer der mit dem radGPS verwendbaren Signalgeber ist der "Smart Geiger" von FTlabs. Das ist ein "Geigerzähler" mit einer PIN-Diode, es kommt bei normaler Hintergrundstrahlung nur alle 1-2 Minuten ein Impuls, der dann so aussieht:

FT labs Impuls

Die maximale Amplitude, mit einem Samsung Handy gemessen, liegt bei ca."800", die Impulslänge beträgt etwa 1000 Samples (2.27ms). Mit einem Schwellenwert von 250 und einer Totzeit von 750 "erwischt" man fast alle Impulse.

Ich rate von einem Kauf ab, denn das Teil ist einfach für normale Messaufgaben zu unempfindlich und inzwischen kosten diese "Zapfen" um die 60€, das ist es wirklich nicht wert. Wer allerdings schon eines besitzt, kann damit auch etwas besseres anfangen, als die mitgelieferte Software zu benutzen: Man kann mit dem radGPS spazierengehen.

BR-6

radGPS mit BR-6, Standardansicht Hier sieht man das radGPS auf einem Samsung Galaxy S5 mit einem BR-6. Diesen Geigerzähler gibt es (inzwischen leider ebenfalls stark überteuert) öfter in Angeboten auf ebay oder Amazon. Wer einen etwas faireren Preis haben will, sollte sich auf Alibaba.com umtun, dort werden welche für 30$ angeboten, allerdings zum einen mit sehr langen Versandzeiten und zum anderen kommt noch Zoll dazu.

Ich habe dieses Gerät für einen Umbau verwendet, weil im Gehäuse jede Menge Platz ist (man erkennt das auf den Bildern nicht, aber das Teil ist nahezu 4cm hoch) und weil man die Impulse recht einfach an dem eingebauten Piezo-Lautsprecher auskoppeln kann.

"Umbau" ist übrigens deutlich übertrieben, eigentlich sind nur 2 Drähtchen angelötet und auf einen Mono-Klinkenstecker herausgefürt, es ist (zumindest bei den zum Testen verwendeten Handies) nicht einmal ein Vorwiderstand nötig:

BR-6, Platine Draufsicht BR-6, Umbau

Ein Impuls ist etwa 50 Samples lang (richtig gelesen, ein 20stel der Impulslänge des "Smart Geiger"), und hat eine Amplitude von max. 2000:

BR-6, Umbau

Ein Nachteil ist, dass das Gerät nach dem Einschalten einmalig eine etwa 6 Minuten lange Messung startet, nach deren Abschluss der Piezo, der sonst recht leise vor sich hin tickt, einen Piepton von sich gibt, der im radGPS als eine ganze Anzahl von Impulsen gezählt wird. Man kann dann aber den oberen Schwellenwert so einstellen, dass diese Impulse "überhört" werden, oder man wartet vor der richtigen Messung die paar Minuten ab - letzteres ist geschickter, denn alle Counts lassen sich mit dem oberen Schwellenwert nicht herausfiltern.

GMC-320+

GMC320+ Interessant ist auch der GMQ GCM-320+ als Signalquelle, dieser hat eine Klinkenbuchse, bemerkenswert ist, dass - warum auch immer - das Signal am 2ten Ring einer Stereo-Buchse anliegt. Die Impulse sind etwa 500 Samples lang, man benötigt (bzw sollte haben) hier einen Vorwiderstand, ich habe 100k genommen.

GMC320+, Signal

radGPS als Impulszähler

Vorneweg: die Software sampled mit 44.1kHz. Das klingt ok für Audio-Anwendungen, ist aber gar nicht so viel: Bei einem Eingangssignal von 5kHz bleiben einem gerade noch etwa 8 Samples, um zu erkennen, dass ein "Peak" vorliegt. Hier ist das 5kHz Signal mit einer Amplitude von 2V vor einem 100k Widerstand und mit einer Impulslänge von 50µs, wie man sehen kann, das radGPS schafft es, die 300k cpm richtig zu zählen (recht viel mehr geht aber nicht):

5kHz Signal 5kHz Signal

PCM-Recorder

Wer sich übrigens fragt, woher ich die Signalformen der Impulse habe: Es gibt eine kleine App, die nichts anderes tut, als das Mikrofonsignal des Handies zu samplen und als pcm-Datei "recording.pcm" im Hauptverzeichnis der SD-Karte zu speichern (benötigt Zugriff auf das Mikrofon und den externen Speicher). Die Rohdaten der Aufnahme liegen dann im Format 44.100kHz, signed 16bit, Mono vor und können mit beispielsweise Audacity analysiert werden:

Version 0.1 - 15.7.2022
pcm_recorder.apk




Kommentare

katze am 21.Jun.2022 um 14:40:55

Fragen, Verbesserungsvorschläge, oder wenn ihr Fehler findet:

Bitte hier reinschreiben!

Einen Kommentar verfassen?

Name


Inhalt







Impressum