"Conta cose" con HC-SR04

Salve!
Desidero semplicemente contare cose, nel caso autovetture, per un tempo predeterminto.
Potrei farlo con una piccola fotocamera e poi ripassare tutto usando un contatore meccanico o facendo sbarrette su carta; ma non va bene, duplico il tempo per ogni rilevazione. Una noia mortale, reiterata più volte. Troppo vecchio.

Non potendo stendere cavi per strada, ne' usare fotocellule ne' o altri aggeggi di prossimità (credo) ho pensato ad un data logger ed al sensore ultrasuoni HC-SR04. Quest'ultimo (datasheet) pare leggere da 2cm a 4 mt. A me serve un corridoio utile distante tra i 2mt e i 3 mt dal sensore (ovvero che abbia un'eco di ritorno dai 3 mt)
Se qualcuno puo' escludere che in pratica l'HC-SR04 abbia una echo utile a tre mt, metto il cuore in pace risparmiandomi tentativi inutili in partenza.
Se poi altri hanno realizzato un "conta vetture" (in un unica direzione) semplice, con altro sensore una dritta mi farebbe piacere.

Per evitare fraintendimenti non ho nessuna intenzione di reinventare l'autovelox lillipuziano.
Buon fine settimana,

Zen_lento :slight_smile:

Ciao.
Non sono il più indicato per darti suggerimenti su questo progetto, ma una cosa te la chiedo:
ti interessa un sistema "reale" o una simulazione in scala ridotta?
Credo che per realizzare qualcosa di realistico servano sensori più "seri" di un HC-SR04...
Inoltre considera che nel cono di rilevazione del sensore ci sono molti altri oggetti oltre alle auto che possono essere visti... quindi rischi di avere un conteggio falsato...

Grazie Fratt.
E' una realizzazione limitata , per apprendere qualcosa sui microcontrollori, ovviamente non è nè commerciale ne' ha pretese "legali".
E' pensata per qualcosa di circoscritto e io accetto nel caso un errore di conteggio del 5%. Quindi sensori precisissimi non sono contemplati.

Il sensore potrebbe andare bene se arriva ai metri indicati dal datasheet.
Quel che dici sul cono di rilevazione è verissimo, ma sicome misura anche distanze io limiterei le rilevazioni valide ad un corridoio compreso tra 3 mt e 1,50. Nel caso ad es. escludo velocipedi e moto.
In via teorica un punto che viaggia a 70-120 km orari con moto ortogonale rispetto al sensore (oddio bisogna invertire il soggetto:)) percorre tra 95 e 160 cm ogni 50 millisecondi, quindi posso definire il mio oggetto come "cosa autovettura" in due o 3 rilevazioni (il DS dice che si evitano echi parassitari dopo 50 ms se non ho capito male). La direzione ovviamente è unica e le code non sono contemplate dalla natura dei luoghi dove effettuare le rilevazioni.
E' solo un abbozzo di soluzione per miei interessi diciamo. Ma se qualcuno mi assicura che il sensore non arriva a leggere l'eco a 3 mt, inutile congetturare o procedere, ovviamente qualche altro problemino ci sta, ma senza prerequisiti inutile insistere.

Grazie per l'attenzione e per lo stimolo,
Zen lento :slight_smile:

Non ho mai usato un sensore ad ultrasuoni per rilevare oggetti in movimento così rapido come delle autovetture, quindi non so dirti con certezza.

La prima cosa però che dico con certezza è lascia perdere gli SR04 e prendi solo SRF05. I primi sono molto spesso difettosi e quindi inaffidabili e per quelli più che "sensori precisissimi non sono contemplati", si parla di "sensori un minimo affidabili" :slight_smile:

La seconda cosa che volevo dirti è: costano pochi Euro, prendine uno o due (SRF05 ovviamente) e fai le tue prove preliminari, no?

Grazie docdoc, accantonero' gli SR04 a favore degli SRF05 che mi dici siano più affidabili, l'unica cosa che non ho capito è se, per tua esperienza, coprono i 3 metri.
Se hanno questa "portata" allora certamente proverò.

Una curiosità senza obbligo di risposta: che oggetti "lenti" rilevavi nel tuo uso del sensore ad ultrasuoni?

Grazie,
Zen_lento:)

Zen_lento:
Grazie docdoc, accantonero' gli SR04 a favore degli SRF05 che mi dici siano più affidabili, l'unica cosa che non ho capito è se, per tua esperienza, coprono i 3 metri.

Fino a 3 metri l'SRF05 li copre, anche 4 e qualcosa, ma ovviamente bisogna ricordare che la precisione di questi affari economici è quella che è, anche perché si basano sulla riflessione degli ultrasuoni quindi considerare che:

  1. la distanza massima dipende anche dal timeout che imposti nella libreria per il rilevamento delle distanze (il massimo che avevo provato ad impostare era 45000 uS che corrispondono a circa 7 metri, non li raggiungerà mai, ma tant'è, impostare un timeout inferiore è sufficiente per evitare di aspettare inutilmente)

  2. si determina la distanza dell'oggetto più vicino, non si può escludere che le riflessioni dell'ambiente non determinino un segnale non corretto (ma questo è mitigato dall'assumere un ambiente controllato e/o con non più di un "target");

  3. più un oggetto è lontano minore è la precisione della distanza calcolata in quanto l'eco sarà sempre più debole e soggetta ad "echi" anomali;

  4. non verrà rilevato un ostacolo inclinato più di 45 gradi rispetto al fascio, o uno che riflette poco i suoni (es. superfici molto ruvide come una spugna).

Se queste condizioni sono valide per l'applicazione in oggetto ok, altrimenti va trovato un altro metodo.

Una curiosità senza obbligo di risposta: che oggetti "lenti" rilevavi nel tuo uso del sensore ad ultrasuoni?

L'ho usato come misuratore del livello di acqua in un serbatoio, in un piccolo rover semovente, ed in un braccio robotico (per il riconoscimento della posizione dell'oggetto da "prendere"), non ho quindi mai provato con oggetti che si muovono in modo relativamente veloce.

Per questi quindi, se lo spostamento fosse trasversale bisognerebbe vedere se nel cono d'azione (ossia nell'area attiva del sensore) l'oggetto resta per un tempo sufficiente e se il ping viene emesso proprio quando questo passa nell'area attiva. In tal caso se si conosce la velocità massima (o almeno media) del target si potrebbero implementare due o tre sensori opportunamente spaziati e "sperare" che almeno uno dia un segnale. Se la velocità fosse sufficientemente bassa si potrebbero usare due sensori per determinare direzione e velocità del target.

Se lo spostamento fosse radiale o comunque ad un angolo elevato rispetto alla trasversale potrebbe funzionare, a patto che, anche qui, il target sia entro l'area attiva per un tempo sufficiente (non so se poi per certe velocità le cose si complicherebbero un poco per via di effetto doppler dell'eco di ritorno).

Di più 'nin'zò. :slight_smile:

Grazie docdoc, sei stato tanto cortese quanto chiaro. E sei stato chiarissimo.
L'unica cosa che mi lascia perplesso è la gamma dei prezzi di questo sensore HC-FSR05
https://www.amazon.it/gp/search/ref=sr_gnr_fkmr0?rh=i%3Aaps%2Ck%3Asrf05&keywords=srf05&ie=UTF8&qid=1512132835
Per esperienza so che una simile variabilità è più commerciale che costruttiva, ma nn conosco nulla di elettronica.
Chiunque abbia una dritta l'accetto ben volentieri.
Dopo il tuo intervento mi si è accesa qualche speranza e credo che il gioco valga la candela, ovvero ho qualche probabilità per quanto scarsa
di arrivare da qualche parte.

In linea generale:
a- operativamente definisco come "ostacolo automobile" un qualcosa che mi da ritorno con almeno 2 ping (3 sarebbe meglio) consecutivi e che ha una distanza dell'oggetto
compresa tra 2m e 3,5mt (considero una sola corsia), fuori dal range considero tutto come "rumore" da non conteggiare;
b- il sensore dovrebbe essere posizionato ad una altezza compresa tra 45/ 60 cm da terra e messo in modo ortogonale (9o gradi) rispetto all'oggetto atteso
Parallelamente alla direzione del moto; effetti doppler non ce n'è, credo. Il cono delle onde così dovrebbe colpire solo l'ostacolo (15° a 3,5 m coprono circa 90 cm),
Senza alcun rimbalzo di echi tra terreno e ostacolo
c- la distanza temporale tra un ping e l'altro dovrebbe essere di 30 millisecondi, la cosa è teoricamente possibile e accettabile per una velocità del mezzo che marcia da tra 70 e 120 orari dovendo rilevare consecutivamente ostacoli lunghi da 2,4 metri in su. Con questi limiti (distanza e n. ping)spero di eliminare
motociclette e biciclette. Dopo ogni conteggio positivo posso lasciare un ritardo, gli oggetti in questione non sono n' in coda ne' si possono sorpassare per definizione. Rammento che ho una tolleranza del +/-5% sul conteggio.
Poi ci stanno altre questioni, ma per il momento credo sia sufficiente.

Passando alle prove pratiche che devo eseguire:
1- prima testero' indoor la precisione del sensore a 3,5 metri, per determinare la sicura tolleranza da applicare in % .
2 - poi, se l'esito è favorevole e accettabile, farò sempre in regime controllato, una prova per verificare se è possibile rilevare un oggetto (es. un'asse di legno) posto in un intervallo casuale tra 50 e 80 cm dal sensore, eliminando tutto il resto come non pertinente (quindi i ritorni di eco parassiti);
3- infine, se il punto 2 ha esito positivo, allora muovero' la mia asse per simulare se Arduino è in grado di rilevare 2 ping consecutivi per un oggetto in movimento relativamente veloce.
Son tutte cose che non so valutare a priori e che devo verificare. In teoria dovrebbe funzionare, ma solo in teoria.
Insomma, mi impegno e aggiusto per gradi. Odio incaponirmi e lavorare di più per ottenere di meno

A dirla tutta , non sarà una impresa facile: colpa della canizie e della esperienza zero in elettronica e programmazione in simil C.
Fortunatamente l'ombra di Sansone mi da una mano: non sono calvo e un po' di forza è con me :))
Grazie ancora docdoc. Se arrivo da qualche parte, con la dovuta lentezza, farò sapere o riferirò, e in caso di dubbi domanderò.
Se ci sono altre dritte o critiche o perplessità fatemi sapere, non ho che da imparare.

Buon fine settimana
Zen_lento :slight_smile:

Zen_lento:
L'unica cosa che mi lascia perplesso è la gamma dei prezzi di questo sensore HC-FSR05
Per esperienza so che una simile variabilità è più commerciale che costruttiva, ma nn conosco nulla di elettronica.

In molti casi i pezzi molto economici li spediscono dalla Cina quindi ci mettono parecchio ad arrivare. Va bene per risparmiare e se uno non ha fretta.
In genere io uso eBay più che Amazon, e preferisco prendere da rivenditori italiani (o al massimo europei se proprio quella cosa non viene venduta in Italia), puoi fare una ricerca specificando che il luogo dove si trova l'oggetto deve essere in Italia.

Comunque sia, l'SRF05 costa comunque pochi Euro, non c'è bisogno di andare in Cina, prendi ebay.it e cerca "SRF05", imposta il filtro per i venditori italiani ed ottieni ad esempio QUESTO, viene 2.40€ più 1.99 di spedizione (a quel punto per non sprecare tanto in spedizione vedo cos'altro vende quel venditore e ne approfitto per accorpare un'unica spedizione e prendere altri componenti che mi potrebbero essere utili).

Per Amazon la cosa è più difficile da capire, devi avere un poco di pratica: ad esempio uno di quelli a prezzo più basso (1.83€) è venduto e spedito da "mceka", se vai a vedere i dati del venditore puoi notare che la sede è:

qingyangqu guanghuacunnanjie
50hao3dong 15ceng2hao
chengdu
sichuan
610072
CN

Per cui... :smiley: ecco perché costa così poco, ma anche perché la consegna è prevista a Gennaio :wink:

Altrimenti se pensi di usarne più di uno, quelle offerte da 3 a 10 Euro convengono (se hai Prime).

a- operativamente definisco come "ostacolo automobile" un qualcosa che mi da ritorno con almeno 2 ping (3 sarebbe meglio) consecutivi e che ha una distanza dell'oggetto
compresa tra 2m e 3,5mt (considero una sola corsia), fuori dal range considero tutto come "rumore" da non conteggiare;
c- la distanza temporale tra un ping e l'altro dovrebbe essere di 30 millisecondi, la cosa è teoricamente

No, mi spiace, se leggi le specifiche di quei sensori, non possono emettere impulsi sonar a meno di 50mS uno dall'altro, per cui diciamo che potrai fare 10 rilevamento al secondo (1 ogni decimo di secondo per avere un poco di affidabilità in più).

Quindi se parli di un'automobile, e vuoi avere almeno 2 ping, devi farti due conti perché da specifiche dell'SRF05 (le hai lette?) il cono dell'SRF05 è ampio al massimo +/-30° rispetto alla normale, quindi ad una distanza di 3mt il beam è ampio poco meno di 3mt.
Quindi se vuoi 2 ping "sicuri" all'interno dei 3 metri del rilevamento ti servono almeno 3 decimi di secondo. Percorrere 3m in 3 decimi di secondo significa 10m/s, il che significa che con un solo rilevatore non puoi rilevare efficientemente nessuna automobile che viaggi a più di 36 km/h.
Se questo è sufficiente, ok, altrimenti dovresti accoppiare più sensori lungo la linea della carreggiata e "interpolare" i segnali (dando per scontato che passi sempre e solo un veicolo per volta e non ci siano altri veicoli a disturbare).

Purtroppo al posto tuo prenderei almeno un paio di SRF05 e farei qualche prova come hai accennato, e vedere "sul campo" come si comporta, per poi decidere come debba essere il primo prototipo, sul quale comunque ci sarà da lavorare per calibrare bene le cose.

Ciao!

Gli SRH/SRF da pochi Euro si comportano malissimo con gli oggetti in movimento veloce, già pochi metri al secondo bastano per ottenere letture totalmente errate o non ottenerle proprio, inoltre non vanno bene per l'uso in esterno, vanno in avaria in tempi brevi causa sporcizia e umidità.

Grazie docdoc ... sei pure paziente! :slight_smile:
E grazie anche ad astrobeed

Enno' che non ho letto bene! :o

"L'SRF05 può essere attivato alla velocità di 50 mS o 20 volte al secondo. È necessario attendere 50 ms prima del trigger successivo, anche se l'SRF05 rileva un oggetto vicino e l'impulso eco è più corto. Questo per garantire che il "beep" ad ultrasuoni si sia attenuato e non causerà un falso eco sulla prossima gamma.

Praticamente ho dimezzato il tempo tra un ping e l'altro...
L'obiezione sul fascio a questo punto è inifluente.
A 36 km/h (la velocità di Mennea) e con un solo ping cade temo completamente il ragionamento della relativa semplicità.
La vedo dura e complicata per me usare 2 sensori. E ovviamente spendere troppo per un sensore più affidabile. Il gioco non varrebbe la candela.

Mi dedichèro' ad altro: sensore di prossimità IR per comandare una vecchia Reflex in automatico (senza WIFI).
Cmq faro' le prove indoor del sensore ad ultrasuoni, tanto per impratichirmi nella programmazione.

Ari Buon fine settimana e grazie a tutti
Zen_lento :slight_smile:

PS: A dire il vero io compro sempre da Amazon, mai da Ebay. E non ho mai comprato sensori :wink:

Ed usare invece qualcosa di questo tipo, che essendo a riflessione non ha bisogno di posizionare la fotocellula dall'altra parte, ma basta un catarifrangente ?

Etemenanki:
Ed usare invece qualcosa di questo tipo, che essendo a riflessione non ha bisogno di posizionare la fotocellula dall'altra parte, ma basta un catarifrangente ?

Grazie Etemenanki per la segnalazione, pensavo esistesse una fotocellula del genere (si dice a riflessione??), ma ci ragionavo su su per un altro uso. :slight_smile: Esiste e a prezzo decente e quindi potrebbe venirmi utile.
Per un "conta cose" probabilmente puo' anche andar bene; non credo pero' sia indicata per l'applicazione "conta vetture": infatti il mio terreno operativo contempla una carreggiata a due corsie e direzioni (dove io pensavo di filtrare una sola corsia e direzione ). Questo rele' che è sicuramente preciso e reattivo credo possa funzionare invece per una carreggiata con unica corsia di transito (un senso unico, per intenderci).
Peccato, la Omron è anche un marchio di garanzia, per quel che rammento del passato.

Ciao
Zen_lento :slight_smile:

PS: mi chiedevo en passant, ma i segnalatori di velocità alle entrate di alcuni Comuni, non li useranno anche per conteggiare i flussi? Boh

Per contare in un senso solo te ne servono due, posizionate diciamo a circa un metro l'una dall'altra ... quando si attiva prima la uno e poi la due, hai il conteggio corretto, quando l'ordine e' inverso non conti ... inoltre se posizionate ad almeno un metro, puoi escludere i pedoni, dato che essendo piu "corti" (:D) di un'automobile, prima di attivare la seconda avranno gia passato la prima ... :wink:

Pero' in caso di transito simultaneo sulle due corsie non c'e' sensore che tenga, devi usare le bobine sotto l'asfalto ...

I sensori di velocita' sono dei semplici sistemi ad infrarossi che si basano sul "tempo di volo" di impulsi molto brevi, ma hanno un diametro del fascio di misura troppo largo per fare da contatore decente, darebbero troppi falsi errori ...

Ormai mi sono convinto che la mia era una soluzione ingenua. Ci vogliono due rilevazioni per gli strumenti esistenti, quale sia il modo di rilevare e il modo più preciso credo passa " sul" o “sotto il manto stradale” (in pratica si puo’ rilevare 2 passaggi di ruote, e passo auto o qualcosa del genere). Convengo con Etemenanki e altri: soluzioni fuori dalla mia portata pratica e un po’ troppo “vistose” nel caso.

Giusto per accademia e un po’ OT, chi è interessato alla analisi di flussi di traffico seriamente (sistematicamente), puo’ dare un’occhiata a questo sito: http://mobilita.regione.emilia-romagna.it/strade/sezioni/rilevazione-dei-flussi-di-traffico-1
e nella stessa pagina vedrà anche i dati resi pubblici accedendo al portale regionale.

Un analogo lavoro, per quel che ne so, sta per essere effettuato dalla Regione Piemonte, mentre le città hanno loro sistemi di rilevazione per la necessità del governo quotidiano della viabilità… le autostrade hanno il tiket.
Una cosa che mi ha colpito è un sistema misto (sensore e camera) dove si ha un riconoscimento “facciale” del veicolo, che viene taggato e associato ad una base dati remota di autoveicoli.
(credo sia una variante di autovelox). Purtroppo non mi sono annotato il link.

A me uno scatolino semplice sarebbe servito per stimare le presenze in entrata di una vasta area geografica nei periodi pre festivi, e i deflussi mattutini per motivi di lavoro negli altri.
La cosa più semplice per me (poco divertente e noiosa) resta quindi una telecamera cinese da 50 euro
Cmq Arduino è anche divertente.

Grazie a tutti, i nuovi argomenti metteranno questo personale insuccesso nella sua naturale posizione.

Buon fine settimana,
Zen_lento :slight_smile: