Hardwareの最近のブログ記事

せっかくの夏休みなので、昨年作ったArduinoを用いたUSB→BTアダプタを小型化してみた。
最終的に下の写真のようにフリスクケースに収まるぐらいの大きさになったので満足している。
a_promini_usb2bt.jpg

フタを開けると大体こんな感じ。DCジャックはちょっとはみ出した。
a_promini_usb2bt_2.jpg

必要なもの
・Arduino pro mini 3.3v 8MHz版(加えてPCからスケッチを書き込むためのFTDI USBシリアル変換アダプター)
・USB Host Shield for Arduino Pro Mini
・RN-42 XVP(前回のを流用)
・DCジャック
・コンデンサ 0.1μF(パスコン)
・5v ACアダプター
 5vレギュレータをつけようか迷ったかが、スペースの関係上、早々に断念。
 (しかし、完成後のスペースを見るとできそうな感じではある。)
 5v ACアダプター使用前提の設計とした。
加えて諸事情により自分は抵抗 3.3kΩを使用。

以下、やったことをつらつら並べる。
1.USB Host Shield for Arduino Pro Miniの購入
国内では入手できないので、ある意味これが一番敷居が高い。PayPal経由で自分は本家から購入。
Amazonでも互換のパチものが売っているようだったが、後述のVBUS jumperが無いようだったので自分は避けた。
(国内でもどっかの代理店が売ってくれればよいのだけど...。)

2.USB Host Shield for Arduino Pro Miniの下準備
3.3vのままではUSB機器に給電できないので、外部からVBUSへ5vを供給しなければならない。
本家のマニュアルを元にVBUS jumperを切断し、VBUS pad とRAWピンを接続する必要がある。
具体的には↓の方のツイートが参考になる。
https://twitter.com/YuuichiAkagawa/status/307151034839613441
(このVBUS pad とRAWピンの距離感が残念なところ。ほぼ対角線上だ。)

3.USB Host Shield for Arduino Pro Miniと Arduino Pro Miniの接続
スペースを少しでも確保するため、本家の写真にもあるようにUSB Host Shieldの上にpro miniを載せる形で半田付け。

4.9600bps対応
8MHz版を使用する場合、以前使用していた115200bpsだとエラー率が高く、使用できないようなので
前回使用したソースコードを修正した。(bps以外にも最新ライブラリに追従するための微調整も含めた)
Arduino以外にRN-42側も9600bpsに変更する必要があるが、ここで自分はRN-42側のコマンドモードで設定しようとしてハマった。
一回リセットしようさせようとreset pinをカチカチやってみたが、どうも初期状態に戻らない。調べてみると一旦HIDモードに入るとfactory reset出来なくなるようだ(う〜ん、前に初期化した記憶があるのだが...。HIDに入る前だったか...?)。仕方なく、GPOI7をonにすることで対応。RN-42評価キットの実装から間に抵抗3.3kΩを追加したが、モジュール側で設定出来るならこの抵抗は不要。

4.RN-42と接続。
ブレッドボードでテストした後、フリスクケースに収まるようにハンダ付け。
最終的な回路図は以下の通り。
arduinopromini_rn42.png
3.3v機器同士の接続は繋げればイイだけだから非常に楽である。

Windowsとの接続テストの様子。特に問題なし。
a_promini_usb2bt_3.jpg

iPadとの接続もok。今はこのスタイルをベースにやってる。
a_promini_usb2bt_4.jpg

一番大変だったのはフリスクケースの加工である。大きめにカットするときにニッパーを使って切断したが、
本当にお菓子入れかと思いたくなるぐらい材質が堅かった。熱いホットボンドを垂らしても全然平気。
電子工作のケースに良く選ばれている理由がよく分かった。

arduino_bt.jpg

Arduinoと秋月で安く売られているbluethoothモジュール(RN-42 XVP)をくっつけて試したところ、いくつか紆余曲折があったものの、うまく動かすことが出来たので纏めておく。

なお、本作成にあたり、addsict氏の記事[1]を非常に参考にさせて頂きました。

使用したもの
・ハードウェア
 ・Arduino Uno
 ・USB Host シールド(Sparkfun製)
 ・RN-42 XVP
 ・SSCI-KIT-XBSOCKET XBeeピッチ変換基板とソケットのセット(スイッチサイエンス製)
 ・抵抗 4.7kΩ、9.1kΩ
 ・9V 0.65A アダプター

・ソフトウェア
 ・felis/USB_Host_Shield_2.0 https://github.com/felis/USB_Host_Shield_2.0
 ・addsict/USBKeyboard2BT https://github.com/addsict/USBKeyboard2BT


やったこと
①USB Host シールドの動作確認
sparkfun_usbhost.jpg参考元のaddsict氏の記事で一番よく分からなかったのがUSB Host シールドから伸びている謎の線である。
国内で入手性しやすいのはSparkfun製のUSB Host シールドだが、調べてみると配線が本家と異なるため、ライブラリーがそのままでは使えないそうな[2]。
改造例はいくつか見つけたが、配線直したりしなきゃいけないのでなかなか面倒。NeoCat氏のように7ピンとresetピンをくっつけさせるのが一番ラクそうである[3]。

この状態でUSBホストシールドのライブラリーを取り込み、サンプル(HID→USBHIDBootKbd)を動かしてみたところ、正常にシリアルコンソール上に押したキーが表示されていることを確認。
なお、USBバスパワーだけではパワー不足なのか、HHKBを動かすにはACアダプター(外部電源)が必要だった。


②RN42-XVPの設定
まず、ブレッドボード上でお手軽に結線させたいため、ピッチ変換基板をはかせた。任意でコンデンサ(パスコン)も付ける。
SSCI-KIT-XBSOCKET.jpg
その後、RTSとCTSを繋いで、GNDとVCCをArduinoのGNDと3.3Vに繋ぐ。Arduino Unoは5Vで動作するが、RN42側は3.3Vで動作するのでRN42のVCCに5Vを繋がないように注意する。

ここから先は英語マニュアルとの格闘になる[4]。
ちなみに自分の環境ではwindowsのbluetoothレシーバーとRN42との相性が悪いためか、何回やっても接続できなかった。諦めてMac Book Air + CoolTermを使用したらすんなりといけた。
CoolTerm上の設定は以下のとおり。

ss_2014-06-26 22.57.59.png

Mac Book Air 上でbluetoothのデバイスを探し、(RNBTうんたらかんらというモジュール名で出てくる)間髪入れず、CoolTerm上で接続して$$$を入力するとモジュール側から応答が返ってくる。(よくよく考えるとBluetoothモジュールの電源をつけただけで、PCとシリアル通信できてしまうのだから、このRN42 XVシリーズはヤバイぐらいお手軽なモジュールである。)

マニュアル見ながら色々なコマンドを流して見たが、最終的に必要なのは
以下の4コマンドぐらいかな。

(1. モジュール名の設定)
SN,HHKB_BT
(2. ペアリングモード化)
SM,6
(3. HID化)
S~,6
(4. reboot)
R,1

その後、addsict氏のUSBKeyboard2BT スケッチを書き込み、USB Host シールドと RN42を以下のように接続させればok。

arduino_rn42.png
RN42はRN41を元にして作った図なのでピンが違うかもしれないが、ココでのメインはArduino側のTXとRXをRN42側のRXとTXに繋ぐよう、クロス結合させることである。(Arduinoにとっての入力はRN42の出力。逆もまた然り。)

ひとつ注意しなきゃいけないのがArduino側の出力は5Vなので、3.3Vまで落とさないとRN42側が壊れてしまう点である。
ここでは抵抗分圧回路[5]を用いて3.3Vまで落としてある。(抵抗分圧は抵抗の比によって決まるので4.7kΩ、9.1kΩでなくても良い。極端な話、4.7Ω、9.1Ωでも電圧は3.3Vに下がるのだが、抵抗値が少ないと今度は電流が大きくなってしまい、回路が焼き切れてしまうそうな。)

ちなみにRN42からやってくる出力(Arduino側から見た入力)は3.3VでもArduinoは識別可能なので、そのまま繋ぐだけでよい。


ここまでやってwindowsでBluetoothデバイスの検索の検索をやってみると...

bt_on_win7.png
↑こんな感じで出てくる。しばらくインストールの準備を待てば使えるようになった。
今のところwindows7、ipod touchの2つで動作確認が取れている。
ただし、Mac Book Airは断続的に切断してしまい、思うように動いていない。
SPPでは問題なく接続できるのに謎。

Arduinoによるプロトタイプは完成したので、今後はArduino Pro Miniとかで小型化させたい。

・参考
[1]Happy Hacking KeyboardをBluetooth化する(無改造版) - addsict's blog http://addsict.hatenablog.com/entry/2013/08/18/170204
[2]Arduino Uno ではじめる ADK - ADK勉強会 (東京) https://sites.google.com/site/adktokyo/unoadk
[3]USBミサイルランチャーをArduinoでコントロール - Okiraku Programming http://d.hatena.ne.jp/NeoCat/20120325/1332677097
[4]RN42XV - rfPIC http://www.microchip.com/wwwproducts/Devices.aspx?product=RN42XV
[5]抵抗計算ツール http://sim.okawa-denshi.jp/teikokeisan.htm

PC組み立て

| コメント(0) | トラックバック(0)

自分はだいたい3~4年周期でPCを切り替えるようだ。K6-II→C3→Athlon64→Athlon64 X2ときて、初のIntel CPUでメインマシンを組むことにした。

欲しいCPUのモデル名3770Tでtwitter検索した結果RSSリーダで追ってたら千葉のドスパラで売っていたようなので、千葉に出向いて買った。その後足りないパーツを秋葉原で買おうとしたら秋葉原のドスパラにも3770Tの在庫が復活してて泣いた。

まぁ苦労したものほど、愛着がわくということにしておこう。紆余曲折はあったが、クアッドコアをゲットしたのだ。
3770T_1.jpg

久々にPCを自作するのだが、まずCPU側にpinがないことに驚いた。最近じゃこっちのケースのほうがメジャーだろうか?マザー側でしっかりpinが保護されているので、こっちのほうが合理的なのかも。
3770T_2.jpg

PCに組み込んでみたところ。

ケースも新調したが、電源が下置きだったり、裏配線、ツールレスでストレージがセットできたりと色々楽しめた。あとUEFI BIOSにカルチャーショックを受けた。(マウスポインタが出たり、ネット経由でBIOSのupdateができたり等)

ちなみに構成は以下のとおり。
[cpu] Intel Core i7-3770T
[memory] KingSton HeyperX Lovo 4GB*2
[motherboard] MSI Z77A-GD65
[power unit] Super Flower SF-550P14PE-P
[ssd] Intel SSD 510 Series 128GB
[hdd] HGST 0S03224 2TB
[case]CORSAIR CC650DW-1(付属のケースファンは五月蠅いので、ファンの取り替えを考えている。)

MSIマザーのZ77A-GD65だが、電圧を下げる方向では今のところ設定できないようだ。下げ方向にぎりぎり切り詰めてみたかったので、ちょっと残念。OCメニューの箇所にある[My OC Genie]項目をCustmizeに設定すれば電圧設定メニューがでてくるが、メモリの電圧下げた後にシステムモニターからモニタリングしても1.5V固定になっている。せっかくのDDR3Lモジュールなのに少しもったいない気もするが、↓にも書いてあるように定格でも十分良さげ。

ワットチェッカーで測ると以下のようになった。
アイドル時・・・23-24W
youtubeやニコニコ動画で動画見る・・・25W(ほとんどCPUを使用していないらしく、アイドル時とあまり変わらない。)
HDDがスピンアップすると+3W増加
3Dゲーム(WoT)・・・55W前後

コア数倍増で消費電力減るとかすごい!多分これで5年は戦える気がする。

10日ほど前、突如PCの電源がつかなくなった。電源ボタン押してもBIOSの起動音はおろか、電源のファンすら回らず。これには流石にお手上げ。ハードウェア的な故障っぽいが、原因が電源かマザーボードなのかも分かっていない状況だったので、まずは原因の切り分けからだ。
電源が単体でテストできれば、他のPCをバラすことなく楽に原因が分かりそうなので電源の単体起動を試みる。どうもネットで調べてみると緑線と黒線をショートさせれば単体でも動くみたいだが、抵抗無しでこれをやるのは少し怖い。下手すると電源にトドメを指しかねないので、無難に電源テスターを買うことにした。また役に立つことがあるかもしれないし。

というわけで灼熱の秋葉原へ。無風だったのでこの日はしんどかった・・・。
2011_s_akiba.jpg

購入したのはScytheの「Power Supply Tester 3」
とりあえず昔買った電源で試してみる。
atx_tester_0.jpg

こんな感じで各端子の出力も見れる。
atx_tester_1.jpg

そして問題の電源に繋ぎ替えてみる。
atx_tester_2.jpg
ウソみたいだろ。死んでるんだぜ。これで・・・
たいしたキズもないのに、ただ、ちょっと打ちどころが悪かっただけで・・・
もう動かないんだぜ。な。ウソみたいだろ。

そんなわけで翌日に電源を買い換えた。買ったのは絢風-AYAKAZE- 300W。電源コーナーに行くと最近はGoldばっかりでビビる。

早速起動。BIOS起動まではいけたが、windowsがbootしない。電源と同時にストレージまで逝ってしまったのだろうか。

どーせ配線繋ぎ替えまくっているので、この際、ストレージも買い換えることにした。
買ったのはIntel SSD 510シリーズ+データ領域用にHGSTの0S03224。マザーボードがSATA2.0までしか対応してないので、正直510シリーズはオーバースペックである。当初は廉価な320シリーズにしようと思ったのだが、8MB病なる奇病が流行っているようなので止めておいた。OSがbootしない深い悲しみはもう背負いたくない。(でもそろそろ対応ファームが出そうなのでこれから買うなら320もアリかも→インテル、SSD 320 の「8MB病」を改善する新ファームウェア提供へ )

早速この構成でOSをSSDに入れようと思ったらCDドライブからもブートしないという事態に...。試行錯誤の結果、どうもメモリの不調によるものだった。メモリを挿し替え+CMOSクリアで現象クリア。でも挿す箇所を変えただけで、結局同じメモリを使用してうまくいっているのが気になる。memtestは一応通ってはいるのだが・・・。砂上の楼閣にOSをまた入れてしまっているのかもしれん。まぁ、前のストレージが生きていたので良しとしよう。

以下、旧環境からのお引っ越し手順メモ。

キーボードをAXキーボード化。

・インストーラー不要なアプリをCドライブのprogram files(x86)にもってくる。
・インストーラーが必要なものをこつこつ入れてがんばる。
(シリアルナンバーを忘れたATOKが一番厄介だった。結局旧システムの方からブート→ATOKパレットのヘルプ→バージョン情報でシリアルナンバーを確認。HDDが吹っ飛んでいなくて本当によかった。なお、ATOKパレットが出ていない場合はスタートメニュー内のATOKからパレット表示ツールを選べば出てくるようになる。)

特にめんどいのが今までいろいろ使ってきたブラウザやメーラー関連。
ramdiskをキャッシュ先に使ってきたからまずはramdiskを先に作る。

・Dataram RAMDisk
512Mで作成。NTFSで再フォーマット後、Rドライブに固定し、中にtempとfirefox,chromeフォルダを作成して
イメージ保存。SSDを保存したRAMDisk.imgのプロパティ→詳細設定で内容圧縮。
サイズは1/1000程になる。さすが初期ドライブ。驚きのエントロピーの低さ。
起動時にこの圧縮したイメージファイルを読み込むようにする。

起動してRドライブが自動でできるようになったのを確認したら環境変数TEMPなどを悉くR:\tempに向けさせる。

・chrome移行
C:\Users\[USER_NAME]\AppData\Local\Google\Chrome
のUser Dataを旧環境からごっそり持ってくる。ショートカットに--disk-cache-dir="R:\chrome"を指定

・firefox移行
C:\Users\[USER_NAME]\AppData\Roaming\Mozilla\Firefox\Profilesに
今まで使ってきたプロファイルフォルダを移動。一個上のフォルダに移動してprofiles.iniのPath=Profiles/XXXXXXXX.default
の部分を持ってきたプロファイルフォルダ名に書き換え。
アドレスバーにabout:configと入力し、browser.cache.disk.parent_directoryを検索。なければ作成し、値をE:\firefoxにした。

・thunderbirdの移行
昔からCドライブ以外の場所にメールデータを退避させていたので、まずはそれを新PCに持ってきた。後はfirefox同様、C:\Users\y\AppData\Roaming\Thunderbirdのprofiles.iniを以下のように編集。
Cドライブ以外の場所を絶対パス指定するので、IsRelativeを0に、
Path=プロファイルフォルダへのパス/XXXXXXXX.defaultに指定

これでようやく電源が壊れる前の状態にまでほぼ戻せた。


・新PCの使用感
アプリ上をSSDに置くと起動が速い。MacBookAirを買う前だったらこの感動はさらに強いものだっただろう。ただ、OSの起動自体はあまり速くなってないように思う。ログインしてからスタートアップアプリがすべて立ち上がるまでは明らかに速くはなったが・・・。
HDDのcoolspin機能がすごい。この機能と電源のおかげでアイドル時には消費電力30Wを切っている。
ただし、シャットダウンするときに毎回HDDが通常回転数に戻そうとするのは何とかならんものか・・・。たぶんシャットダウンに関しては逆に遅くなったと思う。

タッチ&トライ 1day イベントに参加してみた。
20110712_hhkb_types.jpg

到着が早く、まだあまり会場内に人もいなかったので心ゆくまで触れてみた。キーストロークの違いについては分からなかったが、前評判の通りガチャガチャ音が大夫減った感じ。家に帰って初代proに触れてみると違いが良く分かるな。
気のせいか、押しやすくなっているような気もする。スペックは押下圧45gで初代proから変わってないようだが...少しtypeSの方が軽いような。

撮影okとのことだったので会場の展示物を色々撮ってみた。
20110712_hhkb_hg.jpg
一時期話題になっていたハイグレードと...

20110712_hhkb_urushi.jpg
漆モデル。どちらも触れることも出来た。

HHKに関するサイン色紙。2枚あって←は和田先生。筆記体で読みづらいが、これはあのRichard Stallmanだろうか!?わーぉ。スタッフさんに聞いても随分前のサインで分からないようだ。
20110712_sign.jpg
(ちなみに私はノートPCの上にドカッとHHKBを置く行為をRMSスタイルと勝手に呼んでいる。)

帰り際に渡されたお土産。コレが本当のキーストラップってことか!
20110712_key.jpg

裏面。もちろん押すことも可能で結構凝った作り。
20110712_key2.jpg

・おまけ
帰りにお店に寄って食べた冷汁。宮崎の郷土料理らしい。冷たいご飯+ナスとミョウガがうまい!
20110712_d.jpg

オフィシャルでイベントの様子が取り上げられていた。一番手前の姿勢の悪い男が私である。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちHardwareカテゴリに属しているものが含まれています。

次のカテゴリはProgrammingです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

OpenID対応しています OpenIDについて
Powered by Movable Type 4.261