AtomS3R-CAMでトイカメラを作ってみた
AtomS3R-CAMを使って、トイカメラを作ってみました。



AtomLITEとの接続ピン対応は▼ SSD1331のCSは論理反転して接続
AtomS3R-CAM | SSD1331 | SD CARD | SPI |
---|---|---|---|
5 | DC | ||
6 | RES | ||
7 | SDA | CMD | MOSI |
8 | SCL | CLK | CLK |
39 | DAT | MISO | |
38 | CS | CS | CS |


論理反転IC(インバータ)が入手できない(あるいはブレークアウトボードへのはんだ付けが難しい)場合は、トランジスタで論理反転回路を作成して使用する事もできます。


インバーターとバッテリー
今回、CSの反転回路には インバーター 74AHC1G04W5 とSOT23変換基板を使用しました。細かいパーツですがはんだフラックス を使えば割と簡単にはんだ付けできますので、試してみては。

バッテリーはドローン用のリチウムイオン電池セットを使用しています。
コネクタが規格化されているのでハウジングも入手しやすく、割ると安心して使えます。

撮影画像
画像サイズはQVGA(320x240)スケッチの注意点
SPIClassのディフォルトインスタンス SPI は使用しない。SD用、OLED用に各々SPIClassのインスタンスを定義して初期化を行う。
以後は、各々のSPIClassインスタンスを使用する。
今回、エラー表示処理をしていないため、SDカードのマウントでエラーが発生するとプログラムが停止してしまいます。
動かない場合、SDカードのマウントエラーを疑ってみてください。
SPIClass SPI_OLED ;
// ----- SSD1331 INITIAL -----
pinMode(PIN_DC, OUTPUT);
pinMode(PIN_RESET, OUTPUT);
pinMode(PIN_CS, OUTPUT);
SPI_OLED.begin(PIN_CLK,PIN_MISO,PIN_MOSI,-1);
SPIClass SPI_SD ;
pinMode(PIN_CS, OUTPUT);
digitalWrite(PIN_CS, LOW);
SPI_SD.begin(PIN_CLK,PIN_MISO,PIN_MOSI);
if (!SD.begin(PIN_CS,SPI_SD,4000000)) {
スケッチ

解説動画
