Procedure d’esempio e risoluzione dei problemi

← Curve Digitizer: digitalizzare le curve dei datasheet

10. Procedure complete: 6BX7-GT e 2D21

Procedura 6BX7-GT: Ia = f(Va) per diversi Vg

1. Aprire l’immagine

Usare File → Open image… e selezionare il raster del grafico.

2. Configurare gli assi

X name: Plate Voltage
X unit: V
X min: 0
X max: 500
X scale: linear

Y name: Plate Current
Y unit: mA
Y min: 0
Y max: 70
Y scale: linear

Premere Apply axis settings.

3. Calibrare

Acquisire i quattro angoli dell’area dati nell’ordine BL, BR, TL, TR. Usare zoom elevato se le intersezioni sono poco definite.

4. Verificare

Scegliere una o più intersezioni note, per esempio 100 V / 10 mA, 200 V / 30 mA o altri valori realmente presenti sulla griglia. Inserire i valori attesi e controllare ΔX e ΔY.

5. Creare la prima serie

Series name: Vg_-20V
Parameter name: Vg
Parameter value: -20
Parameter unit: V

6. Digitalizzare

Selezionare Add points e inserire campioni lungo la caratteristica. Conviene includere i cambi di curvatura e le zone utili al futuro fitting.

7. Correggere

Passare a Edit / move points, controllare i marker uno per uno ed eliminare o spostare eventuali errori.

8. Aggiungere le altre tensioni di griglia

Creare una serie per ciascun valore, mantenendo Parameter name = Vg e Parameter unit = V.

9. Salvare

Salvare il JSON prima di procedere al fitting. Il JSON conserva anche i pixel originali e permette di correggere in seguito la calibrazione.

10. Esportare

X name: Va
X unit: V
Y name: Ia
Y unit: mA
Series parameter name: Vg
Series parameter unit: V

Procedura 2D21: curve di controllo o soglia

Curve Digitizer non contiene logica specifica per il 2D21. La procedura è quindi la stessa, ma i nomi degli assi e il parametro devono riflettere esattamente il grafico del datasheet che si sta digitalizzando.

Per una famiglia di curve di controllo, identificare prima:

  • quale grandezza è sull’asse X;
  • quale grandezza è sull’asse Y;
  • quale variabile distingue le diverse curve;
  • le unità effettivamente usate nel datasheet;
  • se uno degli assi è logaritmico.

Creare quindi una serie per ciascun valore del parametro. Per curve di soglia è importante digitalizzare con particolare attenzione i tratti ripidi e i punti in cui la caratteristica cambia rapidamente.

Regola generale

Il programma è volutamente generico: non interpreta il significato elettronico delle curve. Nomi, unità e parametro devono essere scelti dall’utente in modo coerente con il datasheet. Questo rende lo stesso strumento utilizzabile per valvole, transistor, diodi, dispositivi a scarica, sensori e molti altri componenti.

11. Risoluzione dei problemi, scorciatoie e limiti

Non riesco ad avviare l’interfaccia

Verificare prima Tkinter:

python3 -c "import tkinter; print(tkinter.TkVersion)"

Verificare poi Pillow e NumPy:

python3 -c "import PIL, numpy; print(PIL.__version__, numpy.__version__)"

L’immagine non si apre

La finestra di apertura è predisposta per PNG, JPG/JPEG e TIF/TIFF. Un file corrotto o non riconosciuto da Pillow viene rifiutato con un messaggio di errore.

La calibrazione viene rifiutata

Controllare che:

  • tutti e quattro i punti siano distinti e acquisiti correttamente;
  • Min e Max siano valori numerici finiti e differenti;
  • per un asse logaritmico entrambi i limiti siano maggiori di zero;
  • i quattro punti non formino una configurazione degenerata.

I valori calibrati sembrano sbagliati

  • controllare l’ordine BL, BR, TL, TR;
  • verificare di avere cliccato gli angoli dell’area dati;
  • controllare unità, min/max e scala linear/log;
  • usare Verify calibration su punti noti lontani dagli angoli;
  • ripetere la calibrazione se la scansione è inclinata o i click sono incerti.

Lo snap va sulla griglia

Ridurre il raggio oppure disattivarlo. Lo snap cerca semplicemente il pixel più scuro e non distingue semanticamente curva, griglia, testo o assi.

Non riesco a selezionare un punto

Verificare che la serie corretta sia attiva e che sia selezionata la modalità Edit / move points. Zoomare se più marker sono molto vicini.

Una serie nascosta appare nel CSV

È il comportamento previsto della versione corrente. Show / Hide controlla soltanto la visualizzazione sul Canvas; l’export comprende tutte le serie.

Il progetto non trova più l’immagine

Il programma prova il percorso relativo e quello assoluto salvati nel JSON. Se entrambi falliscono, chiede di localizzare manualmente la sorgente. Scegliere la stessa immagine usata originariamente.

Scorciatoie

Comando Scorciatoia
Open image Ctrl+O
Open project Ctrl+Shift+O
Save project Ctrl+S
Save project as Ctrl+Shift+S
Export CSV Ctrl+E
Undo Ctrl+Z
Redo Ctrl+Y
Delete selected point Delete
Fit image to window F
Zoom rotella mouse
Pan trascinamento centrale o destro

Limiti intenzionali

  • nessun OCR;
  • nessun tracciamento automatico della curva;
  • nessuna interpolazione;
  • nessuna conversione automatica delle unità;
  • nessun fitting interno;
  • nessuna modifica dell’immagine originale;
  • una sola omografia globale per il grafico.

File del programma

  • curve_digitizer.py: GUI e flusso applicativo;
  • digitizer_model.py: dati, assi, omografia e JSON;
  • image_canvas.py: visualizzazione, zoom, pan e coordinate Canvas/immagine;
  • requirements.txt: Pillow e NumPy.

Licenza

Il codice è marcato GPL-3.0-or-later: GNU General Public License versione 3 o, a scelta, una versione successiva.