Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
Obě strany předchozí revize Předchozí verze Následující verze | Předchozí verze | ||
2015:cam-al422 [2016/01/17 23:53] Martin Kráčala [Firmware main cpp.] |
2015:cam-al422 [2016/02/04 22:47] (aktuální) Martin Kráčala MATLAB link |
||
---|---|---|---|
Řádek 47: | Řádek 47: | ||
===== Zapojení ===== | ===== Zapojení ===== | ||
+ | Zapojení jednotlivých pinů kamery je následující: | ||
+ | |||
+ | ^ OV7670 ^ Pin ^ KL25Z ^ | ||
+ | | VCC | 1 | 3v3 | | ||
+ | | GND | 2 | GND | | ||
+ | | SCL (SCCB) | 3 | PTC8 | | ||
+ | | SDA (SCCB) | 4 | PTC9 | | ||
+ | | VSYNC | 5 | PTA13 | | ||
+ | | HREF | 6 | NC | | ||
+ | | WEN | 7 | PTE2 | | ||
+ | | XCLK | 8 | NC | | ||
+ | | RRST | 9 | PTE3 | | ||
+ | | OE | 10 | PTE4 | | ||
+ | | RCLK | 11 | PTE5 | | ||
+ | | GND | 12 | GND | | ||
+ | | D0 | 13 | PTB0 | | ||
+ | | D1 | 14 | PTB1 | | ||
+ | | D2 | 15 | PTB2 | | ||
+ | | D3 | 16 | PTB3 | | ||
+ | | D4 | 17 | PTB8 | | ||
+ | | D5 | 18 | PTB9 | | ||
+ | | D6 | 19 | PTB10 | | ||
+ | | D7 | 20 | PTB11 | | ||
+ | Na SCCB (I2C) sběrnici jsou dále připojeny nezbytné 4k7 pull-up rezistory. | ||
- | {{ :2015:cam-al422:zapojeni.jpg?600 | Obr. 5: Zapojení přípravku}} | + | {{ :2015:cam-al422:zapojeni.jpg | Obr. 5: Zapojení přípravku}} |
===== Firmware ===== | ===== Firmware ===== | ||
Řádek 58: | Řádek 82: | ||
==== Odkaz k programu na mbed.org ==== | ==== Odkaz k programu na mbed.org ==== | ||
- | Firmware pro KL25Z je k dispozici na stránkách mbed.org [[https://developer.mbed.org/users/wrecky/code/KL25Z_OV7670/|KL25Z_OV7670]]. | + | Firmware pro KL25Z je k dispozici na stránkách mbed.org [https://developer.mbed.org/users/wrecky/code/OV7670-application-over-USB-with-KL25Z/|OV7670 application over USB with KL25Z]]. |
- | ==== main.cpp ==== | + | ==== Hlavní části main.cpp ==== |
Na začátku výkonu programu je inicializováno sériové rozhraní spolu s modulem kamery OV7670. | Na začátku výkonu programu je inicializováno sériové rozhraní spolu s modulem kamery OV7670. | ||
Řádek 91: | Řádek 115: | ||
while (true) | while (true) | ||
{ | { | ||
- | // Look if things are in the Rx-buffer... | + | // Look whether things are in the RX-buffer... |
if(pc.readable()) | if(pc.readable()) | ||
{ | { | ||
Řádek 110: | Řádek 134: | ||
</code> | </code> | ||
+ | Následující funkce slouží k rozeznání přijatého příkazu a jeho provedení. Obsahuje funkce na výpis všech registrů kamery (reg_status) používanou především při vývoji programu, dále funkce pro nastavení kamery (setup_...) a sejmutí a odeslání snímku (snapshot). | ||
+ | Základním nástrojem pro všechny tyto funkce je knihovna [[https://developer.mbed.org/users/wrecky/code/OV7670/|OV7670]]. | ||
<code cpp> | <code cpp> | ||
Řádek 181: | Řádek 207: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | ===== Zpracování v PC ===== | ||
+ | |||
+ | Pro řízení a přenos dat z kamery je využito sériové komunikace skrze USB port. Možností komunikace na straně PC je několik, např. využití běžných terminálových aplikací nebo návrh programu pro sériovou komunikaci a zpracování snímků. V rámci této úlohy bylo využito prostředí MATLAB, které obsahuje integrované nástroje pro sériovou komunikaci, zpracování dat a v neposlední řadě i vývoj aplikací (GUI). | ||
+ | |||
+ | Aplikace je dostupná ke stažení na [[http://www.mathworks.com/matlabcentral/fileexchange/54966-ov7670-mbed-serial-interface|MATLAB Central]]. Umožňuje připojení k sériovému portu počítače s pokročilými možnostmi nastavení komunikačního módu. Po připojení aplikace funguje podobně, jako jiné terminály pro sériovou komunikaci. Navíc však obsahuje sadu ovládacích prvků pro řízení kamery - nastavení formátu a zachycení jednotlivých snímků, které jsou následně zobrazeny. Aplikace umožňuje také získané snímky uložit do PC. V další části dokumentace jsou uvedeny příklady sejmutých snímků i video ukazující ovládání programu. | ||
+ | |||
+ | {{ :2015:cam-al422:serialgui.png |Obr. 6: OV7670 Serial Communication Interface}} | ||
+ | |||
===== Ukázky pořízených snímků ===== | ===== Ukázky pořízených snímků ===== | ||
Řádek 207: | Řádek 242: | ||
===== Závěr ===== | ===== Závěr ===== | ||
+ | Zadání projektu bylo splněno v celém rozsahu. Ve vývojovém prostředí mbed byl vytvořen firmware pro desku FRDM-KL25Z umožňující komunikace s kamerou OV7670 s FIFO bufferem AL422 skrze sériovou komunikaci přes USB port. V PC byla vytvořena aplikace pro ovládání kamery a příjem snímků. | ||
+ | |||
+ | Dalšími možnostmi rozvoje projektu by byla implementace zbylých formátů, podporovaných kamerou OV7670 a zdokonalení programu v MATLAB. Přes na dnešní dobu nízké maximální rozlišení kamery mají snímky při správném nastavení vysokou kvalitu a kamera by tak byla použitelná například v automatizovaných robotech. | ||
+ | |||
+ | ---- | ||
+ | Odkazy ke stažení: | ||
+ | * KL25Z_OV7670 firmware: [[https://developer.mbed.org/users/wrecky/code/OV7670-application-over-USB-with-KL25Z/|mbed.org]], [[http://www.urel.feec.vutbr.cz/MPOA/_media/2015/cam-al422/kl25z_ov7670_zip_kl25z.zip|Dokuwiki mirror]] | ||
+ | * OV7670 mbed Serial Interface: [[http://www.mathworks.com/matlabcentral/fileexchange/54966-ov7670-mbed-serial-interface|MATLAB Central]], [[http://www.urel.feec.vutbr.cz/MPOA/_media/2015/cam-al422/install_ov7670_mbed_serial_interface.zip|Dokuwiki mirror (exe)]] |