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のファームウェア・プログラムのビルド~実際に動作させる」までを書きたいと思います。

続きはこちら

関連記事

no image

Bimeji Client for Arduino

前回紹介したWimeji Client for Arduinoの最後で予告していた、Wimeji c

記事を読む

X-Window

Raspberry Piのスクリーンショット

  ブログで使う用に、Raspberry Piのスクリーンショットを撮りたいと思った時、

記事を読む

no image

Wimeji Client for Arduino

前回紹介したWimeji Client for WindowsXPをArduinoでやってみました。

記事を読む

no image

PICでMicroBridgeをやってみた

今回は、@yishiiさんが公開されている、PIC24FJ64GB002用のMicroBridgeソ

記事を読む

raspi-pin-header

そうだ、Raspberry Pi用にピンヘッダーのオス・メス変換アダプタを作ろう

  Raspberry PiのI/O端子は、ピンヘッダーとなっていて、電極が出っ張ってる

記事を読む

no image

AVRISPmk2

米粒AVR(ATtiny10)のプログラム書き込み用にAVRISPmk2を購入しました。 先人

記事を読む

Raspberry Pi

Raspberry Piを買った

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

記事を読む

no image

Androidとオーブントースターを繋いでみた

Android端末とオーブントースターを、Arduino+USBホストシールドで作ったADKっぽい奴

記事を読む

米粒AVRでI2C通信

米粒AVRでI2C通信(マスター)

米粒AVRことATtiny10は3つまたは4つのI/Oピンしか使えないのですが、I2Cなら2つの

記事を読む

Arduino + STTS751

パソコンで温度計

ありきたりのPC温度計ですが、なんとなく作りたくなったので作ってみる。 コントローラーは手軽な

記事を読む

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

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

Arduinoで温湿度計
Arduinoで温湿度計

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

SDカード・マイクロSDカード
ArduinoでSDカード

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

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

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

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

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

PAGE TOP ↑