komentar [3]
- Napisao Daniel na datum 01-02-2018 u 02:34:49
Hi! First of all, tks for this contribution!!! your work are awsome!
Have you ever tryed other single diff op amp like TL331? Why do you chose the LM211?
IP: 201.82.159.229
Ovaj projekt je nastao kao modifikacija prethodne jednokanalne verzije istog uređaja: jednokanalna induktivna petlja od prije 3 godine. Pored toga što ima dodatni kanal, u firmware-u je implementirano dosta novih opcija.
Napomena: Bitna napomena je da se program za mikrokontroler ne može trenutno skinuti sa stranice, ali vam mogu poslati isprogramiran mikrokontroler ukoliko želite da sebi napravite jedan (ili više) uređaja, po cijeni samog mikrokontrolera + troškovi dostave. Druga opcija je da naručite već isprogramiran mikrokontroler ovog linka. Svi ostali fajlovi se mogu skinuti klikom na crveno download dugme ispod članka.
Postoje dvije varijante PCB-a, jedna je samostalna verzija (PCB v1.2) sa DIP prekidačima, relejima i tasterima, i druga koja je digitalna verzija (PCB v1.3) i ona zahtjeva PC konekciju ili čak drugi mikrokontrolerski sistem da bi se izvršila konfiguracija radnih parametara. Ovdje ćemo se fokusirati na samostalnu verziju, jer su svi radni parametri identični za obje verzije.
UPDATE 2018-03-19: Programirani PIC mikrokontroler je dostupan za kupovinu ovdje.
UPDATE 2017-09-25: PCB je dostupna za kupovinu i samostalnu gradnju:
- PCB v1.2 (samostalna verzija) se može kupiti ovdje, spisak i raspored dijelova na pločici su ovdje.
- PCB v1.3 (digitalna verzija) se može kupiti ovdje, spisak i raspored dijelova na pločici su ovdje.
DLD PCB v1.2 (samostalna verzija)
DLD PCB v1.3 (digitalna verzija)
Specifikacije
Uputstvo za upotrebu i PC Configurator Software izvorni kod
Svi dokumenti se nalaze u ZIP arhivi za download (crveno download dugme ispod članka). Ali radi lakšeg downloada, uputstvo za PCB v1.2, FW v1 je takođe dostupno za download klikom na link ovdje (PDF), a za PCB v1.3, FW v1 je dostupno klikom na link ovdje (PDF, engleska verzija).
Uputstvo za PC Configurator se nalazi ovdje (PDF, engleska verzija) a izvorni kod je na GitHub-u ovdje.
Načini rada
Prikaz konektora i tastera za PCB v1.2
Hardver
Hardver se u mnogo toga razlikuje od prethodne jednokanalne verzije, ali u suštini je sve isto - radi se o brojaču impulsa koji dolaze na RA4/T0CKI pin, vrši se isto filtriranje i proračuni da bi se izvršila detekcija promjene frekvencije oscilovanja. Ovoga puta, to se radi dva puta za oba kanala neovisno.
Do sada sam viđao dvije izvedbe elektronike dvokanalne petlje; jedna je bila sa dva neovisna oscilatora koji su se uključivali/isključivali naizmjenično ili čak oba radila istovremeno, a druga varijanta je sa jednim oscilatorom gdje se petlje izmjenično "spajaju" na oscilator koristeći neku vrstu multipleksera. Ova druga izvedba mi je interesantnija i djeluje kao profesionalnija, pa sam se odlučio za nju.
Oscilator bez spojenih petlji
Bilo je poprilično zeznuto multipleksirati zavojnice na oscilator pa sam na kraju morao podignuti "masu" oscilatora na pola napona napajanja da bi mogao sa tranzistorima vršiti preklapanje. Prekidač koji vrši preklapanje su dva PNP tranzistora spojena paralelno ali u suprotnom smjeru (emiter prvog na kolektor drugog, i obratno) tako da jedan provodi kada je "pozitivna" poluperioda signala a drugi kada je "negativna". Pokušavao sam da ovo multipleksiranje riješim sa CD4066 ali mi nije išlo za rukom.
Multiplekser
Dizanje "mase" oscilatora i multipleksera na Vcc/2 je riješeno korištenjem TL431 2.5V regulatora referentnog napona jer je za ovu primjenu jako bitno imati stabilnu naponsku referencu. Ovdje sam takođe probao koristiti i Zener diodu koja je davala iste rezultate ali problem sa njom je temperaturna nestabilnost tako da ona nije dolazila u obzir u finalnoj verziji uređaja. Pošto smo već sada imali riješen problem multipleksiranja odlučio sam da na transformatoru dodam još jedan primar (ona strana transformatora koja je spojena na oscilator) koji bi služio za odabir alternativne frekvencije. To je značilo da je takođe potrebno dodati još jedan multiplekser da aktivira taj alternativni namotaj.
Odabir alternativne frekvencije
Na ovaj način umjesto dodatnog kondenzatora i tranzistora za njegovo "uklapanje" u oscilator, imamo dodatni namotaj na transformatoru i dva tranzistora za "uklapanje". Ovaj dizajn sam ustvari već ranije vidio na jednoj elektronici pa sam odlučio da ga iskopiram.
Kako je sada signal sa oscilatora pomjeren (podignut) za pola napona napajanja (Vcc/2) morao sam da koristim komparator koji bi donosio odluku kada je tačno signal prošao kroz "nulu" odnosno Vcc/2.
Signal sa oscilatora
Prvo sam odlučio da koristim interni komparator unutar PIC mikrokontrolera da vršim detekciju "nule" ali to se pokazalo kao loša ideja. Sve je ustvari funkcionisalo dobro dok nisam softverski podesio veću osjetljivost na uređaju i počeo ga detaljnije testirati. Kada god bi se upalila neka LE dioda ili relej, uređaj bi pobudalio i počeo da sam vrši detekciju, ili ukoliko je već bio u stanju detekcije dešavalo se da izvrši od-detekciju. Debugiranjem sam primjetio da se frekvencija oscilatora mijanjala promjenom opterećenja ali ustvari frekvencija oscilovanja se nije mijenjala nego se mijenjalo vrijeme kada je interni komparator donosio odluku. U ovoj aplikaciji tačno vrijeme donošenja odluke komparatora je krucijalno jer od toga zavisi vrijednost izmjerene frekvencije. Daljnjim istraživanjem sam došao do zaključka da je problem u naponu napajanja komparatora. Kada god se aktivira neki potrošač, na komparatoru se to reflektiralo kao smetnja a pošto nisam mogao filtrirati napon internog komparatora odnosno odvojiti ga od napona napajanja PIC-a i ostale elektronike, odlučio sam se za eksterni komparator LM211. Filtriranje napona za komparator je riješeno sa induktorom od 10uH zajedno sa elektrolitskim kondenzatorom. Takođe je veoma bitno dodati i kondenzatore koji će držati Vcc/2 tačku super-stabilnom.
Za iste potrebe filtriranja signala, dodao sam i LM78M05 linearni stabilizator napona da povećam stabilnost napona napajanja (Vcc) cijele elektronike. Sa step-down (buck) konvertera se sada napajaju samo releji i ovaj 5V stabilizator. Sva ostala elektronika se napaja iza 5V stabilizatora. To je urađeno da bi se dodatno dobilo na stabilnosti napona napajanja.
Napomena: Vjerovatno bi se sklop mogao optimizovati da ne koristi ovoliko kondenzatora, ali nisam htio da rizikujem. Takođe postoji mogućnost da nisam dobro filtrirao Vcc/2 liniju kada sam vršio testiranje sa internim komparatorom tako da je vrlo moguće da bi interni komparator i funkcionisao (ali ne planiram to ponovo testirati).
Filtriranje Vcc napona za komparator i oscilator
Na kraju, direktno spajanje izlaza iz komparatora na ulaz mikrokontroler-a nije bilo baš moguće jer dodavanje pull-up otpornika bi opet uvelo iste one smetnje koje smo pokušali da izbjegnemo u startu (spojili bi Vcc i filtrirani Vcc od komparatora). Zbog toga sam dodao jedan NPN tranzistor koji služi upravo da na neki način razdvoji ta dva napona. Možda bi ovdje najbolje bilo koristiti opto-kapler ali i obični NPN tranzistor radi jednako dobro a uz to zauzima manje prostora na štampanoj pločici.
Pored multipleksiranja dvije petlje, na uređaju se nalaze i dva prekidača, dva bar-graph-a i dva DIP prekidača sa po 8 pozicija. Oni su takođe multipleksirani istom brzinom kojom se multipleksiraju i petlje. Multipleksiranje DIP prekidača i tastera nije moguće vršiti bez dioda koje bi blokirale povrat signala. To automatski znači da za svaki prekidač sam morao da dodam po jednu diodu, a to nažalost znači da za DIP prekidače bi morali imati 16 dioda. Kako sam htio da izbjegnem stavljanje 16 dioda na pločicu uspio sam pronaći komponentu SRV05-4 u SOT23-6 pakovanju koja je ustvari "Low Capacitance TVS and Diode Array", odnosno zaštitne diode koje štite elektroniku od visokih napona koji se mogu indukovati u kablovima. U ovom uređaju sam te zaštitne diode ustvari koristio kao obične diode i pokazalo se da nema problema.
DIP prekidači i TVS diode
Transformatori koji su korišteni u ovom projektu su RM-5 ADSL Band Stop transformatori koji su premotani na otprilike 1:1 gdje sekundar ima srednji izvod (koji nije baš na sredini). Ovaj dodatni izvod na sekundaru je za odabir alternativne frekvencije o kojoj sam ranije pisao. Induktivitet transformatora je negdje oko 3.6mH za primar, 3.6mH (sekundar) i 3.55mH (sekundar na "izvodu"). Induktivitet ustvari nije kritičan, može se odabrati i približna vrijednost. Kako se mota (pravi) transformator možete pogledati na video snimku malo niže.
Making isolation transformers
Bitne razlike između samostalne verzije (PCB v1.2) i digitalne verzije (PCB v1.3) su:
Mjerenje brzine
Jedna veoma interesantna opcija uređaja je ta što može mjeriti brzine kretanja vozila u oba smjera i sa zadovoljavajućom tačnošću odnosno malom greškom.
U ovom načinu rada, uređaj se može koristiti kao dodatni modul nekog drugog uređaja da bi se prikazala brzina prolaska vozila na velikom LCD-u, ili čak samostalno na koga bi se spojila kamera koja bi slikala vozila koja prekorače podešenu brzinu kretanja.
Najveća greška mjerenja (u jedinici vremena) bi trebala da bude 2*brzina uzorkovanja signala. Princip mjerenja radi na slijedeći način: Dvije petlje su multipleksirane (period multipleksiranja odgovara jednom vremenu uzorkovanja). Kada vozilo aktivira bilo koju od dvije petlje, proces multipleksiranja se zaustavlja i samo je aktivna ta petlja koja je prva aktivirana odnosno "nagažena". Sada uređaj očekuje da vozilo napusti aktiviranu petlju. Kada je konačno napusti, uređaj započne mjerenje vremena i aktivira drugu petlju. Ovdje moramo uzeti u obzir to da vozilo sigurno nije napustilo prvu petlju na samom kraju perioda uzorkovanja, pa moramo dodati grešku u vidu trajanja jednog kompletnog vremena uzorkovanja. Kada sada vozilo napusti i drugu petlju, proces mjerenja vremena se zaustavlja. Ovdje takođe moramo dodati na već ranije akumuliranu grešku još jedno vrijeme uzorkovanja, pa na kraju imamo konačnu grešku od 2*brzina uzorkovanja.
Uticaj ove akumulirane greške kao i uticaj udaljenosti između petlji na tačnost mjerenja brzine se može vidjeti u propratnom software-u koji se zove PC Configurator Software, koji se nalazi u projektnim fajlovima. Sa ovim alatom korisnik može podesiti uređaj da ima najveću dozvoljenu grešku a ujedno i najveću potrebnu osjetljivost detekcije.
Firmware
Program za mikrokontroler je skoro u potpunosti napisan ispočetka da bi se omogućilo mjerenje frekvencije obje petlje kao i procesiranje izmjerenog signala. Program je moguće proširiti tako da podrži i više od dvije petlje (kanala). Zbog novih funkcionalnosti morao sam promjeniti prethodno korišteni mikrokontroler radi dodatne memorije koja je bila potrebna za novi program. Sada je korišten mikrokontroler PIC16F1939. Ukoliko bude interesa, program se može prebaciti na PIC18F seriju i napraviti bootloader koji bi omogućio izmjenu programa na već ugrađene uređaje.
Ako već niste ranije pročitali na koji način program u mikrokontroleru ustvari vrši mjerenja, to možete pročitati ovdje. Ova dvokanalna verzija radi u suštini na isti način ali sa očiglednim modifikacijama da bi se podržalo više od jedne petlje i rad sa multipleksiranim prekidačima i bar-graph-ovima. Ovdje ćemo izdvojiti samo neke od novih opcija koje su dodane u odnosu na prethodnu jednokanalnu verziju.
Detekcija zaustavljenih vozila je opcija kod koje je moguće da se aktivira relejni izlaz samo ukoliko je vozilo u potpunosti zaustavljeno na petlji. Ovo znači da vozila koja prolaze preko petlje neće aktivirati relejni izlaz ukoliko se ne zaustave.
Kompenzacija pozitivnog drifta (odnosno Kompenzacija drifta uz prisutnu detekciju) je opcija gdje uređaj prati spore promjene frekvencije čak i kada je detekcija prisutna. Ovo može djelovati malo rizično jer može prouzrokovati "zaglavljenu detekciju" ukoliko se podesi pogrešno. Ova opcija je korisna kada se vozila duže vrijeme zadržavaju na petlji (parkirana vozila) jer uređaj može da prati drift i vrši korekcije cijelo vrijeme. Ova opcija će da započne praćenje drifta kada je vozilo detektovano kao potpuno zaustavljeno iznad petlje. Čim se prekorači podešeni prag koji označava da se vozilo ponovo počelo kretati, proces se zaustavlja i biće zaustavljen sve dok se vozilo ponovo u potpunosti ne zaustavi. Prouzrokovanje "zaglavljene detekcije" se dešava kada metalni predmet (ali obično ne vozilo jer ono je kabasto i nije u mogućnosti da prouzrokuje jako malu promjenu) je prvo detektovano, zaustavljeno, i onda veoma sporo napusti petlju. Ovo će uređaju djelovati kao da je ustvari bila spora promjena (drift) a ne kretanje vozila. Srećom, vozila ne mogu da naprave tako malu i sporu promjenu pa ovo nije problem prilikom korištenja uređaja u realnim okolnostima.
Pametna PPC rekalibracija je ustvari ponovna implementacija kako PPC vrši rekalibraciju kada konačno vozilo napusti petlju. Novi način će izvršiti kalibraciju petlje samo kada nema promjene na petlji što će spriječiti da se petlja rekalibrira dok se vozilo kreće iznad nje.
Sigurnosna opcija će aktivirati releje (kod kojih je ova opcija omogućena) prilikom dovođenja napona uređaju (ili reseta) sve dok se ne izvrši inicijalna detekcija i od-detekcija. Ovo bi trebalo da spriječi da se barijera spusti na vozilo ukoliko je došlo do nestanka napajanja uređaja a vozilo se u tom trenutku nalazilo ispod barijere (rampe).
Reset na fabrička podešenja je korisna opcija ako se uređaj isprogramirao sa pogrešnim parametrima koristeći PC software. Ova proces se aktivira držanjem oba tastera za promjenu osjetljivosti i pritiskom na taster RESET.
DIP prekidači
DIP prekidači imaju drugačija značenja za svaki način rada uređaja, te su detaljno objašnjena u uputstuv za upotrebu koje se može skinuti sa projektnim fajlovima.
PC Configurator Software
U ovom softveru je moguće prilagoditi parametre uređaja za željeni način rada. Takoće je moguće od uređaja primati informacije u realnom vremenu o brzini vozila koja prolaze preko petlje kao i vidjeti njihov "magnetni potpis". Ovi signali se mogu i automatski snimati u fajlove na disku računara za daljnju analizu, ukoliko za tim ima potrebe.
PC Configurator Software je detaljno objašnjen u "pc configurator user manual" dokumentu (koji je trenutno na engleskom jeziku) koji se zajedno sa softverom može skinuti klikom na crveno download dugme na kraju ovog članka.
U tom istom fajlu se nalazi detaljan opis UART protokola kojeg uređaj koristi za komunikaciju, a koji može dobro doći ukoliko se uređaj bude spajao na drugi mikrokontrolerski sistem (parking aparat, display za prikaz brzine vozila i slično).
Montaža
Shema za sklapanje uredjaja, spisak dijelova i Gerber fajlovi za SMD šablon se nalaze u ZIP arhivi koja se može downloadovati klikom na crveno download dugme na kraju članka.
Montaža PCB v1.3 - digitalna verzija
Autor (poslao): Trax
Broj download-a: 1,188
Ocjena: (3.21, glasova 1566)
Datum: 01-09-2017
English version of this page: Dual Channel Inductive Loop Vehicle Detector
Tagovi: detector, ild, inductive, loop, pic, pic16, pic16f1939, vehicle. +dodaj svoj tag
Hi, yes, I tried internal comparator of PIC microcontroller and it worked but I had to separate
the power supply (I think it was the impedance problem actually). I used LM211 because I have
seen it in use for this kind of device and that was the reason for my choice.
IP: n/a
Hi! First of all, tks for this contribution!!! your work are awsome!
Have you ever tryed other single diff op amp like TL331? Why do you chose the LM211?
IP: 201.82.159.229
Hello Hani. You can use PCB v1.3 (digital version) with an arduino! It is smaller and cheaper
to build than PCB v1.2. Let me know if you need more help.
IP: n/a
hi my name hani
please help
i want to use induction loop detector by using arduino microcontroller to detect vehicle
parking in 15 minutes. is it possible with arduino? and what version matches? thanks for the
answer :):)
IP: 120.188.84.91
To možeš uraditi na forumu: Login stranica. Kada se ulogiraš, vrati se na ovu stranicu i uradi refresh.