Fortuna
Il prova zener.
       
 

 
 

Il progetto "Bancadati C.R.E.M.A."

Componentistica Radio Elettronica e Meccanica Amatoriale

Tutti i marchi ed i nomi citati nel presente scritto sono riportati al solo scopo di migliorarne la leggibilita' ed appartengono ai rispettivi propietari.

Antefatto.

Negli ultimi mesi, utilizzando anche strumenti costruiti con questo scopo e pubblicati su GRIX, ho disassemblato una notevole quantita' di circuiti che avevo accumulato negli ultimi anni e mi e' stato facile recupeare i singoli componenti e alla fine ho ottenuto sei scatole di materiali, sommariamente suddivisi, cosi' ripartite

  • Semiconduttori
  • Condensatori
  • Resistenze
  • Bobine e trasformatori
  • Valovole e materiale d'epoca
  • Chi lo sa

Cosi' e' nato il software C.R.E.M.A.

Fino a questo punto niente di nuovo ma la cosa si complica considerando che parte del materiale si trova a Pistoia, parte a Castiglioncello e parte a Milano.

Qualc'uno potra' chiedermi, "perche' non porti tutto in un unico posto?", la risposta e' questa: per necessita' di spazio ho dovuto mettere tutto il materiale relativo alle radio d'epoca in un posto, il materiale per le realizzazioni meccaniche in un altro e il materiale per l'elettronica allo stato solido e le sperimentazioni in un altro.

Non e' da sottovalutare il fatto che con una certa frequenza mi reco nelle varie localita' per motivi personali.

Ho sfruttato pertanto internet ed il mio server HTTP per realizzare un software, studiato anzitutto per aderire alle mie esigenze, ed in grado di supportare questi obiettivi.

  • Possibilita' di consultazione remota
  • Possibilita' di aggiornamento remoto.
  • Diverse viste della banca dati secondo gli indici progettati.
  • Memorizzazione della documentazione.
  • Memorizzazione di immagini, schemi, manuali e libri.
  • Stampa della scheda componente.
  • Controllo sui dati durante la fase di caricamento.

Sistema operativo e caratteristiche del software scritto

Il linguaggio usato per questa realizzazione e' xHarbour ( www.xharbour.org www.xharbour.com ) per la velocita' di realizzazione e la possibilita' di essere compilato sotto diversi sistemi operativi. Io lo ho compilato sotto WINDOWS XP © professional ma e' stato provato con successo sotto WINDOWS 7 ©

Il servert HTTP  e' gestito da SAMBAR 7.0 © ,

programma che e' gratis per usi non professionali (consulatare il relativo sito internet).

Un altro vantaggio di SAMBAR 7.0© e' di poter funzionare fuori linea definendo opportunamente gli host virtuali in WINDOWS© e nello schema  CONFIG e VHOST di SAMBAR7.0©

Complessivamente sono state scritte circa 12.000 righe di software ed e' certo che la banca dati puo' agevolmente gestire diverse centinaia di migliaia di componenti

Personalmente non ho usato in C.R.E.M.A. MySql© come DBMS ma esistono molti esempi di uso del MySql© con xHarbour.

L'ingresso dei dati puo' avvenire solo a mano, non e' previsto il caricamento dei dati con altri mezzi automatici, anche se e' possibile e facile accoppiare immagini e documenti ai dati dei componenti caricati. Le immagini possono arrivare da telecamere digitali, nel mio caso le ho importate da un microscopio digitale collegato ad una porta USB. 

Sono possibili delle banche dati locali (es. caricate su chiavetta) che poi possono essere riversate sulla banca dati generale.

Il sistema e' composto da due programmi esecutivi.

CREMA00.EXE

che interfaccia il server HTTP e gestisce tutte le funzioni descritte nel relativo paragragrafo.

CREMA01.EXE

che e' un programma batch per lavorare fuori linea e per altre funzioni di servizio.

Nella scrittura uso delle librerie software che possono essere sostituite da funzioni scritte dall'utente e che posso fornire solo per la verione windows© precompilate per il link in formato .lib

Accesso alla banca dati C.R.E.M.A.

Il programma CREMA nasce per gestire la banca dati dei componenti elettronici di cui dispongo, ma anche degli attrezzi, dei circuiti dei libri e di ogni tipo di documentazione. Il motto che deve rispettar e':

In pratica il programma deve essere montato su un computer che si comporta da server, ma date le caratteristiche che andro' ad illustrare, puo' funzionare anche su una rete locale usando il normale browser.

Tutta la procedura e' stata realizzata per le mie necessita' senza pensare ad una diffusione, pertanto la struttura delle direttrici e' fissa ed i programmi non sono generalizzati.

Cio' non toglie che con una buona conoscenza del linguaggio di programmazione si possa fare una notevole personalizzazione, io stesso sono disponibile a partecipare ad un progetto di questo tipo.

Cerco di dare una descrizione sistematica di tutto il progetto.

Struttura della cartella CREMA

Premetto che tutti i nomi sono fissi nel programma e tali, fino alla correzione del sorgente, debbono rimanere.

La cartella CREMA, nella versione che distribuisco, deve essere nella direttrice ROOT e questa e' la struttura:

Cartella

Descrizione

crema

Direttrice principale - Contiene gli archivi di lavoro e i file di servizio

base

Contiene archivi di riferimento

carlopavana

Uso futuro

crema_dsh

Uso futuro

crema_htm

Contiene le pagine di lavoro HTML

crema190

Servizio interno

crema_cir

Contiene una cartella per ogni circuito memorizzato

crema_doc

Contiene una cartella per ogni documento memorizzato

crema_img

Contiene una cartella per ogni immagine memorizzata

crema_sy

Cartella di servizio del sistema crema

cor

Cartella corsi memorizzati

doc

Cartella documenti (es articoli riviste)

lib

Cartella libri memorizzati

ske

Cartella skemi memorizzatii

utils

Programmi di servizio del server http

cremaprg

Contiene i programmi sorgente le librerie ed i programmi di lancio della compilazione

La struttura della banca dati C.R.E.M.A.

Nome campo

Tipo dati

Dimensione

Descrizione

LOCALITA

Caratteri

3

Identifica la localita' in cui si trova il componente. Al momento e' utilizzato come indicazione senza alcuna funzione di reale indirizzamento e ricerca

CLASSE

Caratteri

2

La classe e' una codifica che identifica il massimo raggruppamento dei componenti inseriti nella banca dati.

Sono due caratteri solo maiuscoli e le relative codifiche sono aggiornate col programma CREMA01 che controlla anche duplicati e ne gestisce l'ordine alfabetico.

TIPO

Caratteri

10

E' la codifica, nell'ambito della classe, del componente in esame. Viene controllata per l'unicita' nell'ambito della classe. E' un campo di 10 caratteri maiuscoli. Puo' contenere anche caratteri speciali e numeri.

CODICE

Caratteri

15

E' il codice del componente, puo' essere quello attribuito dal costruttore o uno attribuito da parte dell'operatore durante il primo caricamento del componente.Viene controllato per la duplicazione nell'intera banca dati. Se il codice non e' presente, o non sono in grado di individuarlo, adotto una codifica sequenziale a partire da nnnnnnn.Tutti i caratteri sono maiscoli ma il codice puo' contenere anche numeri e catratteri speciali purche' presenti nella codifica ASCII.

PACKAGE

Caratteri

10

Non e' un campo essenziale ma solo ind icativo. Puo' essere usato per migliorare la significativita' della identificazione del componente.

DESCRIZION

Caratteri

300

E' una breve descrizione del componente.

PRODUTTORE

Caratteri

40

Nome del produttore

SCHEMA

Caratteri

30

Gli schemi relativi al componente. Possono essere piu' di uno separati da virgola. Attenzione, non viene controllato ne' come dupliucato ne' come presenza.

DATASHEET

Caratteri

30

Il datasheet del componente.

QUANTITA

Numeri

10,0

Il numero dei componenti di cui disponiamo. La banca dati assume questi valori convenzionali

0 = Nessun componente presente -1 = Non e' possibile contarli sono moltissimi.

POSIZIONE

Caratteri

10

La posizione del componente nel magazzino. E' una codifica che identifica i contenitori o la posizione ove sono messi i componenti classificati.

TESTATO

Caratteri

3

Lo stato di test del componente.

Indica anche se da revisionare o lo stato di utilizzo.

  • NO - Nessun test
  • OK0 - Test solo strumentale (es. una bobina test di continuita')
  • OK1 - Test funzionale (es provavalvole)
  • OK2 - Superato il test funzionale in esercizio
  • OK8 - E' in utilizzato in normali condizioni di uso
  • OK9 - Da revisionare

DOCUM

Caratteri

30

Se e' prente il pulsante e' disponibile una documentazione che puo' essere generica sul prodotto o specifica sull'esemplare. Possono essere schemi, datasheet, foto, eseprienze sull'uso o quant'altro disponibile.

Viene conservata in una cartella che come nome ha il tipo oppure il tipo + il codice.

Viene presentato un elenco di link che possono essere attivati

IMMAGINE

Caratteri

15

Se e' prente il pulsante sono disponibili delle immagini che possono essere generiche sul prodotto o specifiche dell'esemplare.

Possono essere schemi, datasheet, foto, eseprienze sull'uso o quant'altro disponibile.

Sono conservate in una cartella che ha come nome ha il tipo oppure il tipo + il codice.

Viene presentato un elenco di link che possono essere attivati

UTE_DBMS

Caratteri

20

Per applicazioni future di multiutenza e multiproprieta' della banca dati.

STATO

Caratteri

1

Identifica se il componente e' nuovo (N), usato (U). Se vuoto puo' significare una situazione mista o non meglio definita.

DATA

Data

8

La data dell'ultimo aggiornamento. E' inserita automaticamente

TIME

Caratteri

8

L'ora (hh:mm:ss) dell'ultimo aggiornamento. E' inserita automaticamente

CIRCUIT

caratteri

15

Eventuali circuiti, realizzazioni o quant'altro riguradi il componente. Puo' essere nella forma PDF, Immagini, pagine HTML o documenti word.

Codifica e valore delle classi e dei tipi

Aggiornabili con il programma CREMA01. Dati al 10 novembre 2011. Ultimi aggiornamenti su www.crema.walkingitaly.com

Questi dati servono per classificare i componenti. Ho definito molte categorie senza scendere nei dettagli della tipologia, e saranno da me aggiornati sul sito mano a mano che si sviluppera' il caricamento dei dati.  
AN Antenne FERROCUBE LNB Antenne in ferrocube con o senza bobine di sintonia Illuminatore per antenna satellitare
BO Bobine   Manca il file tipo: crema_classe_bo.txt
CO Condensatori CE CV Condensatori elettrolitici Condensatori variabili
CV Cavi, fili e conduttori vari   Manca il file tipo: crema_classe_cv.txt
IN

Circuiti integrati

A_AMP CONV COUNTER GEN RADIO TEMP Amplificatore audio Convertitori vari (DC-DC AC-AC....) Contatore binario Integrato generico Integrato per applicazioni radio Temporizzatore oscillatore
LI Libri e manuali   Manca il file tipo: crema_classe_li.txt
MI Minuterie   Manca il file tipo: crema_classe_mi.txt
MT Motori   Manca il file tipo: crema_classe_mt.txt
RE Resistenze FOT NTC Fotoresistenze Resistenze a coefficente negativo
SE Semiconduttori A_AMP DIODO D_GER D_LASER
D_LED D_PONTE D_REC
D_SCH D_SIL D_VAR D_ZENER EPROM
HALL
MICRO
MOSFET
OPAMP
PH_COUP PH_D
PWM
RAM
RI
RTS
RAM
THYR
TV
TVS
T_FLD
T_GEN
T_NPN T_PNP
VD
Amplificatore audio Diodo generico non identificato Diodo al germanio Diodo laser Diodo LED Ponte di diodi rettifica corrente alternata Diode recovery rectifier Schottky barrier rectifier Diodo al silicio a giunzione Diodo a capacita' variabile Diodo zener Memorie eprom Semiconduttori effetto all Microcomputer Metal Oxide Semiconductor Amplificatore operazionale Photo coupler (accoppiatore) Photo detector Integrati per la gestione della modulazione degli impulsi Random access memory Regolatore corrente Regolatore di tensione Random access memory Thyristor Microcontrollore per applicazioni televisive. Transient voltage suppressor transistor ad effetto di campo Transistor generico non meglio identificabile Transistor NPN Transistor PNP Voltage detector
SK Schemi di radio ed apparecchitature elettroniche   Manca il file tipo: crema_classe_sk.txt
TR Trasformatori ALI FILTRO RIGA USCITA Trasformatoro di alimentazione Filtri Trasformatori di riga Trasformatori di uscita
VE

Ventole e ventilatori

VENALI VENALT VENCPU Ventola alimentatori Altri tipi di ventola (no cpu, no alimentatori) Ventola per cp
ZO Zoccolo o supporto per valvole, transistor integrati INT Zoccolo per integrati
ZZ Non classificabili   Z1   z9 Piccole dimensioni Non conosciuto



 

I programmi

CREMA00

Il programma CREMA00 e' il gestore del sito e, nel mio caso, e' in ascolto nella porta 5024. Quando il server HTTP riceve una chiamata sul sito www.crema.walkingitaly.com attiva la pagina crema00.html indirizzata da quanto descritto nel file config.ini del programma SAMBAR70

La pagina crema00.html attiva la pagina di ingresso che contiene il riconoscimento della persona chiamante.

Ciascun utente deve avere un nome associato ad una password. IL DBA (vedere documentazuione DBMS) assegna il livello, cioe' una caratteristica che permette all'utente di svolgere attivita' piu' o meno complesse. Al momento il programma identifica l'utente con caratteristica AAA come quello che puo' svolgere tutte le funzioni, tutti gli altri non possono fare inserimenti, aggiornamenti o cancellazioni. Gli altri livelli possono solo consultare la banca dati.

Naturalmente si tratta di una convenzione che ho assunto nella scrittura del programma, non e' difficile modulare questa funzione. In queste note descrivero' solo le funzioni di consultazione, mentre alle persone eventualmente interessate al sofware potro' rilasciare una descrizione dettaglioata di tutte le funzioni di aggiornamento.

Nella pagina che riporto in immagine si possono notare le caratteristiche della visualizzazione generale. Nella parte alta della pagina si trova:
 
clicca per ingrandire

  • Il nome e la classe dell'utente
  • Il pulsante per il ritorno alla HOME PAGE
  • Il pulsante per tornare alla pagina precedente
  • Il giorno la data e l'ora di lavoro
  • Il pulsante per leggere il manuale sui DBMS
  • Nel caso che l'utente abbia caratteristica AAA e' presente un pulsante per l'aggiunta di componenti
  • Successivamente e' presente la riga della visione ordinata, cioe' l'ordine con cui si visualizzano i componenti memorizzati, il valore di riferimento e' quello della codifica ASCII.
  • Codice, in puro ordine alfabetico secondo il valore dei singoli caratteri.
  • Ordine di classe e di codice nell'ambito della classe.
  • Ordine di tipo e di codice nell'ambito del tipo.
  • Ordine di classe + tipo + codice
  • Ordine di localita' + classe + tipo + codice
  • Ordine di posizione + classe + tipo + codice
  • Le due righe successive sono relative ai metodi di ricerca ed individuazione dei componenti

Codice.

Puo' essere anche parziale nel qual caso vengono presentate tutte le ricorrenze.Si puo' inserire un asterisco all'inizio alla fine della stringa di ricerca, in questo caso vengono visualizzati tutti i componenti che hanno nel loro codice la stringa digitata.

Anagrafica.

Tutte le parole della descrizione piu' lunghe di tre caratteri vengono usate nell'indice alfabetico. Come risultato della ricerca  vengono visualizzate i componenti che incontrano questa ricerca.

Localita'.

Puo' essere intera o la parte iniziale.

Classe.

Intera o parziale ricerca tutti i componenti di una certa classe.

Tipo.

Intero o parziale ricerca tutti i componenti individuati.

Posizione

Riporta tutti i componenti immagazzinati in una certa posizione.  In fondo alla pagina sono riportati questi elementi

Caratteristiche dimensionali della banca dati C.R,E,M.A.

Quanti sono i componenti memorizzati e quante sono le pagine indirizzabili. Pulsanti di accesso alle pagine, sia come numero della pagina che come "precente" o "successiva" Salto diretto alla pagina desiderata.

Caratteristiche di ciascuna riga della pagina visualizzata.

I dati visualizzati su ciascuna riga della pagiina HTML sono questi

  • Localita (Loc)
  • indicata come sigla
  • Classe (CL) e' la sigla della classe che identifica il componente

    Un pulsante verde con cui e' possibbile visualizzare l'intera scheda. Nel caso che siano presenti dei dati nel campo circuiti il colore del pulsante e' rosso.

  • Il codice del prodotto
  • Lo stato (S) se nuovo o usato
  • La descrizione del componente
  • Immagine.

    Se sono presenti una o piu' immagini del componente sono presenti un pulsante permette di sceglierle e visualizzarle.

  • Quantita'

    (Q) Indica le quantita come memorizzate.

  • Posizione

    (Pos) Indica il contenitore ove recuperare il componente. Si tratta di una codifica puramente personale.

  • Test

    Il livello di test (Come descritto nella documentazione)  cui e' stato sottoposto il componente.

  • Documentazione

    (Document) Se e' presente uno o piu' doumenti che si relazionano al componente e' prente un pulsante con cui e' possibile sceglierla e visualizzarla.

  • Gli altri campi sono relativi alla caratteritica AAA.

CREMA01

E' un programma di servizio che svolge quanto non ho voluto inserire in funzioni on line unicamente per velocita' di realizzazione. In queste note  illustro per sommi capi le funzioni che si evincono visualizzando il menu.
clicca per ingrandire

A - Gestione bancadati componenti (per codice)

Gestisce una bancadati locale di componenti nel caso non si abbia a disposizione internet. Nel mio caso accade quando lavoro in una localita' diveeersa da Milano.

C - Fonde due banche dati CREMA

Questa funzione serve per accumulare nella banca dati on line le banche dati caricate localmente

P - Gestioni accessi e password.

Consente al DBA di controllare gli utenti ed attribuire a ciscuno di loro il livello di accesso di competenza

Q - Gestione localita' (sigle e nomi)

Aggiorna la tabella delle localita' in cui sono conservati i componenti memorizzati S - Aggiornamento tabella CLASSI e TIPI Aggiorna la tabella delle classi e dei tipi che raggruppano logicamente i componenti memorizzati

W - Parole non comprese nella ricerca alfabetica

Con questa funzione e' possinile esckudere dalla ricerca alfabetica alcune parole non particolarmente significative.

X - Ricostruzione indici completa   

Funzione che permette di ricostruire tutti gli inci dei file integhrati nella banca dati CREMA

Y - Crea una nuova banca dati CREMA  

Nel caso di funzionamento locale permette di creare una bancadati  vuota per inserimento e aggiornamento.

Z - Ricostruzione indici alfabetici

Legge tutte le descrizioni dei componenti e prepara un indice che puo' essere interrogato alfabeticamente.

Situazione attuali alla data

Ho caricato circa 800 componenti. Mi r' gia' servito per non comprare due volte compnenti analoghi

Attrezzatura usata

clicca per ingrandire

Per non affaticare gli occhi ho preparato un piccolo stativo in cui ho installato un microscopio digitale (un attrezzo da 30  euro comprato in una delle tante fiere), Come risulta dalla foto la costruzione e' altamente prtovvisoria ma funziona.

Lo satore su cui scorre una molla fermacarte e' un manico da scopa ed il microspopio e' fissato ad una piccola tavola con due elastici. E' molto stabile, pesa pochissimo ed e' stato realizzato in dieci minuti.

Il computer e' un normalissimo portatile che si collega via wifi ad internet ed al server cui e' memorizzata la bancadati  CREMA. Per non avere spese di nomi dominio ho creato un dominio di secondo livello (non costa) di un mio sito principale, ma questo e' un dettaglòio altamente personalizzabile. Nel caso che mi trovi in una situazione ove non dispongo di collegamento internet (la cantina di Pistoia) carico i dati in locale, dati che poi riverso sulla banca dato generale.

Quella esposta in foto e' la postazione che uso normalmente a Milano:

  • Lo stativo con il microscopio
  • Il pc portatile Un cassettino con i componenti che iniziano con F che sto caricando in questo momento.

Nella foto sto lavorando collegato alla rete locale cui sono inseriti anche i server internet.

Una curiosita' Sto visualizzando un componente di cui non sono riuscito a trovare il datasheet. Dall'immagine rulta il tipo F1037 ed ho caricato in bancadati la sua immagine rilevata tramite la funzione automatica del microscopio.

Stato del software.

Ritengo lo stato del software, almeno per le mie esigenze, sia abbastanza stabile. Sono almeno tre mesi che non apporto aggiornamenti.

Cosa metto a disposizione.

Metto a disposizione l'intera struttura, la banca dati e tutti i programmi èper un lavoro anche off line.

Proprieta', continuita', sicurezza, garanzie del software.

Tranne per i marchi citati in precedenza il software e' stato interamente scritto da me e pur rimanendo di mia esclusiva proprieta' lo metto a disposizione di persone che lo possono diffondere, usare o modificare sempre citando la fonte, ma non sono responsabile dell'uso che ne viene fatto, pertanto qualsiasi utilizzatore e' responsabile di ogni uso e di eventuali danni che ne potrebbero derivare. Pur mettendo tutta la diligenza possibile posso far cessare la disponibilita' della banca dati CREMA senza alcun preavviso e senza fornire alcuna giustificazione. Non sono responsabile di eventuali danni che potrebbero derivare dall'uso  della banca dati CREMA e dei dati in essa contenuti.