Digilent je nedavno predstavio MCC DAQ za Raspberri PI za precizno merenje napona, korišćenje termoparova i IEPE (piezoelektrični merači) merenje, plus dodatni analogni i digitalni I/O. Dizajnirani za aplikacije za testiranje i merenje koje su u skladu sa Raspberri Pi HAT standardom, MCC DAQ Hats omogućavaju prikupljanje podataka pri čemu dimenziono ostaju u malom formatu, i na sve to se mogu nadograđivati. Aplikacija za MCC 118 Voltage Measurement DAQ HAT i Raspberri Pi pokazuje kako se očitava linearni izlaz sa senzora magnetnog polja.

Hardverske komponente

  • Raspberry Pi 4 Model B 1gb, 2gb, 4gb ili 8gb RAM
  • MCC 118 Voltage Measurement DAQ HAT
  • AD22151 senzor magnetnog polja sa linernim izlazom
  • 0.1uF kondenzator
  • Otpornici: R1 = 10k, R2 = 2,2k i R3 = 100k
  • Bredbord ploča i komplet konektora

Softver

Podešavanje softvera
Da biste koristili MCC DAQ 118 Hat sa Raspberry Pi-om, prvo što treba da uradite je da instalirate biblioteke koje je obezbedio proizvođač. Ovo su koraci:

1. Otvaranje prozora terminala, ako koristite grafički interfejs i ažurirate listu paketa:

2. Opcionalno: ažuriranje instaliranih paketa i ponovno pokretanje sistema:

3. Ako nije instaliran, instalirajte git:

4. Preuzmite paket koji vam je proizvođač ponudio u vaš korisnički direktorijum sa git-a:

5. Instalirajte biblioteku. Instalator će vas pitati da li želite da instalirate i podršku za Python 2 i Python 3.

Ako želite da izvršite ispravku firmvera ili da pročitate više informacija o MCC 118 možete posetiti online dokumentaciju MCC DAQ HAT biblioteke.

Podešavanje hardvera
Za ovaj projekat biće nam potrebne neke komponente pre svega Raspberry Pi i MCC 118. Da bi smo kreirali senzor magnetnog polja, biće nam potrebni: AD22151 (Senzor magnetnog polja), tri otpornika koje ćemo kasnije specificirati, kondenzator od 0,1μF, bredbord i par žica. Da biste započeli ovaj projekat, koristiće se prva konfiguracija koju proizvođač nudi u AD22151 uputstvu.

R1 je otpornik koji se koristi za temperaturni kompenzaciju, a 10k je odabran u skladu sa priloženim grafikonom, kako bi se kompenzovale male vrednosti u odstupanju temperature.

R2 i R3 se koriste za postavljanje jačina struja u kolu. Vredsnosti su postavljene u skladu sa formulom ispod. Za odabranu vrednost R3 od 100k, proračunom je određeno da R2 treba biti 2,2k. Na taj način je obezbeđeno pojačanje od 19 mV/G.

Sada kada imamo merno kolo, moramo da obezbedimo i napajanje. Za 5V i zemlju koristimo GPIO portove, preciznije pin 4 za 5V i pin 6 za zemlju.

Poslednji korak za hardver je povezivanje izlaza senzora sa jednim od MCC 118 kanala, kanalom 0 u ovom projektu. Izlaz je između 0 i 5V, a vrednost 2,5V predstavlja prag između pozitivnih i negativnih izlaznih vrednosti strujnog kola. Dalje u projektu, u delu o toku programu se pominje kako možete da izmenite kod da biste mogli da povežete nekoliko senzora odjednom.Nakon dovršavanja ovih koraka, vaše kolo bi trebalo da izgleda slično onom na naslovnoj slici.

Tok programa
Nakon postavljanja komponenti i instalacije biblioteka, dve dole priložene datoteke moraju biti sačuvane u istom direktorijumu. „daqhats_utils.py“ je preuzeta iz direktorijuma „primeri“, nalazi se u direktorijumu „daqhats“ koja je instalirana nakon izvršavanja instaliranja biblioteka pomoću git-a. „scan.py“ je glavni fajl za ovaj projekat.

Uvoz biblioteka
Da bismo izvršili merenje potrebne su nam neke funkcije koje se nude u bibliotekama u git depou i daqhats_utils. Uvozimo celu mcc118 klasu i neku pomoćnu funkciju. „OptionFlags“ koristi za podešavanje režima skeniranja vrednosti koje pružaju kanali na hetu Raspberry Pi-a i identifikovanje id-a i grešaka koje koristimo u funkcijama „HatIDs“ i „HatError“.

Deklaracije konstanti i informacije o ispisu
Da bismo utvrdili vrednost intenziteta magnetnog polja koristimo dve konstante, gain_constant i v_ref. „gain_constant“ se određuje po gore navedenoj formuli, ovu konstantu je potrebno promeniti da bi se poštovao naponsko pojačanje strujnog kola. Ova konstanta je jednaka inverznom izračunatom pojačanju (1/gain). „v_ref“ je referenca napona za nultu tačku, sve vrednosti iznad nje su pozitivni brojevi, sve vrednosti ispod nje su negativni brojevi. Ovo dvoje se koriste u funkciji ispisa na kraju programa.

Program će na terminalu pokazati broj koji se sastoji od najviše deset cifara i pet cifara nakon zareza. Da biste kalibrisali izlaz, uklonite oznaku za komentar na sledećem redu i promenite vrednost „v_ref“ u izmerenu vrednost. Brzina po kanalu sata internog skeniranja je podešena u promenljivom „scan_rate“ i očekivanoj maksimalnoj brzini sata spoljašnjeg skeniranja, maksimalno 100000.

Deklaracija kanala
Kanali koji se koriste moraju biti deklarisani kao vektori. Da biste dodali još kanala, izmenite vektor dodavanjem kanala koje želite da koristite. Na primer:

koristi svih osam kanala za merenje. Sva funkcija u MCC118 klasi koristi vektore za određivanje kanala koji se koriste i za to je potrebno znati dužinu vektora.

Čitanje i prikaz podataka
Čitanje se izvršava u petlji koja se nastavlja sve dok korisnik ne zaustavi skeniranje ili dok se ne otkrije greška prekoračenja. Svi dostupni uzorci se čitaju (do veličine read_buffer).
Pošto je read_request_size postavljen na -1 (READ_ALL_AVAILABLE), funkcija „hat.a_in_scan_read“ koja vraća odmah uzorkovane vrednosti je dostupna u ovom trenutku i vremenski okvir se zanemaruje.
Funkcija „hat.a_in_scan_read“ vraća više elemenata: pokretanje, prekoračenje hardvera, prekoračenje bafera, trigere i vremensko prekoračenje i svi su podaci bool tipa, dok su podaci float tipa.“

samples_read_per_channel“ se koristi za prikazivanje broja podataka po kanalu. „total_samples_read“ prikazuje ukupan broj uzoraka. Ovi brojevi su prikazani u 12-cifrenom formatu. Ako u baferu ima uzoraka, program će početi da sprikazuje podatke. Za svaki kanal njegov rezultat se čuva u određenoj lokaciji u listi, pozicija za svaku lokaciju je umnožak broja korišćenih kanala. Za prikaz koristimo indeks koji čuva položaj svakog uzorka na svakom kanalu za svako čitanje.

Pokretanje skripte
Da biste pokrenuli Python skriptu, otvorite terminal u direktorijumu u kojoj ste sačuvali dve ranije pomenute datoteke dole navedenom komandom.

Nakon toga, na terminalu će se pojaviti adresa na kojoj se nalazi MCC 118, način na koji Hat radi, kanali koji se koriste i brzina skeniranja po kojoj radi. Kada pritisnete taster ENTER, program će početi sa skeniranjem.

Tumačenje ekrana je sledeće:Uzorak čitanja je broj prikazanih uzoraka i vraća se na 0 nakon popunjavanja bafera. Broj skeniranja je ukupan broj pročitanih uzoraka, ne uspostavlja početne vrednosti kada je bafer pun i nastavlja da broji. Kanal 0 je vrednost koju je taj kanal pročitao, nakon toga će se pojaviti sledeći kanali koji su dodati kasnije.

Kod možete preuzeti i pronaći više detalja na lokaciji Raspberry Pi Magnetometer (electromaker.io)

MCC proizvodi su dostupni u Distrelecu, ovlašćenom Digilent distributeru u Srbiji.

Aleksandar Dakić
Follow me