|
|
(64 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.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]]
| |