Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2014:cam-ov7670

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revize Předchozí verze
Následující verze
Předchozí verze
2014:cam-ov7670 [2015/01/17 14:19]
Petr Machala [Konfigurace kamery]
2014:cam-ov7670 [2015/01/18 14:14] (aktuální)
Petr Machala [Kamera OV7670 se STM periferií DCMI]
Řádek 1: Řádek 1:
 ====== Kamera OV7670 se STM periferií DCMI ====== ====== Kamera OV7670 se STM periferií DCMI ======
- --- //​[[xmacha49@stud.feec.vutbr.cz|Petr Machala]], ​17.1.2015//+ --- //​[[xmacha49@stud.feec.vutbr.cz|Petr Machala]], ​18.1.2015//
  
 ===== Zadání ===== ===== Zadání =====
Řádek 55: Řádek 55:
  
 ==== Ovládací jádro ==== ==== Ovládací jádro ====
-Samotné jádro firmwaru (FW) je koncipováno jako jednoduchá nekonečná smyčka s blokujícím programovým obsahem společně s obsluhou použitých přerušení. Blokující obsah představuje např. standardní obsluhu FW nebo zobrazování na displej. Jako přerušení jsou použity interrupt request (IRQ) kanály pro čítače/​časovače (TIM), které zajišťují obsluhu uživatelského tlačítka a odpočítávání a DMA řadič pro indikaci kompletního přenosu mezi DCMI sběrnicí a pamětí. Zjednodušenou funkci FW přípravku ilustruje vývojový diagram na Obr. 5 níže.+Samotné jádro firmwaru (FW) je koncipováno jako jednoduchá nekonečná smyčka s blokujícím programovým obsahem společně s obsluhou použitých přerušení. Blokující obsah představuje např. standardní obsluhu FW nebo zobrazování na displej. Jako přerušení jsou použity interrupt request (IRQ) kanály pro čítače/​časovače (TIM), které zajišťují obsluhu uživatelského tlačítka a odpočítávání a DMA řadič pro indikaci kompletního přenosu mezi DCMI sběrnicí a pamětí. Jako obrazový formát snímků byl zvolen barevný model RGB565 a rozlišení 320x240 px (QVGA), který je podporován kamerou i použitým displejem. Zjednodušenou funkci FW přípravku ilustruje vývojový diagram na Obr. 5 níže.
  
 {{:​2014:​cam-ov7670:​vyvojovy_diagram_sw.png?​650|Obr. 5: Vývojový diagram jádra obslužného FW}} {{:​2014:​cam-ov7670:​vyvojovy_diagram_sw.png?​650|Obr. 5: Vývojový diagram jádra obslužného FW}}
Řádek 240: Řádek 240:
 </​code>​ </​code>​
  
-Zde můžeme vidět např. resetování všech registrů do výchozího stavu nebo nastavení synchronizačních signálů pro zajištění korektní synchronizace na základě zvoleného formátu (QVGA, RGB565) jednotlivých snímků. Kompletní nastavení kamery obsahuje úpravu celkem 122 konfiguračních registrů, které je možné nalézt zde {{:​2014:​cam-ov7670:​ov7670_settings.zip| Kompletní konfigurace kamery}}.+Zde můžeme vidět např. resetování všech registrů do výchozího stavu nebo nastavení synchronizačních signálů pro zajištění korektní synchronizace na základě zvoleného formátu (QVGA, RGB565) jednotlivých snímků. Kompletní nastavení kamery obsahuje úpravu celkem\\ 122 konfiguračních registrů, které je možné nalézt zde {{:​2014:​cam-ov7670:​ov7670_settings.zip| Kompletní konfigurace kamery}}.
 ==== Dosažené výsledky ==== ==== Dosažené výsledky ====
-Nyní můžeme přejít přímo k demonstraci dosažených výsledků, tedy zobrazení získaných snímků. Pro názornost ​je uvedeno ​více nastavení modulu kamery pro demonstraci vlivů jednotlivých nastavení na kvalitu výsledného snímku. Jedná se o čistá obrazová data, která byla získána pomocí komunikace vývojové desky ve virtual COM port (VCP) módu se softwarem (SW) //MATLAB// na PC. Problematika ​komunikace je opět rozsáhlejší a je nad rámec tohoto projektu, takže je záměrně vynechána, nicméně lze říct, že je opět založena na oficiální předloze USB VCP. Získané obrazové výsledky lze tedy vidět na Obr. 6 až Obr. 9 níže.+Nyní můžeme přejít přímo k demonstraci dosažených výsledků, tedy zobrazení získaných snímků. Pro názornost ​zde můžeme nalézt ​více nastavení modulu kamery pro demonstraci vlivů jednotlivých nastavení na kvalitu výsledného snímku. Jedná se o čistá obrazová data, která byla získána pomocí komunikace vývojové desky ve virtual COM port (VCP) módu se softwarem (SW) //MATLAB// na PC. Tato komunikace\\ je opět rozsáhlejší ​problematikou ​a je nad rámec tohoto projektu, takže je záměrně vynechána. Nicméně lze říct, že je opět založena\\ na oficiální předloze USB VCP. Získané obrazové výsledky lze tedy vidět na Obr. 6 až Obr. 9 níže.
  
-{{:​2014:​image_default.png | Obr. 6: Získaný snímek pro výchozí konfiguraci kamery}}+{{:2014:cam-ov7670:​image_default.png | Obr. 6: Získaný snímek pro výchozí konfiguraci kamery}}
  
-{{ :​2014:​image_no_AWB_AGC_AEC.png | Obr. 7: Získaný snímek pro kompletní konfiguraci (mimo AGC, AEC a AWB)}}+{{:2014:cam-ov7670:​image_no_AWB_AGC_AEC.png| Obr. 7: Získaný snímek pro kompletní konfiguraci (mimo AGC, AEC a AWB)}}
  
-{{:​2014:​image_no_0xb0.png | Obr. 8: Získaný snímek pro kompletní konfiguraci (mimo registru 0xb0)}}+{{:2014:cam-ov7670:​image_no_0xb0.png | Obr. 8: Získaný snímek pro kompletní konfiguraci (mimo registru 0xb0)}}
  
-{{ :​2014:​image_full.png | Obr. 9: Získaný snímek pro kompletní konfiguraci}}+{{:2014:cam-ov7670:​image_full.png| Obr. 9: Získaný snímek pro kompletní konfiguraci}}
  
-Video demonstrující funkci přípravku v kontinuálním režimu kamery lze vidět níže.+Video demonstrující funkci přípravku v kontinuálním režimu kamery lze vidět níže, nicméně se jedná o velmi špatnou nahrávku, kde zářící displej vývojového kitu činí obraz velmi nekvalitnímProto je lepší kvalitu jednotlivých snímků posuzovat podle obrázků uvedených výše. ​  
 + 
 +{{youtube>​REiaTWDaZpU?​large}}
  
    
 ===== Závěr ===== ===== Závěr =====
-Na této stránce byla postupně nastíněna problematika týkající propojení vývojové desky 32F429IDISCOVERY a moduu kamery OV7670 pomocí DCMI sběrnice. Modul kamery byl nakonfigurován do požadovaného stavu pomocí SCCB sběrnice, kde poté byly získávána obrazová data pomocí DCMI sběrnice v kontinuálním nebo jedno-snímkovém ​módu, kde pomocí DMA řadiče ​byly přijatá obrazová data esouvány ​do paměti MCU. Tato data byla poté jednoduše vizualizována na displej vývojové desky pomocí SPI sběrnice. Tímto způsobem byla úspěšně otestována a demonstrována funkčnost použitého modulu kamery a vývojové desky a jejich vzájemného propojení. Tento popis tedy představuje solidní základovou platformu pro další vývoj ​požadovaného FW. Celý programový kód včetně projektu v prostředí Keil MDK-ARM uVision5 lze nalézt zde {{:2014:mpoa_projekt.zip| MPOA Keil projekt}}.+Na této stránce byla postupně nastíněna problematika týkající propojení vývojové desky 32F429IDISCOVERY a modulu ​kamery OV7670 pomocí DCMI sběrnice. Modul kamery byl nakonfigurován do požadovaného stavu pomocí SCCB sběrnice ​a následně byla získávána obrazová data pomocí ​výše zmíněné ​DCMI sběrnice v kontinuálním nebo jedno-snímkovém ​režimu. Tyto obrazová data byla poté pomocí DMA řadiče přesouvána ​do paměti MCU, odkud následně ​byla jednoduše vizualizována na displej vývojové desky pomocí SPI sběrnice. Tímto způsobem byla úspěšně otestována a demonstrována funkčnost ​propojení ​použitého modulu kamery a vývojové desky. Tento popis tedy představuje solidní základovou platformu pro další vývoj ​programového kódu a realizaci libovolné aplikace v praxi. Celý programový kód včetně projektu\\ v prostředí ​//Keil MDK-ARM uVision5// lze nalézt zde {{:2014:cam-ov7670:​mpoa_keil_projekt.zip| MPOA Keil projekt}}.
2014/cam-ov7670.1421500798.txt.gz · Poslední úprava: 2015/01/17 14:19 autor: Petr Machala