2010-05-31 (月)
午前中に家を出る.皮膚科に寄ってから出社.
この日記はフィクションです.登場する人名・団体名・地名・職業などはぜんぶ架空のものです. なので実際のものとは何も関係がありません. それから,写真のように見える画像はCGもしくは念写によるものです.
午前中に家を出る.皮膚科に寄ってから出社.
久しぶりに動いた.
でも複数QRコードの同時認識がバグってる気が.位置検出パターンのの組み合わせは幾何学的にやっているので,今回はいじってないはずなんだけどなあ.そもそも画像処理の時点でQRコードを分離してしまった方が楽か….
と,思ったら関数に違う画像を渡していただけだった.いじっている最中に投げ出したコードなので,自分で読んでも理解できない部分が多い.
画像処理部分を整理.なるべくトリッキーなことをせずに普通に処理するようにした.極端な傾きの時の認識率は下がった気がするけど,平均的には安定して認識するようになった気がする.
位置検出マーカーを見つけるためのラベリング処理が一番重たいので,QRコードに特化したラベリングにしたいな.
それと,いつか公開しよう.
見てきた.
金星探査衛星あかつきに載せられたメッセージも展示されてたけど,自分のメッセージがどこにあるかは分からず.結構早い時期だった気がするので1枚目の上の方にあるはずなのだけど.
ちゃんとした自作ポン菓子製造機もみかけた.
ちなみに↓ちゃんとしていないやつ.
分解自体は先日したのですが,会社だったので中を確認して終わってしまいました.
全体が一枚の電極として構成されているので,部分的に消去したり,電子的に表示内容を制御することはできないようです.書くときは,完全に圧力から来る物理的な作用によって色が変化するようです.
1枚の電極なので,トランジスタを形成するためのガラス基板なども不要になるのでとても薄く作れているようです.
実用性はともかく,おもちゃとしては,とても面白いですね.
電源は3.3Vのリチウム電池っぽいですね.使い切ることは無いかもしれませんが,入手には困らなそうです.
F2001と書かれた,TIのマイコンが載ってます.
マイコンの周りに,トランジスタとコンデンサが並んでいるので,E-Ink駆動用のチャージポンプ回路でしょう.それを,DG409を使ってスイッチする…という感じでしょうか.
フィルムを剥がすと黄緑ががった何かが塗布されているように見えますが,これがE-Inkの正体かな.剥がしてもまた戻せば動きますが,完全には戻らないので注意.
よく観察していると分かると思いますが,消去時に複数回,点滅していると思います.たぶん,完全に消去するためと,高い電圧を印加したままだと書きにくくなるので,低めの電圧をかけているように見えます.
オシロスコープで見ると思ったとおりの波形で,最初の消去時には36V,そのあと半分の18V程度の電圧をかけているのを確認しました.
Boogir Board分解したりした.
ちょっと早めに会社に行ってセキュリティ研修とやらに参加.WhiteHat の発表の一部を掻い摘んで説明という感じか.内容は悪くなかったけど,退屈そうな人が多かったので,もう少し考えてほしいな.
眠い.
なんだかゴールデンウイーク気分が抜けない.
LTの資料とか作り始める.
「USBデバイスを作ってみた」という内容を予定.ブロードバンドルータにLinuxを入れる話とかにしようかと思ったけど,ほとんどLinuxカーネルの話になりそうだったのでやめました.
5/2に作ったやつをキーボードとして振舞うようにする.HIDのキーボードは作ったことがあるので,そのソフトを少しいじる.
とりあえず,PCに挿すとメモ帳を起動して,文字を入力したりできるように.
IMEを使えば日本語らしきものが入力できますが,画面上に表示されている情報が得られないので漢字変換は絶望的です.IME限定なら文字でコード入力するという手もありますが,キーバインドが変更されていたりATOKではどうなのかとか色々面倒くさい.
というわけで,最初に日本語入力用のWSHのスクリプトを作成してテンポラリディレクトリに保存して実行するように.バックグラウンドで動かしておいてクリップボード経由でURLエンコードされた文字列を渡して好きな文字を入力できるようにする.
クリップボードへのアクセスはIEを使うしかないようなので,IEのインスタンスを作成してIE経由で.困ったことに,デフォルトの設定だとセキュリティの警告が出る.ダイアログのボタンを押さなければいけないので,そのためのスクリプトをもうひとつ走らせることに.
…ただ,日本語を入力したかっただけなんですが.画面が見えていないというのは不便です.
キーボードなので基本的に,決められたとおりのキーを入力するだけです.が,上記の通りPC側で色々やっている都合上,同期を取らないと心配です.最悪,長めのウエイトを入れるのもありですが,キーボードにはLEDがあります.
USBキーボードのLEDはOS側で管理することになっています.PCに複数のキーボードをつないで1つのキーボードでCapsLockすると他のキーボードのCapsLockもONになるはずです.
CapsLockの状態はwshのSendKeysで変更可能なので,これを使ってキーボードの同期を取ることにします.
ScrollLockとかの方が他に影響しなくて良さそうですが何でも良いです.
キーボードとしての機能さえ実装すれば,PC上に特別なソフトが無くても,USBデバイス間での通信が実現できますね.用途が分かりませんが.
いままで使っていたディスクリプタにLEDの定義が無かったので書き直す.当初,一部のキー(具体的にはCTRL+ALT+DEL)だけ使えれば良いと思って最低限の中身しか書いてませんでした.USB-IFにはサンプルのディスクリプタがありますが,いままでのコードをそのまま使いたいのと,冗長でメモリがもったいないので手で書きます.本当は,サンプルどおりでないと起動時のBIOSに認識されないかもですが,まともなドライバが載ったOSなら問題ないはず.
昨日Linuxを入れなおしたmzk-wnhを使ってるけど,無線LANが調子悪くてパケットロスが多い.色々いじってみたけど,よくわからず.調子が良いときもあるので,どうにかならないかなあ.
元のファームウェアでも試したけど,通信していると同じ現象が発生していた.大き目のファイルを転送していると,数秒間パケットがまったく流れなくなることが頻繁に起きている.あきらめるか.
追記:スイッチの設定でvlanを1つにまとめたら大丈夫っぽい.が,WanポートとLanポートに分けられないのは痛い.
特に何も用事は無かったけど,おなかが減ったので出かける.LANケーブルとか細かいものを色々買う.
ヨドバシカメラのとこで3D VIERAの宣伝してたけど,あれ売れるのかなぁ.3D映画が流行っているのを見て間違って作ってしまった感がある.立体で見ることって,コストに見合った何かが得られるのかが気になる.
個人的には,2枚以上の映像から3Dモデルを作って,自由な視点から見たり映像の中を歩いたりできるようになるまでは興味無いかな.
BBR-4MGと比べてメモリにかなり余裕があるので,あまり変なことをせずに普通の設定で.もともとLinuxが入っていただけあって,カーネルを動かすのは簡単.
とりあえず,拾ってきたRT2860用の無線LANドライバを組み込む.設定ツールが無くて困ってたら,RT305x用のSDKを見つけたので,そこから拝借.というか,Linuxのソースも入ってたのでこっちをmakeすれば良かった.
2.6系では,initrdの代わりにinitramfsというものがあるのか.newfsしなくて良いし,こっちの方が便利っぽいな.今回はVM上のUbuntuでやったけど,これならFreeBSD上でも楽できるかもしれない.
CFIを有効にして適当なマップを用意すれば,すればすんなりMTD経由でFlashが使えるのでファイルシステムはそっちにおく.
mzk-wnhの設定画面から書き込めるイメージも作ってみる.U-Bootのイメージそのままではだめで,先頭20バイトにファームウェアの情報をつけないとだめなようです.あと,ファイルの最後に2バイトのCRCを付ける必要がある.
なので,カーネルイメージを20バイト後ろにずらして,本来のファームウェアからコピーしてくる.20バイトのうち,16バイトはファイル識別用のデータとバージョンとかなので,気にしなくてOK.4バイトのサイズに実際のサイズをリトルエンディアンで格納.CRCは面倒なので,適当な数字を入れておいたら,書き込む画面でCRCが違うというエラーと共に正しいCRCが表示されるので,それを書き込む.
U-Bootが使えるので安心していじれます.
また目が悪くなった気がする.
ゴールデンウィーク明けに社内LTで発表するネタとして作ってみる.USBメモリのケースに入れて,見た目を完全にUSBメモリにしようかと思ったけどもったいなかったので,手作り感溢れる感じに仕上がりました.
基板を切って削って.
半田付けした.
USBのピンアサイン間違ったりしてたせいで,時間がかかったけど,それでも基板を削り始めてからUSBとして認識させるまで2時間くらい.
基板をそのままPCのUSBに挿すようにするほうがコネクタ付けたりするよりも,場合によっては手軽で良いですね.
これにボタン2つつけて,余裕があったら他にも何かしよう.
ほぼ寝ていた