Arduino Mega...ho bisogno di tanti pin!

Salve ragazzi...come forse avrete già visto nel topic delle presentazioni, volevo fare un progettino che potrebbe essermi utile durante le partitine che faccio a softair...

Attualmente nell'area in cui giochiamo ho messo giù una serie di basi, ogni base ha uno switch che accende dei led, in base alla squadra di appartenenza ogni giocatore cerca di conquistare la base, switchando verso il led corrispondente alla propria squadra...

Ora come ora la struttura è banalissima e sempliciotta...ve la descrivo: una base centrale, con uscite rj45, nella quale ci sono dei led "riassuntivi", e l'alimentazione (un pacco batterie da fucile softair) con i cavi ethernet mando l'alimentazione alle varie basi dislocate nell'area di gioco, lo switch dirige l'alimentazione verso uno o l'altro led, che a sua volta in cascata torna con il cavo ethernet verso la base centrale, dove c'è un secondo led di controllo, e poi va a finire sul gnd

Ovviamente dalla base centrale quindi vedo se nella prima porta RJ45 è acceso un led piuttosto che un'altro...

Ora l'evoluzione...che sicuramente comporterà il rifare sia la parte centrale, che le varie basi dislocate in giro per l'area di gioco...

Quello che volevo fare, è creare delle basi con due led (squadra Alpha e squadra Bravo) ed un pulsante centrale.

Alla pressione del pulsante arduino dovrebbe accendere il led della squadra Alpha, se il pulsante viene ripremuto, passa al led Bravo, e così via...

Questo in teoria comporta che per ogni base che creo nell'area di gioco, mi mangio 3 pin della scheda arduino (uno in input per il pulsante, e due output per i led)

Di sicuro volevo fare almeno almeno la gestione di 5 basi, e già mi vanno via 15 pin...

Inoltre, pensavo di inserire un display, dal quale poter inserire un tempo di gioco, durante il quale il software dovrebbe tener traccia di quali basi sono Alpha, e quali Bravo, e per quanto tempo (ad esempio incrementando una variabile di +1 ogni minuto che una base risulta controllata da alpha o da bravo), visualizzando appunto anche il punteggio finale al termine del gioco... Per poter agevolmente gestire partita e quant'altro pensavo che un paio di pulsanti di gestione potrebbero essermi sufficienti...un pulsante che mi faccia da "start/stop" ed un "set" che prima di iniziare mi possa far aumentare di 10 in 10 i minuti totali di gioco...

Insomma...in definitiva i pin che mi servono sono sicuramente più dei 14 disponibili sul normale arduino...

Ho visto che con qualche componente si possono aggiungere porte, o comunque gestirne di aggiuntive usandone solo 3, con lo shiftup o qualcosa del genere...ma visto che forse, se volessi espandere il progetto con nuove basi o altro, potrebbero essermi utili dei pin in più, mi chiedevo se effettivamente sarebbe il caso di optare direttamente per Arduino mega, che dovrebbe avere una cinquantina di porte se non erro...

Alla fin fine probabilmente mi sono spiegato da cani, ma il progetto che ho in mente non dovrebbe poi essere così complesso...e probabilmente con qualche tutorial dovrei riuscire ad uscirne vivo senza diventar pazzo...vedo che per la gestione di led ci sono millemila post tutorial ed altro...ed alla fine quel che ci devo mettere sopra non è nient'altro che un timer, ed un po' di logica... :P

Venendo alla questione centrale, ripeto: che mi convenga veramente optare direttamente per arduino mega? alla fine si programma nello stesso modo, o ha complicazioni degne di nota?!?!?

Non è che parto dal presupposto che il progetto sia relativamente non complesso, ed invece poi mi ritrovo con il classico progetto epico, vivamente sconsigliato ?!?

uhm... :roll_eyes: forse è perchè oggi è venerdì pomeriggio e i miei pochi neuroni sono già disconnessi, ma non ho capito molto di quello che hai detto. le basi di cui parli tu sono delle schede arduino? se magari fai un piccolo schema... anche "spartano" penso che sarebbe di grande aiuto.

Ad ogni modo, se è solo un problema di avere più pin, forse lo puoi risolvere con un port expander senza passare ad arduino mega.

http://it.wikipedia.org/wiki/Flip-flop

inutile complicarsi la vita con microcontrollori :sweat_smile:

ti sei davvero spiegato da cani! non ci ho capito quasi niente :grin: allora se vuoi elimina i fili prendi degli nrf24l01+ raggiungi i 150/200 metri e in capo aperto credo anche di più,costano 2 dollari l'uno ,poi prendi un arduino uno per la base centrare e ti crei dei standalone con attiny o atmega(ti costa tipo 4/5 euro ed e un arduino autocostruito) cosi fai comunicare tutti fra loro,la base centrale sarà il master le altre saranno le slave. Puoi fare cosi tantissime cose switchare led,mandare messaggi fra le base,attivare servi,motori,sensori di movimento etc pensa che ogni stanalone ha 20 out/in puoi divertirti un bel pò!

Si, chiedo perdono...effettivamente non mi sono spiegato bene :grin: :grin: :grin:

Praticamente in realtà le basi sparse per l'area di gioco non sono nient'altro che delle scatolette con una presa rj45, un pulsante e due led...

solo nella base centrale pensavo di mettere arduino, che a seconda della pressione del pulsante nella base esterna, accenderà un led piuttosto che un altro...

poi, il software di arduino, oltre all'accendere un led o un altro, terrà traccia del tempo che quel led rimarrà acceso, per stabilire alla fine della partita quale delle due squadre ha mantenuto la base per più tempo...

Replicando la stessa cosa per altre X basi (pensavo un totale di 5) si ottiene un sistema che "conteggia" quante basi, per quanti minuti, sono state sotto il controllo di una squadra e quante di un'altra...

oltre ai pin usati per le varie basi (in teoria 3 per ogni base, uno in ingresso per il pulsante, e due in uscita per i led) ci saranno i pin usati dal display che farà visualizzare il punteggio, e 2 o 3 pulsanti di gestione, per far partire la partita, fermarla, o impostare la durata della stessa.

Quindi per evitare di complicarmi la vita, e lasciarmi un po' di pin liberi per non si sà quali possibili evoluzioni o aggiunte future, pensavo di prendere l'arduino mega per avere abbondanza di pin...

Alla fine il programma non dovrebbe poi essere complesso (facendolo passo passo, ho visto che per ogni singolo elemento del progetto ci sono miriadi di tutorial ed esempi): Imposto un determinato numero di minuti (durata della partita) premo "start" che farà partire il timer totale, che segnerà il fine partita allo scadere del tempo quando in una base viene premuto il pulsante, sò che la base è controllata dalla squadra A anzichè B, ed inizio a conteggiare i minuti e sommarli in una variabile X...se il pulsante viene ripremuto, sò che la squadra B ha riconquistato la base, e andrò avanti a sommare i minuti per la squadra B nella variabile Y...e lostesso vale per le altre basi dislocate nell'area di gioco, in modo che più basi conquisto, e più il punteggio andrà su in fretta. Al termine del gioco, visualizzo nel display il punteggio accumulato dalla squadra A e quello accumulato dalla squadra B A questo punto posso premere il Reset per ripartire con una nuova partita.

Insomma, in realtà si tratta solo di combinare cose che mi sembra di aver già trovato qui nel forum...spero non si riveli un progetto apocalittico :P

Si, se non vuoi complicare il progetto con multiplexer, port expander, gestione client server con attiny wireless, protocolli di comunicazione master slave... prendi una mega, attacchi tutto li e via. Avrai un bel po'di metri di cavo da tirare ma se non ho capito male hai già cablato tutto con i cavi Ethernet.