表紙に戻る

過去の雑談

わからないままだけど。

calendar 2013.02.27

Solaris 11、使う要件がなくなった。うーん、ほっとしたような、残念なような。 いや、面倒減ったからよしとしよう。

明日は朝から新宿。

Chrome 25.0.1364.97

calendar 2013.02.26

起動すると GNOME ごとフリーズしてた Ubuntu 10.04 の Chrome が、 先日のアップデートで完全復活。良かった。

Solaris 11がわからない。

calendar 2013.02.24

RedHat や CentOS は仕事で使うし、Ubuntu は家でも使うからなんとなく使えるんだけど、 Solaris は普段全然使わないからノリがわからない。なんか 11 になってから 設定方法が諸々変ったみたいで、過去の知識やNet上の情報があんまり適用できなくて余計困る。

どうすべな、と思って本屋をハシゴしてたら、Solaris 11 のことが書いてる本を 見つけたので立ち読み。 ちょっと書き方がくどくて、誰かにモノを伝えるためってより個人の備忘録を読んでるような 練られてない印象があって好みじゃない。けど、 RedHat と Solaris のコマンド対比とか あんまり余所で見ない内容も載ってるから、と思って購入。

帰ってから欲しい情報だけ拾い読みしたけど、うーん。情報の質も分かりやすさも、 正直ヒトに勧められるレベルではないな。でも勿体無いから一回は読もう。

家人がケータイを iPhone に変えた。楽しそうで何よりだけど、この家、au の LTE は入感悪いのな。 ま、インフラの整備はどうしようもない。それでも 3G が掴めれば家の ADSL よりは早いんだ。 てことで、家の Wi-Fi には参加させない方針。 端末のセキュリティ確保が難しいてのが半分、メインインフラの帯域食われるのが嫌なのが半分。 つまり半分は嫉妬。YGGの半分はヒガミでできています。

妙に交通規制が多いと思ったら、今日は東京マラソンだったんだね。

お急ぎの方は太字だけ読んでも。

calendar 2013.02.17

 一冊の同人誌すら描き上げたことのない漫画家の卵が深夜アニメにダメ出しするように、 あるいはこれから書くという、壮大な大長編について口角に泡を飛ばす自称作家のように、 未完成のシステムについてあれこれ夢のスペックを語るのはおよそプログラマのやることではなくて、 きっと実業家だとか商人だとか、そう呼ばれるいわゆる政治家たちの生業だと思うのですが、 やって失敗したことの記録なんかは、未来の自分含む、未熟なりに何かを完成させようとしている 誰かのいしずえにでもなるんではなかろうか、なんて思って備忘録を記すものであります。 簡単に言うと、失敗したけどメモっとく。

 さて、我が YGGDRASILL SOFT(ゆぐどらしるそふと)は、自分が便利になる為のモノや、 ヒトが楽しんだり便利になったりして褒めて貰えそうなモノを開発、発表することを 目的として活動している訳ですが(コレいま適当に考えたけど、的を射てる気がする)、 「ソフト」と名乗ってるだけあって、原則的にソフト屋さんです。要はハードウェアは 対象にしていません。これは、より多くの利用者を得るために量産可能なモノを 作りたいという僕自身の志向(嗜好?)によるものでもありますが、 単純に前述の目的を満たせるだけの技術力が無い、というのが根本的な理由であります。 しかし今回は、その苦手なハードウェア分野に果敢に立ち向かいましたよ(そして散りましたよ)、というお話です。

 やろうとしたのは、誰か来たら警告して撃つシステムでした。以下、作り方と、失敗した話。

構想

作りは単純で、

  1. Webカメラで動体監視
  2. 動体検知したら警告音声を再生
  3. 5秒後に動体を検知し続けているようなら発砲

というだけのモノ。あえて特徴を挙げるなら、

  1. 発砲前に許可証を提示すれば警戒を解除
  2. 警戒モードの On/Off は操作カードの提示で制御
  3. システムは Raspberry Pi で構築
  4. 無線LAN経由で制御/メンテナンス可能

という点でしょうか。

ハードの構築

発砲部を除いたシステム構成はこんな感じです。

使ったエアガンはコレ。

具体的な材料は、以下の通りです(ハードウェアのみ)。

写真からだと分かり辛いのですが、論理的には Raspberry Pi を中心として単純に接続しています。 USBホストとしてRaspberry Pi、USBハブ経由で Webカメラ。IDE の CD-ROMドライブはUSB変換を噛ませて Raspberry Pi 本体に接続。ネットワークは、LANケーブル経由で無線LANブリッジに接続して、 家のメインインフラに参加しています。

給電関係が少し複雑で、無線LANブリッジ、CD-ROMドライブ、USBハブはOAタップから給電。 Raspberry Pi と Webカメラは USBハブから給電しています。これは Raspberry Pi が コンセントからの電力供給に対応していない為。さらに Raspberry Pi の USBポートから 配電すると本体の駆動が不安定になるので、自力で電力を確保できない機器はUSBハブ経由で接続しました。 それを想定して、USBハブは ACアダプタ付きのものを選びました。ちなみに電動エアガンは単三電池駆動です。

ソフトの構築

無線LANブリッジは、予め家の無線LANにブリッジ接続できるよう、SSIDとPSK(パスワード)を設定しておきます。 PCで疎通まで済ませて、RJ45にLANケーブルを挿せば通信できる状態にしておきました。

OS は wheezy-raspbian。2012-10-28-wheezy-raspbian.zip をSDカードに展開しました。 これはあちこちのサイトで解説あるので割愛しますね。

動体検知は motion を使います。 インストールは

sudo apt-get install motion

としたのだと思うのですが、忘れてしまいました。
moiton の設定はこんな感じです。

/etc/motion/motion.conf
/etc/motion/thread1.conf

motion.conf は外部からのコントロールを許可したのと、最後の方のカメラの設定を thread1.conf に 出す設定を書いたくらいで、他はあんまりたいしたことしてないはず。 thread1.conf に書いた主なチューニングは次の通りです。

画像サイズ 480x320dot
画像形式 jpg
閾値 800dot
記録密度 5fps
保存先 SSD
HTTP公開 on

この程度のチューニングで実際どの程度マシンパワーを消費するか、という点ですが、実測で アイドリング時は 25%前後、動体検知時はほぼ 100%のCPUパワーを使います(user 88% / system 12% で使い切りを観測しました)。

ちょっと脱線ですが、motion と ELECOM UCAM-DLK130TRD を使った動体検知システムは、 特に OS をチューニングすること無く Raspberry Pi で動かすことができました。 ただしこのチューニングでは半日も安定稼動せず、少し運転するとカメラデバイスをロストして、 その後映像を認識できなくなります。fps 落とすか、画像サイズ落とすか、 ramdisk に保存するようにするか、あるいは全てか。なんらかの対策をすれば解決するかもしれません。

実は Core2Duo を積んだサブマシンの Ubuntu でも同じような事象が起きるので、 カメラとの相性問題の可能性も捨てられません。 Ubuntu での実績的には、 Microsoft、ELECOM、Logitech(Logicool) と試したカメラの中で、 一番安定して使えるのは Logitech(Logicool)のようです。

閑話休題。

動体検知の結果を処理するプログラムは on_picture_save を使ってキックする予定でしたが、 諸々の失敗で結局ここは未着手です。ただし QRコードを処理するプログラムに画像を渡すために、onsave.sh スクリプトの中で

ln -f \$1 /var/common/motion/now.jpg

としています。

許可証や操作カードによる非接触コントロールは、QRコードで行います。 QRコードの処理部分は、ドット絵ナニカにも使っているQRコード認識技術を使って、この画像を監視します。 ここもたいしたことはしてないのですが、操作説明も作って無いので未公開。

それからこれも瑣末な部分ですが、警告音声は aplay で再生する予定でした。 テスト用に作った音声はこちら。声質は趣味です。

で、肝心の発砲機構は、電動ガンと Raspberry Pi の接続が必要です。 ここでやっとCD-ROMドライブの登場ですよ。

sudo apt-get install eject

で eject コマンドをインストールして、CD-ROMドライブのトレイを開閉できるようにします。 要は、トレイが開く勢いでトリガーを引く、というテクノロジーです。

…ほら。このあたりが、ハードできない感満載。

なんにせよ、これでなんとなく全容が見えてきました。

  1. 動体を検知すると
  2. 音声が流れ
  3. 5秒以内にQRコードの提示があれば処理を停止(killall)
  4. 提示がなければ eject /dev/cdrom1/ コマンドを発行
  5. CD-ROMドライブのトレイが電動ガンのトリガーを引いて
  6. 掃射!

…というのが、目論見だったのです、が。

失敗と改善案

実際、組み立てはしたのです。
段ボール箱に穴を開け、電動ガンを配置し、制御部(Raspberry Pi)とCD-ROMドライブを設置。 トリガーにワイヤを掛け、CD-ROMドライブのトレイが開けば引き金が引かれるように。

失敗だったのは、トリガープルが重すぎてトレイ排出程度じゃ引き金引けないことでした。 や、この電動ガン、対象年齢 10歳以上のトイガンで、セーフティロックにバネが入っていて 手を離すと自動的にロックがかかるようなフールプルーフなんですね。 その一環なんでしょうけど、トリガープル(引き金を引く力)もかなり重い設定なんですよ。 軽く指が触れても暴発しないくらいに。

多分銃を分解してトリガーのバネを緩めれば解決するんですよね。 というかそもそも電動なんだから、リレー回路組み込めば Raspberry Pi から直接 制御できちゃうんですよね。でもできないんだ。だって分解したら組み立てられる自信無いんですもの。

ということで失敗の致命的な原因は、僕が不器用だからというヘタレな話でした。

白髪がすごいいっぱい生える夢をみた。

calendar 2013.02.12

若白髪ってなんか苦労人っぽくてかっこいい! みたいな価値観持ってるからかもしれない。 布団出て鏡見てがっかり。そんな簡単に苦労人に成れたら苦労しないよ(?)

HERE COMES A NEW CHALLENGER!

calendar 2013.02.11

紙やら文房具やら買いに降りた浅草橋の、駅広告。

この構図は格ゲーの対戦シーンだよなあ。金太郎が1P。「軽くいなしてやるゼ」的な。 明らかに金太郎のが強そうだけど、ゲームバランス考えたら、お雛様は飛び道具とかトリッキーな攻撃で相手を翻弄するタイプかな。妖術なんか使って。

そろそろウチのひな飾りも出さなくては。

ジェネレーションギャップ

calendar 2013.02.02

昨日行った研修(半分寝てたけど)で、新人類とかゆとり世代とか、ジェネレーションギャップの話をしてた。 曰く、暗黙の了解ってもんがわからない。曰く、前提から説明しないと話しが通じない、と。ほうほう。

講師は、でもそんな風に世代が変わってくのは当然で、 自分と人とは違うってことをまず認識しなきゃだよ、ニンニン! とか言ってた(ニンニンは俺が付け足した)。

うんうん、分かる! て思ったね。伊賀と甲賀が通じないんだよね。「木の葉」とか「暁」とか言わないとイカンのだよね…だってばよ!

目覚めた心は走り出した

calendar 2013.02.02

久しぶりにPC-98時代のプログラムを動かしてみた。

いくつかは完全には動かなくて(多分PC9821V12あたりを持ってくれば動くのだけど)、 曲や画面が崩れてしまうのだけど、一部はちゃんと遊べる。クリアするとBeepで音楽が鳴ったり。 動くヤツも微妙に使い方覚えてないなあ。裏技はマニュアルにも書いてなくて分からなかったけど、 キャラ選択画面でA-Dのボタン押したり@キー押したりしたらできた。そうか、このあたりのセンスは昔からか。

黒い画面の真ん中にぽつんと表示される。

ひさびさに見た当時のウチのロゴ。1998年に使っていたもの。てことは 18歳くらい? これ、ロゴをアニメーションで描画するとか、無駄に凝ってたなあ。

久しぶりにBIO 100%やりたいけど、FDぜんぶ実家だ。

寒さ本番。

calendar 2013.02.00

都内だと、コートを着なくても通勤できる程度に、寒さには強いほうです。
つっても零度下回れば流石に着ますけども。

さて、今年の冬はどうでしょうか。



Copyright (c) 1994-2015 YGGDRASILL SOFT mail yggdrasill@mub.biglobe.ne.jp