salve!
mi spiego meglio
vorrei creare un sistema con svariati sensori che rispetti una determinata sequenza,che al tocco della mano viene eseguita tale sequenza ,ma che ti segnala errore se non viene rispettata.
Tutto questo per allenare la memoria su un allenamento fisico
Mi spiego meglio in pratica:
facciamo l'esempio di coni o cinesini (che vengono utilizzati nel calcio ) posizionati in un campo in ordine sparso,ma che ognuno di essi ha un numero ben preciso.Lo scopo è quello di toccare i coni in una determinata sequenza e il circuito deve segnalare con un suono nel caso la sequenza non viene rispettata.Sarebbe bello abbinare un timer che parte al momento del primo tocco e termina all'ultimo tocco del cono.
Per non farla troppo complicata ,basta forse eseguire sempre la stessa sequenza ,ma sta a me poi posizionarli diversamente il cono contatto nello spazio
Ok, interessante, e ....... non vedo domande ... cosa vuoi sapere da noi ? Cosa non ti funziona ? Che suggerimento vuoi ?
Insomma ... se non spieghi cosa esattamente ti serve ... difficilmente ti si può aiutare !
Guglielmo
come realizzare questo progetto
Non so quanti "tocchi" ti servano, in ogni caso dai una ripassata ai verbi in italiano! Scherzi a parte, non voglio essere pesante, puoi utilizzare un Arduino Uno/Mega/... a tu scelta e collegarci dei finecorsa o dei pulsanti, se per esempio si preme il pulsante un codice nella macchina a stati continuerà altrimenti si bloccherà. Stendo al volo un'idea qui sotto, ma prima ci tengo a precisare che se tu necessitassi di un timer per vedere se entro X secondi premo il tasto, dovresti modificare il codice. Per il suono puoi usare un buzzer.
enum Stato { Avvio, Bottone_1, Bottone_..., Bottone_n };
void setup() {
// Comandi vari
Pulsante_Avvio = digitalRead(2);
Pulsante_1 = digitalRead(3);
Pulsante_... = digitalRead(...);
Pulsante_n = digitalRead(n);
switch (Stato) {
case Avvio:
noTone();
if (Pulsante_Avvio == HIGH) {
Stato = Bottone_1;
noTone();
}
else
Stato = Avvio;
case Bottone_1:
if (Pulsante_1 == HIGH)
Stato = Bottone_2;
else if (Pulsante_2 == HIGH || Pulsante_... == HIGH || Pulsante_n == HIGH) {
tone(12, 1000, 200); //Suona una nota sul pin 12 alla frequenza di 1000Hz per 200ms
Stato = Avvio;
}
case Bottone_...:
if (Pulsante_... == HIGH)
Stato = Bottone_n;
else if (Pulsante_1 == HIGH || Pulsante_x == HIGH || Pulsante_n == HIGH) {
tone(12, 1000, 200); //Suona una nota sul pin 12 alla frequenza di 1000Hz per 200ms
Stato = Avvio;
}
}
Se hai bisogno contattami in messaggio privato, ti aiuterò!
Nightwist:
Se hai bisogno contattami in messaggio privato, ti aiuterò!
Ti rammento che questo è contrario al REGOLAMENTO, punto 12 ...
... e ... ti prego di NON dare queste cattive abitudini agli utenti. Grazie. ![]()
Guglielmo
gpb01:
Ti rammento che questo è contrario al REGOLAMENTO, punto 12 ...
... e ... ti prego di NON dare queste cattive abitudini agli utenti. Grazie.Guglielmo
Come non detto, scusami ho sistemato!
Se ti servono anche aiuti con la programmazione, imparare il linguaggio o altro, sicuramente qui nel forum potremo aiutarti.
perché dovresti essere pesante(?).io sto qui per imparare, per chi è desideroso di aiutarmi ,se no, possiamo anche chiuderlo il post .
Forse vi farò prendere tempo dato che ho zero conoscenza di arduino
comunque deve rispettare una semplice sequenza 1-2-3.....etc fino a 20
il timer serve solo a segnare un determinato tempo e vedere per le successive volte se si riesce a fare meglio
domande per imparare qualcosa:
arduino dispone di ingressi digitali ed analogici
i fine corsa devono essere collegati agli ingressi analogici o digitali?
devo disporre di 20 ingressi ,se nn sbaglio leggo che arduino ne ha 14,quindi come si procede?
Arduino Uno ne ha 14+6, i 6 sono gli analogici, ma dovresti eliminare il buzzer. Potresti usare un Arduino Mega a questo punto.
Per i pulsanti/finecorsa puoi usare tranquillamente questi https://www.amazon.it/Generic-100-Interruttori-mini-pulsante/dp/B00D82M9LA/ref=sr_1_2?ie=UTF8&qid=1467038051&sr=8-2&keywords=pulsanti
Appena finisco gli esami (4 luglio) ti scrivo l'intero codice con l'esempio dettagliato di ogni funzione che andremo a utilizzare.
questo microcontroller
http://www.ebay.it/itm/ATmega2560-R3-16AU-Microcontroller-Bordo-USB-Cavo-Per-Arduino-MEGA2560-Modulo-/261441663323?hash=item3cdf23315b:g:I1QAAOSwIwhWTDhe
tanto per iniziare a capirci qualcosa
dato che si tratta di pulsanti,quindi o chiuso o aperto il circuito ,parliamo di ingresso digitale,giusto o 0 o 1 ?
quindi possiamo sfruttare i 56 pin dell'arduino mega,giusto?
oltre al buzzer necessito di un display timer e poi il circuito a livello hardware è completo
Per usare il timer ti consiglio di usare un display 16x2 o 20x4, sono veloci da collegare e da usare, a differenza dei display 8 segmenti.
Quella scheda è un clone di Arduino Mega, avendone io sempre usate di originali non so dirti come funzioni.
Questo è il BUZZER e per completare il circuito a livello hardware, sei in grado collegarlo?
Inoltre, una veloce spiegazione, i pulsanti in questo caso sono chiusi o aperti, l'ingresso vari da 0 a 1 logico, LOW e HIGH, ovvero da 0 a 5 V, tieni conto che già con circa 3 V Arduino considera HIGH.
Ciao,
tanto per "buttare altra carne al fuoco"
ti indico che è possibile utilizzare un unico pin analogico per leggere più pulsanti, come in questa scheda http://www.pighixxx.com/test/portfolio-items/multiple-button-using-1-analog-input/ in questo modo potresti evitare di andare sulla mega e restare sulla uno, A4 e A5 potresti utilizzarli per collegare il display e un altro pin per il buzzer, valita tu la soluzione che più ti si addice.
Ciao,
Tanto per dirne un'altra: come verrà collegato il tutto? Immagino che sti ipotetici contatti debbano avere una distanza tra di loro, quanta?
Giovicavalla
purtroppo questa è la cosa scoraggiante di questo progetto,il fatto di stendere dei fili ad una lunghezza max di almeno 20 metri per coprire il punto piu lontano dove deve essere posto il cono/contatto
optare per il wireless penso che bisogna affrontare una spesa nn da poco
alexxandro:
purtroppo questa è la cosa scoraggiante di questo progetto,il fatto di stendere dei fili ad una lunghezza max di almeno 20 metri per coprire il punto piu lontano dove deve essere posto il cono/contatto
optare per il wireless penso che bisogna affrontare una spesa nn da poco
È una distanza non da poco e le soluzioni sono sul serio dispendiose, devi valutare se ti conviene spendere molto denaro o meno...
Ciao, in realtà credo che con poco si possa raggiungere l'obiettivo. Ovvero se per verificare il contatto ci spostiamo dai canonici 5V CC ai più performati (per la distanza) 12 o 24VAC con un piccolo circuito su ogni pin http://www.pighixxx.com/test/portfolio-items/optocoupled-input-ac-input/
si riesce a superare lo scoglio della distanza con un costo contenuto e senza il casino del wireless.
1 alimentatore 12 o 24VAC
una manciata di resistenze, diodi, e 4N25 (non so se esiste una versione con più ingressi)
un po' di cordicella standard da elettricista
Credo di non aver scordato nulla e di non aver detto cose inesatte, nel caso qualcuno più esperto potrà correggere il tiro ![]()
fabpolli:
Ciao, in realtà credo che con poco si possa raggiungere l'obiettivo. Ovvero se per verificare il contatto ci spostiamo dai canonici 5V CC ai più performati (per la distanza) 12 o 24VAC con un piccolo circuito su ogni pin pighixxx.com - pighixxx Resources and Information.
si riesce a superare lo scoglio della distanza con un costo contenuto e senza il casino del wireless.
1 alimentatore 12 o 24VAC
una manciata di resistenze, diodi, e 4N25 (non so se esiste una versione con più ingressi)
un po' di cordicella standard da elettricista
Credo di non aver scordato nulla e di non aver detto cose inesatte, nel caso qualcuno più esperto potrà correggere il tiro
Affatto, ma tirare 20 m di cavo e anche più, e poi magari anche tirarlo su non è uno scherzo, con il fatto che se fosse all'esterno ovviamente bisogna raccoglierlo, di opto che conosco, c'è l'ILQ620 a 4 ingressi.
con i cavi sembra un progetto troppo scomodo,con il wireless è l'ideale ma penso troppo costoso
ma sarebbe un bel progetto per gli sportivi,tra velocità di esecuzione e memoria
se si utilizzano i cavi potrei limitare lo spazio sui 5 metri max su 4 punti a combinazioni diverse,diciamo simile a quel gioco come si chiama?simon memory game e però poi non lavorerò tanto sulla velocità di esecuzione,dato che si svolge tutto in uno spazio limitato
simil a quel gioco ma poter creare io la sequenza e non random o preimpostata
Ciao, l'esp8266 potrebbe essere la soluzione per i tuoi problemi, QUI il primo link che ho letto abbastanza esplicativo.
Se vuoi avere come obiettivo la velocità puoi fare un sistema a mo' di staffetta, magari per allenare la memoria puoi dire che ogni riga ha un numero tipo:
RIGA_5
RIGA_4
RIGA_3
RIGA_2
RIGA_1
START
E prima di partire mostri su una matrice LED i numeri tipo 4-2-1-3-5 secondo la sequenza random, per leggere se passa o meno puoi far si che con un sensore a infrarosso o ultrasuoni se si passa nel mezzo del segnale il contatore segna il checkpoint, verificando poi se l'atleta è ritornato allo start e poi va verso la nuova destinazione della navetta, così ripetendosi.
Ovviamente una volta che tutti i sensori sono stati assegnati e l'atleta ritorna allo START il contatore del tempo di blocca.
Poi volendo è possibile creare un sistema di salvataggio tempi/record con nome dell'atleta, giorno, ecc... anche per poi ottenerne i progressi!
cam9500:
Ciao, l'esp8266 potrebbe essere la soluzione per i tuoi problemi, QUI il primo link che ho letto abbastanza esplicativo.[/quote
Quindi servirebbe vari esp01 che trasmettono i dati e un esp8266 da collegare ad arduino o prendere un arduino già con il wireless?