Arduino: DIY – Digitalna vaga Više puta smo pisali da putem mikrokontrolera i SBC-a možemo meriti razne fizičke, hemijske i druge vrednosti oko nas. Jedna od njih je i masa. Za merenje mase se, u zavisnosti od potrebe, mogu koristiti senzori opterećenja koji dolaze u raznim oblicima: fleksibilni, u obliku diska, šipke ili slično. Za potrebe kuhinjske digitalne vage iz naslova ćemo upotrebiti senzor opterećenja u obliku četvrtaste šipke, koji će preko modula sa HX711 čipom podatke o masi slati ka Arduino Nano ploči. Vrednosti ćemo ispisivati preko dvobojnog OLED ekrana. Treba nam još malo žica, stakla i pleksiglasa. Da pojasnimo malo kako nam aluminijumska šipka može izmeriti masu. Šipke inače dolaze u raznom „težinskom” rasponu, a ova može da meri masu do pet kilograma. Za naš projekat kućne kuhinjske vage je to sasvim dovoljno. Prvo što primećujemo na šipci je otvor na sredini i dva mesta prekrivena belim silikonom iza kojih idu četiri žice. Iza ovih prekrivenih polja se nalaze precizni rezistorski merači naprezanja (BF350, BF1000...). Ovi merači mere i najmanje ugibanje šipke prilikom opterećenja. Govorimo o opterećenjima koja se mere miligramima. Kada se izvrši pritisak na jednom kraju šipke, dolazi do ugibanja na sredini gde se nalazi otvor i gde je šipka najslabija. U zavisnosti od opterećenja (pritiska), u meračima će se pojaviti određeni električni otpor. To je dovoljno da uz malo kalibracije dobijemo vrlo precizno očitanu masu. Za ove šipke postoje klase tačnosti, ali na te oznake kod istočnih online trgovaca treba zaboraviti. Arduino, naravno, nije u stanju da se izbori sa sirovim informacijama koje nam daje šipka. Za to nam treba modul sa HX711 čipom koji će električnu otpornost pojačati i poslati podatke koje će Nano moći da obradi. HX711 ima 24-bitnu rezoluciju i dva odvojena ulazna kanala koji se mogu birati. Za naše potrebe ćemo koristiti samo jedan kanal (A), ali ako će se praviti vaga za merenje mase ljudi, tada će se koristiti svi kanali, uz četiri ćelije opterećenja. HX711 osim odabira između A i B kanala ima i programabilno pojačalo (PGA – programmable gain amplifer), gde se pojačanje kod A kanala može birati između 128 i 64, dok je B kanal fiksiran na 32 bajta. Modul ima svoj naponski regulator i nije potrebno nikakvo dodatno napajanje same šipke. Govorimo o izuzetno štedljivim senzorima gde je normalna potrošnja ispod 1,5 miliampera, dok je u sleep modu ispod jednog mikroampera, pa nije čudo što mnoge digitalne vage koje rade na ovim senzorima (uključujući i ćelije za merenje mase) dolaze u varijanti sa par AA baterija. HX711 modul sa Arduinom povezuje na više načina, u zavisnosti od biblioteke koju ćemo koristiti. Mi smo se odlučili za HX711.h biblioteku koju možete preuzeti sa adrese github.com/bogde/HX711, a kod koje se DT i CLK pinovi povezuju na analogne pinove (A0 i A1). Za prikaz mase smo iskoristili dvobojni OLED ekran koji se sa Nanom povezuje putem I2C interfejsa. Ekran je veličine 128 x 64 piksela i sasvim je dovoljan, a pritom je i lagan, o čemu će biti reči u nastavku teksta. Kad već pravimo kuhinjsku vagu, potrebno je po potrebi oduzeti (nulovati) taru (posude, tacne, ambalažu) da bi se mogla dodavati masa. U tu svrhu smo upotrebili jedan TTP223 modul (jog) o kome je takođe bilo reči na stranicama rubrike SK Labs. Dodirom na tač panel dajemo signal Arduinu da funkcijom scale.tare() resetuje vagu na nulu.Od neelektričnih stvari smo upotrebili malo stakla, pleksiglasa, silikona i par šrafova. Dimenzije i postupak same izrade uz slike i sam skeč ćete naći na adresi goo.gl/MnT2TC. Odlučili smo se za staklo jer je providno i sva elektronika deluje efektnije, ali to može biti i bilo koji drugi materijal. Prilikom sastavljanja vage šipka treba da se postavi u Z položaj. Pritom treba voditi računa o strelici na samoj šipki, to jest, gde je predviđeno da se ona optereti. Ukoliko se odlučite da pravite vagu na ovaj način, imajte na umu da je potrebno više stolarskih stega da bi se silikonom kvalitetno spojili staklo i pleksiglas. Mi smo imali samo dve, pa nam je ostalo malo zarobljenog vazduha koji nismo uspeli da istisnemo. Naša šipka ima različite šrafove na krajevima, tako da je kraj šipke koji se pričvršćuje na donju stranu naše vage pričvršćen sa M5 šrafovima, dok je suprotni sa M4. Koristili smo šrafove sa upuštenom glavom.Ispod gornje staklene površine smo postavili ekran i senzor osetljiv na dodir. Mogli smo u ovu svrhu upotrebiti i LCD, ali je on osetno teži od OLEDA, pa bismo na taj način nepotrebno opteretili gornju ploču koja je zadužena za merenje. Inače, prilikom kalibracije, bez obzira na to šta je na vagi, ona će se resetovati na nulu – na isti način na koji ćemo je i mi resetovati nakon dodira na TTP223. Panel nije neophodno dodirnuti, on će registrovati prst i na pet milimetara, a znaćemo to ako se uključi crvena LED ispod. Vagu povezujemo prema šemi. Žice sa šipke na HX711 povezujemo redom – crvena na E+, crna na E-, zelena na A- i bela na A+. HX711 sa Nano povezujemo redom – DT na A1, a SCK na A1. Za napajanje vage smo predvideli običan punjač telefona, pa smo u tu svrhu dodali mikro USB modul, odakle smo 5V i GND doveli do mini naponske sekcije i odatle razveli ka Nano i ostalim periferijama. Inače, ceo sistem može da radi i ako se direktno Nano napaja preko mini USB porta na sebi, ali je bolje da njegovi naponski regulatori ne trpe nepotrebno opterećenje. Ekran smo povezali prema I2C, SCK na A5, a SDA na A4. Izlazni pin I/O sa TTP223 smo povezali sa digitalnim pinom 7. U okviru skeča smo samo prepravili postojeći primer same biblioteke, obrisali nepotrebno i dodali podršku za ekran. Takođe smo dodali malo logike za TTP223, gde ćemo, ukoliko postoji dodir, preko funkcije scale.tare() nulovati vagu. Prilikom ispisa mase na ekranu mi smo dodali ispis jedne decimale display.print((scale.get_units()*5), 1) pa je potrebno, ukoliko nam trebaju isključivo grami, obrisati poslednji zarez i jedinicu. Osim toga, biblioteka ima funkcije scale.power_down() i scale.power_up koje se mogu koristiti da se vaga aktivira po potrebi. Takođe, preko funkcije set_gain() biramo između 128 i 64 bajta na A kanalu. Ova vaga može biti dobar primer kojim ćete lepšoj polovini objasniti da sve te silne žice i elektronika na stolu mogu imati primenu čak i u kuhinji.
Dejan PETROVIĆ | | |