Newsgroup: it.hobby.elettronica.digitale
Titolo: circuito rudimentale

Salve a tutti,
avrei bisogno di un piccolo consiglio che probabilmente vi sembrerà banale.
Premetto che non ci capisco niente di elettronica (ma proprio
niente niente)
mi servirebbe semplicemente una modo per inviare diversi segnali al pc
chiudendo diversi contatti elettrici.
Mi spiego meglio: avrei bisogno di una specie di tappetino di pochi metri
(anche molto rudimentale) con diverse zone colorate (per l'esattezza 127),
se si cammina sul tappetino il computer dovrebbe  ricevere un segnale dalla
zona colorata in cui si chiude il contatto.
Immagino che per esperti e appassionati nel settore la cosa sia
semplicissima, e forse potreste consigliarmi un posto dove posso comprare
una cosa simile (o se non è troppo difficile del materiale per costruirmela
da me) oppure qualcuno che me la possa costruire.
grazie,
daniele

In pratica hai 127 pulsanti di cui vuoi conoscere lo stato (aperto/chiuso)
tramite PC. 127 sono tanti, cmq si può fare. Ho in mente una soluzione con
un PIC, 8 demultiplexer a 16 canali (8x16=128) ed un 74138. Sono componenti
di facilissima reperibilità e costano relativamente poco (circa 2E per 1
demux). Col PC comunichiamo in seriale. Se hai voglia di fare comincia
costruendo il tappetino. Poi fammi un fischio che ti dico come procedere per
l'elettronica.
Ciao!

 wrote in message
news:PCT8c.103533$z23.4...@news3.tin.it...


 ha scritto nel messaggio
news:PCT8c.103533$z23.4...@news3.tin.it...


Tu pensa alla meccanica... quando hai costruito il tappeto, se vuoi,
facciamo assieme l'elettronica. Per realizzare il circuito stampato dovrai
attrezzarti un po' ma non è impossibile, in rete trovi molto sui "circuiti
stampati fatti in casa". Il software per il pic e per il pc te lo faccio
volentirei
Fammi sapere
Ciao!

Per gestire gli ingressi userei il 74138 che č un in primo luogo decoder
(porta ad un livello logico noto una ed una sola delle sue uscite, in
funzione delle selezioni). Tramite questo scelgo quale degli 8 demux
(ciascuno a 16 canali) abilitare. Tutti gli 8 demux hanno collegate assieme
le selezioni dello stesso peso e anche, ovviamente, l'unica uscita. Le
selezioni del 74138 (A,B,C) le piloto tramite 3 pin del PIC (2^3=8). Con
altri 4 pin (2^4=16) piloto le selezioni dell'unico demux attivo ed infine
con un altro pin del pic acquisisco il valore dell'uscita dell'unico demux
attivo in quel momento.
Poi tu hai anche il problema delle uscite. Siccome immagino che potrai aver
bisogno di un certo numero di relais "accessi" contemporaneamente ci
vogliono dei latchs per mantenere lo stato acceso/spento di ciascun relais.
Tipicamente si uscano i 74373. 60/8 circa 8 (servono 8 74373 ed un 74138)
Ricorda perņ che tutti questi integrati occupano spazio e quindi alla fine
ti servirą una basetta bella grande! E poi questa tecnica (impiegata per
moltiplicare il numero di ingressi/uscite) non ti permetterą di lavorare a
decine di MHz, ma credo che questo non sia un tuo problema!
Ciao!

come puoi capire dalla domanda... non so praticamente nulla di PIC & Co.
Cosa dovrebbe fare la logica di controllo ? Che tipo di funzioni ?
cosě a occhio e croce, con un numero cosě elevato di I/O la soluzione
che mi viene in mente č  di utilizzare una o due CPLD. Considera che,
per esempio, le MAX7000 in PLCC84, che sono piuttosto "maneggiabili",
hanno una sessantina di pin I/O disponibili e costano sugli 8-10 euro.
remove ů for e-mail reply

 moltiplicare il numero di ingressi/uscite) non ti permetterà di lavorare a


 hanno una sessantina di pin I/O disponibili e costano sugli 8-10 euro.
Purtroppo non le conosco, ma cercherò di destreggiarmi...putroppo i miei
ingressi sono circa 150 e le uscite 52... ho visto che ci sono circuiti da
oltre 100 Pin.. ma la cosa potrebbe diventare troppo complessa...
Grazie
Sergio

Scusa ma a questo punto forse non ho capito bene cosa vorresti realizzare...
Se mi lasci il tuo indirizzo privato di e-mail posso farti uno schema
elettrico con 16f877 che ti permette di conoscere lo stato di X interruttori
(on/off) e in funzione di questi (ti abbozzo il programma per il pic)
pilotare (accendere/spegnere) Y diodi led (poi tu a posto dei led ci metti
quello che ti pare, con i dovuti accorgimenti per non distruggere il PIC)
X ed Y mi dici tu quanto devono valere.
Ad ogni modo di fronte alla necessità di tanti I/O sicuramente l'impiego di
una FPGA ridurrebbe molto il numero di componenti sulla board.
Fammi sapere
Ciao!

 wrote in message
news:LZ09c.106545$z23.4...@news3.tin.it...


 della scheda elettronica.
Secondo me cosě vieni a spendere molto e l'elettronica diventa piuttosto
complicata. Un convertitore frequenza-tensione č, secondo me, fuori luogo (e
costicchia). Qui ci sono SOLO due stati possibili: 1=pulsante chiuso,
0=pulsante aperto.
L'ideale č trovare una soluzione che ti permetta di impiegare dei normali
pulsanti. Potresti prendere una tavola di legno e praticare 127 fori. In
ogni foro inserisci da sotto un pulsante, in modo che affiori di poco.
Quando si calpesta un pulsante questo chiude il contatto ma non deve
sopportare tutto il peso della persona xchč poi la pianta del piede appoggia
sulla tavola facendo "sprofondare" nel foro la testa del pulsante. In questo
modo l'elettronica si riduce al sistema di acquisizione dati!
Ciao!

Per chiarire....ero partito con delle porte logiche    
cut
Avevo intuito, a grandi linee, ed è per questo che ti ho suggerito di
utilizzare una CPLD. Se ti puoi permettere di separare il tuo circuito
in sottoblocchi indipendenti, allora il vantaggio di una CPLD è
immediat. Puoi disegnare il circuito attraverso uno schematico
classico basato su porte logiche, poi scaricare il tutto su un chip
che farà le veci di decine di integrati 74XX. Oppure puoi utilizzare
strumenti testuali tipo linguaggi VHDL, che ti permettono di
utilizzare strutture esplicite tipo IF - THEN - ELSE. Ti assicuro che
quardando due esempi puoi scrivere il tuo codice in 5 minuti. E se fai
qualche errore ci metti altri 5 minuti a correggere il tuo codice e
riprogrammare la CPLD. 
Se con i PIC devi partire da zero, io ci penserei un attimo...
considera che oltre alla gestione dei tuoi I/O con un programma
adatto, devi anche gestire numerosi integrati di multiplex. Alla fine
non credo che ti ci vorrà molto per arrivare ad avere una basetta con
10-15 integrati (vediamo... 15*10 pin fa 150 pin, calcolato a
braccio... fai tu il confronto con una o due MAX in PLCC84).
Saluti programmabili.
remove ù for e-mail reply

 ma vorrei capire come gestire più delle porte "fisiche" di un PIC
Esistono anche gli shift register collegabili in cascata, sia per l'input
che per l'output (con latch incorporato), si comandano con soli 3 pin:
http://stor.altervista.org/elettronica/4094/4094.htm
...29 integrati sono comunque molti, ma forse piu' maneggiabili di 180 ;)
Tra l'altro usando gli shift register il circuito puo' essere "distribuito"
in tanti modulini collegati con un cavetto a pochi poli invece di portare un
groviglio di fili in un unico punto... per assurdo in questo modo tutti
quegli ingressi potrebbero essere gestiti tranquillamente da un piccolo
12F675 da 8 piedini ;) C'e' un contro... la comunicazione seriale attraverso
la catena di registri puo' essere molto piu' lenta del sistema multiplex...
ma dipende anche dal livello di multiplazione... diciamo che a spanne con
4MHz di clock si potrebbero leggere serialmente tutti gli ingressi in meno
di 1 millisecondo (velocita' di circa 150kbit al secondo)
Claudio F

 remove ů for e-mail reply

 di 1 millisecondo (velocita' di circa 150kbit al secondo)
I tempi di scansione indicati non sono assolutamente un problema...
Grazie
Sergio

Ciao Ice,
Scusa per il ritardo nella risposta....ma come vedi è un po' (troppo) lunga
Allora, visto che mi si è liberato (finalmente!!) un poco di tempo ho deciso
di utilizzarlo per apprendere qualche rudimento in vari settori tecnici,
dall'elettronica, al disegno tecnico, e ora vorrei cimentarmi anche con i
PIC, per avere un esempio concreto, ho pensato di applicare il tutto alla
automatizzazione di un circuito di trenini:
l'automatizzazione prevede:
l'elettrificazione dei 15 scambi con comando a distanza
e la gestione dei treni presenti sul circuito: pensavo... cosa da poco...
Per evitare che questi si scontrino, per fare in modo che non si tamponino,
ho suddiviso l'impianto in 28 zone e su ognuna di queste voglio poterli far
fermare, inoltre voglio che all'arrivo in stazione questi si fermino per x
secondi e ripartano e che sia quando partono che quando si fermano lo
facciano in maniera graduale (vedi anche tue rispose in
it.hobby.elettronica, di cui ti ringrazio nuovamente)
per fare ciò ho previsto l'inserimento di 45 +5 fotoresistenze che
verificano la presenza in un certo punto preciso del circuito del treno, ho
progettato dei rivelatori di assorbimento per verificare la presenza di un
treno in movimento su una determinata tratta, ho inserito degli interruttori
per comandare gli scambi, per far fermare i treni e per uscire da situazioni
di empasse ed ho guarnito il tutto con una enormità di porte logiche (ogni
giorno aggiungevo una opzione e mi sono trovato invaso) infine ci sono gli
attuatori, composti da relè, 2 per ogni tratta più 1 per ogni scambio, poi
c'è il circuito di alimentazione con regolatore di tensione e senso di
marcia
Complessivamente il progetto consta di:
1 modulo comandi sinottico, dove sono alloggiati gli interruttori, il
potenziometro per regolare la sensib. delle LDR, comandi del senso di
marcia/arresto/velocità e relè scambi
1 modulo che riceve il segnale dalle LDR e le elabora in funzione della
direzione di marcia e restituisce il dato sotto forma di segnale logico
1 modulo che raccoglie i dati dai sensori i assorbimento e li trasforma in
segnali logici
1 modulo con porte logiche che elabora gli output in funzione dei segnali di
cui sopra e della programmazione delle varie funzioni
1 modulo attuatori con con i relè e la circuiteria per partenza e arrivo
"soft" e le uscite per alimentare le rotaie delle varie zone.
la logica di ogni zona (che però è diversa dalle altre!!) es zona 1 richiede
(a me pivello!) ben 33 porte logiche (AND2, AND3, OR4, OR2, INV, NAND2): ma
mediamente sono circa 12 porte per zona
premesso che forse si potrebbe leggermente semplificare già così sono
arrivato alla considerazione che la soluzione è cresciuta man mano fino a
diventare troppo complicata e non riprogammabile in caso di (sicuro) errore
in qualche punto, così ho pensato di passare ai PIC
vediamo se riesco a descriverti la logica di una zona "semplice": una zona è
il tratto di binario compreso tra gli scambi che fanno da limitatore di
tratta.
Appena prima di ogni scambio (che ha 3 "uscite") viene posizionata una LDR
per verificare che in quel punto preciso non ci sia un treno, inoltre su
ogni tratta collegata ad ogni uscita vi è un rivelatore di assorbimento
per convenzione LDR3/1 è la LDR sul lato dove c'è una sola uscita, LDR3/2 è
l'uscita "dritta" sull'altro lato e LDR3/3 è quella sulla deviazione
ASSx è l'assorbimento delle zone e la zona 3 è collegata alla Zona 2 e alla
zona 4 e alla zona 7 e alla 8
PSx è la posizione dello scambio, O indica la direzione di marcia: 1 =
Orario, 0= Antiorario
Rallenta3=1 aziona il relè che rallenta il treno e Stop3=1 aziona il relè
che ferma il treno
INT3= ON ferma il treno sulla tratta
SBL=ON fa partire il treno anche se la logica da OFF (in quanto ritengo che
se più treni si venissero a trovare nella stessa area si potrebbe venire a
creare una situazione ricorsiva con paralisi del sistema)
es: Zona 3 devo gestire le seg. variabili
O
LDR2/1
LDR2/2
LDR2/3
LDR3/1
LDR3/2
LDR3/3
ASS2
ASS3
ASS4
ASS7
ASS8
PS2
PS3
INT3
SBL3
evito di farti tutta l'analisi, ma puoi capire che la faccenda è abbastanza
complicata, ma ad esempio (scusa le parentesi che non sono accurate e forse
anche la formula!)
se [O=1 * [((ASS2=1 + PS2=0) + (ASS7=1 * PS2=1))]
+[O=0*(ASS4=1+PS2=0)+(ASS8+PS2=1)]* ASS3=1 allora Rallenta3=1 se, tutto
quello prima e LDR2/1=1 allora Stop3=1
è chiaro che una soluzione di questo tipo richiede un FF in quanto nel
momento in cui Stop3=1 -> ASS3=0
inoltre vi sono ancora da Integrare INT3 e SBL3
Inoltre alcune zone devono gestire degli attraversamenti di altre linee, e
la fermata in stazione e la successiva ripartenza.. con ulterire
complicazione del circuito....
Chiaramente voglio testare il tutto su un circuito moltooooo più semplice
composto da un doppio anello con due scambi e 4 tratte (dividendone una in
2) ma anche qui, la cosa ho notato con un certo stupore, è relativamente,
complicata
Scusa se sono stato prolisso....ma ....
... come dicevo a Simone, apprendere qualche rudimento di programmazione di
PIC non mi dispiacerebbe, pertanto preferirei la soluzione PIC piuttosto che
FPGA
Ti ringrazio per l'offerta anche se non vorrei arrecarti troppo
disturbo...il mio indirizzo è idmf80attiscalipuntoit!
anche una soluzione molto semplice sarebbe  più che sufficiente...
altrimenti che mi resta da fare??? ;-)
Grazie!!
Sergio

 sopportare tutto il peso della persona xchè poi la pianta del piede
