b2. mĚŘenÍ synchronizace fotoaparÁturobotika/2017_brob/2017_b02_synchronizace...zadÁnÍ...
TRANSCRIPT
B2. MĚŘENÍ SYNCHRONIZACE
FOTOAPARÁTU
Semestrální projekt z předmětu Základy robotiky (BROB)
Vedoucí práce:
Ing. Petr Gábrlík
Vypracovali:
David Buchal, ID: 186 037
Michal Valoušek, ID: 186 225
Dominik Vybíral, ID: 186 238
Brno květen 2017
ZADÁNÍ PROJEKTU
Cílem projektu je přesné určení zpoždění synchronizačního signálu fotoaparátu pro
externí blesk vůči snímání obrazu, jak je znázorněno na Obrázek 0.1. Fotoaparát je v roli
měřicího přístroje při UAV (= bezpilotní letoun) fotogrammetrii a je potřeba jej přesně
synchronizovat s dalšími senzory (zejména GNSS = Globální družicový polohový systém,
INS = Inerciální navigační systém). V rámci projektu se počítá se stavbou jednoduchého
kalibračního zařízení, na kterém bude synchronizace měřena (např. pomocí řady
LED (= dioda emitující světlo) s přesným časováním).
Obrázek 0.1: Úkol měření
Poděkování
Rádi bychom poděkovali panu Ing. Petru Gábrlíkovi za odborné konzultace a rady
v průběhu zpracovávání tohoto projektu. Dále děkujeme panu Ing. Tomáši Jílkovi, Ph.D.
za užitečné doporučení při psaní programu pro mikrokontrolér.
OBSAH
ÚVOD ............................................................................................................................. 6
1 TEORETICKÁ ČÁST PROJEKTU .................................................................... 7
1.1 Fotogrammetrie ........................................................................................................... 7
1.1.1 Letecká fotogrammetrie ....................................................................................... 7
1.2 Vybrané části fotoaparátu využívané v projektu ......................................................... 8
1.2.1 Závěrka fotoaparátu .............................................................................................. 8
1.2.2 Horké sáňky fotoaparátu .................................................................................... 10
1.3 Funkce časovače/čítače v CTC režimu ...................................................................... 11
2 ZAŘÍZENÍ POUŽÍTÁ K VYPRACOVÁNÍ PROJEKTU .............................. 13
2.1 Použitý fotoaparát ...................................................................................................... 13
2.1.1 Připojení přípravku k fotoaparátu ...................................................................... 13
2.2 Volba mikrokontroléru .............................................................................................. 14
2.2.1 Komunikace PC s mikrokontrolérem ................................................................. 14
2.2.2 Programování mikrokontroléru .......................................................................... 15
3 KOMPLETACE PŘÍPRAVKU NA NEPÁJIVÉM POLI ............................... 16
3.1 Výběr součástek ......................................................................................................... 16
3.2 Programování MCU .................................................................................................. 16
3.2.1 Vytvořený program ............................................................................................ 16
4 TESTOVÁNÍ FUNKCE PŘÍPRAVKU NA NEPÁJIVÉM POLI ................... 17
4.1 Test rozsvícení první LED ......................................................................................... 18
4.2 Test doby svícení LED .............................................................................................. 18
4.3 Test rozsvícení poslední LED .................................................................................... 19
4.4 Test rozsvícení dvou sousedních LED ...................................................................... 19
4.5 Zhodnocení testování ................................................................................................. 20
5 NÁVRH DESKY PLOŠNÉHO SPOJE .............................................................. 22
5.1 Schéma plošného spoje .............................................................................................. 22
5.2 Deska plošného spoje ................................................................................................ 23
5.3 Tištěný spoj ................................................................................................................ 23
5.4 Osazovací schéma ...................................................................................................... 24
5.5 Seznam součástek použitých na plošném spoji ......................................................... 24
5.6 Vyrobená DPS ........................................................................................................... 25
6 MĚŘENÍ S FOTOAPARÁTEM ......................................................................... 27
6.1 Zapojení měření ......................................................................................................... 27
6.2 Postup měření ............................................................................................................ 28
6.3 Ukázka měření a práce s terminálem ......................................................................... 29
6.4 Naměřené hodnoty ..................................................................................................... 31
6.4.1 Měření zpoždění Tx ............................................................................................ 31
6.4.2 Příklady výpočtu doby změřené hadem a zpoždění (Tx) .................................... 33
6.4.3 Výpočet nejistot měření ..................................................................................... 33
6.5 Výsledek měření ........................................................................................................ 34
7 ZÁVĚR .................................................................................................................. 36
7.1 Podmínky měření ....................................................................................................... 36
7.2 Výsledek měření ........................................................................................................ 36
7.3 Přesnost přípravku ..................................................................................................... 36
7.4 Možné vylepšení ........................................................................................................ 36
SEZNAM POUŽITÝCH ZDROJŮ ........................................................................... 37
SEZNAM OBRÁZKŮ ................................................................................................ 38
SEZNAM TABULEK ................................................................................................. 38
SEZNAM PŘÍLOH ..................................................................................................... 39
- 6 -
ÚVOD
V případě, který jsme dostali k řešení, se při mapování terénu pomocí bezpilotního
letounu neboli dronu využívá fotoaparát jako nástroj, pomocí kterého se pořizují fotografie
zachycovaného terénu, z nichž následně vzniká digitální model povrchu, který může sloužit
jako mapa pro další zařízení.
Pro vyfotografování se využívá vzdálené spouště. Pokyn pro získání GPS (= Globální
polohový systém) souřadnic příslušným systémem je vyvolán synchronizačním signálem
od fotoaparátu. Jelikož jsou obdržené souřadnice v rozporu s vyfocenou fotografií, dostali
jsme za úkol zjistit hodnotu zpoždění synchronizačního signálu fotoaparátu pro externí blesk
vůči snímání obrazu.
- 7 -
1 TEORETICKÁ ČÁST PROJEKTU
1.1 Fotogrammetrie1
Fotogrammetrie je vědní technický obor, který se zabývá získáváním spolehlivých
informací o fyzických objektech a prostředí, zaznamenáváním, měřením a interpretací
snímků. Dále se zabývá zjišťováním geometrických vlastností a polohy objektů, jejich změn
z fotografických měřických snímků. Dělí se na fotogrammetrii leteckou, pozemní a blízkou.
Fotogrammetrie se využívá například pro rekonstrukci povrchu terénu, měření
rozměrů a vzdáleností, rekonstrukci tvaru objektů, vytváření 3D modelů povrchu nebo
pro tvorbu ortofotomap. Ortofotomapa je mapa zachovávající fotografický obraz území,
tvořená jedním nebo montáží více ortofotosnímků (ortofoty) a opatřená dalšími náležitostmi
mapy (měřítkem, vybranými mapovými značkami, souřadnicovou sítí, rámem mapy, popisem
mapy atd.) Ortofotosnímkem se rozumí fotogrammetrický produkt z měřického snímku, jenž
je vytvořen středovým promítáním a diferenciálně překreslen (ortogonalizován) na základě
znalosti výškových poměrů georeliéfu.
1.1.1 Letecká fotogrammetrie
Princip letecké fotogrammetrie spočívá v použití fotoaparátu na palubě letadla, který
v rozdílné časové okamžiky pořizuje snímky z různých souřadnic a s jinou orientací. Pořízené
fotografie se musí překrývat. Jelikož je letadlo v pohybu, hrozí rozmazání snímku.
Zachycované objekty se nesmí pohybovat.
Použití bezpilotních letadel (UAV) ve fotogrammetrii s sebou přináší řadu výhod.
Jsou jimi například nízké provozní a pořizovací náklady, rychlý a bezpečný provoz, vysoké
rozlišení a přesnost, možnost automatického letu a vhodnost pro mapování lokálních oblastí.
Mezi nevýhody patří náchylnost na povětrnostní vlivy, legislativní omezení, omezená nosnost
pro senzory a vybavení a fakt, že nejsou vhodné pro mapování velkých oblastí, krajů a států.
Jako bezpilotní letadla se ve fotogrammetrii používají buď letadla s pevnými křídly, nebo
multikoptéry (drony), jejichž výhodou je schopnost visu na místě.
1 Informace čerpány ze zdrojů [1] a [2]
- 8 -
1.2 Vybrané části fotoaparátu využívané v projektu2
K vypracování této práce jsme uvažovali funkce vybraných částí fotoaparátu, jejichž
principy činnosti je vhodné zmínit v následujících podkapitolách.
1.2.1 Závěrka fotoaparátu
Pro snímání obrazu pouze po určitou dobu (expoziční čas) se využívá funkce závěrky.
Ta je umístěna před snímacím čipem fotoaparátu, a v neaktivním stavu ho tak chrání od okolí.
Některé digitální fotoaparáty využívají kombinaci mechanické a elektronické závěrky
pro pokrytí velkého rozsahu expozičních časů.
Zpravidla existují tři typy závěrek, a jsou jimi centrální, štěrbinová a elektronická.
1.2.1.1 Centrální závěrka
Centrální závěrkou obvykle disponují fotoaparáty, které neumožňují výměnu
objektivu, neboť závěrka a její mechanismus jsou umístěné přímo v těle objektivu. Jedná se
tedy zejména o kompaktní fotoaparáty. Závěrka se skládá ze tří i více tenkých kovových
lamel, jež jsou zavěšeny na vodicím prstenci (viz Obrázek 1.2).
2 Informace čerpány ze zdrojů [3] a [4]
Obrázek 1.1: Letecká fotogrammetrie
(zdroj obrázku: http://www.georeal.cz/sites/default/files/user/images/Reseni/fotogrammetrie.jpg)
- 9 -
Tento mechanismus nám umožňuje si libovolně volit čas pro expozici s bleskem a
rovněž se zde neuplatňuje zkreslení pohybem. Naopak nevýhodou tohoto mechanismu je
relativně malý rozsah expozičních časů a nemožnost výměny objektivů.
1.2.1.2 Štěrbinová závěrka
Štěrbinová závěrka se nachází v těle fotoaparátu před snímacím čipem a sestává
ze dvou lamel. První lamela odkrývá snímací plochu čipu na začátku expozice, druhá lamela
ji na konci expozice následně zakrývá.
Pro krátké expoziční časy se využívá současný pohyb obou lamel, kdy vzniká štěrbina,
která se posunuje před čipem, jejíž velikost je úměrná době osvitu, jak ukazuje Obrázek 1.3.
Obrázek 1.2: Princip funkce centrální závěrky
(zdroj obrázku: http://www.zive.cz/Files/Obrazky/2004/12/foto/3/centralni_zaverka.jpg)
Obrázek 1.3: Princip funkce štěrbinové závěrky při různých dobách osvitu
(zdroj obrázku: https://petapixel.com/assets/uploads/2015/01/screenshot3.jpg)
- 10 -
Princip tohoto typu závěrky umožňuje dosáhnout krátkých expozičních časů a
možnost použít výměnné objektivy. Na druhou stranu je obtížné použití blesku při malých
expozičních časech, protože se musí využívat časy, při kterých je závěrka plně otevřená.
Tento nedostatek se ale u moderních blesků řeší opakovanými záblesky, čímž se osvítí každá
část senzoru. Další problém, který tato závěrka přináší, je pohybové zkreslení.
1.2.1.3 Elektronická závěrka
Elektronická závěrka se používá u některých typů digitálních fotoaparátů. Na rozdíl
od předchozích dvou typů závěrek tato není mechanická, jak už napovídá název. Princip
snímání obrazu je založen na sběru dat z trvale osvětleného snímače pouze po určitou dobu
osvitu. Snímací čip se nejprve aktivuje, sejme obraz, a poté se vypne.
S touto závěrkou je možné dosáhnout expozičních časů, které jsou ještě kratší než
při použití štěrbinové závěrky. Její funkce je naprosto bezhlučná, neboť uvnitř těla
fotoaparátu nedochází k žádnému mechanickému pohybu. Dále je možné dosáhnout rychlejší
snímací frekvence, tedy vyššího počtu vyfocených snímků za sekundu. Na druhou stranu se
projevuje více geometrické zkreslení obrazu při snímání rychle se pohybujících objektů
krátkými expozičními časy. Při práci s bleskem jsou v případě použití tohoto typu závěrky
omezeny synchronizační časy pro blesk, které jsou často delší než při použití mechanické
závěrky, což limituje snímání s bleskem při malých dobách osvitu.
1.2.2 Horké sáňky fotoaparátu
Pod pojmem horké sáňky se označuje patice na horní straně fotoaparátu, ke které je
možné elektricky připojit fotografické příslušenství, jako je například externí blesk či
přídavné světlo. Častěji se pro tuto část fotoaparátu používá anglický název hot shoe. Existují
i studené sáňky (v angličtině označovány cold shoe), jež poskytují pouze mechanické
připojení součásti k fotoaparátu.
Každý výrobce fotoaparátu má tuto patici zpravidla jinak konstruovanou, ale středový,
spouštěcí neboli synchronizační kontakt, tzv. trigger (x-sync) kontakt, obsahují všechny patice
typu hot shoe. Další kontakty na patici slouží pro komunikaci připojeného zařízení
s fotoaparátem (pro představu jejich funkce je v případě připojeného externího blesku přes ně
vyvoláván předblesk pro osvětlení snímané scény, aby mohl fotoaparát nastavit intenzitu
hlavního blesku podle jejích světelných podmínek).
Pokud je blesk synchronizován od první lamely závěrky, elektrický signál
na spouštěcím kontaktu je uzemněn, pokud se první lamela závěrky fotoaparátu odkryje.
- 11 -
Dojde tak k odpálení blesku při plném otevření závěrky. Blesk může být synchronizován
i od druhé lamely závěrky, ale v tom případě se blesk odpálí těsně před uzavřením závěrky.
Nutno zmínit, že i když není na patici připojeno žádné zařízení, spouštěcí signál je i tak
uzemňován.
1.3 Funkce časovače/čítače v CTC režimu3
K vytvoření postupně se rozsvěcujících LED (hada) jsme využili obvod
časovače/čítače mikrokontroléru ATmega8 od firmy Atmel. Mikrokontrolér obsahuje celkem
tři obvody čítače/časovače, dva 8bitové (č. 0 a 2) a jeden 16bitový (č. 1). Pro naši aplikaci
bylo nejvhodnější použít právě 16bitové provedení (schéma obvodu na Obrázek 1.4).
Obvod časovače/čítače 1 umožňuje práci v několika režimech, které se nechají nastavit
pomocí registrů přiřazených tomuto obvodu. Pro nás byl nejzajímavější režim CTC
(z angl. Clear Timer on Compare). V tomto režimu se hodnota 16bitového registru
časovače/čítače TCNT1 inkrementuje o jedna nahoru s příchodem předděleného hodinového
signálu. Jakmile se hodnota registru TCNT1 shoduje s hodnotou uloženou v registru OCR1A,
vyvolá se přerušení, hodnota TCNT1 se vynuluje, a poté se proces opakuje.
Aby časovač/čítač fungoval podle výše popsaného principu, je nutné přenastavit
příslušné bity v odpovídajících registrech čítače/časovače. Jedná se především o bit WGM12
v registru TCCR1B (v log. 1 >> režim CTC), ostatní bity kromě bitů CS12 až CS10 necháme
v log. 0. Bity CS12 až CS10 slouží k nastavení předděličky hodinového signálu.
Jejich nastavení odpovídá určitému dělicímu poměru (viz stranu 99 v datovém listu
mikrokontroléru). Pokud by v těchto bitech byly zapsané log. 0, časovač/čítač by nebyl
spuštěn. Pro povolení přerušení při shodě s hodnotou registru OCR1A je nutné zapsat log. 1
do bitu OC1E1A v registru TIMSK (ostatní bity nás nezajímají). Nakonec je potřeba
do registru ORC1A vložit požadovaný počet tiků, do kterého bude časovač/čítač počítat.
Pokud nejsou do bitů CS12 až CS10 zapsané log. 0, mělo by nastat přerušení vždy po době,
kterou jsme si zvolili.
Počet tiků odpovídajících požadované době čítání se vypočítá dle rovnice (1.1).
𝑡𝑖𝑘𝑦 = 𝑓𝐶𝐿𝐾 ∗ 𝑝𝑜𝑧𝑎𝑑𝑜𝑣𝑎𝑛𝑎_𝑑𝑜𝑏𝑎_𝑐𝑖𝑡𝑎𝑛𝑖 ∗ 𝑑𝑒𝑙𝑖𝑐𝑖_𝑝𝑜𝑚𝑒𝑟 [−] (1.1)
fCLK … frekvence hodinového signálu [Hz], delici_pomer … hodnota dělicího poměru [-],
pozadovana_doba_citani … doba, po které se vyvolá přerušení [s]
3 Informace čerpány z datového listu mikrokontroléru [5]
- 12 -
Obrázek 1.4: Schéma obvodu časovače/čítače 1 mikrokontroléru ATmega8
(zdroj obrázku: [5], strana 76)
pzn. místo písmena n v registrech na obrázku by měla být číslice 1, jakožto označení časovače/čítače 1
- 13 -
2 ZAŘÍZENÍ POUŽÍTÁ K VYPRACOVÁNÍ PROJEKTU
2.1 Použitý fotoaparát
K řešení úkolu jsme dostali k dispozici jednookou zrcadlovku bez sklopného zrcadla
(z angl. SLR mirrorless = Single-Lens Reflex mirrorless) SONY Alpha 7. Tento fotoaparát je
zobrazen na Obrázek 2.1. Fotoaparát disponuje jak elektrickou, tak mechanickou závěrkou.
Podrobnou specifikaci zmíněného fotoaparátu je možné najít na webové stránce
https://developer.sony.com/devices/cameras/sony-ilce-7b-a7-alpha-7-interchangeable-lens-
camera/.
2.1.1 Připojení přípravku k fotoaparátu
Na hot shoe patici fotoaparátu jsme připojili propojovací kabel, ze kterého jsme
vyvedli spouštěcí signál, jejž jsme využili pro odstartování hada vytvořeného řadou LED
na přípravku. Pomocí tohoto přípravku jsme zachycovali zpoždění vzniklé od počátku
snímání do příchodu spouštěcího signálu.
Obrázek 2.1: Fotoaparát SONY Alpha 7
(zdroj obrázku: https://1.img-dpreview.com/files/p/TS375x375~products/sony_a7/shots/2fee066f3598410f93701e3561259596.png)
- 14 -
2.2 Volba mikrokontroléru
Pro realizaci projektu jsme zvolili mikrokontrolér (MCU) od firmy Atmel s typovým
označením ATmega8-16PU. Mikrokontrolér mimo jiné disponuje interním 8 MHz
RC oscilátorem, 16bitovým čítačem/časovačem a implementovaným vstupně/výstupním
sériovým komunikačním rozhraním USART (= Universal Synchronous/Asynchronous
Receiver and Transmitter), jehož funkci jsme použili pro komunikaci mezi PC (= osobní
počítač) a přípravkem. Pro dosažení větší rychlosti a stabilnějšího hodinového signálu jsme
k MCU připojili externí 16 MHz krystalový rezonátor (nutné nastavit příslušné konfigurační,
fuse, bity MCU).
Katalogový list MCU je možné najít v odkazu zdroje [5].
2.2.1 Komunikace PC s mikrokontrolérem
Komunikaci MCU s PC jsme realizovali pomocí převodníku USB (= Universal Serial
Bus) na USART. MCU využívá rozhraní USART s přenosovou rychlostí (z angl. baud rate)
19200 bps (= bitů za sekundu) s jedním STOP bitem, bez paritního bitu a bez handshakingu
(= výměna standardizovaných signálů mezi zařízeními pro regulaci přenosu dat). Parametry
programu se zadávají přes terminál v PC.
Obrázek 2.2: Přípravek propojený s převodníkem USB na USART
- 15 -
Převodník jsme používali také jako zdroj napájecího napětí pro MCU. Napájecí svorky
jsou tedy připojeny na odpovídající vstupy MCU. Kromě toho jsou vodiče RxD a
TxD převodníku připojeny na odpovídající vstupy MCU (RxD převodníku na TxD MCU,
TxD převodníku na RxD MCU).
Katalogový list použitého převodníku (resp. čipu na převodníku) je možné najít
na webové adrese http://datasheetcafe.databank.netdna-cdn.com/wp-content/uploads/2016/03/
ch340g-datasheet.pdf.
2.2.2 Programování mikrokontroléru
K naprogramování MCU jsme používali USBasp programátor připojený přes rozhraní
USB k PC. Programátor využívá sériové periferní komunikační rozhraní SPI (z angl. Serial
Peripheral Interface). Vývody z programátoru jsou připojeny k odpovídajícím vstupům
mikrokontroléru. Programátor umožňuje naprogramovat MCU přímo v obvodu bez nutnosti
jeho vyjímání a umísťování do zvláštního samostatného programátoru.
Katalogový list použitého USBasp programátoru je možné najít na webové adrese
https://protostack.com.au/download/Users%20Guide%20(AC-PG-USBASP-UG-V2.0).pdf.
Obrázek 2.3: Programátor USBasp
- 16 -
3 KOMPLETACE PŘÍPRAVKU NA NEPÁJIVÉM POLI
Rozhodli jsme se použít nápad ze zadání, a to vytvořit hada řadou LED, které budeme
postupně rozsvěcovat pomocí MCU po příchodu synchronizačního signálu od fotoaparátu.
Nejprve bylo nutné zapojit součástky a MCU na nepájivém poli, poté MCU naprogramovat.
3.1 Výběr součástek
K vytvoření hada jsme použili deset kusů LED červené barvy, které jsou
přes předřadné rezistory, vytvářející potřebné úbytky napětí k rozsvícení LED, připojeny
k výstupním vývodům MCU. Synchronizační signál je připojen na vstupní vývod MCU
přes PULL-UP rezistor, zaručující přítomnost log. 1 v době, kdy nepřichází spouštěcí signál
od fotoaparátu. K MCU jsme připojili externí 16 MHz krystal, zajišťující stabilní a vysoký
hodinový kmitočet pro naši aplikaci.
Schéma zapojení přípravku odpovídá schématu uvedenému v podkapitole Schéma
plošného spoje. Seznam použitých součástek je stejný jako na následně vytvořeném plošném
spoji (viz Příloha A).
3.2 Programování MCU
Program pro MCU byl psán skrze kompilátor jazyka C CodeVisionAVR.
3.2.1 Vytvořený program
Program nahraný v MCU je možné si prohlédnout v Příloha C. V programu bylo nutné
vyřešit funkci časovače/čítače, komunikaci MCU s PC přes rozhraní USART a samotné
rozsvěcení řady LED, hada používaného k měření doby zpoždění. Dále bylo nutné
nakonfigurovat jak externí přerušení (sestupnou hranou synchronizačního signálu
fotoaparátu), tak přerušení od časovače/čítače v režimu CTC (při shodě nastavené hodnoty
čítání).
- 17 -
4 TESTOVÁNÍ FUNKCE PŘÍPRAVKU NA NEPÁJIVÉM POLI
Po úspěšném rozchození aplikace na nepájivém poli přišlo na řadu samotné testování
funkce našeho přípravku. Funkce synchronizačního signálu fotoaparátu byla simulována
pomocí tlačítka (neošetřovali jsme jeho zákmity). Přes osciloskop jsme zjišťovali, zdali
zadávané časové parametry z terminálu odpovídají skutečnosti. Parametry programu jsou
offset a perioda rozsvěcování (blikání) LED diod. Pro taktování obvodu časovače/čítače MCU
jsme použili předděličku s dělicím poměrem 1/64. Zapojení přípravku pro testovací měření
zobrazuje Obrázek 4.1.
V následujících podkapitolách je možné vidět na snímcích z osciloskopu naměřené
doby rozsvěcení LED, následované zhodnocením přesnosti jejich rozsvěcení.
Obrázek 4.1: Testování na nepájivém poli
- 18 -
4.1 Test rozsvícení první LED
Nastavené parametry jsou offset (= čas, po který se nic neděje) 2,5 ms a perioda
rozsvěcování LED 0,1 ms (tzn. první LED se rozsvítí v čase offset + perioda rozsvěcování,
tedy za 2,6 ms, bude rozsvícená 0,1 ms, ostatní LED se pak rozsvítí vždy po 0,1 ms).
4.2 Test doby svícení LED
Nastavené parametry jsou offset 0 ms a perioda rozsvěcování LED 0,1 ms (tzn. první
LED se rozsvítí v čase offset + perioda rozsvěcování, tedy za 0,1 ms, a bude svítit právě
podobu 0,1 ms).
Obrázek 4.2: Test rozsvícení první LED
Obrázek 4.3: Test doby svícení LED
- 19 -
4.3 Test rozsvícení poslední LED
Nastavené parametry jsou offset 3,5 ms a perioda rozsvěcování LED 0,1 ms
(tzn. poslední LED se rozsvítí v čase offset + 10*perioda rozsvěcování, tedy za 4,5 ms, svítit
bude po dobu 0,1 ms).
4.4 Test rozsvícení dvou sousedních LED
Nastavené parametry jsou offset 0 ms a perioda rozsvěcování LED 0,1 ms
(tzn. první LED svítí po dobu 0,1 ms, jakmile první LED zhasne, rozsvítí se druhá, která svítí
také 0,1 ms).
Obrázek 4.4: Test rozsvícení poslední LED
Obrázek 4.5: Test rozsvícení dvou sousedních LED
- 20 -
4.5 Zhodnocení testování
Testování prokázalo, že program řídící 16bitový časovač/čítač pracuje s dostatečnou
přesností potřebnou pro naši aplikaci. Po reálných časových průbězích požadujeme, aby
odpovídaly na desetinu milisekund zadaným parametrům. Všechna testování odpovídají
tomuto požadavku, chyba časových průběhů se projeví až v řádu jednotek mikrosekund
(o dva řády níž). Z tohoto důvodu si můžeme dovolit zanedbat chybu měření osciloskopu.
Tato přesnost je zaručena vždy, když se perioda rozsvěcování LED nastaví v řádech desetin
milisekund nebo výš.
Pokud zadáme periodu rozsvěcování v nižších řádech než v jednotkách desetin
milisekund (setiny a tisíciny milisekund), přesnost zaručíme pouze tehdy, bude-li zadaná
perioda rozsvěcování LED (pozadovana_doba_citani) celočíselně dělitelná čtyřmi
(viz důkazy níže). Důvodem je počet tiků zadávaných do porovnávacího registru obvodu
časovače/čítače OCR1A (zmíněno v teoretické části), jenž musí být celé číslo. Výpočet počtu
tiků je možné provést podle vztahu (1.1), uvedeného v teoretické části.
Pro všechny níže uvedené výpočty platí fCLK = 16 MHz, delici_pomer = 1/64 [-],
perioda rozsvěcování LED představuje ve vztahu (1.1) symbol pozadovana_doba_citani.
Důkazy, že při periodě rozsvěcování zadané v řádech pod desetinou milisekundy není
zaručena přesnost:
Perioda rozsvěcování LED = 1 µs:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 1 ∗ 10−6 ∗1
64= 0,25 [−] (4.1)
Perioda rozsvěcování LED = 150 µs:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 150 ∗ 10−6 ∗1
64= 37,5 [−] (4.2)
Důkazy, že při zadané periodě rozsvěcování dělitelné čtyřmi je zaručena přesnost:
Perioda rozsvěcování LED = 4 µs:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 4 ∗ 10−6 ∗1
64= 1 [−] (4.3)
Perioda rozsvěcování LED = 164 µs:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 164 ∗ 10−6 ∗1
64= 41 [−] (4.4)
- 21 -
Důkazy, že při periodě rozsvěcování zadané v řádech desetin milisekundy a výš je
zaručena přesnost:
Perioda rozsvěcování LED = 100 µs = 0,1 ms:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 0,1 ∗ 10−3 ∗1
64= 25 [−] (4.5)
Perioda rozsvěcování LED = 1500 µs = 1,5ms:
𝑡𝑖𝑘𝑦 = 16 ∗ 106 ∗ 1,5 ∗ 10−3 ∗1
64= 375 [−] (4.6)
Z výše uvedených výpočtů vyplývá, že počet tiků předděleného hodinového signálu
pro časování po dobu jedné mikrosekundy je 0,25. To samé platí i pro nastavovaný čas
offsetu, jelikož se využívá ten samý blok a princip časovače/čítače.
- 22 -
5 NÁVRH DESKY PLOŠNÉHO SPOJE
Jakmile jsme ověřili správnou funkci navržené aplikace na nepájivém poli, mohli jsme
přistoupit k vytvoření desky plošného spoje (DPS) ve vývojovém prostředí EAGLE 7.1.0.
V následujících podkapitolách je možné si prohlédnout vytvořenou DPS.
5.1 Schéma plošného spoje
Obrázek 5.1: Výřez ze schématu DPS v Příloha B
- 23 -
5.2 Deska plošného spoje
5.3 Tištěný spoj
Obrázek 5.2: Deska plošného spoje
Obrázek 5.3: Tištěný spoj
- 24 -
5.4 Osazovací schéma
5.5 Seznam součástek použitých na plošném spoji
Seznam součástek použitých na DPS je možno vyhledat v Příloha A.
Obrázek 5.4: Osazovací schéma
- 25 -
5.6 Vyrobená DPS
Obrázek 5.5: Vyrobená DPS, pohled shora
Obrázek 5.6: Vyrobená DPS, pohled zdola
- 27 -
6 MĚŘENÍ S FOTOAPARÁTEM
Oživení DPS nám umožnilo ověřit funkci přípravku s fotoaparátem, čemuž se věnují
následující podkapitoly.
6.1 Zapojení měření
Obrázek 6.1 zachycuje, jak probíhalo samotné měření s fotoaparátem.
Před fotoaparátem je umístěna DPS přípravku, do něhož je přiveden synchronizační signál
z hot shoe patice fotoaparátu. Přípravek je připojen k PC skrze dříve zmíněný převodník USB
na USART.
Ke každému měření bylo nutné přiložit papírek s popisem nastavených parametrů
pro snazší identifikaci vyfocených fotografií.
Obrázek 6.1: Ukázka zapojení pro měření
- 28 -
6.2 Postup měření
Přípravek propojíme s PC a fotoaparátem.
Na fotoaparátu v režimu full manual nastavíme parametry otevření závěrky (F2.0) a
citlivost CMOS snímačů obrazu (ISO 200). Tyto parametry se po dobu měření
NESMÍ MĚNIT, protože změřené časy jsou závislé na těchto parametrech.
Nastavíme dobu snímání fotografie, expoziční čas Ts.
Sepnutí blesku (synchronizační signál) vyvolá v MCU externí přerušení
v čase Tx, které spustí hada.
Fotoaparát vyfotí fotografii pořízenou do okamžiku Ts.
Z fotografie odečteme počet svítících LED a podle nastavených parametrů (offset a
perioda rozsvěcování LED) vypočítáme čas od Tx do Ts, dobu změřenou hadem THAD.
Vypočítáme čas Tx jako rozdíl doby změřené hadem THAD a doby snímání Ts.
Obrázek 6.2: Grafické znázornění popsané problematiky měření zpoždění Tx
- 29 -
6.3 Ukázka měření a práce s terminálem
Parametry přípravku (offset první LED a doba rozsvěcování LED) se zadávají pomocí
terminálu. Při zadávání těchto parametrů je nutné nepřekročit hodnotu 65 535 µs, došlo by
totiž k přetečení 16bitových proměnných typu unsigned integer a přípravek by byl špatně
nastaven.
S terminálem se při měření pracuje následujícím způsobem:
Po připojení přípravku k PC pomocí USB na USART převodníku zvolte vlevo
nahoře tlačítko Connect. Jakmile se nápis tlačítka Connect změní na Disconnect,
je přípravek propojen s terminálem.
Po připojení se program spustí klávesou ENTER a program vás vyzve k zadání
parametrů hada (offset první LED a periodu rozsvěcování LED)
Po zadání parametrů lze celý proces opakovat stisknutím klávesy ENTER a tím
měnit parametry hada během měření.
Dbejte na to, aby zadané hodnoty offsetu a periody rozsvěcování nepřekročily
hodnotu 65 535 µs, došlo by k přetečení programových proměnných, což by vedlo
ke špatnému nastavení přípravku!
Obrázek 6.3: Měření pro offset 2,8 ms a periodu rozsvěcování LED 0,1 ms
- 31 -
6.4 Naměřené hodnoty
Pro všechna měření jsou parametry fotoaparátu nastaveny následujícím způsobem:
Citlivost CMOS snímačů, ISO 200.
Otevření závěrky při snímání, F2.0 (úplně otevřená závěrka).
6.4.1 Měření zpoždění Tx
Tabulka 6.1: Měření zpoždění Tx pro režimy snímání 1/20, 1/50, 1/100
EXPOZIČNÍ ČAS Ts [s]
1/20 1/50 1/100
offset [ms] offset [ms] offset [ms]
47,4 17,5 7,7
měření
č.
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
1 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
2 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
3 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
4 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
5 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
6 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
7 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
8 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
9 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
10 9 48,30 1,70 8 18,30 1,70 7 8,40 1,60
průměr
48,30 1,70
18,30 1,70
8,40 1,60
- 32 -
Tabulka 6.2: Měření zpoždění Tx pro expoziční časy 1/200, 1/250 a 1/400
Tabulka 6.3: Měření zpoždění Tx pro expoziční čas 1/500
EXPOZIČNÍ ČAS Ts [s]
1/200 1/250 1/400
offset [ms] offset [ms] offset [ms]
2,8 1,7 0,4
měření
č.
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
1 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
2 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
3 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
4 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
5 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
6 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
7 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
8 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
9 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
10 8 3,60 1,40 9 2,60 1,40 7 1,10 1,40
průměr
3,60 1,40
2,60 1,40
1,10 1,40
EXPOZIČNÍ ČAS Ts [s]
1/500
offset [ms]
0
měření
č.
počet
rozsvícených
LED
doba
změřená
hadem
THAD [ms]
zpoždění
Tx [ms]
1 6 0,60 1,40
2 6 0,60 1,40
3 6 0,60 1,40
4 6 0,60 1,40
5 6 0,60 1,40
6 6 0,60 1,40
7 6 0,60 1,40
8 6 0,60 1,40
9 6 0,60 1,40
10 6 0,60 1,40
průměr
0,60 1,40
- 33 -
6.4.2 Příklady výpočtu doby změřené hadem a zpoždění (Tx)
Výpočty pro dobu snímání 1/200 (5 ms) a měření č. 1 z Tabulka 6.2.
Doba změřená hadem THAD:
𝑇𝐻𝐴𝐷 = 𝑝𝑜č𝑒𝑡_𝑟𝑜𝑧𝑠𝑣í𝑐𝑒𝑛ý𝑐ℎ_𝐿𝐸𝐷 ∗ 𝑝𝑒𝑟𝑖𝑜𝑑𝑎_𝑟𝑜𝑧𝑠𝑣ě𝑐𝑜𝑣á𝑛í + 𝑜𝑓𝑓𝑠𝑒𝑡
𝑇𝐻𝐴𝐷 = 8 ∗ 0,1 + 2,8 = 3,6 ms (6.1)
Měřené zpoždění Tx:
𝑇𝑥 = 𝑑𝑜𝑏𝑎_𝑠𝑛í𝑚á𝑛í (𝑇𝑠) − 𝑇𝐻𝐴𝐷
𝑇𝑥 = 5 − 3,6 = 1,4 𝑚𝑠 (6.2)
6.4.3 Výpočet nejistot měření
Tabulka 6.4: Průměrné zpoždění pro různé doby snímání
Výběrová směrodatná odchylka:
𝑠𝑥 = √1
𝑛 ∗ (𝑛 − 1)∑ (𝑥𝑖 − 𝑥𝑃𝑅Ů𝑀Ě𝑅)2
𝑛
𝑖=1
𝑠𝑥 = √1
7 ∗ (7 − 1)∑ (𝑝𝑟ů𝑚ě𝑟𝑛é_𝑧𝑝𝑜ž𝑑ě𝑛í_𝑖 − 1,51)2
7
𝑖=1
𝑠𝑥 = 0,05533 𝑚𝑠
(6.3)
expoziční čas Ts [s]
průměrné zpoždění Tx [ms]
1/20 1,70
1/50 1,70
1/100 1,60
1/200 1,40
1/250 1,40
1/400 1,40
1/500 1,40
průměr 1,51
počet změřených
průměrů n [-]
výběrová směrodatná
odchylka [ms]
Nejistota
typu A ua(t) [ms]
Nejistota
typu B ub(t) [ms]
Kombinovaná
nejistota C uc(t) [ms]
Rozšířená standardní
nejistota U [ms]
7 0,05533 0,07193 0 0,07193 0,18557
Tabulka 6.5: Vypočtené nejistoty měření
- 34 -
Nejistota typu A ua(t):
Tabulka 6.6: Koeficienty pro určení nejistoty A
n [-] 9 8 7 6 5 4 3 2
ks [-] 1,2 1,2 1,3 1,3 1,4 1,7 2,3 7,0
𝑢𝐴(𝑡) = 𝑘𝑠 ∗ 𝑠𝑥
V našem případě je počet měření n = 7, a tedy ks = 1,3.
𝑢𝐴(𝑡) = 1,3 ∗ 0,05533 = 0,07193 𝑚𝑠
(6.4)
Nejistota typu B ub(t):
Nejistotu typu B pokládáme rovnu nule z toho důvodu, že zanedbáváme chyby
fotoaparátu, a protože samotný MCU nám zajišťuje dostatečnou přesnost blikání LED,
viz podkapitolu Zhodnocení testování.
𝑢𝐵(𝑡) = 0 (6.5)
Kombinovaná nejistota C uc(t):
𝑢𝐶(𝑡) = √𝑢𝐴2(𝑡) + 𝑢𝐵
2 (𝑡) = √0,071932 + 0 = 0,07193 𝑚𝑠 (6.6)
Rozšířená standardní nejistota U:
Tabulka 6.7: Koeficienty pro výpočet standardní nejistoty
kr [-] 1 2 2,58 3
p [%] 68 95 99 99,7
Volíme p = 99 %, tomu odpovídá koeficient kr = 2,58. P je pravděpodobnost, se kterou
se výsledek měření nalézá v daném intervalu.
𝑈 = 𝑢𝐶(𝑡) ∗ 𝑘𝑟 = 0,07193 ∗ 2,58 = 0,18557 𝑚𝑠 (6.7)
6.5 Výsledek měření
Čas od počátku snímání do sepnutí blesku Tx se s pravděpodobností 99 % pohybuje
v intervalu:
𝑣ý𝑠𝑙𝑒𝑑𝑒𝑘_𝑚ěř𝑒𝑛í = 𝑝𝑟ů𝑚ě𝑟_𝑧𝑝𝑜ž𝑑ě𝑛í 𝑈
𝑇𝑥 = ( 1,51 0,19 ) 𝑚𝑠 (6.8)
- 36 -
7 ZÁVĚR
7.1 Podmínky měření
Při měření bylo nutné dbát na to, aby parametry fotoaparátu, citlivost snímání a
otevření závěrky při snímání, zůstaly po celou dobu měření stejné. Měřená doba zpoždění
synchronizačního signálu fotoaparátu je totiž na těchto parametrech závislá, proto bude mít
pro jiné parametry měřené zpoždění jinou hodnotu. Tato změna zpoždění se pohybuje v řádu
desetin milisekund, což je pro naše měření nepřijatelná chyba.
7.2 Výsledek měření
Závislost zpoždění synchronizačního signálu blesku na době snímání fotoaparátu jsme
změřili pro tyto zvolené parametry fotoaparátu: citlivost snímání ISO 200 a otevření závěrky
při snímání F2.0. Závislost jsme proložili lineární spojnicí trendu, která nejlépe odpovídá
naměřeným hodnotám. Fotoaparát se využívá v režimu snímání 1/1000 (expoziční čas je
jedna milisekunda). Princip funkce přípravku však nedovoluje takto krátkou dobu snímání
změřit. Nejkratší měřitelná doba snímání jsou dvě milisekundy (režim 1/500). Zpoždění klesá
při zmenšující se době snímání. Při nejkratší měřitelné době snímání, 2 ms (režim fotoaparátu
1/500), má zpoždění synchronizačního signálu Tx hodnotu 1,4 ms. Pro nejdelší měřenou dobu
snímání, 50 ms (režim fotoaparátu 1/20), má zpoždění Tx hodnotu 1,7 ms. Matematickým
zpracováním naměřených hodnot bylo vypočítáno, že zpoždění se s pravděpodobností 99 %
pohybuje v intervalu:
𝑇𝑥 = (1,51 0,19 ) 𝑚𝑠 (7.1)
7.3 Přesnost přípravku
Přesnost přípravku byla zmíněna v podkapitole Zhodnocení testování.
7.4 Možné vylepšení
Pro budoucí měření by bylo vhodné, aby se přípravek umístil do krabičky, jejíž výrobu
jsme z časových důvodů nestihli. DPS má tři vyvrtané díry s průměrem 3,2 mm pro montáž
distančních sloupků (pro lepší polohování v krabičce). Pokud se fotoaparát bude používat
s jinými parametry, citlivost snímačů CMOS a otevření závěrky při snímání, bude třeba
zpoždění změřit pro tyto parametry dle kapitoly Měření s fotoaparátem. Příhodné by také bylo
vyzkoušet změřit zpoždění i pro jiný typ fotoaparátu. Byl by výsledek měření podobný?
- 37 -
SEZNAM POUŽITÝCH ZDROJŮ
[1] Terminologická komise ČZÚK. Terminologický slovník zeměměřictví a katastru
nemovitostí, [Online] [Citováno 3. 5. 2017],
Dostupné z: https://www.vugtk.cz/slovnik/index.php
[2] GÁBRLÍK, Petr. Letecká fotogrammetrie, 2017, [Online] [Citováno 3. 5. 2017],
Dostupné z:
https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnx2
dXRyb2JvdGlrYXxneDpjOTQ0Y2E3MDcwZjU2NDA
[3] HONSNEJMAN, Petr. Závěrka (internetový článek), 2015, [Online]
[Citováno 22. 4. 2017], Dostupné z: http://moje.tajemno.net/zaverka/
[4] REICHL, Jaroslav. Synchronizace blesku (internetový článek), 2012, [Online]
[Citováno 22. 4. 2017], Dostupné z:
http://fyzika.jreichl.com/main.article/view/1553-synchronizace-blesku
[5] Atmel Corporation. 8-bit Atmel with 8KBytes In-System Programmable Flash,
ATmega8, ATmega8L (datový list mikrokontroléru), 2013, [Online]
[Citováno 30. 4. 2017], Dostupné z:
http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-
ATmega8_L_datasheet.pdf
- 38 -
SEZNAM OBRÁZKŮ
Obrázek 0.1: Úkol měření .......................................................................................................... 2
Obrázek 1.1: Letecká fotogrammetrie ........................................................................................ 8
Obrázek 1.2: Princip funkce centrální závěrky .......................................................................... 9
Obrázek 1.3: Princip funkce štěrbinové závěrky při různých dobách osvitu ............................. 9
Obrázek 1.4: Schéma obvodu časovače/čítače 1 mikrokontroléru ATmega8.......................... 12
Obrázek 2.1: Fotoaparát SONY Alpha 7 ................................................................................. 13
Obrázek 2.2: Přípravek propojený s převodníkem USB na USART ....................................... 14
Obrázek 2.3: Programátor USBasp .......................................................................................... 15
Obrázek 4.1: Testování na nepájivém poli ............................................................................... 17
Obrázek 4.2: Test rozsvícení první LED .................................................................................. 18
Obrázek 4.3: Test doby svícení LED ....................................................................................... 18
Obrázek 4.4: Test rozsvícení poslední LED ............................................................................. 19
Obrázek 4.5: Test rozsvícení dvou sousedních LED ............................................................... 19
Obrázek 5.1: Výřez ze schématu DPS v Příloha B .................................................................. 22
Obrázek 5.2: Deska plošného spoje ......................................................................................... 23
Obrázek 5.3: Tištěný spoj ......................................................................................................... 23
Obrázek 5.4: Osazovací schéma ............................................................................................... 24
Obrázek 5.5: Vyrobená DPS, pohled shora .............................................................................. 25
Obrázek 5.6: Vyrobená DPS, pohled zdola .............................................................................. 25
Obrázek 5.7: Vyrobená DPS, popis konektorů ........................................................................ 26
Obrázek 6.1: Ukázka zapojení pro měření ............................................................................... 27
Obrázek 6.2: Grafické znázornění popsané problematiky měření zpoždění Tx ....................... 28
Obrázek 6.3: Měření pro offset 2,8 ms a periodu rozsvěcování LED 0,1 ms .......................... 29
Obrázek 6.4: Práce s terminálem (zadávání parametrů pro MCU) .......................................... 30
SEZNAM TABULEK
Tabulka 6.1: Měření zpoždění Tx pro režimy snímání 1/20, 1/50, 1/100 ................................ 31
Tabulka 6.2: Měření zpoždění Tx pro expoziční časy 1/200, 1/250 a 1/400 ............................ 32
Tabulka 6.3: Měření zpoždění Tx pro expoziční čas 1/500 ...................................................... 32
Tabulka 6.4: Průměrné zpoždění pro různé doby snímání ....................................................... 33
Tabulka 6.5: Vypočtené nejistoty měření ................................................................................ 33
Tabulka 6.6: Koeficienty pro určení nejistoty A ...................................................................... 34
Tabulka 6.7: Koeficienty pro výpočet standardní nejistoty ..................................................... 34
- 39 -
SEZNAM PŘÍLOH
Příloha A: Seznam použitých součástek na plošném spoji
Příloha B: Schéma zapojení součástek na plošném spoji
Příloha C: Program pro mikrokontrolér
1. strana přílohy A
PŘÍLOHY
Příloha A: Seznam použitých součástek na plošném spoji
Exported from BROB.sch at 1. 5. 2017 9:39:29
EAGLE Version 7.1.0 Copyright (c) 1988-2014 CadSoft
Assembly variant:
Part Value Device Package Library Sheet
C1 27pF C-EU050-024X044 C050-024X044 rcl 1
C2 27pF C-EU050-024X044 C050-024X044 rcl 1
C3 1uF CPOL-EUE2.5-5 E2,5-5 rcl 1
IC1 MEGA8-P MEGA8-P DIL28-3 atmel 1
LED1 2,4V LED5MM LED5MM led 1
LED2 2,4V LED5MM LED5MM led 1
LED3 2,4V LED5MM LED5MM led 1
LED4 2,4V LED5MM LED5MM led 1
LED5 2,4V LED5MM LED5MM led 1
LED6 2,4V LED5MM LED5MM led 1
LED7 2,4V LED5MM LED5MM led 1
LED8 2,4V LED5MM LED5MM led 1
LED9 2,4V LED5MM LED5MM led 1
LED10 2,4V LED5MM LED5MM led 1
Q1 16MHz CRYSTALHC49S HC49/S 1
Q2 CON_BROB_2 CON_BROB_2CON_BROB_2BROBik 1
Q3 CON_BROB_4 CON_BROB_4CON_BROB_4BROBik1 1
Q4 CON_BROB_2 CON_BROB_2CON_BROB_2BROBik 1
R1 240R R-EU_0207/10 0207/10 rcl 1
R2 240R R-EU_0207/10 0207/10 rcl 1
R3 240R R-EU_0207/10 0207/10 rcl 1
R4 240R R-EU_0207/10 0207/10 rcl 1
R5 240R R-EU_0207/10 0207/10 rcl 1
R6 240R R-EU_0207/10 0207/10 rcl 1
R7 240R R-EU_0207/10 0207/10 rcl 1
R8 240R R-EU_0207/10 0207/10 rcl 1
R9 240R R-EU_0207/10 0207/10 rcl 1
R10 240R R-EU_0207/10 0207/10 rcl 1
R11 4k7 R-EU_0207/10 0207/10 rcl 1
S1 10-XX B3F-10XX switch-omron 1
1. strana přílohy C
Příloha C: Program pro mikrokontrolér
/******************************************************* This program was created by the CodeWizardAVR V3.29 Automatic Program Generator © Copyright 1998-2016 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : BROB – Mereni zpozdeni fotoaparatu Version : Date : 8. 4. 2017 Authors : Buchal, Valousek, Vybiral Company : UAMT, FEKT, VUTBR Comments: Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 16,000000 MHz (crystal) Memory model : Small External RAM size : 0 Data Stacksize : 256 *******************************************************/ #include <io.h> #include <stdio.h> #include <stdint.h> // Declare your global variable shere uint16_t offset=0; unsigned OffsetHigh=0; // po zapnuti je nastaven nulovy offset unsigned OffsetLow=0; // po zapnuti je nastaven nulovy offset unsigned LedHigh=0x61; // po zapnuti pojede had s periodou blikani 0.1s unsigned LedLow=0xA8; // po zapnuti pojede had s periodou blikani 0.1s unsignedchar c=0; unsigned i=0; unsigned j=0; // External Interrupt 0 service routine // Preruseni při prichodu synchronizačního signalu fotaku interrupt [EXT_INT0] void ext_int0_isr(void) { if (offset==0) { OCR1AH=LedHigh; OCR1AL=LedLow; } else { OCR1AH=OffsetHigh; OCR1AL=OffsetLow; c=1; } TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (1<<CS10); // abychom mohli presne merit 1ms a 0.1ms, musíme pouzit preddelicku hodinoveho signalu // preddelicka clk/64= (0<<CS12) | (1<<CS11) | (1<<CS10); TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (1<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0); } // Preruseni pro hada (hodnota komparatoru se shoduje s hodnotou casovace) // Timer1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { if((c==1)) { OCR1AH=LedHigh; OCR1AL=LedLow; c=0; }
2. strana přílohy C
else { if (i<4) { PORTB = 1 << (i+2); // had na PORTu B pouziva bity 2 az 5 i++; } else { PORTB=0; if (j<6) { PORTC = 1 << j; // had na PORTu C pouziva bity 0 az 5 j++; } else { TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10); // vypnuti casovace, had projel vsechny LED na PORTu B i=0; j=0; PORTC=0; } } } } void main(void) { // Declare your local variables here uint16_t t=0; uint16_t tik=0; unsigned aid=0; // Input/Output Ports initialization // Port B initialization // Function: Bit7=In Bit6=In Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=In Bit0=In // LED BITS 2 - 5 DDRB=0b00111100; // State: Bit7=T Bit6=T Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTB=0b00000000; // Port C initialization // Function: Bit6=In Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out // LED BITS 0 - 5 DDRC=0b0111111; // State: Bit6=T Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0 PORTC=0b0000000; // Port D initialization // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRD=0b00000000; // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=0b00000000; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: CTC top=OCR1A // OC1A output: Disconnected // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: Off TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (1<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10); TCNT1H=0x00;
3. strana přílohy C
TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; // hodnota 0019 v registru porovnavace odpovida pri preddelicce clk/64 casu 0.1ms OCR1BH=0x00; // hodnota 00FA v registru porovnavace odpovida pri preddelicce clk/64 casu 1ms OCR1BL=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<TOIE0); // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off GICR|=(0<<INT1) | (1<<INT0); MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00); GIFR=(0<<INTF1) | (1<<INTF0); // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 19200 UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM); UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8); UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL); UBRRH=0x00; UBRRL=0x33; #asm("sei") // pro povoleni preruseni printf("Stisknete ENTER\r\n"); while (1) { if(getchar()=='\r') // ZAPNEME ENTEREM { // PERIODA BLIKANI printf("Zadej periodu blikani v us (max 65 000 us).\r\n"); while (scanf("%u",&t)==0) printf("ERROR, zadej cislo \r \n "); printf("Had jede s periodou %u us.\r\n",t); tik=0.25*t; // při preddelicce clk/64 pripada na 1 us 0.25 tiku while (tik > 255) { aid++; tik -= 256; } LedHigh=aid; LedLow=tik; aid=0; // OFFSET printf("Zadej offset v us (max 65 000)\r\n"); while (scanf("%u",&offset)==0) printf("ERROR, elemental detected, nejsme kytickove deti\r\n"); printf("Offset je: %u us\r\n\r\n",offset); tik=0.25*offset; // pro preddelicku clk/64 odpovida 1 us 0.25 tiku while (tik > 255) { aid++; tik -= 256; } OffsetHigh=aid; OffsetLow=tik; aid = 0; printf("Stisknete ENTER\r\n"); } } }