/Projekti/Induktivna petlja za detekciju vozila v2.1

Detektor sa induktivnom petljom radi na principu detekcije promjene induktiviteta petlje a koristi za se detekciju prisutnosti/prolaska vozila preko petlje odnosno zavojnice koja je ugrađena u cestu. Obično se koristi kod: rampi/barijera, parking sistema, za automatizaciju semafora, brojanje i klasificiranje vozila, mjerenje brzine vozila, itd. Petlja - koja je obični namotaj žice - može biti naknadno ukopana (ugrađena) u cestu njenim rezanjem ili postavljena prije nego što se položi završni sloj asfalta.

Napravljene su dvije verzije ovog uređaja: v2.0 i v2.1. Verzija v2.0 je koristila TPS5405 naponski konverter što se pokazalo kao pogrešan izbor pa je zato napravljena novija verzija koja koristi LM2596. To je jedina razlika između v2.0 i v2.1.

UPDATE 25-10-2015: Štampane pločice su dostupne u prodaji na ovoj adresi: http://www.elecrow.com/inductive-loop-vehicle-detector-v21-pcb-board-p-1458.html

UPDATE 2016-07-04: Raspored komponenti na štampanoj pločici je ovdje: gornja strana, donja strana.

inductive loop detector schematics
Senzor Induktivne Petlje v2.1

Karakteristike uređaja

  • Tuning: Automatski
  • Tip detekcije: Prisustvo/Puls
  • Vrijeme prisutnosti: Podesivo u 4 stepena (osnovno: 11 min, 33 min, 55 min, beskonačno)
  • Trajanje pulsa: 100 ms / 500 ms
  • Filtriranje signala: Podesivo u 4 stepena (LOW, MED-LOW, MED-HI, HI)
  • Induktivnost petlje: 20 uH – 1000 uH
  • Frekventni opseg: 40 kHz – 140 kHz
  • Promjena frekvencije: 4 kombinacije (LOW, MED-LOW, MED-HI, HI)
  • Osjetljivost: 0.001 \% - 0.5\% digitalno u 8 koraka
  • Brzina detekcije: <10 ms (pri LOW stepenu filtriranja i frekvenciji od 40 kHz)
  • Startup vrijeme: ~ 8 sec
  • Napajanje: 7-40 V DC / 5-28 V AC
  • Potrošnja: ~ 0.035 A
  • Zaštita senzora: Galvanska izolacija petlje + zaštita od udara groma

inductive loop detector pinout
Pinout uređaja (napomena: slika je od verzije 2.0 ali je pinout isti)

Hardver
Glavna komponenta uređaja je Colpitts oscilator koji se sastoji od samo jednog tranzistora i nekoliko pasivnih komponenti. Frekvenciju oscilatora određuje broj namotaja petlje - induktivitet, i kondenzatori koji ga opterećuju - kapacitet. Frekventni opseg koji se koristi za ovakve detektore je u rasponu od 30 kHz do 150 kHz. Petlja je na oscilator spojena preko izolacionog transformatora odnosa 1:1 a na ulazu se nalaze i gas discharge tubes - male neonske cijevi koje bi u slučaju prenapona trebale da taj potencijal isprazne u Zemlju. Transformator je uzet iz starog ADSL modema i premotan za odnos 1:1. Broj namotaja žice nije kritičan. Na sekundaru transformatora se nalaze zener diode u back-to-back spoju koje štite elektroniku od prenapona koji se može prenijeti sa primara.

inductive loop oscillator schematics
Oscilator

Oscilator je preko NPN tranzistora spojen na RA4/T0CKI ulaz mikrokontrolera PIC16F877A koji mjeri frekvenciju oscilovanja i odlučuje da li je došlo do detekcije kada se frekvencija promjeni usljed promjene induktiviteta petlje. Na uređaju se nalazi i LED bargraph koji vizuelno prikazuje podešeni nivo osjetljivosti kao i trenutni nivo detekcije. Izvršna komponenta ovog senzora je relej na koji se spaja željeni aktuator ili neka druga elektronika.

inductive loop oscillator schematics mcu
Mikrokontroler (potpuna shema sklopa je dostupna za download na kraju članka)

Napajanje uređaja se vrši preko LM2596 SMPS step-down (buck) konvertera. Maksimalni ulazni napon ovog kola je 40V koji je pogodan ukoliko se uređaj napaja iz izmjeničnih ~24V, jer nakon ispravljanja grecovim spojem dobijemo napon od 34V. LM2596 može dati struju od 2A što je previše za ovaj uređaj, ali je ono odabrano zbog pristupačnosti i jednostavne kupovine preko interneta.

inductive loop detector power supply
Napajanje elektronike sa LM2596

Firmware
Kako se ovdje u suštini radi o mjerenju frekvencije (30-150 kHz) odnosno detekciji njene promjene potrebno je izabrati odgovarajući metod mjerenja da bi senzor radio brzo i pouzdano. Postoje dvije metode mjerenja: mjerenje frekvencije (direktna metoda) koristeći tzv. "gate time" i mjerenje perioda (inverzna metoda) koristeći princip brojanja pulseva.

Za ovaj uredjaj je odabran princip mjerenja perioda na način da se impulsi sa oscilatora dovode na RA4/T0CKI ulaz mikrokontrolera i na svaki preljev (overflow) TIMER0 brojača izvrši se čitanje slobodnog brojača TIMER1. Brojač TIMER1 je podešen kao slobodni brojač i njegova vrijednost se inkrementira taktom mikrokontrolera (Fosc/4). TIMER0 se podesi i preskalira tako da pri normalnom radu TIMER1 ne smije da prelije preko svog maksimuma (65535) nego se njegova vrijednost resetuje na 0 svaki put kada se desi preljev brojača TIMER0.

Nakon dovođenja napajanja oscilator zaosciluje a mikrokontroler izvrši početno mjerenje frekvencije i prikaže je blinkanjem žute LE-diode. Svaki treptaj LE diode predstavlja frekvenciju od 10kHz. Inicijalne postavke za brojač TIMER0 se postave ne: prescaler=1:2, reloader=0. (Reloader je vrijednost koja se učita u TIMER0 nakon svakog njegovog preljeva). Prescaler nam govori da će se vrijednost TIMER0 brojača povećati za 1 na svaka 2 impulsa sa oscilatora. To znači da će preljev uslijediti nakon 512 impulsa sa oscilatora a to dalje znači da sa frekvencijom mikrokontrolera od 12 MHz (tačnije 12/4 MHz) i pri frekvenciji oscilatora petlje od 30 kHz TIMER0 će uvijek preljevati kada vrijednost brojača TIMER1 bude 51200. Ukoliko izračunamo rezoluciju pri toj vrijednosti vidimo da ona iznosi 0,58 Hz što je odlično. Pri tim istim uslovima ali frekvenciji oscilatora petlje od 140 kHz vrijednost koju TIMER1 ima je 10971 a rezolucija je oko 12,7 Hz što je veoma loše.

Zaključujemo da bi bilo dobro kada bi se vrijednost brojača TIMER1 uvijek nalazila na oko 53000 a to se može podesiti sa preskalerom za TIMER0. Što se ne može podesiti sa preskalerom, može se pomoći reloader-om. To znači da kada mikrokontroler izvrši inicijalno mjerenje frekvencije, on pronađe najbolju vrijednost preskalera i reloadera tako da za bilo koju frekvenciju petlje vrijednost brojača TIMER1 bude na oko 53000 gdje ćemo imati apsolutno najbolju rezoluciju odnosno osjetljivost. Vrijednost od 53000 je odabrana jer je to sasvim dovoljno ispod maksimalno dozvoljene (65535) da bi uređaj detektovao i najveće promjene induktiviteta a da se ne desi preljev. Ukoliko se ipak desi preljev u toku rada uređaja, on će automatski da izvrši rekalibraciju i pronađe bolje vrijednosti za preskaler i reloader.

Ovom metodom smo postigli maksimalnu osjetljivost uređaja pri bilo kojoj frekvenciji petlje.

Nakon što se izvrši početna kalibracija, uređaj upamti trenutnu vrijednost brojača TIMER1 i nju koristi kao referencu koju konstantno upoređuje sa narednim mjerenjem. Ukoliko se detektuje promjena frekvencije koja prelazi podešeni nivo (nivo osjetljivosti) uređaj uključuje relej i prelazi u stanje detekcije. Kasnije kada se izmjerena frekvencija vrati na osnovnu referentnu vrijednost uređaj isključuje relej.

Tokom rada uređaj konstantno vrši korekciju osnovne naučene vrijednosti frekvencije oscilatora jer se ona mijenja usljed promjene temperature žičane petlje i temperature elektronike senzora.

DIP prekidači
Na senzoru se nalazi 10 DIP prekidača za podešavanje rada senzora. Kada je prekidač prebačen u
lijevu poziciju to znači da je isključen, a kada je prebačen u desnu poziciju znači da je uključen.
Nakon bilo kakve promjene stanja DIP prekidača, potrebno je senzor resetovati.

dipswitches
DIP prekidači

DIP 1 Filtriranje signala (B)
DIP 2 Filtriranje signala (A)
DIP 3 Trajanje prisutnosti vozila (B)
DIP 4 Trajanje prisutnosti vozila (A)
DIP 5 ASB (uključeno, isključeno)
DIP 6 Trajanje pulsa releja (uključeno = 500 ms, isključeno = 100 ms)
DIP 7 Tip pulsiranja releja (uključeno = pri odlasku sa petlje, isključeno = pri dolasku na petlju)
DIP 8 Rad releja (uključeno = na prisustvo, isključeno = puls)
DIP 9 Promjena frekvencije (B)
DIP 0 Promjena frekvencije (A)

 

Filtriranje signala
Uređaj posjeduje 2 DIP prekidača sa kojim se mogu odabrati 4 stepena filtriranja: DIP 1 i DIP 2. Stepeni filtriranja su detaljno objašnjeni u uputstvu koje se može skinitu u PDF formatu.

Trajanje prisutnosti vozila
Kada je ova opcija (DIP 3 i DIP 4) podešena na beskonačno, stanje detekcije u senzoru će biti „označeno“ sve dok se vozilo nalazi iznad petlje. Nedostatak ovakvog podešenja je taj što senzor ne prati frekventni drift i ne vrši kompenzaciju sve dok je vozilo prisutno iznad petlje. U ekstremnim slučajevima to može prouzrokovati ili lažnu detekciju kada vozilo konačno napusti petlju (u ovom slučaju je potrebno resetovati uređaj ručno), ili nešto sporiji odziv do naredne detekcije dok se konačno ne izvrši pozitivna kompenzacija frekventnog drifta.

ASB – automatic sensitivity boost
DIP 5 – Ova opcija povećava osjetljivost senzora na maksimalnu kada se izvrši inicijalna detekcija. Ovo je poželjno kod detekcije kamiona i vozila sa prikolicom, a kada nije već izabrana maksimalna osjetljivost. Ako je na senzoru već bila podešena maksimalna osjetljivost onda ova opcija nema efekta.

Trajanje pulsa releja
DIP 6 – Ukoliko je izabran „pulsni“ režim rada releja, sa ovom opcijom se može podesiti dužina trajanja tog pulsa. Kada je prekidač na položaju uključeno onda puls traje ~ 500 ms, a kada je na položaju isključeno onda traje ~ 100 ms.

Tip pulsiranja releja
DIP 7 – Ukoliko je izabran „pulsni“ režim rada releja, sa ovom opcijom se može podesiti da li će puls biti prisutan prilikom detekcije ili prilikom od-detekcije. Kada je prekidač na položaju uključeno onda se puls dobija pri odlasku vozila sa petlje a kada je prekidač na položaju isključeno puls se dobija pri dolasku vozila na petlju.

Rad releja
DIP 8 – Sa ovim prekidačem se bira režim rada releja. Ukoliko je prekidač na položaju isključeno onda će relej biti aktiviran sve dok je detekcija prisutna, a ako je prekidač na položaju uključeno relej će davati samo puls kako je detaljnije podešeno sa prekidačima DIP 6 i DIP 7.

Promjena frekvencije
Frekvenciju oscilatora u senzoru definiše prije svega geometrija žičane petlje i broj njenih namotaja. Da bi se frekvencija malo promjenila u svrhu izbjegavanja cross-talk-a sa susjednim senzorima tu su 2 DIP prekidača sa kojima se može promjeniti frekvencija oscilovanja petlje. Frekvencija oscilatora se prikazuje na žutoj LE diodi nakon reseta uređaja. Dioda će da blinka u koracima od 10 kHz. Primjer: ako dioda blinkne 7 puta, znači da je frekvencija petlje od 70 kHz do 79 kHz, ili ako blinkne 10 puta to znači da je frekvencija 100 kHz (odnosno negdje u rasponu od 100 kHz do 109 kHz).
Nakon promjene frekvencije sa DIP prekidačima, senzor je potrebno resetovati.

PC konfigurator
Svi radni parametri uređaja se mogu detaljno podesiti koristeći aplikaciju za konfigurisanje senzora. Kablo za spajanje senzora na PC je USB<->UART(TTL) sa posebnim tro-pinskim konektorom:

inductive loop detector programming port
Port za programiranje

Objašnjenje parametara

Osjetljivost
U senzoru postoji 8 nivoa osjetljivosti. Frekvencija oscilovanja internog oscilatora je predstavljena brojevima od 1 do 255. Kada se metalni objekt približi petlji on promjeni induktivitet te petlje što direktno mijenja frekvenciju oscilovanja odnosno „broj“ kojim je ta frekvencija predstavljena unutar mikrokontrolera. Manji metalni objekti (npr. biciklo) izvrše manju promjenu tog broja dok veći objekti (npr. vozila) izvrše veću promjenu. Ovdje postoje dva praga: prag za detekciju što predstavlja broj koji je potreban da metalni objekt promjeni u mikrokontroleru da bi se izvršila detekcija, i prag za od-detekciju što predstavlja donju granicu tog broja koji je potreban senzoru da bi on zadržao detekciju. Prag za od-detekciju je uvijek manji od praga za detekciju i on može biti za pola manji od praga za detekciju kod manjih brojeva, ili za trećinu manji kod većih brojeva – kao što se vidi na slici ispod. Na slici se vidi da će selektovani nivo osjetljivosti (Osjetljivost 1) detektovati samo velike metalne objekte iznad petlje (jer je potrebno da se „broj“ u mikrokontroleru promjeni za 200), dok će osjetljivost 8 (zadnji u listi) vrlo lako izvršiti detekciju, pa čak i bicikala koji prolaze preko petlje.

inductive loop detector programming
Osjetljivost

Uprogramirane vrijednosti za osjetljivosti ostaju u memoriji uređaja (EEPROM memorija) i mogu se odabirati pritiskom na dugme za promjenu osjetljivosti dok uređaj radi.

Filtriranje
Filtriranje je veoma bitno za pouzdan rad senzora. Postoje 4 nivoa filtriranja signala koji se mogu odabirati sa DIP prekidačima. Parametri koji određuju način filtriranja su: računanje srednje vrijednosti sa kojim je moguće podesiti koliko uzastopnih mjerenja će proizvesti jedno mjerenje što direktno utiče na brzinu detekcije – veći broj=sporija detekcija ali veća stabilnost, manji broj=brža detekcija ali manja stabilnost; filter detekcije određuje koliko uzastopnih internih detekcija je potrebno da bi se zvanično označila detekcija metalnog objekta – ovo je drugi stepen filtriranja signala da bi se izbjegle lažne detekcije; brzina pozitivne kompenzacije drifta je veoma bitan parametar filtriranja koji određuje kojom brzinom će se vršiti kompenzacija usljed promjene temperature ambijenta koja direktno utiče na frekvenciju oscilatora. Pozitivna kompenzacija drifta je kompenzacija promjene frekvencije oscilatora koja ne može samostalno dovesti do detekcije (promjena frekvencije u kontra smjeru od smjera detekcije) ali ovaj broj označava koliko je potrebno vremena da se uređaj re-kalibriše u toku rada kada se metalni objekt odmakne od petlje. Vrijeme za koje se postepeno izvrši kompenzacija odgovara izabranom broju pomnoženim sa ~17 ms. Ukoliko se ovdje stavi veliki broj, to će se senzor sporije oporaviti kada se od njega odmakne neki metalni objekt koji je prethodno doveo do negativne kompenzacije. Zadnji, ali najbitniji parametar filtriranja je brzina negativne kompenzacije drifta sa kojim se podešava brzina kojom će senzor kompenzirati promjenu frekvencije koja direktno utiče na detekciju (promjena frekvencije direktno u smjeru detekcije). Što se ovdje stavi manji broj, to će senzor brže vršiti kompenzaciju drifta. Bitno je napomenuti da ukoliko se ovdje stavi manji broj to znači da vozilo mora doći iznad petlje i prouzrokovati promjenu (u zavisnosti od podešene osjetljivosti) brže nego što će senzor izvršiti kompenzaciju za tom promjenom. Ukoliko se ovdje stavi veći broj, to znači da će senzor vršiti kompenzaciju sporije odnosno vozila će moći dolaziti na petlju vrlo vrlo sporo i da će se detekcija dolazećeg vozila vršiti uspješno ali time se rizikuju lažne detekcije ukoliko je senzor instaliran na mjestima gdje struji vazduh koji bi mogao zagrijavati/hladiti elektroniku senzora.

inductive loop detector programming
Filtriranje

Postoje 4 nivoa filtriranja koja se mogu programirati u uređaj i kasnije odabirati sa odgovarajućim DIP prekidačima.

PPC (permanent presence canceller) – trajanje prisutnosti vozila
Postoje 3 vrijednosti koje se mogu unijeti za maksimalno trajanje prisutnosti vozila dok je četvrta vrijednost beskonačno koja se dobije sa odgovarajućom kombinacijom DIP prekidača. Objašnjenje ovog parametra se nalazi u poglavlju za DIP podešenja „Trajanje prisutnosti vozila“ u uputstvu koje se može skinuti u PDF formatu.

inductive loop detector programming
PPC

Napomena: Nacrt štampane pločice za ovaj projekat nije dostupan! Svi ostali fajlovi potrebni za izradu projekta (shema i program za mikrokontroler) su dostupni za download klikom na link ispod.

Video senzora u upotrebi (na snimcima je v2.0)


Rad uređaja na stolu


Rad uređaja u realnim uslovima

Fotografije uređaja (verzija v2.0)

img1

img2

img3

img4

img5

img6

img7

img8

img9

Autor (poslao): Trax

Broj download-a: 3,784

Ocjena: (3.03, glasova 3342)

Glasaj:

Datum: 19-02-2014

English version of this page: Inductive Loop Vehicle Detector v2.1

843_inductive_loop_detector.rar

Bookmark and Share Komentari (65)

komentar [65]

Hi. @Trax - is the source code for the PIC available please? Thank you.
IP: n/a

komentar [64]

@Trax - is the source code for the PIC available please? Thank you.
IP: 81.174.235.129

komentar [63]

OK, I will send you email now.
IP: n/a

komentar [62]

munna3494p@gmail.com this is my mail id. juts ping me on this. i will reply with the code
IP: n/a

komentar [61]

provide me ur mail @trax
IP: n/a

komentar [60]

I will be glad to help you. Can you share your code on forum, or to my email?
IP: n/a

komentar [59]

so far i have followed you what you have done. i am making a loop detector based colpitts oscillator. also programmed for change in frequency to trigger relay for open and close command. but i am not able to change the sensitivity and i am not able to control the frequency coming to microcontroller. so i want a reference in coding from your project. i am doing the coding in embedded. and i am using arduino promini instead of pic. so can u please share the codes that u have done for the project. i am a student and doing engineering.
IP: n/a

komentar [58]

Hi Munna, can you share what you made so far? Maybe I can help you that way.
IP: n/a

komentar [57]

hey @trax, i have sign up also. plz share codes for reference.
IP: n/a

komentar [56]

waiting for your response trax for all codes.
IP: 111.91.53.214


Stranica komentara: 1234567>


dodaj komentar

ime

e-mail (neće biti objavljen)

web

Koliko je = takođe dodaj slovo "a" na kraj rezultata! Npr.: 7a

Ulogiraj se!

To možeš uraditi na forumu: Login stranica. Kada se ulogiraš, vrati se na ovu stranicu i uradi refresh.

prijatelji sajta

sponzorirani linkovi

reklame