PIC24FJ64GB002でADKを試す(その1)

公開日: 電子工作 | , , , ,

先日、MicrochipからPIC向けのAndroid Open Accessoryのライブラリが公開されました。
待ってました!と早速、手持ちの PIC24FJ64GB002 を使って、試してみました。
ArduinoでADKを試したい方はこちら

PIC 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 で実行してみました。

PIC ADK demoapp

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接続でプログラムが書き込めるかと思います。 このマイコンボードをお持ちの方は是非試してみて欲しいです。

 

回路

pic24fj64gb002-adk-circuit
(2011/08/21修正)

作った回路は、上図のようになっています。

PICのクロックは内蔵の物が使えるので、外付け発振器は取り付けてありません。

電源は、VINへの5Vです。Androidへも直接接続しているので、必ず5Vで500mA程度流せる電源が必要になります。 僕はUSBのラインから接続しています。

オリジナルの ADK for Android も、回路図が公開されてるので、併せてご覧下さい。
(僕もまだまだ勉強中で、良く分からない部分があるので、この回路で何か問題があれば教えて頂けると助かります。)

 

PIC ADK ブレッドボード

僕はブレッドボード上にこんな感じで配置しました。(実行には、写真に写っているPICKitは不要です、念のため)
ごちゃごちゃしていますが、これだけでAndroidと接続して通信出来ちゃいます。

 

で、今回はここまで・・・申し訳ないです
次回はなんとか「PICのファームウェア・プログラムのビルド~実際に動作させる」までを書きたいと思います。

続きはこちら

関連記事

米粒AVRで温度計

米粒AVRで温度計(STTS751使用)

前回までに紹介したI2CライブラリとLCDライブラリを使って作る、温度計のサンプルです。 温度

記事を読む

Raspberry Piのリビジョン

リビジョンの種類 現在、Rapsberry Piにはリビジョン1とリビジョン2と呼ばれる2つの

記事を読む

no image

米粒AVRでLチカ

  米粒AVR(ATtiny10)でLチカしてみました。 LチカとはLEDをチカチカと

記事を読む

米粒AVT(tiny10) リモコンレシーバー

米粒AVRでリモコン受信処理

  米粒AVR(Tiny10)で赤外線リモコンを受信して処理をするサンプルを作ってみまし

記事を読む

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduinoでも比較的簡単にSDカードを

記事を読む

no image

AndroidとArduinoの接続で使えそうなBluetoothモジュール

1ヶ月ほど前に書いた、Android + Bluetooth + Arduino が割と人気があるよ

記事を読む

no image

気になる物

HT-03Aで使えるのかどうかは知らないけど、Bluetooth-シリアルモジュール(BT-MOD1

記事を読む

no image

Android+Arduinoでリモコン3 その1(AndroidAccessory接続)

何度か、Android+リモコンのネタを書いたことがあるのですが、今回はAndroid Access

記事を読む

米粒AVR リモコン

米粒AVRでリモコン送信機

米粒AVR(tiny10)を使った赤外線リモコン送信機を作ってみました。 これで送信できるのは

記事を読む

Raspberry Piを買った

先日、Raspberry Pi(ラズベリーパイ)を買いました。 Raspberry Piは噂で

記事を読む

Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑