部品はDigi-Keyでバッテリーはhobbykingから注文しました。DC-DCコンバータ。あと最後にマイコンです。バッテリーはの電圧は11.1V容量は5000mAhです。同じ11.1Vのバッテリーなら動作するので、もっとコンパクトにしたいなら1600mAhぐらいの小さなものに交換することも可能なのが便利なところ。あとリチウムポリマーバッテリーなので取り扱いには十分注意しないとだめです。今は専用の充電器で充電しており、内蔵の充電回路は使っていません。LPC1114本当ならマイコンはAVRでも性能的には十分ですが、ARMの勉強も兼ねてLPC1114を使いました。(3.5A)OPアンプとLPC1114を組み合わせた回路の合計3つですが。2と3はほとんど同じ所を計測しているので3はなかったことになるかもしれない。6Aの範囲なら保護回路が動く」という意味なのかどっちだろう。Gain」ってところの計算がうまくいかない。理解できてないだけかもしれないけど。これができないとバッテリーの正確な電圧が分からないのでバッテリー残量の計算に問題がでるかもしれない。ELECTLOGICを参照。D+/D-に電圧がかかっていると充電してくれない物もあるので1ポートだけ、D+/D-に電圧をかけていない5Vのみのポートにしました。LinuxAndroid+ポケモンキーボードでモバイルLinux環境を構築する話です。root化とbusyboxのインストールが必要です。Nexusにインストールした。他のAndroid端末でも同じようにインストールできると思うけど、手順どうりにやってもうまく動かないことがあるのでその時はググるなりしてください。ARMのフォーラムを参考にchroot環境を構築します。Chroot私はArchLinux派なので、ArchLinuxをインストールしていますがDebianなど他のディストリビューションがいい。インストールしてるよって人は、他のディストリのインストール方法をググるなり読み飛ばすなりしてください。Android上で以下のコマンドを実行してArchLinuxをインストールします。途中ddコマンドで750MBのイメージファイルを作成していますが、容量は各自で適当に決めてください。私はいろんなパッケージをインストールするつもりなので2GBの容量で作成しました。/dev/loop1これでArchLinuxARMのインストールは完了。次に起動スクリプトを/sdcard/startarch.shとして配置します。この起動スクリプトはarchlinuxarmのフォーラムの書き込みを参考に作成しました。startarch.shで起動できます。あとは普通のArchLinuxとして操作できます。好きなパッケージを入れてください。ArchLinuxのパッケージマネージャはpacmanです、pacmanの詳細はArchLinuxのwikiを読んでください。何度も言いますが、端末によってはうまく動かないので、そのときは各自で起動スクリプトを書き換えるなどしてください。ポケモンキーボードと接続さて、これでLinuxのインストールはできたので。スクリーンキーボードでコマンドを打って操作することはできるようにはなった。使いづらくて仕方ないのでキーボードを接続します。今回はDSのゲーム、ポケモンタイピングに付属するキーボードを使った。PCなどにも普通に接続でき、スタンドまで付属していてamazonで2000円程度。Keyboardとして認識されるのでそのまま接続。次に画面に出る数字をキーボードに入力してEnterを押せば接続が完了する。Androidにポケモンキーボードを接続すると。USキーボードとして認識されるのでJISキーボードとして認識してもらうためにキーアサインを変更しないといけない。Androidのキーアサインについては以下のサイトを参照してください。Source.klと.kcmファイルを用意すれば未知のキーボードにも対応できそうだ。ポケモンキーボードでの注意点はESCキーだ。ESCキーは全角/半角キーと一緒になっていてESCを入力するときはFn+全角/半角を押さないといけない。ESCキーとして動作するようにキーアサインを変更した。いうわけでキーアサインを変更する以下の2つのファイルを@hiromo6さんの作成されたファイルをベースに作成しました。Nintendo_Wireless_Keyboard.klNintendo_Wireless_Keyboard.kcmそれぞれのファイルを/system/usr/keylayout/Nintendo_Wireless_Keyboard.kl/system/usr/kaychars/Nintendo_Wireless_Keyboard.kcmとなるようにコピーする。このとき/systemはデフォルトでは書き込みできないので。/systemを書き込み許可にして再マウントしなきゃいけない。Nexusの場合は以下のコマンドで/systemを再マウントできる。/system他のandroid端末の場合は別のコマンドになるので各自調べて下さい。ConnectBotを使った。ctrlキーの挙動が変(ConnectBotの仕様?)なのでソースコードを一部書き換えた。ソースコードを変更するのでandroidの開発環境が必要です。connectbotからソースコードを落としてきてsrc/sk/vx/connectbot/service/TerminalKeyListener.javaの133行目付近のhardKeyboardHiddenをtrueに変更する。{正直に言うとなぜtrueにするとうまく動くのかわかってないです。詳しく書くと、hardKeyboardHiddenがctrlキーの挙動に関わっているようで、これがtrueだとctrlキーは正しく動く。ConnectBotを起動するとfalseになっているという謎挙動をするので、強制trueにしています。これで今のところ大きな問題は出てないので大丈夫だと思います。これで持ち運びできるLinux環境の完成です。NexusはUSBホストも持っているのでUSB変換コネクタを接続すれば、Androidに対応していないUSB機器でもArchLinux側が対応していればArchLinux側から操作できます。/mntでUSBメモリの中のファイルにアクセスできます。ポケモンキーボードを使うことでほぼPCと同等のLinux環境をAndroidで実現することができました。piにも負けない小型PCとして使えるのではないでしょうか。普通に5V供給してやるだけでは、充電してくれないようなので。充電モードにするのにどんな細工が必要かちょっと調べてみた。軽くググったら以下のサイトがUSB端子の各電圧について書いてある。D+は2.0Vで良さそうだ。英語版wikipediaのUSBのページにiPod/iPhoneの充電電流について書かれていた。(D+)=2.0Vの時1000mAになるようだ。ARMねむいさんのブログにSTM32VL-DiscoveryをVersaloon化する記事があったので、Versaloon化したSTM32VL-DiscoveryでLPC1343のデバッグをしてみようとした。まあ結局記事に書いてある方法と同じように試したけど、うまく行かなかったので自己流で最新のVersaloonファームウェアの用意からopenocdのビルド、インストールまでやりました。vsprog-read-onlyバージョンによってうまく動かないことがあります。私はrev1054を使いました。56KmakeでVersaloon_GCC-STM32VL_Discovery-0x0000.binが生成されるあとは生成されたファイルをFlashLoaderDemonstratorを使って書き込みます。openocd_update_0.5.0うまくいけばopenocdのインストールまで勝手にやってくれます。最後に、ねむいさんのブログがものすごく役に立ちました。1343をそろそろ使ってみる。OSを何度も変更する自分にとってはlpcxpressoIDEのプロダクトコードの入力とかめんどくさいので、GCCでlpc1343のバイナリを作成します。Liteは適当にインストールしてpathを通しておく。Projectsをダウンロード適当なフォルダ(ここではblink)を作って、examples.lpc13xx.zipからLチカに必要な以下のファイルをコピーCMSISv1p30_LPC13xx/src/core_cm3.cCMSISv1p30_LPC13xx/src/system_LPC13xx.cCMSISv1p30_LPC13xx/inc/core_cm3.hCMSISv1p30_LPC13xx/inc/system_LPC13xx.hCMSISv1p30_LPC13xx/inc/LPC13xx.hblinkly/src/blinkly_main.cblinkly/src/clkconfig.cblinkly/src/clkconfig.hblinkly/src/config.hblinkly/src/gpio.cblinkly/src/gpio.hblinkly/src/timer32.cblinkly/src/timer32.hあといくつかのファイルを以下のリンクから持ってきてblinkにコピーhttps://github.com/microbuilder/LPC1343CodeBase/blob/master/lpc1xxx/linkscript.ldhttps://github.com/microbuilder/LPC1343CodeBase/blob/master/lpc1xxx/LPC1xxx_startup.chttps://github.com/microbuilder/LPC1343CodeBase/blob/master/lpc1xxx/LPC13xx_handlers.cfirmware.binをUSB経由で書き込み、動作させるためにlpcrcを用意しblinkに配置https://github.com/microbuilder/LPC1343CodeBase/tree/master/tools/lpcrc/binGCCでビルドしたfirmware.binはそのままでは問題があるようでlpcrcでfirmware.binを書き換えないといけない。書き換えるとうまく動作した。調べてないので理由はよくわからないけど動いているから問題はないはず。8K}あとはmakeコマンドでバイナリが作成されます。書き込みfirmware.binの書き込みはhttp://hp.vector.co.jp/authors/VA000177/html/LPCXpresso.htmlに書いてあるのでそれを参考に、USBコネクタ取り付けて、firmware.binを書き込むやっと動きましたー。やったね!ここまで書いてあれだけど、こんな面倒なことをしなくてもhttps://github.com/microbuilder/LPC1343CodeBaseに別のサンプルソースコードがあるのでそれ使ってもいいと思います。冷房が効いた部屋に入るときの涼しさのために、エアコンをネットから操作するデバイスを作ってみた。気付いたら秋になってしまったのですが。完成したので、公開してみます。viewerAVR-Ethernetのページにのっている回路を参考に赤外線LEDを追加したものですコードはtuxgraphics.orgのeth_tcp_client_server-4.3をベースにRemoteIRを追加したような感じになっています。webから操作iPhoneなどから操作出来るようになっています。これで外出先からでもエアコンのon/offが可能。ダイキンのエアコンに対応させる自室で使っているエアコンはダイキン製で当然RemoteIRは対応していませんテレビのリモコンのフォーマットはすでにいろんなサイトで情報が載っていますが、エアコンのリモコンはテレビとは違うもフォーマットなので、いくら調べても情報が出てきません。そこでまずリモコンから出ている信号の解析から始めました。これを使ってリモコンの信号の解析をしました。これをPCに取り込んで信号を解析してみると、テレビのリモコンのフォーマットに似ていた。フォーマットは似ていたのでRemoteIRをちょっと改造してリモコンがら出ているデータと同じ信号がでるようにしてやるとうまくエアコンが動いてくれました。これで赤外線系は完成。メーカーによってフォーマットが全然違うから他のエアコンに対応させるのはちょっと大変だ。ソースコードはGithubにUPしてみました。MateをUbuntu11.04と接続してみる。忘れないようにメモしておく。DebugIto'sSparkFunのBluetoothモジュールのコマンドモードへの接続手順です。blogBluetoothMateはデフォルトでSPPスレーブとして動作します。このコマンドでBluetoothMateと接続/dev/rfcomm1を使って通信できます電源投入後60秒間コマンドモード移行待ち状態でその間にペアリングして"$$$"と送信してやるとコマンドモードに入り設定の変更ができます。Set(PDF)を参照。60秒過ぎると"$$$"でコマンドモードには入れなくなる。コマンドモードから抜けるには"---"ビットレートはデフォルトで115200UART経由でも"$$$"でコマンドモードに入れる。こっちはいつでも"$$$"でコマンドモードに入れるみたい。bluetoothでどことも接続していない時のみ。115200この方法では接続できなかった。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。