ゆるく楽しむプログラミング

AtomS3R-CAMでトイカメラを作ってみた

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


AtomLITE : スイッチサイエンス

microSDカードスロット レベルシフター付きブレークアウト基板キット: 秋月電子

OLED SSD1331 : 秋月電子 / Amazon

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

GROVEコネクタにタクトスイッチを接続し、モード切り替えとシャッターに使用する。


論理反転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)) {

スケッチ

AtomS3R-CAM-ToyCamera.zip

解説動画