Ciao a tutti sono Paolo,
come scritto i presentazione sono digiuno di elettronica e, al contrario, mi sono ingozzato di programmazione.
Volevo realizzare un primo progetto (forse semplice). Dovrebbe essere una 20ina di led, ciascuno con un sensore di prossimità abbinato, un buzzer e un doppio segnapunti. Pensate come ad un bersaglio ma con i led da colpire distribuiti su una superfice di 2 mq. In modo casuale si accende un solo led per un tempo e se lo si colpisce emette il buzz ed incrementa il punteggio "verde", altrimenti se non viene colpito oppure si colpisce in ritardo o un altro spento incrementa il segnapunti rosso.
Cosa dovrei prendere ? Ho letto vari confronti delle schede. Penso non Arduino uno perchè ha poche uscite i/o. Forse il mega ? Oppure è troppo.
Come collegare led e sensori di prossimità "distanti" dalla scheda ?
Quali componenti dovrei prendere ?
Dipende che LED usi ... se usi dei LED indirizzabili (neoPixel ovvero WS2812 oppure APA102), ti bastano uno o due pin per controllarli tutti ... piuttosto ... come pensi di rilevare se è stato colpito un LED (... e, per di più, quello giusto) ?
Ciao, grazie della risposta. Pensavo di rilevare il colpo mettendo vicino a ciascun led un sensore di prossimità. Non mi serve che venga colpito al millimetro, basta che ci si avvicini.
Per essere più preciso pensa alle sagome del tiro a segno e i led distribuiti in maniera non regolare sulla sagoma, ciascuno con un sensore di prossimità e da colpire con le pistole da bambini Nerf.
Qualche altro contributo grazie ? E' fattibile quello che vorrei realizzare ? Da quale modello di Arduino dovrei partire ? Per i sensori di presenza meglio quelli IR oppure di altro tipo ?
Grazie ancora.
Paolo
possiamo trovare qualche soluzione. Perdonami, ma dato l'età ormai avanzata non ho bambini dal un bel po' di tempo (ed ho avuto solo una bambina che non giocava con le pistole! ). Cosa sparano di preciso? Acqua? Qualcosa che si appicica?
Una foto forse aiuterebbe a chiarire (perlomeno per me...).
Ciao,
allora per i sensori di presenza IR sono quelli ottici a InfraRosso, altrimenti (ho letto) quelli capacitivi, induttivi, magnetici.
I Nerf sono dei proiettili di gomma piuma con una punta in plastica.
Questi:
Quindi mi pare di capire che colpiscono, ma non rimangono attaccati.
Non credo che nessuno dei sensori che hai citato sia adatto a percepire la presenza del dardo, forse l'unica sarebbe una griglia di barriere a fotocellula, diventa un incubo allinearle tutte ma potrebbe funzionare.
Si, colpiscono, non restano attaccati. Perchè secondo te non sono adatti ? Forse per il breve tempo in cui passano davanti all'infrarosso non lo rileva ?
mah ... secondo me, FORSE, la cosa sarebbe fattibile con dei "Sensori di pressione a film sottile" delle dovute dimensioni e sensibilità (occorre rilevare l'impatto del dardo) ma comunque è cosa piuttosto complessa ...
Invece quelli ottici che problemi potrebbero avere ? Li preferirei nel caso che invece dei dardi si usasse con le mani a toccare i led che si accendono.
Per i lavoretti meccanici non c'è problema.
Ma no; non conosco il multiplexing. Conosco il multiplexing e il demultiplexing per i protocolli di rete ma è altra cosa.
Di sensori ad infrarossi ne conosco di 2 tipi: ricevitori per telecomando, che si aspettano un segnale modulato ad una determinata frequenza, e non mi sembra il nostro caso, o i cosidetti 'pir', che sostanzialmente leggono l'emissione di calore, (anzi, per la maggioranza dei casi la variazione della fonte di calore), che vengono usati ad esempio per accendere automaticamente le luci quando passa qualcuno, e anche per questi non vedo l'uso nel tuo caso.
Data la leggerezza del materiale usato per i dardi non so se la soluzione proposta da Guglielmo potrebbe funzionare, andrebbe provata...
Io invece avevo questa idea, che idealmente è più semplice. Ma probabilmente nasconde delle complessità per me che sono digiuno.
n Led ciascuno collegato ad una entrata. n sensori di prossimità posti vicino ad ogni led ciascuno collegato ad una entrata. E con un sw del genere:
void setup() {
// Configura i pin LED come output
for (int i = 0; i < 20; i++) {
pinMode(ledPins[i], OUTPUT);
}
// Configura i pin sensori come input
for (int i = 0; i < 20; i++) {
pinMode(sensorPins[i], INPUT);
}
}
void loop() {
// Loop per accendere una luce random
int randomLed = random(0, 19);
digitalWrite(ledPins[randomLed], HIGH); // Accende un LED casuale
int t_inizio=mills();
int colpitoV=0;
while(mills()-t_inizio<=1000)
{
// Verifica se un sensore è attivato
for (int i = 0; i < 20; i++)
{
if (digitalRead(sensorPins[i]) == HIGH)
colpitoV=1;
}
}
if(colpitoV) contatoreVerde++; // Sensore colpito
else
contatoreRosso++; // Sensore lisciato
digitalWrite(ledPins[randomLed], LOW); // Spegne il LED
}
Anche per quelli ottici si possono distinguere 2 categorie: quelli a rifrazione, che leggono la luce inviata dall'emettitore riflessa dall'oggetto, ma in genere sono associati ad un catarifrangente che rifletta bene la luce emessa, oppure quelli a barriera, dove emettitore e ricevitore sono sulla stessa linea ma distanziati, e l'oggetto interrompe il fascio (che era quello che avevo proposto), che sono comunemente usati ad esempio nei cancelli motorizzati. Il limite è che ogni coppia copre una sola linea piuttosto sottile.
Non esperienza ne conoscenza dei sensori cosiddetti TOF, che usano i droni per evitare gli ostacoli, quindi non ti so dire se sarebbero usabili, magari qualcuno che ne sa di più può dirci qualcosa a riguardo.
Interessante anche soluzione di C1P8, anche se non credo sia facile da realizzare in pratica.
Il circuito base è
Uscita-> resistenza-> led-> massa
Questo significa che la tensione dopo la resistenza può essere alta solo se l'uscita è alta E il led scollegato
Se il led fosse collegato la tensione sarebbe quella di gradino, circa 1.5 volt
Adesso colleghi un ingresso digitale alla resistenza, 1.5 è basso
Quindi ingresso alto solo per led 'acceso' e colpito
Adesso contare i piedini
20 led e 20 uscite e 20 ingressi
Basta multiplare i led e li accendiamo con solo 5x5 10 piedini a dare 25 led
E aggiungendo 5 ingressi multiplati assieme ai led si fa tutto con 15 piedini
Aggiungici la seriale e tre pin per un display tm16xx e hai fatto tutto su un uno
Apposta ho chiesto se conosce il multiplex su arduino
Il ragionamento l'ho capito, ed infatti ho detto che è un ottima soluzione, non vedo molto bene come realizzare il contatto 'incerto' del led, sono curioso di sapere a quale soluzione pratica hai pensato.