Go Down

Topic: Inseguitore di movimento (Read 537 times) previous topic - next topic

BruPetro

Ciao a tutti,
mi chiamo Bruno, sono un artista a cui piace sperimentare.
Ho una scheda Arduino 2009 e con questa vorrei far seguire da un servo motore il movimento di una persona che si sposta davanti.
Pensavo di utilizzare tre sensori PIR (uno frontale e due laterali) per catturare il movimento in un raggio di 180°.
Ho fatto qualche prova ma sembra che il servo non sappia da che parte deve andare....
Avete qualche suggerimento ?
Grazie

 

fabpolli

#1
Jan 20, 2020, 10:09 am Last Edit: Jan 20, 2020, 10:10 am by fabpolli
Buongiorno,
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del nostro regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell'apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. ;)

BruPetro

Ho fatto la presentazione.
Spero che vada bene.

gpb01

Se vuoi fare una cosa fatta bene, la soluzione è la Pixy2 accoppiata con Arduino per la gestione dei servo di posizionamento ;)

Altre soluzioni, come quella che stai cercando di applicare, sono molto approssimative e danno scarsi risultati.

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

BruPetro

Mi sembra un'ottima soluzione.
Grazie

gpb01

Non le conosco, ma forse esistono soluzioni basate sullo stesso concetto (riconosciemento facciale), ma implementate su schede più economiche come gli ESP32 ... però è tutto da verificare ;)

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

docdoc

Pensavo di utilizzare tre sensori PIR (uno frontale e due laterali) per catturare il movimento in un raggio di 180°.
Ho fatto qualche prova ma sembra che il servo non sappia da che parte deve andare....
Un po' generica come descrizione... Intanto parli di "catturare il movimento" ma non si capisce bene, stai parlando di un robottino o di, diciamo, una "testa" che deve seguire in qualche modo con lo sguardo chi si trova attorno? Spiega meglio a cosa vorresti applicare questa cosa.

Poi in realtà con tre PIR tu puoi solo rilevare se "qualcuno" si trova nel raggio di uno dei tre, visto che i PIR ti danno solo un segnale HIGH se hanno rilevato "qualcosa" o LOW se non ci sono segnali. Quindi se ad esempio "vede" qualcosa nel PIR di sinistra dovrebbe "girarsi a sinistra" fino a che non rileva che quel "qualcosa" si trova davanti al PIR centrale.

Volendo mantenere la tua soluzione con tre PIR, non si capisce cosa tu intenda che "non sa da che parte andare", posta magari il tuo attuale codice ed una descrizione dei collegamenti.

Ma secondo me i PIR non vanno bene, l'altra soluzione che potresti applicare è invece con sensori ad ultrasuoni (consiglio HY-SRF05), visto che con quello puoi anche "misurare" la distanza del primo ostacolo rilevato. Puoi usanre 3 opportunamente angolati oppure montarne solo uno su un servo che usi per fare una "scansione" di ciò che c'è attorno, e quindi avere addirittura già l'angolo al quale è presente un ostacolo entro una determinata distanza ed in base a quello "girarti" verso quella direzione. Di progettini che fanno una sorta di "radar" dei dintorni ce ne sono svariati in rete, se questa è una soluzione per te praticabile.

Altrimenti per cose più sofisticate, come ad esempio seguire un oggetto di un certo colore, c'è la soluzione del Pixy che ti ha consigliato Guglielmo, sicuramente una soluzione molto più flessibile ed intrigante anche se un poco più complessa in generale (ho tra l'altro qualche dubbio se le librerie Pixy funzionino col vecchio Duemilanove (non mi risulta lo facciano più, ti consiglio di prendere un UNO R3 anche "cinese" se vuoi risparmiare...).
Anche di progettini di "inseguitori" con Arduino+Pixy ne trovi in rete, ma se sei alle prime armi il mio consiglio è di prendere una UNO e provare con il sensore ad ultrasuoni.

Non le conosco, ma forse esistono soluzioni basate sullo stesso concetto (riconosciemento facciale),
Non mi pare abbia parlato di riconoscimento facciale, ma solo un "inseguitore" generico...
Alex "docdoc"
- "Qualsiasi cosa, prima di rompersi, funzionava"

gpb01

#7
Jan 20, 2020, 03:50 pm Last Edit: Jan 20, 2020, 03:52 pm by gpb01
Non mi pare abbia parlato di riconoscimento facciale, ma solo un "inseguitore" generico...
... si, non gli interessa particolarmente solo la faccia, ma vuole inseguire la "persona" ... probabilmente con il facciale gli riesce più semplice farlo ;)

O, ancora più semplicemente, se può applicare un qualche cosa di colorato alla persona, la Pixy2 ha una funzione apposta (c'è anche fra le demo).

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

steve-cr

#8
Jan 21, 2020, 10:47 am Last Edit: Jan 21, 2020, 10:50 am by steve-cr
Dovrai lavorare molto di software. E come ti hanno detto, il PIR è troppo "approssimativo" anche perche con i tre PIR potresti avere tre "riconoscimenti" sempre della stessa persona, dato che hanno un angolo di azione molto ampio. In questo caso da che parte mi giro?
Appunto, dovresti avere tre sensori analogici e misurare quale è il segnale più forte, quindi più vicino o più "grosso" e scartare gli altri due per concentrarti sulla rotazione verso quel segnale.

Magari hai visto quel robot molto simpatico alla fiera internazionale dell'artigianato di Milano. Come passava di li una persona si girava verso di lui e se era un bambino abbassava pure la testa...
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

BruPetro

Grazie a tutti per i preziosi consigli.
Effettivamente mi serve qualcosa che identifichi una presenza nella stanza e si direzioni verso la presenza.
Penso che proverò con i sensori ad ultrasuoni come proposto da docdoc.
Adesso vedo se riesco a trovare qualche progetto simile.

Federico66

Tieni presente che gli HY-SRF05 hanno un angolo di misurazione di circa 15°, quindi verifica quanti te ne servono in base a che raggio vuoi coprire, ma se li tieni fissi, puoi solo identificare quale ha rilevato il cambiamento e dirigere il robottino verso quella direzione!; forse, come dice @docdoc, otterresti un risultato migliore se ne metti uno solo su un servo che ruota, in modo da scansionare a 180°, e una volta rilevato il cambiamento (modifica della distanza rilevata su un determinato angolo), ti muovi verso quella direzione (angolo del servo).

Cerca "arduino radar ultrasuoni"

Onestamente la vedo un po' complicata, ma dipende anche dal livello di precisione che cerchi.

Federico
"La logica vi porterà da A a B. L'immaginazione vi porterà dappertutto." A. Einstein

BruPetro

Non mi serve una precisione altissima.
Ho "solo" bisogno che quando qualcuno entra in una stanza il servo si giri verso la persona e ne segua il movimento.

Federico66

Perdonami, ma, come già richiesto da @docdoc nel post #6

... stai parlando di un robottino o di, diciamo, una "testa" che deve seguire in qualche modo con lo sguardo chi si trova attorno? Spiega meglio a cosa vorresti applicare questa cosa.
forse è il caso che spieghi meglio con cosa intendi con "il servo si giri verso la persona e ne segua il movimento", perchè io l'avevo inteso come robottino, ma forse mi sto sbagliando!

Quindi, per capirci, parli di:

Motion Following Motorized oppure Human Following Robot, o le due cose assieme My tracking Arduino robot, ho preso esempi a caso.

Federico

"La logica vi porterà da A a B. L'immaginazione vi porterà dappertutto." A. Einstein

docdoc

quando qualcuno entra in una stanza il servo si giri verso la persona e ne segua il movimento.
Ok, allora ti dico cosa proverei io. Potrebbe andare usando 3 sensori SRF05 montati ("a U" diciamo, ossia quello centrale dritto e gli altri a circa 15 gradi) sopra ad una basetta, montata a sua volta su un servo a 180 gradi. Alla partenza posizioni a 90 gradi, quindi nel loop misuri la distanza su tutti e tre, e quando la distanza rilevata scende al di sotto di un certo valore di soglia (es. 2-3 metri), in base a quale sensore ha "visto" la persona ossia l'oggetto più vicino calcoli il movimento del servo, fino a fermarti quando l'oggetto o è solo sul servo centrale o quando non rileva più nessun oggetto entro il range.

E' questo che intendevi?
Alex "docdoc"
- "Qualsiasi cosa, prima di rompersi, funzionava"

gpb01

#14
Jan 23, 2020, 01:58 pm Last Edit: Jan 23, 2020, 01:59 pm by gpb01
.... ragazzi, senza tanti casini, con una Pixy2 lo fa automaticamente e ... funziona !!!  :smiley-mr-green:

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

Go Up