Inseguitore di movimento

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

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. :wink:

Ho fatto la presentazione.
Spero che vada bene.

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

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

Guglielmo

Mi sembra un'ottima soluzione.
Grazie

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 :wink:

Guglielmo

BruPetro:
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.

gpb01:
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...

docdoc:
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 :wink:

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

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...

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.

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

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.

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

docdoc:
... 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

BruPetro:
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?

.... ragazzi, senza tanti casini, con una Pixy2 lo fa automaticamente e ... funziona !!! :grin:

Guglielmo

Si, vero, è una delle possibilità, ma costa di più e va gestita in modo un po' diverso da un SRF05.. :wink:
Ovviamente sta all'OP scegliere la soluzione per lui più pratica e/o efficiente e/o economica e/o facile fa implementare. :wink:

docdoc:
... va gestita in modo un po' diverso da un SRF05.. :wink:

... il punto è che ... NON deve fare chissà quale particolare gestione, c'è già tutta l'applicazione fatta per Arduino per fare quello che a lui serve :smiley: :smiley: :smiley:

Guglielmo

... c'è anche un nuovo interessante prodotto di DFRobot, QUESTO. E' da poco terminata, con successo, la campagna su KickStarter ed i primi pezzi sono già in arrivo :slight_smile:

Prova a guardare le caratteristiche ... tra le tante cose ha anche un fero e propri "face recognition" ed un "object recognition" ad un prezzo più che accettabile !!!

Guglielmo

gpb01:
... c'è anche un nuovo interessante prodotto di DFRobot...

... direi molto interessante e ad un costo relativamente basso!!!

Federico

Quello che mi serve è Motion Following Motorized.
Ho dato un'occhiata alla Pixy2 ma ha il limite che riconosce i colori e per identificare persone vestite in modo casuale penso che non sia l'ideale.