最近はGroveシリアルカメラとSDカードシールドを組み合わせて写真撮影を行ってみたりしています。
そこで、Groveシリアルカメラを2台使いたいなと考えたのですが、コネクタは1台分しかありません。このコネクタはArduinoのRXピンとTXピンにつながっており、ハードウェアシリアルに接続されています。
そこでGroveシリアルカメラを2台接続する場合は、ソフトウェアシリアルを使用して接続すればいいのではないかと思い試してみました。ちょうどGroveシリアルカメラにもソフトウェアシリアル用のサンプルコードがありましたので、そちらを利用して試してみました。
結果としてはソフトウェアシリアルでGroveシリアルカメラを動かすことはできないという結論に至りました。
Groveシリアルカメラにコマンドを送信する際、ハードウェアシリアルではコマンドを送信できたのにソフトウェアシリアルではコマンドを送信することができなかったためです。コマンドは配列に格納された16進数の値が送信されていますが、それの送信がどうやらハードウェアシリアルとソフトウェアシリアルで違ってきているようです。ArduinoIDEではデバッグ機能がないのでこれ以上の原因特定はできませんでした。
つまり、上記の結果を踏まえると以下の組み合わせとなると思います。
・GroveシリアルカメラとSDカードシールドの組み合わせでは、Groveシリアルカメラは1台しか接続することができない
・Groveシリアルカメラはソフトウェアシリアルでは動作しない
次にハードウェアシリアルが複数あるArduinoMegaの互換品を購入して試してみました。こちらにもSDカードシールドを設置してGroveシリアルカメラを動かしてみようとしましたが、結果1台も動かすことができませんでした。通信速度が微妙にずれているのか、他に原因があるのか全く分からない状態です。ちなみに最初から使用していたArduinoUnoはGroveシリアルカメラを動かすことができました。
上記を踏まえると以下のことが言えると思います。
・GroveシリアルカメラはArduinoMegaの互換品で動作しない
・GroveシリアルカメラはArduinoUnoの純正品で動作する
Groveシリアルカメラの動作は不安定でなかなか撮影することが難しいなというのが今回の感想です。これを使用するのであればもう少し安定して動いてくれるカメラを購入してもよいかなと思いました。
コメントを残す