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.