arm/mbedで試すチョコっとカメラ
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2012/02/26からのアクセス回数 &counter;
** mbedに液晶をつなぐ [#q4e6ba06]
カメラのテストをするには、画像を表示する液晶が必要です。
そこで、トラ技別冊のMARYボードの周辺機器として販売されて...
ディスプレイ基板を使うことにしました
((カメラが多くのピンを必要とするので、SPI接続の液晶が候補...
&ref(oled.png);
*** MAPLEボードに接続 [#s374867b]
mbedやXPresso1768が接続でき、MARYの周辺機器もつながるMAPL...
ことにしました。
&ref(MAPLE_board.png);
*** カメラボード [#ra4bd667]
カメラの接続もMARYの拡張基板にコネクターを付けてみました。
&ref(camera_board.png);
** mbedのライブラリーすごい! [#o77c3d7f]
さすがmbedですね。
検索すると、すぐにMARYの有機液晶ディスプレイとチョコっと...
ライブラリーが見つかりました。
- [[OV7670_with_AL422B_QQVGA_test>https://mbed.org/users/...
- [[MARMEX_OB基板OLEDライブラリ (MARMEX_OB_oled)>http://m...
*** mbedのローカルコンパイル環境 [#e0c46b06]
デバッグができるようにmbedのローカルコンパイル環境を以下...
&ref(project.png);
*** 少しずつ試す [#e8bbbdf8]
最初は、上手く接続できているか確かめるために少しずつデバ...
動作を確認しながら進めました。
&ref(main.cpp);のmainの関数は以下の様になりました。
#pre{{
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...
d2 = camera.ReadOneByte() ; // upper nibble is G ...
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));
}
}
}
}
}}
** 何とか表示ができるまで [#s0a982dc]
最初に困ったのは、カメラのリセットの途中で止まってしまう...
- カメラとのI2C接続ではプルアップ抵抗を使わない
ということなので、MAPLEボード中央のDIPスイッチを3,4をオフ...
それでもガメラからの設定を確認するための、処理をいれると...
しまいましたので、今回は先に進むことを優先して、設定のチ...
*** 画像の取り込み時間 [#df424151]
画像の取り込み時間がどのくらいか分かるようにcamera.Captur...
LEDの点滅を入れてみました。
思った通り液晶ディスプレイへの表示に時間が掛かっていまし...
表示です。
また、表示上下に反転しているので今回は被写体のトラ技本を...
表示しています。
画像のピントも調整しないと上手く表示できないので画像表示...
処理もできないことが分かりました。
&ref(board_setting.png);
** コメント [#rc1f1933]
#vote(おもしろかった[5],そうでもない[1],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2012/02/26からのアクセス回数 &counter;
** mbedに液晶をつなぐ [#q4e6ba06]
カメラのテストをするには、画像を表示する液晶が必要です。
そこで、トラ技別冊のMARYボードの周辺機器として販売されて...
ディスプレイ基板を使うことにしました
((カメラが多くのピンを必要とするので、SPI接続の液晶が候補...
&ref(oled.png);
*** MAPLEボードに接続 [#s374867b]
mbedやXPresso1768が接続でき、MARYの周辺機器もつながるMAPL...
ことにしました。
&ref(MAPLE_board.png);
*** カメラボード [#ra4bd667]
カメラの接続もMARYの拡張基板にコネクターを付けてみました。
&ref(camera_board.png);
** mbedのライブラリーすごい! [#o77c3d7f]
さすがmbedですね。
検索すると、すぐにMARYの有機液晶ディスプレイとチョコっと...
ライブラリーが見つかりました。
- [[OV7670_with_AL422B_QQVGA_test>https://mbed.org/users/...
- [[MARMEX_OB基板OLEDライブラリ (MARMEX_OB_oled)>http://m...
*** mbedのローカルコンパイル環境 [#e0c46b06]
デバッグができるようにmbedのローカルコンパイル環境を以下...
&ref(project.png);
*** 少しずつ試す [#e8bbbdf8]
最初は、上手く接続できているか確かめるために少しずつデバ...
動作を確認しながら進めました。
&ref(main.cpp);のmainの関数は以下の様になりました。
#pre{{
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...
d2 = camera.ReadOneByte() ; // upper nibble is G ...
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));
}
}
}
}
}}
** 何とか表示ができるまで [#s0a982dc]
最初に困ったのは、カメラのリセットの途中で止まってしまう...
- カメラとのI2C接続ではプルアップ抵抗を使わない
ということなので、MAPLEボード中央のDIPスイッチを3,4をオフ...
それでもガメラからの設定を確認するための、処理をいれると...
しまいましたので、今回は先に進むことを優先して、設定のチ...
*** 画像の取り込み時間 [#df424151]
画像の取り込み時間がどのくらいか分かるようにcamera.Captur...
LEDの点滅を入れてみました。
思った通り液晶ディスプレイへの表示に時間が掛かっていまし...
表示です。
また、表示上下に反転しているので今回は被写体のトラ技本を...
表示しています。
画像のピントも調整しないと上手く表示できないので画像表示...
処理もできないことが分かりました。
&ref(board_setting.png);
** コメント [#rc1f1933]
#vote(おもしろかった[5],そうでもない[1],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc