Individální projekty MPOA

Mikroprocesory s architekturou ARM

Uživatelské nástroje

Nástroje pro tento web


2015:cam-al422

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
2015:cam-al422 [2016/01/18 00:00]
Martin Kráčala [Firmware knihovna OV7670]
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]].
  
 ==== Hlavní části main.cpp ==== ==== Hlavní části main.cpp ====
Řá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 182: Řádek 208:
 </​code>​ </​code>​
  
-==== Některé základní funkce knihovny OV7670 ​====+===== Zpracování v PC =====
  
-<code cpp> +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ěkoliknapř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).
-// write to camera +
-void OV7670::​WriteReg(int addr,int data) +
-+
-    _i2c.start(); +
-    _i2c.write(OV7670_WRITE)+
-    wait_us(OV7670_WRITEWAIT);​ +
-    _i2c.write(addr);​ +
-    wait_us(OV7670_WRITEWAIT);​ +
-    _i2c.write(data);​ +
-    _i2c.stop();​ +
-}+
  
-// read from camera +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 komunikaciNaví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ě zobrazenyAplikace umožňuje také získané snímky uložit do PCV další části dokumentace jsou uvedeny příklady sejmutých snímků i video ukazující ovládání programu.
-int OV7670::​ReadReg(int addr) +
-+
-    int data; +
-     +
-    _i2c.start(); +
-    _i2c.write(OV7670_WRITE);​ +
-    wait_us(OV7670_WRITEWAIT);​ +
-    _i2c.write(addr);​ +
-    _i2c.stop(); +
-    wait_us(OV7670_WRITEWAIT); ​   ​+
  
-    _i2c.start();​ +{{ :2015:cam-al422:​serialgui.png ​|Obr. 6:  OV7670 Serial Communication Interface}}
-    _i2c.write(OV7670_READ);​ +
-    wait_us(OV7670_WRITEWAIT);​ +
-    data = _i2c.read(OV7670_NOACK);​ +
-    _i2c.stop();​ +
- +
-    return data; +
-+
-</​code>​ +
- +
-<code cpp> +
-int OV7670::ReadOnebyte(int mask1, int offset1, int mask2, int offset2) +
-+
-    int B1; +
-    rclk = 1; +
-    B1 = (((data & mask1) >> offset1) ​((data & mask2) >> offset2));​ +
-    rclk = 0; +
-    return B1; +
-} +
-</​code>​+
  
 ===== Ukázky pořízených snímků ===== ===== Ukázky pořízených snímků =====
Řádek 256: Řá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)]]
2015/cam-al422.1453071613.txt.gz · Poslední úprava: 2016/01/18 00:00 autor: Martin Kráčala