|
|
(62 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__
| |
|
| |
| == Zadanie ==
| |
|
| |
| 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]][[Obrázok:ContinuousRotationServo.png|300px|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]]
| |