PIC24FJ64GB002でADKを試す(その1)
公開日:
電子工作 | ADK, Android, Open Accessory, PIC, PIC24FJ64GB002
先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公開されました。
待ってました!と早速、手持ちの PIC24FJ64GB002 を使って、試してみました。
(ArduinoでADKを試したい方はこちら)
PIC24FJ64GB002 の回路は、以前 Android + Bluetoothドングル + PIC24F で使ったのを、ばらさず置いていたので、ほぼそのままの使い回しですw
それから、僕自身は、PICにはそんなに詳しくありませんので、ここでは「とりあえず動く状態にできる」と言う報告として見て頂ければと思います。
実際に作られる方は参考程度にとどめて下さいね
そして間違いを見つけたらご指摘お願いします┌| ∵|┘
Microchipの公開ライブラリー
MIcrochipが公開しているライブラリは、こちら↓です。
Software Library for Android Accessory
ダウンロードしてインストールする形で配布されています。
なぜインストールさせるんでしょうかね、解凍するだけで使えればいいのに・・・謎です。
インストール先には、ライブラリのドキュメントと、Android用のデモアプリのソース、PIC用ファームウェアのプログラムのソースが含まれています。
残念なことに、今のところ Accessoryにアクセスする部分はバイナリー形式のライブラリのみで、ソースは含まれていないようです(´・ω・`)
デモアプリ
Microchipが公開するライブラリの中には、動作をチェックする為のデモアプリ(Basic Accessory Demo)も含まれています。
このデモアプリを実行する為には、Android 2.3.4以降の端末が必要です。
このデモアプリのビルドの方法は、Arduinoで試した時とほぼ同じですので、今回は割愛させて頂きます。
また、このデモアプリ(Basic Accessory Demo) はAndroidマーケットに登録されているようです。 ビルドが面倒な方はマーケットの物をご利用下さい。 Market の説明では、Does not support v3.x devices. と書かれていますが、僕のXOOMでは問題無く動作しました。
Basic Accessory Demo – Android Market
GoogleのADKデモアプリとは、通信データの内容が違うので、今回の作るPIC用のファームウェアプログラムではGoogleのADKデモアプリは使えません。
動作を試す為にはMicrochipのこのデモアプリが必須となります。
で、とりあえず、Nexus One で実行してみました。
GoogleのADKのデモアプリと比べると、もの凄くシンプルな構成です。
上部に8個並んだ立方体のイメージは、タップすると、それに対応したLEDが On/Off する仕組みです。
あと、ADK側のボタンの状態を示す4つの表示と、ポテンショメーターを示すシークバーが1つ。
ファームウェア
公開されているPIC用のファームウェア・プログラムには、PIC24F Accessory Development Starter Kit for Android をはじめとするいくつかの完成基板向けのものが入っています。
これらの基板を持っていれば、ビルドして書き込めばそのまま利用できると思うのですが、僕が試すのは PIC24FJ64GB002 なので、そのままでは使えません。
ですので、一番近い PIC24FJ64GB004 PIM 用の物を修正して使いました。
ハードの構成
利用したPICは PIC24FJ64GB002 です。
USB-OTGが使えるマイコンの中では、28PinのDIP品が有るこのPICがOpenAccessoryの電子工作では扱いやすいですね。
ちなみに僕はシリコンハウスで680円で購入しました。
Digi-keyでは現在のレートで1個474円で購入できるようです。 沢山買えばさらに安いです・・・誰か大量購入する人がいたら声かけて欲しいなぁ・・・便乗するかも。
参考) PIC24FJ32GB002-I/SP-ND – Digi-Key
そして、動作のチェックには、以下の物を用意しました。
- LED x 2
- 押しボタン x 2
- ボリューム x 1
PICのPINは、まだまだ余ってるのですが、とりあえずの構成と言うことで・・・
部品一覧
- | 数量 | 記号 | 備考 |
PIC24FJ64GB002 | 1 | IC1 | データシート |
Volume | 1 | UR1 | 100k Bカーブ 可変抵抗 (10k程度でもok) |
LED | 3 | LED1-3 | |
スイッチ | 3 | SW1-2,RESET | |
抵抗(1k) | 4 | R1-2,R6-7 | |
抵抗(10k) | 3 | R3-5 | |
セラミックコンデンサ(10uF) | 1 | C1 | |
セラミックコンデンサ(0.1uF) | 1 | C2-3 | |
USB-Aコネクタ | 1 | CN1 | |
XC6202P332TB | 1 | IC2 | 3.3V レギュレータ |
トータルでも1000円を切る値段で、ADKが楽しめます!
しかし、一からPICの環境を揃えるとなると、その限りではありませんがね・・・
特にPICにプログラムを書き込む為のPICKit3とかは少々値が張ります。
追記)
Yahooオークションで売られているPIC24FJ64GB002マイコンボードでも動くんじゃ無いかと思います。
一応HIDブートローダー対応HEXファイルも用意しましたので、このマイコンボードであればPICKitが無くてもPCとUSB接続でプログラムが書き込めるかと思います。 このマイコンボードをお持ちの方は是非試してみて欲しいです。
回路
作った回路は、上図のようになっています。
PICのクロックは内蔵の物が使えるので、外付け発振器は取り付けてありません。
電源は、VINへの5Vです。Androidへも直接接続しているので、必ず5Vで500mA程度流せる電源が必要になります。 僕はUSBのラインから接続しています。
オリジナルの ADK for Android も、回路図が公開されてるので、併せてご覧下さい。
(僕もまだまだ勉強中で、良く分からない部分があるので、この回路で何か問題があれば教えて頂けると助かります。)
僕はブレッドボード上にこんな感じで配置しました。(実行には、写真に写っているPICKitは不要です、念のため)
ごちゃごちゃしていますが、これだけでAndroidと接続して通信出来ちゃいます。
で、今回はここまで・・・申し訳ないです
次回はなんとか「PICのファームウェア・プログラムのビルド~実際に動作させる」までを書きたいと思います。
続きはこちら
関連記事
-
-
SoundIRModemライブラリのサンプル
SoundIRModemライブラリは、米粒AVR(Tiny10)とAndroid端末をイ
-
-
Android Open Accessory開発時のWiFiデバッグ
Android Open Accessory開発時のデバッグは、ADBをWiFiで接続しろと、USB
-
-
AndroidにPS2キーボードを繋いでみた
@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Ardu
-
-
米粒AVRで小型8連ナイトライダーを作ってみた
米粒AVR(ATtiny10)を2つ使って、8つのLEDを順番に点灯しています。 &nbs
-
-
そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう
Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる
-
-
Android + Bluetoothドングル + PIC24F
@hrdakinori さんと言う方が、PIC24FとBluetoothドングルを使って、Andro
-
-
米粒AVRの動作周波数
米粒AVR(ATtiny10)のデフォルトでは内臓発振器利用の1MHzが指定されてい
-
-
Android + Arduino でリモコン2 (softmodem接続)
以前、LAN接続のリモコン Android + Arduino でリモコン と言うものを作ったのです
-
-
米粒AVRでSoftModem的なこと
米粒AVRとAndroidを繋いで、データのやりとりを行ってみたいと思います。 2つを繋ぐイン
-
-
Arduino + USBホストシールド で ADK を試す(その1)
先日Google IOで発表された Android Open Accessory。みなさん知ってます
Comment (1件)
ピンバック: 今週勉強したこと[2012/1/8〜1/14] » 希瓦斯製作所