Posts mit dem Label Elektronik werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Elektronik werden angezeigt. Alle Posts anzeigen

Freitag, 1. Mai 2026

Ein Vertikalplotter für Kritzelkunst

Als 'Scribble Art' oder 'Kritzelkunst' wird eine Maltechnik bezeichnet, bei der Zeichnungen aus unregelmäßigen, oft schnellen und freien Strichen geschaffen werden. Typischerweise wirken die Werke zunächst wie zufällige Kritzeleien, doch durch Variation in Linienführung, Dichte und Bewegung entsteht ein erkennbares Motiv wie z.B. ein Portrait.

Die Software Drawing Bot kann Fotos in Vektorgrafiken und Plotter‑Art umwandeln, und unterstützt auch in der freien Version viele anpassbare Stile. Nachdem ich mit dem Online-Tool Photoroom den Hintergrund eines Bildes entfernt habe, habe ich die Voreinstellungen für den 'Pencil Sketch' Stil meinen Vorstellungen anpasst. Eine ausführliche Dokumentation aller Möglichkeiten findet sich hier.


Der exportierte gcode soll mit einer CNC Graviermaschine gezeichnet werden. 

Dafür habe ich einen Einsatz für die Spindelhalterung der Maschine gedruckt.


Dieser Einsatz kann z.B. einen Stabilo Fineliner der Stärke 0,4 mm aufnehmen, aber leider verlaufen die gezeichneten Linien auf normalem Druckerpapier. Auf Fotopapier ist das Ergebnis deutlich besser.


Für kleines Fotopapier müssen die Einstellungen der 'Drawing Area' auf 10,2 cm x 15,2 cm geändert werden.
Größere Formate lassen sich mit einem sogenannten Vertikalplotter drucken. Sie bestehen i.d.R. aus einem vertikal aufgestellten Rahmen und einer Gondel, in die der Stift geklemmt ist. Die Gondel wiederum hängt an zwei Seilen oder Zahnriemen, die durch Schrittmotoren bewegt werden. Die Zahnriemen werden mit Hilfe von Gewichten stramm gehalten. Ich habe hierfür zwei kleine Actimel Becher mit Estrichbeton ausgegossen, und mit Haken versehen. 


Mit dieser Anordnung kann der Stift alle Punkte der Zeichenebene erreichen. Die Position des Stiftes kann aus den Umdrehungen der Motoren berechnet werden. 
Die beiden Seillängen seien \(L_1\) (links) und \(L_2\) (rechts) , und \(D\) die Distanz zwischen den Motoren.  Nehmen wir an, dass der linke Motor bei \((0,0)\) sitzt, der rechte Motor bei \((D,0)\), und der Stift bei \((x,y)\) sitzt.

Dann gilt:

\[L_1 = \sqrt{x^2 + y^2}\]

\[L_2 = \sqrt{(D - x)^2 + y^2}\]

Gesucht sind nun \(x\) und \(y\). Wir lösen das Gleichungssystem, und versuchen \(y\) zu eliminieren. Es gilt:

\[L_1^2 - x^2 = L_2^2 - (D - x)^2\]

Ausmultipliziert und nach \(x\) aufgelöst ergibt sich:

\[x = \frac{L_1^2 - L_2^2 + D^2}{2D}\]

Für \(y\) ergibt sich entsprechend:

\[y = \sqrt{L_1^2 - x^2}\]

Wenn jede Rolle einen Radius \(r\) hat und sich um \(N_\text{L}\) bzw. \(N_\text{R}\) Umdrehungen gedreht hat, dann ist die abgewickelte Seillänge:

\[L_1 = L_{1,0} - 2\pi r\,N_\text{L}\]

\[L_2 = L_{2,0} - 2\pi r\,N_\text{R}\]

\(L_{1,0}\) und \(L_{2,0}\) sind dabei die Ausgangslängen der Seile bei der Home-Position des Stiftes.  

Das Programm vplotter macht diese Berechnungen, und ist auf einem Raspberry Zero 2 gut lauffähig. Die Anschlussbelegung des Raspberry ist unten zu sehen. 


Im github repository von vplotter sind die notwendigen Installationsschritte beschrieben. Auch ein rudimentärer Bauplan ist enthalten. 
Als Steppermotoren kommen zwei NEMA 17 Schrittmotoren zum Einsatz. Sie besitzen einen Vollschrittwinkel von 1.8°, eine Stromaufnahme von 1.5A pro Phase und ein Haltemoment von 0.38Nm. Als Treiber kommen je ein A4988 Schrittmotor-Treiber-Modul mit Kühlkörper zum Einsatz. Die Schrittauflösung kann durch Setzen der 'Microstepresolution' auf der Treiberplatine von 200 pro voller Umdrehung auf z.B. 1600 erhöht werden ('step of eight'). Das Bild unten zeigt die Anschlussbelegung der Motortreiberschaltung.


Dabei sind 1A und 1B die Anschlüsse für die erste Spule des Motors, 2A und 2B die für die zweite. Die Stromaufnahme habe ich mit dem kleinen Poti auf den boards auf ca. 1A begrenzt. Eine genaue Anleitung findet sich hier.

Die Befestigungen die Steppermotoren und die Umlenkrollen, sowie die Gondel für den Stift, habe ich aus PLA gedruckt. Die Gondel findet sich hier im Thingiverse


Um die 12V Versorgungsspannung für die Schrittmotoren zu erzeugen, habe ich eine kleine USB-C-PD-Triggerschaltung für Netzteile, die das USB Power Delivery Protokoll unterstützen, verbaut. Die gewünschte Spannung lässt sich mit DIP Schaltern einstellen. Zur Spannungsstabilisierung sind zusätzlich zwei 10µF Kondensatoren verbaut.


Im Bild unten ist im Hintergrund auch der auf die Gondel geklebte 9G Micro Servo Motor zu sehen, der den Stift hebt bzw. senkt. Das PWM Signal ist über einen 1k Ohm Widerstand mit dem Servomotor verbunden. 


Die gesamte Elektronik ist mit Abstandshaltern auf die Rückseite der MDF-Platte geschraubt, die die Zeichenebene bildet.


Nachdem die Hardware soweit fertig gestellt ist, habe ich zunächst versucht, einen Smiley zu plotten. Das online tool ncviewer zeigt den gcode an, und kann ihn simulieren.


Der Aufruf von vplotter für die Datei test.ngc erfolgt mit

sudo vplotter --x0=190 --y0=-230 --baselength=687 --z_up=7 --z_down=11 --steps=33 < test.ngc

Die Befehlszeilen‑Argumente haben dabei die folgenden Bedeutungen:

-- x0: Horizontale Entfernung vom linken Schrittmotor bis zum Nullpunkt der Zeichenfläche in mm.  
-- y0: Vertikale Entfernung vom linken Schrittmotor bis zum Nullpunkt der Zeichenfläche in mm.  
-- baselength: Abstand zwischen den beiden Schrittmotoren in mm.  
-- z_up: Wert für den Servomotor, um den Stift anzuheben (1 – 100).  
-- z_down: Wert für den Servomotor, um den Stift zu senken (1 – 100).  
-- steps: Anzahl der Schritte, um die Schnur um 1 mm zu bewegen. Hier:

  \[\text{steps} = \frac{1600}{\text{Umfang der Riemenscheibe}}\]

Das erste Ergebnis ist durchaus vielversprechend.



Anschließend habe ich versucht ein größeres Bild zu plotten. Ich habe dazu eine Malbuchvorlage mit Drawing Bot bearbeitet. Das Bild unten zeigt die Vorschau im ncviewer.


und während des Zeichenvorgangs. Zu erkennen sind des weiteren zusätzliche Gewichte, die ich an der Gondel angebracht habe, um sie zu stabilisieren. 



Damit liefert der Plotter recht schöne Ergebnisse, wie ich finde.


Viel Spaß beim selber basteln und plotten...








Donnerstag, 5. Juni 2025

Den Stromzähler auslesen

Vor einigen Wochen hat unser Netzbetreiber einen 'intelligenten' Stromzähler, auch SMART Meter genannt, von Landis Gyr bei uns installiert. Laut Herstellerangaben verfügt er über ein optisches Interface, das Nachrichten in der Smart Message Language (SML) ausgeben kann. Dieses Kommunikationsprotokoll wurde für Firmwareupgrades oder dem Austausch von Messdaten entwickelt. Zum Auslesen der Daten genügt eigentlich ein IR Phototransitor, ich habe mich jedoch für den Kauf eines fertigen Lesekopfs mit UART Schnittstelle entschieden. Die Signale Rx und Tx werden mit TTL Pegel von 3 bis 5 Volt übertragen, so dass der Lesekopf direkt an einen Rasperry Pi Zero 2W angeschlossen werden kann.


Auch softwareseitig gibt es bereits fertige Lösungen. Volkszaehler.org stellt einen Datenlogger namens 'vzlogger', sowie als middleware eine PHP Datenbank zum Speichern der ausgelesenen Daten zur Verfügung. Darüber hinaus gibt es ein web frontend zur graphischen Darstellung der ausgelesenen Werte. Wie die Volkszähler Software auf einem Raspberry Pi mit fertigem Image installiert wird, ist hier beschrieben.

Um sich in einem ersten Schritt die Daten anzuschauen, die vom Lesekopf geliefert werden, kann man z.B. das Terminal Programm minicom installieren. Das geht mit  'sudo apt-get install minicom'. Anschließend kann der port mit 'minicom -s' konfiguriert werden. Laut Landis Gyr Benutzhandbuch werden folgenden Einstellungen benötigt.


Der Befehl 'minicom -H -C hex.log' gibt die empfangenen Daten in hexadezimaler Darstellung aus und speichert sie in 'hex.log'.


Laut Wikipedia kennzeichnen die empfangenen '1B 1B 1B 1B' eine Escape Sequenz, und die '01 01 01 01' markieren den Beginn einer SML Nachricht.

Alternativ können zur Darstellung der vom Messkopf empfangenen Daten auch die Programme picocom oder xxd verwenden werden. Mit xxd gelingt die Darstellung besonders einfach.

Um die SML Daten interpretieren zu können, müssen wir die 'Volkszähler' Software bemühen. Zunächst müssen wir den Datenlogger vzlogger konfigurieren. Dazu kann der vzlogger.conf-Editor benutzt werden. Der screenshot unten zeigt eine so erzeugte Konfigurationsdatei namens 'vzlogger.conf'. Achtung, der log Pfad muss  z.B. mit dem nano Editor händisch auf '/var/log/vzlogger/vzlogger.log' geändert werden, sonst startet vzlogger nicht richtig.

Nach 'sudo reboot' oder 'sudo systemctl restart vzlogger', kann mit 'systemctl status vzlogger' überprüft werden, ob der Datenlogger sauber läuft.


Wenn Alles passt, finden sich in 'vzlogger.log' 'readings' mit OBIS code '1.8.0' für den Bezug von Strom in Wh, und mit '2.8.0.' für die Einspeisung in Wh. Im Auslieferungszustand des  SMART Meters erfolgt die Änderung der Werte allerdings nur in kW Sprüngen.

Laut Landis Gyr Benutzhandbuch lässt sich neben der bezogenen oder eingespeisten Energie auch die aktuell verbrauchte Leistung auslesen. Dies ist allerdings nur nach Eingabe einer PIN möglich, die vom Netzbetreiber erfragt werden kann. Zur dauerhaften Ausgabe muss der PIN des Zählers deaktiviert werden. 

Mit Hilfe einer modifizierten Taschenlampe, deren Beleuchtungsstärke mindesten 400 Lux betragen muss, kann man durch das Menü des Zählers navigieren. 

Für die Eingaben muss die optische Schnittstelle entweder mit kurzen Pulsen weniger als 2 Sekunden , oder mit langen Pulsen mehr als 2 Sekunden beleuchtet werden.


Wird der 'erweiterter Datensatz' im Menuepunkt 'InF' aktiviert, erfolgt die Ausgabe der Energie zudem mit einer Genauigkeit von Wattstunden (Wh).


Um die Daten graphisch darstellen zu können, müssen im web frontend Kanäle angelegt werden. Dazu muss man im Webbrowser 'http://<IP des pi>/' eingeben, und dann den gewünschten Kanal 'hinzufügen'.


Über das (i) der Kanäle lässt sich der 'Universally Unique Identifier' UUID herausfinden, der beim Anlegen der Kanäle erzeugt wurde. Anschließend müssen dieses Kanäle zusammen mit der UUID in der 'vzlogger.conf' hinterlegt werden. Ich habe folgende Einträge gemacht.


Nach  'sudo systemctl restart vzlogger' sollte die graphische Darstellung dann klappen. Das Bild unten zeigt den typischer Verbrauch und die typische Einspeisung an einem sonnigen Frühlingstag.



Obwohl in den ersten beiden Kanälen ein Energiemeter gewählt wurde, werden praktischerweise nicht die Zählerstände sondern eine errechnete Leistung angezeigt.

Im letzten Schritt habe ich mir ein Gehäuse aus dem Thingiverse ausgedruckt, und zum besseren Halt am metallischen Verteilerkasten einen Magneten aufgeklebt.


Im Eingebauten Zustand sieht das Ganze dann wie folgt aus.



Jetzt lässt sich im Browser eines beliebigen Smartphones der aktuelle Stromverbrauch überwachen. 

Viel Spaß beim selber Basteln...



Samstag, 24. Mai 2025

Einen Gardena Versenkregner reparieren

Nachdem mein Gardena Versenkregner Aqua Contour nun schon 4 Jahre im Einsatz ist, läuft er nach der diesjährigen Winterpause nur noch mit sehr kleiner Beregnungsweite. Das deutet auf einen defekten Akku hin. Der Versenkregner lässt sich wie hier beschrieben mit etwas Aufwand auch ohne Ausgraben öffnen. Dazu müssen die rot markierten Schrauben entfernt werden.

Zum Lösen der tiefsitzenden Schrauben 


habe ich mir einen langen Schraubenzieher aus Bithalterverlängerungen sowie ein Stückchen Blech zum sicheren Entfernen der der Schrauben gebastelt.


Das so entnommene Innenleben lässt sich weiter zerlegen.



Zunächst habe ich das Solarpanel abgeklemmt. Auch bei Beleuchtung mit einem Baustrahler liefert das Panel nur noch 0,4 V Spannung. Der Deckel zum Akku lässt sich mit sanfter Gewalt unter Zuhilfenahme einer Gripzange aufdrehen. Eine Messung der Klemmspannung des Akkus von 1,1V bestätigt, dass sich der Akku über den Winter tiefentladen hat. Ein neuer original Akku wird für ca. 50 EUR angeboten. 


Neue Solarzellen und ein u.U. notwendiger Step Up Wandler dürften ebenfalls mit mindestens 10 EUR zu Buche schlagen. Da der Defekt vermutlich immer wieder auftritt, habe ich mir überlegt den Regner mit vier externen 1,5V Alkalie Batterien bei ca. 6 V zu betreiben. Ich habe daher den Lithium Ionen Akku entfernt, und ein zweiadriges Gummikabel in das Batteriegehäuse gelegt. Die Öffnung habe ich von außen mit Hybrid Dichtmasse verschlossen.

Die vier Babyzellen mit 8Ah Kapazität habe ich in einer wasserdichten Verteilerdose untergebracht, die ich zusätzlich auch noch mit Dichtmasse versiegelt habe.

Die Dose habe ich nahe dem Rasensprenger kurz unter der Grasnarbe vergraben, so dass sich der Deckel zum Batteriewechsel einfach öffnen lässt.

Nachdem ich den Rasensprenger neu eingestellt habe, und Alles mit etwas Erde verfüllt ist, verrichtet der Rasensprenger wieder seinen Dienst.

Viel Spaß beim selber Reparieren...

Montag, 19. August 2024

Eine sprachgesteuerte Balleinwurfmaschine für den Kickerkasten

Ein Tischfußball begeisterter Freund hat mich auf die Idee gebracht eine Einwurfmaschine für den Kickerkasten zu bauen. Der Ball soll auf einen Sprachbefehl hin eingeworfen werden, und die Maschine soll an verschiedenen Stellen im Spielfeld platziert werden können.

Im Bild oben ist meine Realisierung zu sehen. Eine gedruckte Scheibe, mit einer Tasche für den Ball, dreht sich in einem Kunststoff Topf. Der Ball wird während einer Umdrehung der Scheibe aufgenommen und fällt dann dann durch ein Loch im Boden des Topfes. Eine röhrenförmige Barriere verhindert, dass mehr als ein Ball durch das Loch fallen kann. In der Ansicht von unten erkennt man, dass der Ball durch ein gewinkeltes Stück Abflussrohr mit dem Durchmesser von 50 mm nach vorne ausgeworfen wird.

Als Antrieb habe ich einen 12V Schneckengetriebemotor mit 30rpm verbaut.

Laut Herstellerangaben verfügt dieser über ein maximales Drehmoment von 10 kg x cm, und dreht sich daher auch in einem mit Bällen voll gefüllten Topf gut.

Die gedruckte Scheibe mit der Tasche besteht aus zwei Teilen. Der untere Teil

enthält die Aufnahme für die Motorachse und Abstandshalter. Der obere Teil besteht aus einem planen Deckel, der sich auf die Abstandshalter schrauben lässt. 

Der Kunststofftopf mit den Bällen ist auf laminierte Sperrholzplatten der Stärke 18mm geschraubt, die sich auf die Stangen des Kickertisches stellen lassen. 

Im Bild oben ist rechts unten bereits die Steuerungseinheit der Maschine und ein Konferenz Mikrofon zu erkennen. Das gedruckte Gehäuse der Steuerung besteht aus Deckel und Boden,

und enthält neben einem Raspberry Pi 3 Modell B+ auch ein Relais, das mit 3V ansteuerbar ist, und Ströme bis zu 10A schalten kann. 

Das im Bild oben erkennbare USB Dongle Mikrofon mit einer Empfindlichkeit von -58 dB laut Herstellerangabe, habe ich später durch ein Konferenz-Mikrofon mit einer Empfindlichkeit von -45 dB ersetzt, um die Spracheingabequalität zu verbessern.

Für die Sprachsteuerung habe ich das Open-Source Software Toolkit VOSK von Aphacephei genutzt. Es unterstützt mehr als 20 Sprachen und Dialekte, darunter Englisch und Deutsch. Die kleinen Sprachmodelle, die sich auf dem Github repository von Alphacephei finden, laufen offline auch auf Geräten wie dem Raspberry Pi.  

Eine Einführung in des  Toolkit findet sich auf der Alphacephei website. Nach der Installation mit

pip3 install vosk

habe ich das Sprachmodell 'vosk-model-small-de-0.15.zip' durch

git clone https://github.com/alphacep/vosk-api

cd vosk-api/python/example

wget https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip

unzip vosk-model-small-de-0.15.zip

mv vosk-model-small-de-0.15/ model

aus dem repository geladen und entpackt.

Die Ablaufsteuerung erfolgt in Python. Der folgende Code wurde mit dem Syntax Highlighter highlight.hohli von Anton Shevchuk für den Blog aufbereitet, und mit 

<div style="background: rgb(255, 255, 255); overflow: auto; width: auto;"></div> 

ergänzt, um horizontales scrolling des Abschnitts zu gewährleisten.

import queue
import json
import sounddevice as sd
import vosk
import time
import gpiozero
import sys

q = queue.Queue()
STARTCODEs = ["einwurf", "ein wurf", "ein uhr", "ein ver", "nun eingabe", "eingabe", "ein einwurf", "ein", "ein waffen", "nun ein nur", "nun einwurf", "eingabe", "mehr", "auch ein mensch", "einwirken", "nun ein wolf", "eingriff"]

def callback(indata, frames, time, status):
    #"""This is called (from a separate thread) for each audio block."""
    if status:
        print(status, file=sys.stderr)
        pass
    q.put(bytes(indata))

if __name__ == '__main__':

    #Relais initialisieren
    red_led = gpiozero.LED(4)
    green_led = gpiozero.LED(17)

    # Speech Objekt erstellen
    model = vosk.Model('/home/pi/vosk-api/python/example/model')
    
    #Stream vom Mikrofon öffnen
    with sd.RawInputStream(samplerate=44100, blocksize=16000, device=None,dtype='int16',
                            channels=1, callback=callback):
        #Sternchen zeichnen
        #print('*' * 80)
        #Programmstart mit roter LED anzeigen
        red_led.on()
        
        # Aktivierung der vosk Spracherkennung mit Übergabe des geladenen Models. Übersetze das Gesprochene in Text.
        rec = vosk.KaldiRecognizer(model, 44100)
        while True:
            # Daten aus der Queue ziehen
            data = q.get()
            #print("Bitte sprechen!")
            if rec.AcceptWaveform(data):
                # wandle das gesprochene Wort in jason (JavaScript Object Notation) 
                res = json.loads(rec.Result())
                # und gib es aus
                print(res)
                # wenn der Aktivierungscode herausgehört wurde, wird das Relais geschaltet
                for wort in STARTCODEs:
                    if wort == res['text']:
                        green_led.on()
                        red_led.off()
                        # Relais 1 Sekunden anziehen
                        time.sleep(1)
                        green_led.off()
                        red_led.on()

            else:
                pass

Nach Laden der vosk Bibliothek wird im Hauptteil des Programms beim Start die rote Status LED gesetzt. Mit der 'sounddevice' Funktion 'RawInputStream' werden Aufnahmestückchen einer bestimmten Länge in eine 'queue' geschrieben.  Werden die Stückchen vom Modell als 'waveform' akzeptiert, werden sie transkribiert und mit den in 'STARTCODES' definierten Begriffen verglichen. Wenn der richtige Aktivierungscode herausgehört wurde, zieht das Relais für 1.3 Sekunden an, und die grüne LED wird gesetzt. Die Drehscheibe vollführt etwas mehr als eine Umdrehung, und wirft einen Ball aus. Danach erlischt die grüne LED, und die rote LED wird wieder gesetzt. Das System ist bereit für  das nächste Aktivierungswort. 

Damit das Programm nach dem Booten direkt startet, muss mit 'systemd' ein Service gestartet werden. Eine detaillierte Anleitung wie ein solcher 'Service' erzeugt werden kann findet sich z.B. hier.

Mein '/etc/systemd/system/AutoRunEinwurf_Service' file sieht so aus.

Zum bequemen Programmieren via Remote Desktop vom Laptop aus, habe ich diesesmal VNC statt X11 benutzt. Der VNC Server wird von Raspberry Pi OS standardmäßig unterstützt, muss aber aktiviert werden. Um des zu tun kann man raspi-config auf der Befehlszeile mit

sudo raspi-config

öffnen. Anschließend muss man zu 'Schnittstellenoptionen' navigieren, VNC auswählen und die bestätigen.

Als Client auf dem Laptop habe ich tigervnc heruntergeladen. Nach der Installation kann man sich wie gewohnt durch Eingabe der IP Adresse des Raspberry

auf den Desktop des kleinen Rechners einloggen.

Zu guter Letzt möchte ich die Maschine noch in Aktion zeigen.


Viel Spaß beim selber Basteln...

Sonntag, 26. November 2023

Der Nano VNA als Signalgenerator

Das breite Frequenzspektrum des Nano VNA-H von 50 kHz bis 1,5 GHz und die gute Frequenzstabilität von weniger als 0.5 ppm hat mich veranlasst, ihn auch als Signalgenerator benutzen zu wollen.

Das Bild unten zeigt ein 1 MHz Signal an einem, mit 50 Ohm abgeschlossenen, Oszilloskop.

Mit Hilfe eines online Rechners oder der 'DB Calculator App' von Rohde und Schwarz lässt sich aus der gemessenen Spitzenspannung von 160 mV eine Ausgangsleistung von -12 Dezibel Milliwatt (dBm) oder 64 µW bestimmen. 

Dezibel Milliwatt ist dabei die Einheit des Leistungspegels, der das Verhältnis einer Leistung P im Vergleich zur Bezugsleistung von 1 mW beschreibt. Es gilt:

Um die Signalstärke etwas zu erhöhen habe ich einen kleinen Breitbandverstärker gekauft. 

Laut Hersteller liegt die Versorgungsspannung zwischen 6 und 12 V, und es soll eine Verstärkung von bis zu 30 dB erreicht werden. Der Setup ist denkbar einfach. Der NanoVNA kann direkt an den den SMA Eingang des Verstärkers angeschlossen werden.

Zunächst habe ich mit dem Oszilloskop versucht die Abhängigkeit der Verstärkung von der Versorgungsspannung zu bestimmen.

Bei 1MHz ergibt sich ein weitgehend linearer Zusammenhang, die Verstärkung erreicht jedoch auch bei maximaler Spannung von 12 V nur ca. 23 dB.

Um den frequenzabhängigen Verlauf der Verstärkung zu messen, habe ich anschließend Transmissionsmessungen mit dem NanoVNA durchgeführt. Bei 7 V Verstärkerspannung ergibt sich, nach Kalibrierung, im Bereich zwischen 100 kHz und 50 MHz folgendes Bild.

Der Verstärkungsfaktor nimmt mit zunehmender Frequenz ab. Eine Kontrollmessung bei 1 MHz am Oszilloskop

zeigt bei 7 V Versorgungsspannung ein Signal von Vpp = 558 mV bzw. -1.09 dBm oder 11 dB Verstärkung. Der mit dem Oszilloskop gemessenen Wert stimmt also recht gut mit den Werten des NanoVNA überein. 

Bei 12 V Versorgungsspannung

ergibt sich im Kurzwellenbereich eine maximale Verstärkung von ca. 21 dB. Im UKW Bereich, der auch das 2 m und 70 cm Amateurfunkband abdeckt, zeigen sich jedoch Unstetigkeiten.

Bei 500 MHz sinkt die Verstärkung auf ca. 4 dB ab. Die Unstetigkeiten sind auch im zurück reflektierten Signal sichtbar, was den Verdacht nahe legt, dass es sich um einen vom Messobjekt und nicht von der Signalquelle hervorgerufenen Effekt handelt.

Oberhalb von ca. 500 MHz zeigt sich insgesamt ein recht seltsamer Verlauf.

Entweder ist die von mir gewählte Messanordnung für diesen Frequenzbereich ungeeignet, oder der Verstärker funktioniert im UHF Bereich nicht richtig.

Zusammenfassend ergibt sich auf jeden Fall eine deutliche Diskrepanz zu den unten gezeigten,  versprochenen Datenblattwerten.

  • Betriebsfrequenz: 0,1-2000 MHz
  • F = 0,1 MHz, Verstärkung = 32 dB
  • F = 500 MHz, Verstärkung = 31 dB
  • F = 1000 MHz, Verstärkung = 29 dB
  • F = 1500 MHz, Verstärkung = 25 dB
  • F = 2000 MHz, Verstärkung = 20 dB

In dem für mich relevanten Frequenzbereich bis 50 MHz sind die gemessenen Werte jedoch akzeptabel, wie ich finde.

Viel Spaß beim selber überprüfen und messen...