« ジャイロセンサーMPU6050とProcessingで飛行機の3D姿勢表示 | トップページ | やっぱりRaspberryPi3は早い »

2017年2月 1日 (水)

RaspberryPiのカメラモジュールで定点カメラの野望

 今年もみなさまに新年のご挨拶をする前に、1月も終わりになってしまいました。昨年同様、正月早々、家族が酷い風邪にやられました。だいたい年末のお節料理の準備で精魂つきはてるようです。

 そんなことで初詣にも行けない散々な状況でしたが、本人だけは5日に学生時代の仲間と珍しく正月七福神詣でをすませ、とりあえず年神さまには義理をはたしました。

Dsc00830 その話はあとでするとして、電子工作の方は相変わらず低調です。というのも昨年来のPCのビデオボードのトラブルが解決せず、これにこだわって万事が進みません。MPU6050の次のテーマとして、滞留在庫の整理を兼ね、RaspberryPiの組み込みカメラモジュールの動作テストをするつもりでしたが、具体的な目的が決まるまで迷走が続きました。

 昨年予定していた忘年会が色々な都合で持ち越しになり、このところ連続して新年会があったことも進まない原因のひとつです。それでも何とか、試行錯誤でアクリル板のカメラマウントをでっちあげ、想定した定点カメラが形になってきたのでブログに上げることにします。以下の報告は備忘録を兼ねているので時系列でわかりにくくすみません(2/1/2017記)。

ビデオカードの不具合に悩まされる(12/29/2016)
 暮れも押し迫ってきたが、電子工作は思わぬ展開で先に進まない。ジャイロセンサーMPU6050の3Dライブラリーのために替えたビデオボードのせいで、メインのPCが頻々とフリーズを繰り返し、安心してPC作業が出来なくなってしまったのだ。

 症状は、ワープロぐらいでは起きないが、動画を見たり、ゲームをしたりすると、画像が途切れエラーメッセージが出る。そのあと復帰することが多いが、時にはフリーズしたり、システムがリセットしたりする。このPCは電子工作専用ではなく、汎用的に使っているので何とかしなければならない。

 出てくるエラーメッセージは「ビデオドライバーの応答がないので、システムをリセットする」というもので、例によってこのキーワードでネットを検索すると、膨大な量の記事がヒットする。Win7時代からの古い問題のようである。何らかの原因で、GPU(ビデオボードのCPU)の応答が遅いと、OSがそのアプリの実行を止めてしまうというものだ。

 少なくとも、元々の内蔵ビデオインターフェース(Intel)では起きていない。ウエブにある症例では、NVIDIA系のボードが圧倒的に多いが、AMDのRADEON系で全く起きないわけでもないという。ワープロや簡単なウェブサーフィンくらいでは起きないが、グラフィック画面で(ゲームのトランプのカードの移動だけでも)大体おかしくなる。

 年賀状も書き終えて、少し暇になったので、色々な対策を片っ端から試してみた。まず、デフォルトで2秒というレジストリーのパラメーターのタイムアウトの時間を、レジストリエディターで5秒に延長する。これでエラーの様子が少し変わったが、頻度はかえって多くなったような気がする。

 次が、ビデオドライバーの更新である。ビデオカードに付属していたドライバーはネットで調べると少し古いので最新のものにとりかえる。全く変化なし。古いドライバーが残っているとおかしくなるというので、ユーティリティを使って古いドライバーの削除とクリーンインストール。これも駄目。

 サイトによっては、NVIDIAのコントロールパネルでのオプションの設定変更だけで綺麗に治ったというのがあったが、全く効果なし。こんな簡単なことで治るわけがないと思う。

 さまざまなことを試してみた。結局のところ最初に比べれば発生頻度は少なくなったような気もするが、完治はしない。頻度が少なくなったとはいえ、ゲームで遊んでいて大事なところでフリーズに見舞われると気晴らしにもならない。フリーズは1分ほど待つと前の状況に復帰することが多いのだが、タイミングが悪いとそのアプリが落ちたり、システムが完全に止まったりする。

 マザーが古すぎて新しいビデオカードと合っていないというのが、どうも最大の原因のような気がする。しかしマザーを変えるとなると、CPUとメモリーまで入れれば、やはり数万円はかかるだろう。そんな馬鹿なことはしたくない。3Dを見るだけのためにとんだ疫病神を引き込んでしまった。

ビデオカードの不具合に決着つかず。別のボードを発注(1/2/2017)

 いずれにしても、こんなに長い間(少なくともWin7時代から)ユーザーを悩ましている問題が全く解決されていないというのも、このPC業界の不思議なところだ。最近のビデオボードのオプションは3D関係(恐らくDirectXというパッケージ)だけで軽く10個以上あり、何か技術の末端肥大を感じさせる。モンスター化して制御不能になってしまっているのではないか。

 年が明けても、あきらめきれず色々しつこく試していた。最も基本的なハードの部分、カードスロットの接触不良を疑い、ビデオボード基板の接点の掃除と差しなおしを何回かやったが、事態は進展しなかった(これで劇的に治ったという報告もある)。

 メモリーとの不適合を指摘するサイトがあり、そこではメインメモリーを交換したら解決したとあったが、この少し古いPCのメインメモリーを買いなおすのはやりたくない。(このサイトは系統的に良くまとめられている。高知の自作パソコンショップが2009年に詳細な調査を行っている。結論はメモリの相性問題ということだ。)

 メモリ交換でなく、PCのBIOSのアップデートでも解決したというサイトもあった。これなら費用もかからない。早速試してみた。久しぶりのBIOSのアップデートである。マザーボードのASUSのサイトを探すと幸い現在のバージョンより先のBIOSが見つかったので(もう2年も前のやつだったが)、入れ替えてみた。

 動かしてみる。ふむ、起きない。これが原因だったのか。暫く使う。駄目だ。1時間ばかり経って、やはり再現した。頻度は明らかに前より少なくなったようだが、全く0にはならない。

 マイクロソフトの基本ドライバーでは全く起きないので最悪の場合はこれに戻せば良い。ただ、このドライバーは3Dをサポートしていないので、Processingの飛行機は動かない。元の内蔵ボードに戻しても動かないことは同じだ。PCを取り替えるという手段も本末転倒である。だとすると、どういうことになる? そう、トラブルの報告の少ないRADEONのビデオボードをウェブで発注してしまったのだ。

谷中七福神詣でをしてきた(1/5/2017)
 しかしお正月なので、品物はすぐには来ない。というので新年での行事をご紹介しておこう。このあいだの筑波山歩きの山(街)歩き仲間が誘ってくれた七福神めぐりである。例年この仲間は、新年に都内の七福神詣でをしているそうだ。今年は、江戸最古という触れ込みの谷中(やなか)の七福神である。

Dsc00839 Dsc00845

 出発点は田端駅近くの福禄寿を祭った東覚寺で、ゴールは上野不忍池の弁天堂である。距離にしておよそ12キロ。街歩きとしては丁度頃合いの長さだ。昔の人は良く考えている。我々一行は正月5日、田端駅に集合した。

 歩き始めてまず驚いたのは、お正月ということもあるが、参詣者の多さである。それも高齢者の小団体が多いのでうっかりしていると他のパーティに紛れて迷子になる。我々も参加者が10人を越えていたので、グループを2つにわけて行動した。 Dsc00857 最近は御朱印帳で参詣の印を押してもらうのがはやっているが(スタンプラリーと同じ趣向)、ここには七福神をイラストした色紙(¥1000)が売られている。ここに各寺、神社の朱印を押してもらう(各¥200)。帰って壁に貼ると結構な正月飾りになる。

 田端駅近くの最初のお寺が少し離れているだけで、ほかは、いわゆる谷中墓地に点在するお寺の敷地内に七福神の祠がある。人通りが多いのはみんな七福神詣の人たちである。お寺によっては長い行列ができている。Dsc00849

 幸い、風もなく絶好の散歩日和で、不忍池の弁天堂で満願成就である。ちょうど日も落ちて来て、お酒を飲んでも後ろめたくない時間になってきた。解散する前に近くのビヤホールで新年を祝って乾杯である。いや生きてきてよかった。

ビデオカードはカードの交換でけり(1/9/2017)
 発注していたビデオカードが届いた。正月休みだったのでネット販売にしては少し時間がかかっている。今度はNVIDIAでなくてRADEON(ATI)である。

 こちらは3Dゲームなどには関心がない。安物で十分だ(玄人志向のHD6450 ¥4000少々)。実は年の暮れ、また秋葉原を覗いたのだが安いものは店頭には殆ど売っていなかった。店頭販売では単価の低い商品は効率が悪いからだろう(数万円が売れ筋のよう)。通販のポイントが溜まっていたので、出費は¥2000程度ですんだ。 Dsc00865 早速、とりかえる。PCI Expressの仕様がやっとわかってきた。前のビデオカードGT710は、PCI Express X8で、今度のHD6450は、X16(スロットのバス巾)ということが始めてわかった。最初のボードのスロットにすき間があったのはそういうことだったのだ。

 結果は予想した通り、トラブルは完全にきれいさっぱり解消した。何時間動かしても、全くフリーズは起こらない。古いマザーとの相性問題というが、これはやっぱり、NVIDIAの不具合としか言いようがない。性能的には、GT710より、3D性能が少し低いが、2DはむしろRADEONの方が高く、何といっても安定しているのが一番である。

 やれやれ、3週間近く悪戦苦闘したあの時間は何だったのか。この執筆時点(1/31)でも起きていない。PC関係で、このあいだのマザーボードといい、このNVIDIAのビデオカードといい、不要不急の部品がまた増えてしまった。ともあれ、これでやっと、本題の電子工作に戻れる。

RaspberryPiのカメラモジュールはあっけなく動いた(1/12/2017)

 電子工作の話に戻る。テーマは、このあいだRaspiのディスプレイを買ったときについでに買ってあったカメラ(Raspi カメラモジュールV1.3 ¥3000少々)はまだ一度も動作させていない。部品棚に眠ったままである(このモジュールは既にV2になって画素数も800万と高性能になっている。価格は高くなってしまった) Dsc00855

 実用ということでは、はっきりした目的はない。自宅の前の道から吸い殻を車寄せに捨てる不届き者がいて家族が怒っている。これを動かして、定点カメラか、ドライブレコーダー的な使い方をしてみれば面白いかもしれない。

 現在、当研究所には、3台のRaspiがある。無印のRaspiが2台(SAMBAサーバー、パンチルトの出来るライブカメラでいずれも最近は電源が入っていない)と、Raspi3が一台である。Raspi3は用途が決まっていないが、電力喰らいなので、無印のSAMBAサーバーにカメラをつなぐ。

 カメラは、最初、逆刺し(絶縁面に接点側が入るので副作用は心配なし)して動かなかったが、このサイトの案内で、専用のコマンド(raspistill や、raspividなど)を使い、簡単に静止画や動画を撮ることができた。

 検証は、SAMBAなのでWindowsディスクにコピーして、PC側で見る。RaspiでXwindowを動かすほどのことでもない。SAMBAサーバーにカメラをつけたのはこれが理由である。

 500万画素もあるので鮮明な画像だ。ビデオも問題なく撮れた。ビデオの再生は、WinPCでは動かなかったので、例の7インチのIGZOパネルを使った。

 config.txtの設定データをこのSAMBAサーバーに移してデスクトップを表示させた。これも順調に液晶パネルが動作し、例の超微細なデスクトップが現れる。シリアルターミナルから、ウェブサイトで教えられた動画プレーヤーomxplayerを実行させる。

 画面はデスクトップ画面である。何かもうひとひねりしないと画像が出ないと思っていたが、一息待ち時間があったあと、突然、画面全体に、工作室を逆さ(カメラモジュールが逆さまになっていた)に映した動画が見事再生された。5秒で10MBばかりのハイビジョンクラスの画像である。とても滑らかな再生で驚く。

久しぶりのアクリル工作は大変だった(1/17/2017)
 さて、カメラは動いたが、課題が2つ残っている。カメラのマウントと、カメラを汎用的なビデオディバイスにすることである。現在は専用のコマンドからで、motionや、mjpg-streamerのようなライブカメラのシステムを動かすには、/dev/videoなどのディバイスファイルにしないといけない。

Dsc00854  それはさておき、まずはカメラマウントの制作である。カメラモジュールは2センチ四方の小さな基板だけであり何らかのマウントが必要だ。それに、FFC(フレキケーブル)が短く、堅いのでカメラの固定が難しい。定点カメラにするならRaspiごと固定する手段が必要だ。

 手持ちのアクリル板を、いつものアクリル曲げ器を使って、カメラマウントに加工することにした。モデルは以前作った赤外線センサーのマウント台である。アクリル板を曲げて2つのコの字フレームを作り、ヒンジで接合する。

 部品庫に眠っていたA4ほどのアクリル板(厚さ2ミリ)をサーキュラーソーで、切り出す。小さなサーキュラーソーなので、20センチ近い長い板の切断は苦手だ。切断面がどうしても歪んできて回転部分の摩擦が大きくなり、下手をすると大事故の心配がある(材料の破損とか飛散)。 Dsc00862

 何とかだましだまし切り出した後、アクリル曲げ器でコの字型のフレームに曲げる。温度が少し低すぎるのか、どうもうまく曲がらない。久しぶりなのでノウハウを忘れてしまっている。温度を上げて何度か曲げを調整しているとき、少し力を入れて整形していたら、ポリっと割れてしまった。

 アクリル板は何度も同じところに熱をかけて曲げていると強度が極端に落ちることを忘れていた。焦げない程度に一気に強い熱を加え一回で曲げ切らないと材料が劣化することを、終わってから思い出す。やれやれ年はとるものではない。 Dsc00863

 結局、外側のフレーム(マウントを固定する方)は2回作り直した。2回目はサーキュラーソーが心配でコッピングソー(糸鋸盤)を使った。外側を半円形に切ると、少しそれらしくなった。

 このあと苦労したのが、チルトさせるためのヒンジの穴あけである。平面時に穴あけして正確な位置合わせをすることは殆ど不可能なので、曲げたあとから穴をあけるしかない。正確な位置決めのため小さいドリル穴から全部リーマーで直径15ミリまで円形を広げたのだが、これが大変で、指に豆を作ってしまった。

 苦労の結果、何とかそれらしいマウントが出来た。ただ、リボンケーブルが固くてマウントそのものを固定しないとカメラを安定した位置に止めることができない。実用的には、Raspiのケースそのものに固定する必要がでてきた。

試行錯誤の結果、まずまずのマウント(1/30/2017)
新年会が続いて工作の時間がとれなかったが、少し落ち着いたので、久しぶりにAitendoに行き、FFCケーブルと無印Raspiのケースが安売りされていたので購入した。

 FFCケーブルは、カメラのケーブルを下から出したくて順目のケーブルを買ってきたのだが、つけてみて大失敗に気づく。このまえのESP8266変換基板のときと全く同じである。FFCケーブルの接続面を替えたら接続は全く逆になる! これをつけてからそれに気が付く馬鹿さ加減にまた暫し呆然となる。

 これは買いなおすとして、はずみで買ったRaspiのケースはあたりだった。うまいぐあいにケース上段に段差が出ていたのでそれにあわせてマウントに溝を作り、きっちりその段差に固定する。おお、ぴったりカメラは固定された。こいつはうまくいった。嬉しくて記念撮影。

Dsc00864  さて次はソフトである。motionなどのライブカメラで動かすには、汎用的なディバイスファイルにするしかけが必要である。もとのSAMBAサーバーのOSはV3のWheezyで汎用的なビデオパッケージVideo4Linuxをサポートするカーネルモジュールが入っていない。最初、このサイトの情報でインストールを試みたがうまくいかなかった。

 そこで、OSの取り換えを試みる。最新バージョンのJessieが無印のRaspiで動く保証が得られなかったがだめもとで入れてみた。幸い、何事もなく順調にインストールに成功。めでたく/dev/video0というディバイスファイルが出た。

 これであとはmotionや、jpeg-streamerなどのインストールをすれば定点カメラが完成する。ブログの紙数も増えてきたので、このあたりで報告を一段落しよう。

|

« ジャイロセンサーMPU6050とProcessingで飛行機の3D姿勢表示 | トップページ | やっぱりRaspberryPi3は早い »

電子工作」カテゴリの記事

Raspberry」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: RaspberryPiのカメラモジュールで定点カメラの野望:

« ジャイロセンサーMPU6050とProcessingで飛行機の3D姿勢表示 | トップページ | やっぱりRaspberryPi3は早い »