<ちびギアモータ>ネットでギアードモーターを探していたらこんなのを見つけた。プリ―付きで400円だ。ギアードモーターはモータと減速機構が一体になったモータで、外部にギアボックスが不要になる。業務用は当然だけど高い。千石で模型用の安いのを探してみると1000円~2000円くらいだ。ギアがプラスチックでよければこんなのもある。↑(https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-0F4C)「ちびギアモータ」は他のギアードモーターとくらべて消費電流が少ないようだ。3~6V、5V無負荷時:35mA、回転数120rpmAVRのGPIOで直接駆動できるらしい。消費電流が大きいとトランジスタやFETでドライブしなければならないから部品が増えるけど、GPIOで直接駆動できるならとてもお手軽だ。AVRの絶対最大規格はピン当たりの出力電流は40mA、デバイス全体の消費電流は200mAだから「ちびギアモーター」2個は回せそうだ。負荷をかけるとピン当たりの制限に引っかかりそうだが、超えたらからといってすぐに燃えたりしないだろう。そのあたりは売り物にするわけではないので勝手にやれば良い。プーリーにはφ25でOリングがはめてあるのでタイヤに使える。台車にモータとタイヤを付けてまっすく走るだけでは面白くないので、ライントレースをやってみよう。サーボが動いたのでネギを振ってみたアプリはこんな感じzgifを表示してBGMを流して、加速度センサーの出力を読んで45°~135°になるように変換してarduinoに送るだけ。arduino側のF/Wはmicrobridgeに含まれるDemoが使える。LifeTouchNoteを振るとミクがネギを振る←リンク先にAVI昨日参加した勉強会でやったらウケた。(火)Android+microbridgeでI/O制御HostShieldそっくりさんができたのでAndroidと繋いでみた。スマホは使っていないので(裸眼で使えそうなスマホはラクラクホンしかない)LifeTouchNoteを使った。)をサポートしていないのでmicrobridgeでLTNと繋いだ。microbridgeは、ADBを利用して制御するハードに接続するのでUSBデバッグを許可するとどのバージョンのAndroidでも使える。tcp:xxxxを実行し、Android上のアプリはlocalhost:xxxx経由でハードと通信を行う仕掛けだ。microbridgeのサイトからHostShieldのF/W(MicroBridge-Arduino.zip)とAndrodのアプリ(ServoControl.zip)をDLしてサーボを制御するデモを実行してみるとうまく動かないので、パッチを当てた。原因:DEV-09628の回路図を参考にしたのでRESETとGPXの配線が逆になっていた。DEV-09628のページにも説明がある。assert"が出力される原因:MAX3412Eは電源ONの際に、内部の48MHzPLL発振器が外部の12MHzX'tal発振器にロックすると割り込みを発生する。LTNが認識されない(10回に9回は認識に失敗する)原因:Adb.cppのADB::isAdbDevice()関数でコンフィグデスクリプタの取得に失敗している(getConfigurationDescriptor()の戻り値が負)対策:getConfigurationDescriptor()の戻り値が負ならばもう一度実行するようにした。logcatしておくとAndroidのログがHostShield経由でシリアルで送られてくる。AndroidはUSBでHostShieldと繋がるのでEclipseでデバッグできなくなるが、logcatしておくとログを確認することができるようになる。Android側のアプリ(ServoControl.apk)はこんな感じ画面上の赤い四角をドラッグするとサーボが動く。2ch分の制御が可能なのだがサーボが1個しかなかった。)画面左上の赤いバーはArduinoのアナログ入力値を表示している。(アナログ入力ピンには何も繋いでない。)microbridgeを使用するアプリはsocketを使用するのでManifestでINTERNETアクセスを許可しておかなければならない。簡単に動くと思っていたらまったくアプリが起動せず、INTERNETアクセスの許可していないことに気付くまでちょっとハマってしまった。(ログを見て気がついた。)sparkfunのDEV-9947のリンクが間違っていたので、そ~っと直した。DEV-09947を参考にしたほうが良い。)MAX3412EはDigikeyから\1,161で買った。DEV-09947はスイッチサイエンスで\2,495だから、そっくりさんを作ってもそんなにお得ではなかった。MAX3412Eは32pin-TQFPなので素直にピッチ変換基板を使ったらユニバーサル部分がなくなってしまったので、ソケットを使って浮かしてピッチ変換基板の下に3端子レギュレータを実装している。なんだか空母状態になっている。HostShieldそっくりさん。オープンソースばんざい。UB-ARD01↓は秋月のUSBシリアル変換モジュールをATMEGA168/328用マイコンボードにソケットで実装した場合、USBシリアル変換モジュールに干渉すると書いた。最近サンハヤトから寸法の短いUB-ARD03が販売されてたようなので、さっそく買ってきた。(基板の色は緑だけのようだ)干渉しない。USBシリアル変換モジュール(AE-UM232R)」そっくりさんを作った。FT232RLを使った、ただのUSB-Serial変換アダプタだ。FT232RLをSOPのピッチ変換基板に載せて、コネクタ、コンデンサ類は千石で売ってるフレキシブル基板(曲がる万能両面基板両面スルーホール)をはさみで切って使った。AE-UM232そっくりさんにしたかというと、秋月のArduino互換基板を持っているからである。AE-UM232にソケットを使うと、シールド基板と干渉することは知っていたのだけれど、本当に干渉する。秋月C基板で作るかホストシールドを作るためにMAX3421EはDigikeyで買ってある。あるFT232RのBitBangが使えるavrdudeを使ってBootloaderを書いて、サンプルスケッチをロードするとちゃんと動いた。AVRの書き込みは、arduinoISP+avrdude+avrdude-GUIを使っている。(学研のjapaninoも買ったのだがarduinoISP専用になっている。1.0.5はFlashメモリに書くデータファイルをうまく指定できなかった。ラベルの構文が間違っています。ソースも公開されているので読んでみようかと思っていたら、既にパッチを当てている人がいて修正版が公開されていた。(哲学はなぜ間違うのか)。