Pomozite razvoju web mjesta, dijelite članak s prijateljima!

Mnogi pametni telefoni mogu zadovoljiti svoje vlasnike nizom funkcija koje ugrađeni akcelerometar provodi. To je elektromehanički uređaj koji bilježi sve promjene u radnom tijelu u prostoru. Princip rada temelji se na mjerenju ubrzanja kretanja inercijalne mase unutar akcelerometra. Na temelju toga djeluje automatski zaslon koji podešava sliku u skladu s položajem telefona, brojačem koraka, aplikacijom za otkrivanje prepreka, brojnim aplikacijama za fitness, itd.

Korištenjem Arduino mikrokontrolera, možete samostalno dizajnirati senzor nagiba kod kuće.

Za to ćete trebati:

  • ADXL335 akcelerometar;
  • Arduino Uno zajednica;
  • Prikaz za prikaz smjera nagiba (u ovom slučaju koristimo LED verziju).

Praktična primjena Arduino senzora nagiba prikazana je na slici ispod:

Slika 1: Opći prikaz senzora

Ovaj primjer opisuje instalaciju ADXL335 akcelerometra proizvođača Analog Devices koji se povezuje s odgovarajućim pinovima na Arduino Uno mikrokontroleru, a signali iz mikrokontrolera se prenose na zaslon. Za sastavljanje takve sheme, prikladno je koristiti tvorničku prototipnu ploču, iako senzor nagiba može savršeno funkcionirati na bilo kojoj drugoj ravnoj površini koju ćete koristiti kao bazu. Glavni zadatak je implementirati osnovni princip senzora, koji je prikazan u dijagramu ispod.

Sl. 2: blok dijagrama senzora

Prednost ovog modela je ugradnja Arduino Uno, budući da je ovaj mikrokontroler najbolja opcija za elektroničke uređaje koje kontroliraju signali s ploče. Njegovo programiranje i upotreba u shemi dostupna je masama zbog jednostavne prilagodbe standardnom računalnom softveru i mogućnosti samopodešavanja, a zatim i korekcije njihovog rada. Stoga je ova opcija savršena za profesionalne dizajnere i ljubitelje u području robotike i elektroničkog modeliranja.

Za implementaciju senzora nagiba, Arduino Uno je izabran s razlogom, sastavljen je na temelju čipa ATmega328 i uključuje 14 digitalnih izlaza, 6 analognih, USB priključak za povezivanje s uređajem za programiranje, ICSP priključak, ulazni napon te je opremljen funkcijom reset ili reset. Ova ploča također ima 16 MHz kristalni oscilator dizajniran za održavanje stabilnog rada cijelog mikrokontrolera.

Unatoč impresivnoj količini elemenata, Arduino Uno ima relativno malu veličinu i prilično je jednostavan za rukovanje. Da biste to učinili, morate spojiti ploču na računalo preko USB ulaza kako biste podesili radne parametre i napajali ih preko baterije ili preko adaptera. Programiranje i daljnji rad se obavlja u Arduino operativnom okruženju.

Kako izgraditi senzor nagiba?

Sl. 3: krug osjetnika nagiba

Spajanje akcelerometra na mikrokontroler provodi se prema sljedećem principu:

  • ST pin se spaja na pin Arduino A0 ploče;
  • Izlaz pomaka duž osi Z povezan je s iglom Arduino A1 ploče;
  • Izlaz pomaka duž Y osi povezan je s iglom Arduino A2 ploče;
  • Izlaz pomaka duž osi X povezan je s iglom ploče Arduino A3;
  • GND pin se spaja na pin Arduino A4 ploče;
  • VCC pinski se spaja na pin na Arduino A5 ploči.

Zatim se iz Arduino mikrokontrolera spaja na zaslon, u ovoj situaciji sastoji se od skupine LED dioda. Za spajanje s ploče uzimaju se izlazi od 8 do 12 i pin od 5V koji se distribuiraju prema logici kruga kako slijedi:

  • Pin 5V je zajednička točka povezivanja;
  • Osmi je spojen na LED signalizirajući nagib udesno;
  • Deveti je spojen na LED, što ukazuje na to da je senzor u središtu stabilnog položaja (da bi bio drugačiji, radimo ga crvenom bojom, ali to nije kritično);
  • Deseti je spojen na LED signalizirajući kretanje senzora natrag;
  • Jedanaesti je spojen na LED signalizirajući nagib lijevo;
  • Dvanaesti se spaja na LED koji signalizira da se senzor naginje naprijed.

Kada promijenite položaj akcelerometra u prostoru će se pomaknuti inercijalna masa. Kao rezultat tog kretanja, inercijska masa će dovesti do zatvaranja kontakata i dati odgovarajući signal iz jednog od zaključaka. Zatim će ovaj signal biti obrađen od strane Arduino mikrokontrolera i pretvoren u napajanje na određenu LED ili skupinu LED dioda. Na tom principu senzor nagiba temelji se na Arduinu.

Osim gore navedene metode za sastavljanje senzora na matičnu ploču, možete je isto tako implementirati na PCB. Primjer takve ploče prikazan je na slici ispod.

Slika 4: Izgled PCB-a

Provjera ispravnosti priključka provodi se na kontrolnim točkama prikazanim na slici 3. Napon u njima treba odgovarati podacima iz tablice.

Tablica: Razine napona na ispitnim točkama

Točka na sliciTočkasti napon, V
T00
T15
T2Niže nego u t3
T3Više od T2

Testiranje zdravlja i korekcija parametara

Nakon električnog spajanja elemenata senzora nagiba, program se preuzima na uređaj putem računala, za što vam je potrebno:

  • Spojite mikrokontroler na računalo preko USB adaptera;
  • Preuzmite program (test.ino) s računala na Arduino UNO;
  • Zatim na računalu otvorite Arduino softversko okruženje, koje prikazuje izvorni kod odgovarajućih pinova akcelerometra;
  • Resetirajte podatke i zabilježite numeričke promjene na sve tri osi (X, Y, Z) koje se pojavljuju kada je senzor nagnut ulijevo, udesno.

Ako niste zadovoljni s položajem u kojem LED svjetlo počinje svijetliti, možete ga ispraviti. Za promjenu kuta nagiba na kojem će senzor signalizirati promjenu položaja, trebat će vam:

  • Ostanite u Arduino softverskom okruženju, pokrenite naginjanje senzora ulijevo, kada kut nagiba dosegne točku gdje bi se trebala upaliti LED, provjerite sami - to će biti vrijednost koda "A_max", granica isključivanja LED-a kada se senzor pomiče unatrag;
  • Da biste podesili kut nagiba udesno, ponovite isti postupak, nagnite ga do željenog kuta, označite digitalnu vrijednost za sebe - to će biti vrijednost koda "A_min", ista vrijednost će prestati goriti pri povratku u neutralni položaj senzora;
  • Te se vrijednosti moraju mijenjati u tijelu programa tiltdetection.ino, za koji se pokreće Arduino IDE, prethodno snimljeni podaci unose se u linije "A_max" i "A_min" (slika 5);
    Sl. 5. Snimak programa Arduino Uno
  • Nakon toga spremite izvršene promjene i ponovno učitajte ispravljeni program na mikrokontroler.

Uređaj će sada raditi s više nagnutog kuta za vas. Ovdje je primjer podešavanja kuta kretanja senzora lijevo i desno. Ali ako želite, možete napraviti iste manipulacije za promjenu kuta nagiba naprijed-natrag, kada prolazite kroz koje će se LED-ovi upaliti i ugasiti.

Što vam je potrebno za pokretanje programa?

Budući da je mikrokontroler programiran na Arduino IDE platformi posebno razvijenoj za nju, ne morate imati dodatne programske jezike i posebne vještine za rad s njima, samo spojite Arduino na računalo. Također je vrijedno spomenuti da čip ATmega328 u Arduino Uno u početku sadrži unaprijed instaliran mehanizam za punjenje. To vam omogućuje da programirate uređaj bez hardverskih programera i interakciju softverskog okruženja na računalu i čipu putem STK500 protokola.

Za rad sa softverom mikrokontrolera morat ćete otići u izbornik "Tools", zatim odabrati "Cards" i instalirati Arduino Uno (ako koristite drugi model, instalirajte ga). Nakon toga, kroz Arduino IDE, programirajte ploču na logiku senzora nagiba i možete početi koristiti gotov uređaj. Također je moguće programirati Arduino preko ICSP protokola, ali ova metoda je prikladnija za iskusne programere, a ne za početnike, stoga je mnogo jednostavnije koristiti standardnu metodu.

Izvorni kod programa:

Arduino senzor nagiba (3, 4 KB, preuzeto: 30)

Pomozite razvoju web mjesta, dijelite članak s prijateljima!

Kategorija: