RumiCar-C3の改造 Spresense搭載編(HDRカメラ)
はじめに
今回はRumiCar-C3を改造して、Spresenseを搭載してみました。Spresenseぐらいのマイコンなら、より自動運転に近くなりそうですね。
カメラの位置を確認したくて撮影してみたのですが、ケーブルが長くないので自由には動かせないです。ボードの固定位置が重要になりそうです。サーボモーターなどでカメラだけを動かすのは厳しそうな印象です。
基板は作っていないのですが、拡張ボードを使うなら3.3V系でも扱えます。XIAO ESP32C3用の基板に配線すれば動かせるかな?と考えています。
▼以前の記事はこちら
▼ProtoPediaにも書いています。
https://protopedia.net/prototype/5030
車体の改造
Spresense関連の商品
▼Switch Scienceの販売ページはこちら。カメラはHDRカメラを使っています。
元々付属しているカメラ用のケーブルだと、短いので取り付けが大変です。知り合いの方に購入してもらった、代替品を使用しています。
▼こちらのページで代替品が紹介されています。
短めのケーブルが推奨されているのですが、今のところ問題なく撮影できています。
▼Molexの15166-0213、127mmなのでこれだと思います。
https://www.digikey.jp/ja/products/detail/molex/0151660213/3281094
▼BOOTHでもSpresense用のカメラケーブルが販売されているようです。
https://booth.pm/ja/items/4723794
追加部品の設計
Spresenseの拡張ボード、HDRカメラを取り付けるために部品を追加しました。
▼Spresenseはハードウェアの設計資料が公開されています。CADのデータもあります。
https://developer.sony.com/spresense/development-guides/hw_design_ja.html
▼配置はだいたいこんな感じです。
拡張ボードの形状はArduino Uno互換なので、その系統のボードなら固定できそうですね。
▼この部品を追加して、2点で固定しているだけです。
▼カメラ部分は、以前メインボードとカメラをコンパクトに納めたくて設計したものを使っています。
▼組み立てるとこんな感じです。
ネジ止めしているだけの簡易的なものですが、これで高さを調整して映り具合を確認してみました。
プログラムの作成
プログラムは書籍を参考に作成しました。ライセンスとかがあるみたいなので、公開はしないでおきます。
基本的にはディスプレイとカメラのプログラムを切り貼りしました。メインボードのピンに差さっているボタンを押すと撮影し、SDカードに保存します。
▼オライリー・ジャパンから出版されています。
▼カメラのチュートリアルのページがありました。
https://developer.sony.com/spresense/development-guides/arduino_tutorials_ja.html#_tutorial_camera
▼書籍で紹介されていた接続ボードを使っています。今は売り切れているみたいですね。
▼この接続ボードの使い方はこちらのページに書かれています。
https://kunutest.jimdofree.com/lcdsp001%E5%9F%BA%E6%9D%BF
撮影してみる
撮影の様子
大まかではありますが、5、10、20、30cmの位置にフィギュアを置いて、画像を確認しました。
▼ディスプレイで画像を確認してボタンを押し、撮影するとSDカードに保存されます。
▼車体に近いところからカエル、ペンギン、ボルトの人、はにわを配置しています。
▼カメラ側から見るとこんな感じ。
地上からの高さが8cmぐらいのとき
▼部品が干渉するので、このくらいが一番低い位置です。
▼ピントが遠いところに合わせられていますね。
▼動画だとこんな感じ。近すぎると、ステアリングの部品が写りこみます。
地上からの高さが10cmぐらいのとき
▼このくらいの高さで、ケーブルの長さが限界です。
▼先程よりも床が映っている印象です。
▼動画だとこんな感じ。カエルが写るようにすると、かなり下向きになります。
画像の比較
並べて比較してみました。それぞれ一枚目が地上から8cmぐらいのとき、二枚目が10cmぐらいのときです。
▼カエルが写る高さ
▼ペンギンが写る高さ
▼はにわが写る高さ
最後に
カメラの画像はピントが遠く、近くの物体はぼやけていました。衝突回避自体は距離センサーで出来るので、カメラの位置は高めで、周囲の状況を判断するのが良いかもしれないですね。
Spresense自体は低消費電力とはいえ、カメラを長時間稼働していると多少熱くなっているようでした。これまで使ってきたArduCamやXIAO ESP32S3 Senseのカメラはとんでもなく熱くなって動作も鈍くなっていたので、それと比較すると全然使いやすいです。
今回はカメラのプログラムを詳しく読んでいないので、時間があるときに調整したいなと思っています。スケッチ例にカメラのAPIについて詳しいものもありました。
▼S3 Senseのときにも、ピントがずれていることがありました。スマートフォンとかだと自動補正がありますが、マイコンでもできるのでしょうか。