ハードオフを物色。今日は立て続けに3つの店舗を
順々にめぐってみた。うちひとつは、今回初めて
行ってみたところ。
その初めて行った店舗は、ほかのところより楽器が
多かった気がする。いくつかムズムズしたものもあった
んだけど、今日は手は出さずに。
キャノンの薄型フラットベッドスキャナが500円とか
300円とかで売ってたんだけど、一応ジャンク売り場
に置いてあったから、ひとまず自重。
帰って来てから調べてみると、CanoScan LIDEシリーズ
だけに限っても、Linuxで使えるやつと使えないやつが
あったみたい。
http://www.sane-project.org/cgi-bin/driver.pl?manu=canon&model=lide&bus=usb&v=&p=
おぉ。あぶねぇ、あぶねぇ。Epsonならあまり心配
要らないんだけど、キャノンはLinuxドライバがなぁ。
型番をチェックしたので、こんど、どこかの店舗で
出物があったら1個買っておこうかな。
(っていうかだいたい出物はある)
500円とかのやつでも、検索してみると、動くことは
動くって感じみたい。多分、XPがサポート切れで
手放した的なものだろうな。
んで、USB-MIDIの機器で何か無いか物色してて、
NanoKey2や、NanoPad2を発見。
…結構なお値段で、これならamazonで新品を送料込み
で買っても殆ど変わらないレベル。元が安いからな。
パス。
で、代わりに、ジャンク箱に入ってた、USBのテンキー
を買ってきた。
帰って来てPCに挿すと、普通に問題なく使える。ok。
コイツとSparkFunのUSBホストシールドを使って、
Arduinoの入力デバイスにしちまおうという作戦。
USBホストシールドには、1.0と2.0があって、ライブラリ
もシールドも、それぞれ分けて考えないといけないん
だけど、とりあえず今なら2.0で統一しちゃえばいいと
思うので、そっちで進めてみる。
オイラの手元のUSBホストシールドは、SparkFunの、
https://www.sparkfun.com/products/9947?
このNew Versionっていう方の基板。ほかにも各社から
出てる。(公式版もある)
とりあえずNew Versionだから、2.0なんだろうと思って、
ライブラリ一式をIDEのlibrariesディレクトリに放り込む。
(ここは勘違いポイント1)
https://github.com/felis/USB_Host_Shield_2.0/blob/master/examples/HID/USBHIDBootKbd/USBHIDBootKbd.ino
このキーボード用サンプルスケッチをコンパイルして、
Arduinoに書き込み。
…動かしてみると、USBデバイスの初期化がうまく
出来ずにエラーになるみたい。「OSC did not start」
が連発。
おっかしいなぁと思って、色々調べなおす。
http://hardwarefun.com/tutorials/using-usb-host-shield-with-arduino
ここを読んでみると、SparkFunの新しい基板でも、
電源周りの配線が、ナニがアレで…と書いてあるので、
ふと基板を見つめなおすと、Powerと書かれたLEDらしき
チップ部品がある。光ってない。
もしかして、オイラ謹製の似非Arduino基板のせいで、
電源配線がナニなのか?と思って、Arduino Uno基板
に換えてみる。
…PowerのLEDが光った。なんだ、電源と通ってなかった
だけなのか。
(ここが勘違いポイント2)
改めて実験…。
やっぱりエラーになっちゃう。もしかして、このテンキー、
相性悪いんじゃね?と思って、フルキーボードを引っ張り
出してきて、繋いでみる。
…動く。動いた。ってことは、相性か?
(ここが勘違いポイント3)
でも、何度か動かしていると、動いたり動かなかったり。
接触の問題かな?と考えてみるも、そんなような、
そうではないような。微妙な動き。
わかんねー。
もしかして、SparkFunのUSBホストシールド固有の問題
が、何かあるんじゃないの?と思って、色々調べてみると、
http://iwatanlab.blogspot.jp/2012/08/arduinousbbluetooth.html
http://dev.tetrastyle.net/2012/01/usb-host-shield-library-20.html
こういう情報が出てくる。ほう。じっくり読んでみた。
どうやら、いくつかの勘違いで複雑骨折しているっぽい。
・勘違いその1:
SparkFunのNew Versionの基板は、1.0とのピン配置の
差異を修正したもので、2.0ではないらしい。多分、
1.0に修正したってことだろうな。
基板を追ってみると、D7が74HC4050を経由してリセット
に繋がっているんだけど、コイツをカットして、
Arduinoのリセット端子に繋ぎかえて、2.0互換に修正
する必要があるみたい。
・勘違いその2:
SparkFun製のUSBホストシールドの場合、電源周りは
外部電源の配線が必要って書いてある。当然ながら、
オイラ謹製の互換基板の、5Vしか供給してない
アヤシイ基板のことを言っているわけではないはず。
電源まわりは一通り見直ししておく必要があるはず。
(あとで考える課題)
・勘違いその3:
相性問題で動作が微妙なわけじゃなくて、「その1」
のとおり、リセットの掛かるタイミングとかで
微妙な動作になっているっぽい。(ホントかな?)
というわけで、パターンカットとハンダづけが必要に
なるので、とりあえずまた今度に。
いろいろ、マインドマップで整理しないといけないことが
溜まっているんだよな。
|
|
|
|
|
|