RaspberryPiライブカメラの可動部の工作
RaspberryPi(以下Raspi)の監視カメラ(ライブカメラ)のプロジェクトがなかなか先に進まない。USBカメラの映像をネットを通して外部から見る機能は、思ったより順調に実現したのだが、少し欲張ってカメラを遠隔操縦しようというステップで、頓挫している。
制御方法をどうするかという以前に、カメラを載せるハードウエア(フレーム)がなかなか具体的な形にならない。フレームは3ミリのアクリル板を加工して作る。パン(左右)は時計の自動巻き器に使った少し大きめの秋月のステッピングモーター(と言っても42ミリ四方)を使う。チルト(上下仰角)は小さめのステッピングモーターで動かすなどの主な仕様は決まっており、チルト用のギヤまで用意してある。
フレームの形も何枚もスケッチを描いてほぼ固まってはいるのだが、いざ実際に線を引いて材料を切り出す決断が中々つかない。切ってしまえば、その大きさで作るしかない。後戻りが出来ないからである。
シャフトマウントは沢山見つかるが、ハンドル(プーリー)で流用(7/1/2013)
探していたモーターシャフトに固定する金具については、前回のブログで沢山、有益なコメントをいただいた。探していた部品はシャフトマウントというのだそうだ。CNCマシンキットで有名なオリジナルマインド社の通販などで沢山扱っていることを教えられた。
値段もそう高くない。すぐ手に入れたいところだが、実はブログに記事を出す直前、千石の3号店(前回2号店と書いたのは間違い。本店の隣にあるが3号店)で、手回しハンドルという円板にハンドルがついた部品(¥577)を見つけ、ちょうど希望の形をしていたのでこれを買ってしまった。シャフトマウントについては別のところで活用することにしたい。ありがとうございました。
買ってきた部品の内径は6ミリで、秋月のモーターの1/4インチ(6.35ミリ)には入らない。しかし、今度は中空なので、やすりで内径を広げるのは容易だろう。ハンドル用の3ミリ穴の反対側に、もうひとつ固定用の穴を開ければ、これでカメラの回転部は固定できる。
ギヤもプラスチックで取り付け部が金属のものを見つけたので、これも買ってしまった。実は、硬質プラスティックのギヤのイモネジの穴を開けるため、こんな万力を買ってあった。万力のバイスの部分を自在に動かせる。プロクソンのドリルスタンドのちょうど下に測ったようにこれがマウントできる。
折角、道具を揃えたのだから、あらためてギアを買いなおすのは迷ったのだが、つい楽をしてしまった。帰って、最初のギアとピッチが全然違って併用できないことがわかる。やれやれ、万が一のためにギアをペアで買っておいて助かった。
コッピングソー(糸鋸)を注文してしまった(7/5/2013)
少しづつ製図を進めている。あれこれ迷った挙句、残っていた3ミリアクリル板を最大限生かして、これだけで2枚のフレームを作ることにした。あまり小型にすると、あとで干渉が起きた時に大変なので、少し、ゆったり目につくっておくことにする。
フレームのデザインはアクリルを曲げるだけなので自由度は余り高くない。カメラを載せる回転雲台は味気ない方形ではなく、せめてでも一部を円形にする。最初、ベースフレームも円くしようとしたが、支持部の加工が難しそうなのであきらめ回転雲台だけにする。
アクリル板の養生紙に製図しながら、思い出したことがある。数年前、ガイガーカウンターを作っていた頃、プリント基板を自由に加工するためにコッピングソー(電動糸鋸)が欲しくなったことがあった。そのときは工作量が少なかったことと、まともなものも作っていないのに工具ばかり揃えるのに抵抗があって、買うのは我慢した。
これまでに揃えた工作機械(まあ、電動なら機械と言ってもかまわないか)らしいものは、ミニリューターとドリルスタンド、それに数年前思い切って買ったサーキュラーソー(いずれもプロクソン)くらいのものでたいしたものは持っていない。サーキュラーソーは大変重宝している。これなしの基板工作はもうありえないくらいだ。
そういえば、このところ値段の張る工作機械は買っていない。これまでの作業メモを整理していると6年前に電子工作を始めて以来の工具や計測器の購入リストがでてきた。それによるとここ数年は、めぼしい工具は買っていない。
外回りを円形に切るくらいなら、コッピングソーがなくても、サーキュラーソーで細かく切り出してやすりがけすれば何とかなるが、コッピングソーなら一気に円く切れる。このところまともな工具を買っていないことがわかって、よけい物欲に抑えが利かなくなった。
手が自然に、これまで何度も訪れていた電動工具のウェブサイトに導いて、気がついたときはプロクソンのスーパーコッピングソー(電動糸鋸 28082 ¥14,800これは旧製品で安くなっている)のボタンを押してしまっていた。やれやれ。
コッピングソーでプラスティックを切る時は熱に注意(7/9/2013)
7月に入ってからは、恒例の音楽発表会の準備で、暫く工作は棚上げになっていた。ネットショップから待望のコッピングソーのダンボール箱が届いたが、すぐには開けられず、横目で見ながら演奏の練習をする。
新宿の楽器店の小ホールで行われた発表会の演奏はまずまずの出来だった。打ち上げはいつものように近くのお店でビールで乾杯。「何でわざわざ自分をつらい立場に追い込んで曲を練習し、先生から叱咤され、関係者以外誰も聞いていない演奏会場の費用を出し、発表会をするのか」ということで、みんなで大共感。大いに盛り上がる。
特に盛り上がった相手は、信州からわざわざ東京まで演奏会のために出て来る人だ。それだけ苦しんでも、終わって暫くするとまたこの緊張と興奮を味わいたくなるのだそうだ。これは、このブログで度々とりあげる、ドーパミン中毒そのものである。
本番で何が起きるか予測不能というのが音楽演奏の最大の緊張をもたらす要因なのだが、プログラムにも似たところがある。ただ、プログラムの場合は解決しないとカタルシスは味わえないが、演奏会は終わってしまえばすべての苦しみは解消する。アマチュアなので不出来だったからといって、次から出られなくなることもない。
それはともかく工作である。発表会のあとは、我慢していた工作を一気に始める。まずはコッピングソーの試し切りである。曲線部から始める。順調に切れた、と思った。ところが切れたところが分離しないのだ。ありゃあ、鋸は通って跡が残っているのに切れていない。
何と、一旦切れたアクリルが熱で溶けてまた固着してしまっている。糸鋸の速度を最低にしても、だめだ。直線はまだ良いが、曲線は材料に鋸が強く当たるので溶ける率が高い。ふーむ、これはどうしたものだろう。おかしなことに、溶けないときもある。
少しづつ休みながら切るとうまく行くことがわかった、鋸の刃をかえるとうまくいくときもある。何とか4つの曲線を切り終えたが、固着した部分を無理にはがそうとして一面を少し欠かしてしまった。残りの直線は、コッピングソーではなくサーキュラーソーを持ち出して綺麗に切り出す。
一方、アクリル曲げ機の工作はとても順調だった。慣れてきて少し火傷をしてしまったが、熱するところをずらさずに、なるべく狭い範囲にすれば曲がる場所の精度が高くなり、曲げが正確になる。また所定の角度まで曲げたら、位置がずれないよう常に微調整しながら冷やしていくのもコツのようだ。
ちょっと大きすぎたが形は出来た(7/10/2013)
できあがって仮組みする。うーむ、少し大きすぎたか。何となく間が抜けてしまう大きさだ。まだ基板を載せていないので何とも言えないが、アクリル板が透明なので余計目立つ。まあ、どこかに納入するわけでもない。第一号はまず動けば良いということにしておこう。
カメラを固定する2ミリのアクリル板にUSBカメラ本体をはさんでみる。あらら、これはだめだ。止まっているだけなら問題ないが、動かせばすぐずれてきて何のための移動かわからなくなる。固定する必要がでてきた。
このための準備はできている。カメラを三脚に固定するときに使う1/4インチのボルトとナットが買ってある。ナットだけでは接着面積が少ないので、アクリル小片を2枚重ねにし、そこに穴を開けてナットを埋め込み、適当な大きさに切り出して、これをカメラの固定部に接着する。
接着剤は、強力なエポキシ系を使い、2日かけて乾燥させる。ボルトは少し長すぎるので、万力でボルトを固定し金鋸で切断する。例の、位置を自由に調節できる万力が意外に役に立った。
これまでは、万力の位置が変えられないので、体の姿勢を工具に合わせなければならず、長時間は無理だったのだが、この万力だと、自分の一番都合のよい位置に部材を固定することができるのでとても楽に作業を続けられる。
モーターを2つ、ギヤをつけて可動部は完成した。自動巻き機を利用して、チルト部のモーターを回してみる。うむ、マイクロステッピングなので全く無音でモーターは廻る。力がちょっと不足気味なのが心配だが、もし駄目なら2相駆動にすれば音はでるがもっと強力になる。
さて機構部は出来た。次は制御系である。
ソフト開発を行き当たりばったりでやるとろくなことがない(7/14/2013)
制御方法は、色々考えていたが、まだこれという決め手になる仕様が定まらない。仕方がないので、これまでの時計自動巻き機のソフトから必要な機能を抜き出して、当面は、UARTからのコマンドでモーターが短期間動作するプログラムを作り始める。
この自動巻き機のソフトは、Tiny2313を使って、タイマー2本から、4つのPWMチャンネルをとりだし、マイクロステッピングでモーターを回している。1時間近い運転時間を持ち、プログラムに従って正転、逆転、休止を繰り返すソフトだ。
今度は、数秒間、右か左(または上下)どちらかに回転させるだけである。ブレッドボードに自動巻き機と全く同じ回路を組み込む。チルトのモーターにコネクターをつけて、まずこれを動かすことにする。
ソフトの開発は、使わない機能を削除するだけの手間である。簡単に終わると思っていた。ところがこれが難儀したのである。まず、不要な部分が多すぎる。このソフトは、ソフトパワースイッチになっていて、2秒間スイッチの長押しで電源が入り、長時間の回転が終わると、パワーダウンモードでスリープする。
この部分と、決められた順序でプログラム運転を繰り返すところに沢山の制御フラグ変数が入っていて除去するのに一苦労だ。しかも全体の設計というか、どういう仕様でネット上からモーターを回すのかをまだ決めていないので何を残しておけば良いのか悩む。
本来のシステム設計の常道で言えば、やってはいけないアプローチでプログラム開発をしている。案の定、ソフトが出来上がって動かしてみたが、UART受信が動かなかった。
実は、仕様に全く決まっていないところがある。始点と終点の処理だ。今のところフォトインタラプターを使って、そのポイントを検出し、先に行かないようにするつもりだが、明確なロジックは決めていない。
本来ならこの部分も机上(擬似コーディングなどの紙)でつめたあと、全体のソフトを開発していかないと、最終的な開発効率が低くなるのは目に見えているのだけれど、まあこれは仕事ではない。たまにはこういう行き当たりばったりという開発も良いだろう。
と、呑気にUART受信が動かないデバッグを始めたのだが、こいつが中々手ごわい。単に不要な部分を削っただけなのに、送信はするのに受信が動かない。受信ができないとPCからのコマンドでモーターを動かそうとしているので先に進めない。
仕方がないので、オシロを取り出してUARTの波形を調べる。おやあ、送受信とも問題なくデータが出ている。PCのキーボードを押せば、ちゃんとシリアル信号が出ているではないか。それなのに、一向に受信を認めない。何もここは換えてないよ。
半日悩んでいた。やっぱり行き当たりばったりの開発はろくなことがない。しらみつぶしのprintfデバッグをしようかと覚悟を決めてソースコードを詳しく調べ始めてやっと原因がわかった。
いくつかの外部割込み(UARTの次はGPIOで制御するつもり)を追加した際、UARTの初期化のあとに割り込みマスクを設定したため、UARTのピンチェンジ割り込みを無効にしてしまっていた。
要するに、UARTの初期化の位置が悪かっただけである。このChanさんのISP-UARTをベースにした当研究所の常用UARTがピンチェンジ割り込みなんていう洒落た仕掛けを使っていたことなど忘れてしまっていたというのがオチである。情けない。
まずはモーターをまわしてみよう(7/16/2013)
やっと受信が出来るようになって、モーターが動き始めた。ステッピングモーターなので、本当はパルス数で制御すれば正確な動きが把握できるが、今のところは不精して、時間で制御する。1秒を1回の単位とする。コマンドを1回送ると、1秒間どちらかに動く。
おおー、PCからのコマンドでカメラが上下に動く。マイクロステッピング制御なので全く音がしない。ちょっと感動する。問題は、このモーターが脱調せずにカメラを上下にどこまで振れるかである。
うーむ、カメラが下に90度近く振れてしまうと、持ち上げる時にモーターが脱調してしまう。マイクロステッピングを諦めて2相制御にするか。いや、待てよ、このACアダプターの容量は余り大きくない。うむ、0.36Aでは小さいモーターと言えども苦しいはずだ。
別の2Aのアダプターにとりかえる。よーし、大丈夫だ。問題なく持ち上げる。そうだ。このACアダプターのもとは6Vでレギュレーターで5Vにしている。6Vを直接モーターに入れてみてはどうだろう。良いぞ。モーターは明らかに力強くカメラを持ち上げるようになった。
ここまでくると、実際にカメラを動作させてパンやチルトの具合を確かめたくなる。早速久しぶりにRasPiの電源を入れ、ウェブカメラを動かす。PCでUART端末を立ち上げ、コマンドを入れる。カメラが少し動く。画像がちゃんと変化した。
当たり前の話だけれど、カメラに全く触れずに画角が変わるというのはやはり感動ものである。ただ、このmotionというソフトは単純に画像を送っているだけでなく、動きを解析するために何か画像の処理をしているようで、カメラ自体を全体に動かすと画像全体がぶれてしまう。あまり大きく画角を変えないほうが良いようだ。
まあ、それはともかく、Raspiのライブカメラプロジェクトは、これで一歩進んだ。現金なもので、進展があるとやる気がでてくる。いつのまにか次の課題、始点・終点処理のためのフォトインタラプターの準備に体が動いていた。
| 固定リンク
| コメント (7)
| トラックバック (0)
最近のコメント