Operácie

Tropjosí gyroskopický modul L3G4200D: Rozdiel medzi revíziami

Z SensorWiki

(Analýza)
(Odstránený obsah stránky)
 
(66 medziľahlých úprav od jedného ďalšieho používateľa nie je zobrazených)
Riadok 1: Riadok 1:
{|
 
|Autori:      || '''Ján Benedek'''
 
|-     
 
|            || '''Martin Cintula'''
 
|-     
 
|            || '''Michal Gáher'''
 
|-
 
|Študijný odbor:  || '''Aplikovaná mechatronika'''
 
|-
 
|Ročník:      || '''2. Ing. ''' (2014)
 
|}
 
  
== Zadanie ==
 
 
Naším zadaním bolo implementovať senzor L3G4200D - trojosí gyroskopický modul s mikropočítačom a získať z neho užitočné údaje.
 
Gyroskop detekuje uhlovú rýchlosť natočenia vo všetkých troch osiach.
 
 
[[Súbor:Osi.jpg]]
 
 
Senzor podporuje komunikáciu cez SPI a takisto aj cez I2C zbernicu. Pre náš projekt sme použili jednoduchšiu I2C zbernicu.
 
 
Následne sme vyčítané dáta mali zobraziť na PC vo virtualizačnom programe. Na tento účel poslúžil maltab.
 
 
Senzor je namontovaný na doske a predáva sa to ako celok. Na doske sa nachádzajú nejake obvody a čipy. Výsledok je, že nám stačí priviesť napájanie a I2C komunikáciu s pull up rezistormi a celé to potom funguje.
 
 
[[Obrázok:Parallax_L3G4200D.jpg|350px]]
 
 
 
'''Literatúra:'''
 
* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
 
 
* [http://www.parallax.com/product/27911 Product page]
 
* [http://www.parallax.com/sites/default/files/downloads/27911-L3G4200D-Gyroscope-Manufacturer-Datasheet.pdf Datasheet L3G4200D]
 
* [http://www.parallax.com/sites/default/files/downloads/27911-Gyroscope-3-Axis-L3G4200D-Guide-v1.1.pdf Gyroscope-3-Axis-L3G4200D-Guide]
 
* [http://www.matlabarduino.org/gyroscopes.html Zdroj vizualizácie]
 
* [http://bildr.org/2011/06/l3g4200d-arduino Arduino kód]
 
 
 
__TOC__
 
 
Senzor nám ponúka SPI a I2C zbernicu. Pre jednoduchosť sme použili I2C zbernicu. Chip podporuje protokol I2C, fast mode a takisto aj normal mode. Nemá žiadne špeciálne protokoli, preto je možné pre nás použiť I2C knižnicu od pána Flueriho.[http://homepage.hispeed.ch/peterfleury/avr-software.html I2C]
 
 
Casový diagram pre I2C:
 
 
[[Obrázok:timef.jpg|center]]
 
 
Parametre senzora:
 
* tri možnosti senzitivity
 
* I2C/SPI zbernice
 
* 16 bitový výstup dát
 
* 8 bitový výstup teploty
 
* Integrovaný dolno a horno priepustný filter
 
* Power down and sleep mode
 
 
Pre našu aplikáciu nám nebude potreba snímania teploty. Pracovisko má stabilnú teplotu. Takisto nebudeme používať žiaden filter a využijeme obyčajný operation mód. Senzitivita je nastaviteľná a bude možné ju meniť.
 
 
Senzor je už z výroby nakalibrovaný, avšak pre našu aplikáciu v matlabe budeme musieť urobiť našu vlastnú kalibráciu. Na určenie kalibračných konštánt potrebujeme systém ktorý nám umožní senzor natáčať vo všetkých troch osiach v rámci 180 stupňov. Jednoduchý servo motor nám bude stačiť. Tu využijeme PWM moduláciu na riadenie servo motora (parallax servo motor).
 
 
[[Obrázok:serv.jpg|center]]
 
 
Následne získane kalibračné hodnoty a uhlové rýchlosti nám pomožu na určenie natočenia/uhla.
 
Tu použijeme skript v matlabe ktorý nám bude vlastne integrovať v reálnom čase. Rovnice:
 
[[Obrázok:Integ.jpg|center]]
 
 
== Popis riešenia ==
 
 
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru
 
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.
 
 
Najprv začnem zapojením k mirkoprocesoru.
 
 
[[Súbor:Schema12.jpg|450px]]
 
 
[[Súbor:Example.jpg]]
 
 
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo
 
nahrať už aspoň 10 študentov.
 
 
 
 
=== Algoritmus a program ===
 
 
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili.
 
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu.
 
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
 
 
Vyberte podstatné časti zdrojového kódu, použite na to prostredie ''source'':
 
 
<source lang="c">
 
/* A nezabudnite zdroják hojne komentovať  */
 
 
int main(void) {
 
   
 
    printf("Hello, World!\n"); 
 
    return(0); 
 
}
 
</source>
 
 
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
 
 
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]
 
 
[[Médiá:MojProgram.c|program.c]]
 
 
=== Overenie ===
 
 
Nezabudnite napísať čosi ako užívateľský návod. Z neho by malo byť jasné čo program robí,
 
ako sa prejavuje a aké má užívateľské rozhranie (čo treba stlačiť, čo sa kde zobrazuje).
 
Ak ste namerali nejaké signály, sem s nimi. Ak je výsledkom nejaký údaj na displeji,
 
odfotografujte ho.
 
 
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
 
 
 
[[Category:AVR]] [[Category:DVPS]]
 

Aktuálna revízia z 10:34, 14. január 2015