Andrei-Alexandru STOIA (25467) - Busola electronica cu ac

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Tema proiectului este aceea de a proiecta o busola electronica cu ac asemanatoare celor folosite in industrie.

Descriere generală

Busola va functiona in modul urmator:

• microcontroller-ul va prelua prin intermediul unui magnetometru coordonatele 3D ale directiei actuale relative la deviatia fata de polul Nord

• folosind aceste coordonate se determina gradul de deviatie (notatie: gd)

• folosind gradul de deviatie si gradul asociat pozitiei actuale (notatie: gp) a acului atasat unui motor stepper se determina rotatia necesara motorasului astfel incat acul acestuia sa indice gradul de deviatie (gd)

i.e: daca gradul de deviatie gd este 250° si acul busolei indica 200° atunci acesta trebuie rotit cu 50° in sensul acelor de ceasornic

• microcontroller-ul transmite motorului gradul de rotatie calculat

• motorul stepper se roteste corespunzator

Modul de functionare este exemplificat schematic in cazul diagramei bloc ce urmeaza.

Schema Bloc

Hardware Design

Lista de componente

• Placa PM2016 + componentele ei

Extra:

• Magnetometru 3 axe HMC5883L cu stabilizator si adaptor logic

   1. Tensiune de alimentare: 3 - 5V
   2. Protocol de comunicare: I2C
   3. Cantitate: 1
   4. Achizitionare: http://olx.ro/oferta/senzor-magnetometru-digital-compas-3-axe-hmc5883l-arduino-gy-273-ID2Namr.html
   5. Pret: 13 RON

• Set

º Motor stepper 28BYJ-48
   1. Tensiune de alimentare: 5V
   2. Nr. faze: 4
   3. Rotatie per pas: 5.65° / 64
   4. Cantitate: 1
º Modul driver motor ULN2003
   1. Cantitate: 1
   
Pret set: 24.95 RON
Achizitionare set: http://olx.ro/oferta/set-motor-pas-cu-pas-28byj-48-5v-si-driver-uln2003-albastru-ID4z5RI.html#75a413e5d6

• 2 rezistente 10K & 2 tranzistoare BSS138 Pret: 2 RON

Schema electrica

Software Design

Mediu de dezvoltare: Programmer's Notepad compiland cu WinAVR

Conectarea si comunicarea cu magnetometrul HMC5883L se face folosind interfata I2C, iar pentru asta am gasit online o biblioteca open source deja implementata pentru modelul acesta de magnetometru.

Pentru interactiunea cu motorul pas cu pas, am folosit ideologia prezentata in cadrul schemei bloc al proiectului. Se considera ca acul motorului este indreptat initial la 0°, dupa care se calculeaza gradele actuale obtinute pe baza coordonatelor primite de la magnetometru si motorul se roteste astfel incat sa arate gradele calculate. Dupa care, se actualizeaza variabila care retine noile grade indicate de acul motorasului si procesul se repeta. Pentru rotirea efectiva a acestuia, am transformat un cod de Arduino pentru AVR. Pentru a roti motorul trebuie ca pe cei 4 pini conectati la microcontroller sa avem 8 configuratii de semnale pe care sa le transmitem repetat catre driver. Pentru a roti stepperul in sens trigonometric, aceste configuratii trebuie executate invers: de la ultima la prima. Stiind ca pentru o rotatie completa motorului ii trebuie 4096 pasi, eu lucrand cu grade intregi, unitatea mea de referinta a fost de 12 pasi per grad. De asemenea, am realizat si o optimizare a rotatiilor astfel ca rotatia maxima pe care o poate face in orice sens este de maxim 180°.

Pentru mai multe detalii puteti urmari comentariile din codul pus la dispozitie in sectiunea de Download, dar si resursele puse in sectiunea Bibliografie/Resurse pentru o mai buna intelegere a functionalitatilor

Rezultate Obţinute

<fc #FF0000>Proiectul poate fi vizualizat la urmatoarea adresa:</fc> BeIr6BNn4FY

Concluzii

Proiectul a fost foarte interesant datorita faptului ca mi-am dezvoltat abilitatile practice si teoretice si am realizat ceva de care o sa imi amintesc cu bucurie multi ani de acum incolo. In plus, toata lumea a realizat proiecte deosebite din care am ramas cu ceva. Proiectul meu nu a fost greu, nu m-am chinuit decat sa fac adaptarea pentru SCL si SDA intrucat magnetometrul de abia il tineam in mana si tranzistorii de asemenea. Oricum, a meritat caci totul functioneaza cum ma asteptam de la inceput.

Download

Bibliografie/Resurse

pm/prj2016/avoinescu/bea16.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0