Go Down

Topic: Suggerimenti per iniziare: arduino come controller per tanti pulsanti e display (Read 1 time) previous topic - next topic

akylle



Ciao a tutti, sono nuovo del forum e ancor di più del mondo Arduino, a cui mi sto per avvicinare.
Vi spiego il progetto che intendo realizzare (schematizzato in foto sopra)
Un computer è collegato via seriale ad arduino, sul pc gira un software in C che gestisce quanto segue.
Ad arduino sono connesse 5 pulsantiere, ognuna con 7 pulsanti e alcuni display.
Scopo: gestire competizioni di un arte marziale (taekwondo)
Ogni giudice ha 10 punti a disposizione, divisi in 5(tecnica) e 5(esecuzione). Ogni volta che l'atleta commette un errore può sottrarre 0,1 o 0,5 dalla tecnica, dall'esecuzione o da entrambi. Tenendo premuto sia il pulsante ADD sia uno corrispondente ad un punteggio, va a riaggiungere dei punti.
Quanto finisce la competizione, schiaccia SEND per confermare quanto deciso.
L'intenzione era di lasciare ad arduino la gestione dei pulsanti, comunicando con il pc solo il numero del pulsante schiacciato e il relativo giudice, il pc effetuerebbe sottrazioni o somme e invierebbe ad ogni display delle pulsantiere il numero da mostrare (ogni giudice deve vedere i suoi punti disponibili in tempo reale)
Al termine, il software del pc mostra ad un monitor collegato il riassunto dei punteggi col totale complessivo, e permette di azzerare il tutto inserendo l'atleta successivo
Sperando di aver spiegato il progetto, ora pensavo a quale versione di arduino comprare per svilupparlo e per farlo stavo calcolando il numero di pin necessari
In elettronica non ho molta esperienza, mentre in programmazione si, e le idee che ho avuto finora sono di usare un encoder a priorità per trasmettere i 7 pulsanti usando solo 3 pin, e usare 4 display a 7 segmenti per visualizzare i punteggi su ogni pulsantiera, quindi 4x4 pin usando i decoder bcd/7segm
Il totale è di 19 pin/pulsantiera, 96 pin in tutto per 5 pulsantiere, che nemmeno usando i 70 pin del MEGA tutti come digitale mi basterebbero
Quindi mi rivolgo a voi più esperti.. Avreste qualche suggerimento su come strutturare il progetto in modo più efficiente? Grazie mille in anticipo

Andrea

pighixxx

Certo che come primo progetto hai scelto una cosa semplice semplice  :D
La cosa sicuramente è fattibile; Su due piedi la soluzione migliore è mettere uno standalone su ogni pulsantiera e collegare il tutto via rs485.
Se vuoi prendere qualche spunto sui vari collegamenti possibili dai un'occhiata qui: http://forum.arduino.cc/index.php?topic=146152.0
Come vedi con un unico pin analogico puoi gestire fino a 4 pulsanti (Scheda 22)
Con il bus SPI puoi gestire un display  a 7 segmenti / 4 digit con un MAX7221 (Scheda 10)

Buon lavoro

akylle

Intanto grazie mille per la risposta, cerco di vedere se inizio a capire qualcosa
con il bus SPI posso comandare un display a 4 cifre ( che io potrei scindere in due da due cifre mettendo il punto accesso manualmente) e potrei risolvere il problema
peró sbaglio o ad arduino posso connettere solo un bus di questo tipo (che occupa 4 pin)? a me ne servirebbero 5 (per 5 pulsantiere)
stavo pensando al multiplexing altrimenti, una cosa tipo questa potrebbe funzionare su tutte le porte, no?
http://www.kevindarrah.com/wp-content/uploads/2012/05/ARDUINO-7-SEG-DISPLAY-REV1.1.pdf
In questo modo arriverei a 3 pin per ogni pulsantiera = 15 pin
e poi.. per quanto riguarda i pulsanti, se non ho capito male usa gli ingressi analogici per misurare la caduta di tensione causata dalle resistenze in serie, e quindi sa a quale oulsante ricondurlo
peró con 4 pulsanti/pin, mi servirebbero un totale di 7x5=30 pulsanti = 7.5 pin, che su arduino UNO non ci sono..devo ricorrere al MEGA?
e poi non ho capito a cosa serve il rs485

scusa l'ignoranza e grazie ancora dell'aiuto

Andrea

uwefed

Il SPI é un bus percui puoi collegare piú cose. Il problema é la lunghezza dei cavi. Per questo la RS285 consigliata da GND digitale perché puoi collegare piú schede ed puó avere una lunghezza di parecchi metri (anche km)
Ciao Uwe

akylle

Grazie mille anche a te per la risposta
Quindi con l'SPI (4 pin) potrei comandare tutti e 20 i display..
mi rimarrebbero abbastanza pin (16, me ne servono 15) per i pulsanti controllati con l'encoder a priorità (3 pin/8 pulsanti)
Ho capito correttamente?

pighixxx

Più o meno.
Ti è stato consigliato di utilizzare un Arduino (o meglio uno standalone) per ogni pulsantiera e collegare il tutto poi via RS485
Quanto distano le pulsantiere?

akylle

Ah ecco cosa non avevo capito..
Allora no, non posso permettermi 5/6 arduino per farlo.. Devo riuscire a farmene bastare uno (UNO o MEGA)
Con il metodo dei display in multiplexing
http://www.kevindarrah.com/wp-content/uploads/2012/05/ARDUINO-7-SEG-DISPLAY-REV1.1.pdf
(5 x 3 = 15 pin) e dei pulsanti sotto encoder a priorità (5x3 pin) mi servirebbero 30 pin in tutto, e arduino MEGA dovrebbe bastare
Sbaglio? È possibile farlo in questo modo?
Grazie ancora

Andrea

uwefed

Non Ti rispondiamo prima che non ci dici quanto distanti sono i pulsanti/display dal Arduino.
Ciao Uwe

gpb01

Ciao Andrea,
magari degli oggetti come questi : http://dx.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873 potrebbero fare per il tuo scopo (8 display a 7 segmenti, 8 LED ed 8 pulsanti), ma ... come chiede Uwe ... dipende molto dalle distanze.

Questi moduli sono collegabili in catena (fino a 6 di fila) e richiedono pochi pin (... al massimo della configurazione, ovvero sei moduli, richiedono in tutto 8 pin). Molte info le trovi qui : https://code.google.com/p/tm1638-library/wiki/Reference?tm=6.

Guarda un po' se possono fare al caso tuo ...

Guglielmo
Search is Your friend ... or I am Your enemy !

akylle

scusate mi son scordato di rispondere..
arduino si troverebbe di fianco al monitor e al pc, mentre le pulsantiere a qualche metro di distanza (i giudici sono seduti uno di fianco all'altro a qualche metro dal tavolo con il computer)

la schedina che mi hai mostrato è molto interessante!

alex87r6

Akylle fai judo? Quell'aggengio l'ho visto già ad una gara, completamente wireless.. Una figata ]:D

Edit: ho letto male, sorry :D Cmq l'ho visto ad una gara di judo  :smiley-yell:

akylle

Si tratta di taekwondo, nelle gare di combattimento si usano già questi http://www.daedopss.com/product/e-protector-system/ , con i joystick per i giudici.. Quelli che devo provare a costruire è per le gare di forme (taeguk)
Certo, fare tutto wireless sarebbe bello ma molto più costoso immagino..

akylle


magari degli oggetti come questi : http://dx.com/p/8x-digital-tube-8x-key-8x-double-color-led-module-81873 potrebbero fare per il tuo scopo (8 display a 7 segmenti, 8 LED ed 8 pulsanti), ma ... come chiede Uwe ... dipende molto dalle distanze.


Utilizzando un cavo di rete cat 6 (o 7 addirittura) che hanno 8 fili e sono molto ben schermati con resistenza bassissima, considerando che la prima pulsantiera sará a massimo 5m da arduino e che le altre saranno ad 1m circa l'una dall'altra, dici che arriverá il segnale?

pighixxx


Utilizzando un cavo di rete cat 6 (o 7 addirittura) che hanno 8 fili e sono molto ben schermati con resistenza bassissima, considerando che la prima pulsantiera sará a massimo 5m da arduino e che le altre saranno ad 1m circa l'una dall'altra, dici che arriverá il segnale?


Se vuoi utilizzare le schede che ti ha consigliato gpb01 funzionano in SPI ed è un protocollo che non è progettato per essere usato "all'esterno del circuito principale". Credo che 50-60 cm sia una distanza massima; Prendi con le pinze la mia affermazione in attesa di lumi da gente più esperta.

akylle

Ah questa cosa dei 60-70 cm non l'avevo capita
Io troverei più utili dei modulini tipo questo
http://dx.com/p/lcd-keypad-shield-for-arduino-duemilanove-lcd-1602-118059
perchè l'LCD risulta più versatile e posso accontentarmi anche di soli 6 pulsanti.. Vale la stessa cosa? Non ci sono soluzioni per usarlo più lontano?
In questo caso (mi pare che questi moduli non si possano collegare in serie come l'altro) userei 6 pin per ogni display
Tra l'altro c'è anche questo
http://dx.com/p/lcd-keypad-shield-expansion-board-for-arduino-uno-136426
che mi sembra uguale ma costa il doppio D:
Scusate se rompo com cose che per voi sono banali ma ci capisco poco nulla..
Grazie ancora

Andrea

Go Up