FrontPage

2012/02/26からのアクセス回数 7720

mbedに液晶をつなぐ

カメラのテストをするには、画像を表示する液晶が必要です。

そこで、トラ技別冊のMARYボードの周辺機器として販売されているカラー有機EL ディスプレイ基板を使うことにしました *1

oled.png

MAPLEボードに接続

mbedやXPresso1768が接続でき、MARYの周辺機器もつながるMAPLEボードを使う ことにしました。

MAPLE_board.png

カメラボード

カメラの接続もMARYの拡張基板にコネクターを付けてみました。

camera_board.png

mbedのライブラリーすごい!

さすがmbedですね。 検索すると、すぐにMARYの有機液晶ディスプレイとチョコっとカメラの ライブラリーが見つかりました。

mbedのローカルコンパイル環境

デバッグができるようにmbedのローカルコンパイル環境を以下の様に整えました。

project.png

少しずつ試す

最初は、上手く接続できているか確かめるために少しずつデバッガで 動作を確認しながら進めました。

filemain.cppのmainの関数は以下の様になりました。

int main() {
	// OLEDのテスト表示
	test_oled();
	oled1.locate( 0, 3 );

	// カメラの初期化
    OV7670 camera(
        p28,p27,       // SDA,SCL(I2C / SCCB)
        p21,p22,p20,   // VSYNC,HREF,WEN(FIFO)
        p19,p18,p17,p16,p15,p14,p13,p12, // D7-D0
        p23,p24,p25) ; // RRST,OE,RCLK
    // カメラのリセット
    oled1.printf("Camera resetting..¥r¥n") ;
    camera.Reset() ;
	// カメラの初期化
    oled1.printf("Camera initializing..¥r¥n") ;
    camera.InitQQVGA() ;
    // カメラの画像を取り込む
    while(1) {
    	myled = 1;
    	camera.CaptureNext() ;
    	while(camera.CaptureDone() == false) ;
    	camera.ReadStart() ;
    	myled = 0;
    	for (int y = 0; y < SIZEY; y++) {
    		int r, g, b,d1, d2;
    		for (int x = 0; x < SIZEX; x++) {
    			d1 = camera.ReadOneByte() ; // upper nibble is XXX , lower nibble is B
    			d2 = camera.ReadOneByte() ; // upper nibble is G   , lower nibble is R
				b = (d1 & 0x0F) ;
				g = (d2 & 0xF0) >> 4 ;
				r = (d2 & 0x0F) ;
				if (y < 120 && x < 128)
					oled1.pixel( x, y, (r << 20) | (g << 12) | (b << 4));
    		}
    	}
    }
}

何とか表示ができるまで

最初に困ったのは、カメラのリセットの途中で止まってしまうことでした。

  • カメラとのI2C接続ではプルアップ抵抗を使わない

ということなので、MAPLEボード中央のDIPスイッチを3,4をオフにしました。

それでもガメラからの設定を確認するための、処理をいれると途中で止まって しまいましたので、今回は先に進むことを優先して、設定のチェックを外しました。

画像の取り込み時間

画像の取り込み時間がどのくらいか分かるようにcamera.CaptureNextの前後に LEDの点滅を入れてみました。

思った通り液晶ディスプレイへの表示に時間が掛かっていました。約1.5秒に1枚の 表示です。

また、表示上下に反転しているので今回は被写体のトラ技本を逆さまにして 表示しています。

画像のピントも調整しないと上手く表示できないので画像表示機能がないと他の 処理もできないことが分かりました。

board_setting.png

コメント

選択肢 投票
おもしろかった 5  
そうでもない 1  
わかりずらい 1  

皆様のご意見、ご希望をお待ちしております。


(Input image string)


*1 カメラが多くのピンを必要とするので、SPI接続の液晶が候補になりました

添付ファイル: filemain.cpp 1403件 [詳細] fileboard_setting.png 1527件 [詳細] fileproject.png 1415件 [詳細] filecamera_board.png 1366件 [詳細] fileMAPLE_board.png 1350件 [詳細] fileoled.png 1301件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-04-09 (木) 12:54:43 (3306d)
SmartDoc