2018年3月24日土曜日

Raspberry Pi CameraでSマウントのレンズを使ってみた。

Raspberry Pi Camera V1の互換モジュールでいろいろ遊んでみてたんだけど、レンズのピントを調整するときにレンズに傷をつけてしまった…
ということでレンズを交換してみようと思います。

まぁ互換モジュールはお安いのであまり痛手ではないのですが、レンズを替えたらまた面白いことに使えるんじゃないかということで。
公式のラズパイカメラだとVR220とか言う広角レンズにできる改造キットもあるみたいだし。

とりあえずWebカメラとかではそこそこ使われてるM12×0.5のSマウントレンズを試してみることに。やすいし。
ちなみにレンズを外すとこんな感じ。
ここにSマウントレンズを取り付けられるようにレンズマウントをつけます。

フラットケーブルがあるので、加工しやすいように樹脂製のものを購入。
穴ピッチがちょうど良さそうなやつが2個で2ドルぐらいでした。
ガラス入り樹脂っぽくて結構硬かったのですが、とりあえずフラットケーブルを避けるぐらいのスリッドを入れます。でかすぎると光が漏れるので慎重に…

裏側からネジ止め。結構穴の近くに部品やパターンがあるので樹脂のスペーサーをつけました。

簡単に行くと思いきや…
最初からこの穴位置がなんか中心からずれてると思っていたけどやっぱりずれてる…
そのままでも一応使えたりするんだけど、レンズによってはダメそうなのでネジでの固定ではダメそう。純正モジュールだと良さげな位置なのになぁ

というわけで最終手段ホットボンドで固定。裏から見たらネジの半分ぐらいずれてました。
今回はとりあえず多少光が漏れたりするのは気にしないことに。そもそも基板自体が遮光されてないし。

肝心のレンズですが、一応2.8mmと3.6mmを用意しておきました。どちらも1ドルちょい。ともにF2.0でCMOSサイズ1/3で画角90°らしい。
Raspberry Pi CameraはCMOSサイズが1/4なので画角は90°より狭くなりそう。

とりあえず2.8mmの方は問題なく使えるんだけど、3.6mmの方は最大限にねじ込んでも10mmぐらいのところじゃないとピントが合わないのでマクロレンズみたいになってしまった。
M12のレンズはCCTV用で結構お安いのが手に入るのでいろいろ買って試してみようかなぁ

そういえばもともとのレンズより画質が良くなったように感じるんだけどやはりレンズの差って大きいのかな

追記:レンズ届いたので試してみた。

2018年3月17日土曜日

RN4020のファームウェアをアップデートしてみた

というわけで秋月で購入してみたRN4020のファームウェアを更新してみた。
ファームウェアを更新するとi2cに対応したりiBeaconに対応するらしい。
ただしファームウェア更新失敗するとRN42みたいに復活できないっぽいので、旧バージョンでも困ってない場合はやらないほうがいいかも…
ちなみにi2cは1.20から対応で、ビーコン系は1.33 BECから対応らしい。

RN4020はとりあえずモジュールしか買ってないので適当にはんだ付けで…
ファームウェア更新にはフローコントロールを使うようなので、手持ちのFT232R搭載のUSBシリアルモジュールを3.3V設定にして使用した。
CTSとDTRしかなかったけど、とりあえずRN4020のCTSをDTRに、RN4020のRTSをCTSにつないで見たらオッケーだった。

まずはCooltermを使用してバージョン確認。デフォルトのBaudrateは115200。
+を押してエンターでEchoのオンオフを切り替えられるのでとりあえずオンにしておいた。
そしたらVを押してエンターでバージョンが見れる。

今回使用したモジュールはv1.10.09だった。
お次にファームウェアアップデートのためにMLDPとフローコントロールを有効にするコマンドを送信する。
SR,32000000
を入力してエンター。
ACKが帰ってきたら正常。
あとは一旦電源を切ってファームウェアアップデートツールをダウンロードしてくる。

ファームウェアアップデートツールはRN4020の公式ページのドキュメントの下の方からダウンロードできる。
RN4020 DFU Utilityを起動したらScanを押してCOMポートをスキャンして選択。
あとはファームウェアを選択してUpdateを押すだけ。このツールはフローコントロールが必要なのでちゃんと結線されてないとエラーが出る。
Updateを押して少し待つと完了。
ちなみにある程度ゲージが進んでからアップデート失敗すると電源オフらない限りは何回かトライできるみたいだけど電源をオフってしまうと起動しなくなることもあるらしい…
フロー制御がうまく行かなくてゲージが進まないで失敗する場合は大丈夫みたいだけど。あとはシリアルポートのフロー制御をバイパスしてたりすると失敗するみたいな…

もう一回バージョンを確認してみたらちゃんと1.33.4 BECにアップデートされていた。
これでiBeaconが作れるようになるっぽい。