Avtor: Mag. Vladimir Mitrović
email: vmitrovic12@gmail.com
Hrvaško združenje tehnične kulture je v HI hostlu v Zadru organizirala STEM delavnice namenjene srednješolcem, s ciljem osvajanja raznih tehničnih veščin in znanj.
Znanja, ki so jih osvojili v delavnicah „3D modeliranje“, „Modelarstvo“, „Robotske konstrukcije“, „Elektrotehnika“, „Avtomatika“ in „Programiranje mikrokontrolerjev“ so udeleženci uporabili pri izdelavi zaključnega dela, naprave za sortiranje kovancev.
Sortirka za kovance
Sortirka sortira in šteje 2 in 1 evrske kovance tet 50 in 20 evro cente kovance. Sestavljena je iz mehanske konstrukcije, elektronske podpore in vira napajanja. Kot vir napajanja uporabimo omrežni adapter z izhodno napetostjo 6-9 V, ki lahko zagotovi do 150 mA izhodnega toka. Izgled sortirke in njeni glavni deli so prikazani na sliki 1.
Ta vsebina je samo za naročnike
Ko stikalo ni vključeno, sortirka izvaja samo sortiranje kovancev, ki se jih vnaša skozi zarezo in potem drsijo po klančini. Na klančini se nahajajo omejilniki, ki so prilagojeni dimenzijam kovancev; ko kovanec pride do omejilnika preko katerega ne more naprej, pade v ustrezen zalogovnik.
Ko vklopimo stikalo, program v mikrokontrolerju prevzame krmiljenje sortirke. Program bo štel koliko kovancev katere vrste je bilo spuščenih v sortirko in kolikšna je skupna vrednost vseh spuščenih kovancev. Da bi malo zakomplicirali postopek, kovancev pravzaprav nismo šteli, pač pa smo njihovo količino določali s tehtanjem!
Program bo najprej na LCD zaslonu izpisal pozdravno sporočilo in nato se tehtnica resetira (slika 2).
Med resetiranjem bo tehtnica ugotovila težo praznih zalogovnikov, mikrokontroler pa bo postavil vse števce v začetno stanje. Po resetu tehtnica preide v delovno stanje in je pripravljena je prejeti naslednji kovanec. Prikaz na LCD zaslonu sedaj izgleda tako, kot to prikazuje slika 3 zgoraj. Števci kovancev v tretji in četrti vrsti kažejo da še ni spuščen niti en kovanec. In v skladu s tem je tudi skupna vrednost, ki je 0.00 EUR. LED-ica sveti zeleno, kar je znak da smemo spustiti nov kovanec.
Takoj, ko kovanec pade na klančino prekine svetlobni tok foto stikala in LED-ica zasveti rdeče. Mikrokontroler bo počakal dve sekundi, kar je dovolj da kovanec zdrsne v svoj zalogovnik. Po preteku tega časa mikrokontroler da nalogo tehtnici, da izmeri težo zalogovnika s kovanci. Program v mikrokontrolerju bo določil, kateri od kovancev je bil spuščen s primerjavo predhodne in nove teže. Če je to, npr. bil 2 evrski kovanec, bo prikaz na LCD-ju registriral, da imamo sedaj v zalogovniku en takšen kovanec in da je skupna vrednost kovancev 2 EUR (slika 3 spodaj).
LED-ica bo ponovno zasvetila zeleno kot znak, da lahko vnesemo nov kovanec. Vsak na novo spuščen kovanec bo končal v svojem zalogovniku, tehtnica pa bo določila njegovo težo, da bi program lahko določil o katerem kovancu gre in ustrezno ažuriral prikaz na LCD zaslonu.
Včasih se zna zgoditi da se kovanec „zatakne“ na poti skozi klančino in ne pade v svoj zalogovnik. V tem primeru tehtnica ne bo mogla pravilno določiti skupne teže zalogovnika in zato bo tudi program v mikrokontrolerju napačno ugotovil, kateri kovanec je bila spuščen. Če se to zgodi, je potrebno počakati, da LED-ica zasveti zeleno, pazljivo odstraniti zadnji spuščen kovanec in kratko (krajše od 2 sek) pritisniti tipko. Na LCD zaslonu se bo izpisalo sporočilo „! izbriši merjenje !“. Takoj ko spustimo tipko, bo program v mikrokontrolerju vklopil rdečo LED-ico in izpisal sporočilo, da je zadnja meritev preklicana (slika 4).
Kovanec lahko ponovno vnesemo ko LEDica ponovno zasveti zeleno in se na LCD zaslonu pojavi izpis s sporočilom „Vstavi kovanec!!“.
Tipka ima več funkcij. Če jo držimo pritisnjeno dalj od 2 sekund, se bo na LCD zaslonu izpisalo sporočilo „!resetiraj tehtnico!“. Če ga takrat spustimo tipko, bo program resetiral tehtnico, postavil vse števce na nič in ponovno prešel v delovno stanje. Ta postopek je potrebno ponoviti vsakič, kadar izpraznimo kovance iz zalogovnika.
Če pa držimo tipko pritisnjeno dalj od 4 sekund, se bo na LCD zaslonu izpisalo sporočilo „kalibriraj tehtnico!“. S kalibriracijo se določa teža posameznih kovancev in se shrani v trajni pomnilnik mikrokontrolerja (v EEPROM). Te podatke program potrebuje zato, da bi tehtanjem vstavljenih kovancev lahko določil kateri kovanec je bil spuščen. Zato je potrebno postopek kalibriranja narediti pred prvo uporabo tehtnice in kasneje po potrebi. Med kalibriranjem program najprej zahteva, da se vnese 5 kovancev za 2 evra (slika 5 zgoraj).
Kovance vnašamo enega za drugim, ko LED-ica sveti zeleno. Števec registrira vsak spuščen kovanec in ko se vnese vseh 5 kovancev za 2 evra, bo zahteval, da pričnemo vnašati kovance za 1 evro (slika 5 v sredini). Postopek se bo ponovil s kovanci za 50 in 20 centov, nakar se tehtnica resetira in preide v delovno stanje. Izpis na LCD zaslonu bo pokazal, da imamo trenutno vstavljenih po 5 kovancev vsake vrste in nadaljeval bo šteti od takšnega stanja (slika 5 spodaj). Lahko nadaljujemo z vnašanjem kovancev ali, če želimo pričeti od začetka, moramo kovance vzeti ven in nato resetirati tehtnico!
Če se med postopkom kalibriranja eden od kovancev zatakne klančini, ga lahko ročno vnesemo v njegov zalogovnik. Vendar če se to dogodi s petim (zadnjim) kovancem neke vrste, je takoj potrebno pritisniti tipko in jo držati pritisnjeno dokler kovanec ne vnesemo v njegov zalogovnik. Tipko nato spustimo in postopek kalibriranja se nadaljuje na prej opisani način.
Opis električne sheme
Shema na sliki 6 prikazuje vezje elektronike sortirke kovancev. Možgane vezja predstavlja Arduino Nano modul z mikrokontrolerjem ATmega328P, katerega program krmili vse ostale komponente. Poleg Arduina se na glavnem tiskanem vezju nahaja še piskač (buzzer) in nekaj uporov. Napajanje je predvideno preko omrežnega adapterja z izhodno napetostjo 6-9 V, dioda D1 ščiti vezje pred napačno obrnjenimi priključki na konektorju J1. Vse ostale komponente se nahajajo izven glavnega tiskanega vezja in se medsebojno povezujejo preko konektorja na ploščici in ustreznih kablov.
Konektorja J2 in J3 služita za priključek I2C ali „navadnega“ LCD zaslona s paralelnimi priključki; v projektu smo se odločili za I2C LCD, zato je konektor J3 neuporabljen. Na J4 vežemo tribarvno (RGB) LED-ico. Če uporabimo RGB diodo s skupno katodo, je srednji in desni priključek potrebno vezati na kratkostičnik J9; pri RGB diodi s skupno anodo vežemo srednji in levi priključek istega kratkostičnika. J9 se nahaja na zadnji strani tiskanega vezja, povežemo ga s kapljico spajke.
Na konektor J5 vežemo modul s HX711 čipom. HX711 je analogno digitalni pretvornik, ki nam služi kot povezava s senzorjem za merjenje pritiska (load-cell). V senzorju se nahajajo štirje upori, katerih upornost se spreminja proporcionalno s silo pritiska na ohišje senzorja. Spreminja se tako, da se upornost enega para uporov zmanjšuje, drugega para pa povečuje. Upori so vezani v t.i. Wheatstoneov mostič, sprememba upornosti se prebere kot sprememba napetosti na izhodnih priključkih mostiča. HX711 natančno meri to napetost in jo digitalizira s 24-bitno natančnostjo, program v mikrokontrolerju zajema to število in iz njega lahko izračuna kakšna sila pritiska na senzor.
Na J6 vežemo tipko s katero dajemo različne ukaze programu v mikrokontrolerju, na konektor J7 je vezano foto stikalo. Foto stikalo je sestavljeno iz LED-ice in foto tranzistorja, med katerima je ozka razpoka. Dokler svetloba LED-ice pada na foto tranzistor, le-ta prevaja tok in napetost na uporu R5 bo okoli 4 V (mikrokontroler „bere“ to napetost kot logično ena. Ko kovanec, ki smo ga vnesli v zarezo kratko zastre svetlobo LED-icena foto tranzistorju, zato bo čez njega prenehal teči tok in napetost na uporu R5 bo padla na 0 V (mikrokontroler „bere“ to napetost kot logično ničlo). Tako bo s spremljanjem logičnega stanja na uporu R5 program v mikrokontrolerju lahko zajel trenutek, ko smo vnesli kovanec.
Končno, na konektor J8 vežemo stikalo, s katerim vklopim in izklopimo tehtnico. Montažna shema elektronskega vezja je prikazana na sliki 7 in na njej lahko razen načina vezave vidite tudi izgled posameznih komponent in modulov. Na sliki 8 je fotografija glavne ploščice, na katero sta zaspajkana Arduino Nano in HX711 modula.
Opis programske logike
Program ki krmili tehtnico napisan je v programskem jeziku Bascom-AVR. Tukaj ne bomo analizirali njegovih ukazov, ampak bomo podrobno preučili programsko logiko prikazano na diagramu na sliki 9. Na isti sliki so prikazani tudi karakteristični izpisi, ki so vidni na LCD zaslonu med posameznimi koraki.
Takoj po zagonu programa se bo izpisalo pozdravno sporočilo. Na sliki je prikazan izgled originalnega sporočila s tehtnice, ki smo jo izdelovali na STEM delavnicah, vsebino sporočila lahko prilagodimo v programu za oznako „Msk_pozdrav:“. Zatem se bo tehtnica resetirala. Med resetom program postavlja števce kovancev in skupno vrednost na ničlo, iz EEPROM-a prebere mejne teže kovancev in določi težo praznih zalogovnikov za kovance. Ko izpiše trenutno stanje, bo RGB dioda zasvetila zeleno, s čemer signalizira, da je sortirka pripravljena za delo.
V glavni zanki program izmenično preverja, ali je pritisnjena tipka oziroma ali je aktiviran senzor. Senzor se bo aktiviral vsakič, ko v zarezo spustimo nek kovanec. Program bo takrat vklopil rdečo RGB LED-ico, s čemer signalizira, da moramo počakati 2 sekundi z vnašanjem novih kovancev, kar je dovolj, da kovanec pade v svoj zalogovnik, in nato preberemo tehtnico. S primerjavo izmerjene teže in mejnih vrednosti bo program ugotovil za kateri kovanec gre in ažuriral števce in skupni znesek. Med tem postopkom si bo program zapomnil predhodne vrednosti števca in predhodno stanje tehtnice, če bi se izkazala potreba, da je potrebno razveljaviti zadnje tehtanje. Ko izpiše novo stanje, program vklopi zeleno RGB LED-ico in se vrne v glavno zanko.
Ko je aktivirana tipka, bo program vklopil rdečo RGB LED-ico in bo začel meriti kako dolgo je tipka pritisnjena, da bi lahko zagnal eno od pripadajočih aktivnosti:
Med prvima dvema sekundama je na LCD zaslonu izpisano sporočilo „! izbriši merjenje !“. Če takrat spustimo tipko, bo program vrnil stanja vseh števcev in branje tehtnice en korak nazaj, da bi se ta meritev razveljavila. Po izpisu ustreznega sporočila se izpisuje predhodno stanje, vklopi zeleno RGB LED-ico in se vrača v glavno zanko.
Med drugima dvema sekundama je na LCD zaslonu izpisano sporočilo „!resetiraj tehtnico!“. Če sedaj spustimo tipko, bo program resetiral tehtnico na isti način kot na začetku programa. Po izpisu ustreznega sporočila se izpiše začetno stanje (vse vrednosti so enake ničli), vklopi zeleno RGB LED-co in se vrača v glavno zanko.
Med tretjima dvema sekundama se na LCD zaslonu izpiše sporočilo „kalibriraj tehtnico!“. Če sedaj spustimo tipko, bo program pričel izvrševati rutino za kalibriranje tehtnice. Med tem postopkom bo program zahteval, da se vnese po 5 kovancev za 2 in po 1 euro ter po 50 in 20 centov, da izmeri težo vsake skupine istih kovancev in na tej osnovi izračuna mejne vrednosti vsakega kovanca. Te mejne vrednosti se vpišejo v EEPROM, da bi ostale shranjene tudi takrat, ko se izključi napajalna napetost. Po zaključeni kalibraciji se izpisuje trenutno število kovancev v zalogovnikih (po pet kovancev v vsakem zalogovniku) in trenutna vrednost ter vklopi zeleno RGB LED-ico in se vrača v glavno zanko.
Če tipka ni spuščena med prvimi šestimi sekundami se postopek ponavlja dokler se tipka ne spusti.
Fotografije na sliki 10 prikazujejo del izdelkov narejenih na STEM delavnicah.
Opombe
Na STEM delavnicah so še delali s kovanci Kun in Lip. V tem članku je opisana modificirana verzija programa, Sortirka_SLO.bas, ki je prilagojena euro kovancem; ta program lahko brezplačno dobite od uredništva revije Svet elektronike. Prilagoditev sortirke za euro kovance zahteva drugačne dimenzije mehanskega dela, ki loči kovance po njihovih dimenzijah.
Zamisel za sortirko ter mehansko konstrukcijo je izdelal Zvonimir Lapov-Padovan, zaposlen na HZTK, program mikrokontrolerja in dizajn tiskane ploščice je izdelal avtor tega članka.