eVY1をAndroidのUSB HOSTに接続

日本Androidの会 横浜支部で動いてるの見せてもらったのでマネしてみました。


eVY1をAndroidに接続するとこんな感じ

Device Info 
Device Path: /dev/bus/usb/002/002
Device Class: Use class information in the Interface Descriptors (0x0)
Vendor ID:  2938
Vendor Name:  
Product ID:  07d2
Product Name:  

Interfaces 
Interface #0 
Class: Audio Device (0x1)
	Endpoints: none
Interface #1 
Class: Audio Device (0x1)
	Endpoint: #0
Address        : 2 (000000010)
Number         : 2
Direction      : Outbound (0x0)
Type           : Bulk (0x2)
Poll Interval  : 0
Max Packet Size: 64
Attributes     : 000000010
	Endpoint: #1
Address        : 129 (10000001)
Number         : 1
Direction      : Inbound (0x80)
Type           : Bulk (0x2)
Poll Interval  : 0
Max Packet Size: 64
Attributes     : 000000010


USB MIDIの規格書はここにあった
Universal Serial Bus Device Class Definition for MIDI Devices
http://www.usb.org/developers/devclass_docs/midi10.pdf


USB HOSTの部分は作ろうと思ったのですがドライバーがあったので使わせてもらいました。
kshoji/USB-MIDI-Driver
https://github.com/kshoji/usb-midi-driver


Galaxy Nexus(4.2.2)にUSB HOSTケーブルでeVY1を接続
アプリで認識されて音がでることは確認しました


sendMidiSystemExclusiveで歌詞を送ればよいみたい

このコードだと固定で「わ」って歌います

 byte systemExclusive[] = {(byte)0xf0, (byte)0x43, (byte)0x79, (byte)0x09,
 (byte)0x00, (byte)0x50, (byte)0x10, 'w', ' ', 'a', (byte)0x00, (byte)0xf7};
 midiOutputDevice.sendMidiSystemExclusive(0, systemExclusive);
 midiOutputDevice.sendMidiNoteOn(0, 0, note, 127);


アプリを作りました

ローマ字入力で歌詞をいれてボタンを押してくと歌う
追加モードも付けた

AndroidでPlaygroundのサンプルを動かしてみた

Playgroundはマルチプラットフォームゲームエンジンで、「ラブライブ!スクールアイドルフェスティバル」などで使用されている。
ソースコードが公開されたのでとりあえずサンプルを動かしてみた


KLabが開発したゲームエンジン「Playground」のソースコードを公開 | ニュースリリース | KLab株式会社<http://www.klab.com/jp/press/130926.html>

Windowsで開発してAndroidで動かしたいので、このファイルの通りにやってみる

PlaygroundOSS/Doc/Android_Build.md <https://github.com/KLab/PlaygroundOSS/>


簡単に説明するとこんな感じ(??)

  1. VirtualBoxUbuntuAndroid NDKの環境を作ってnative libraryを作ります
  2. サンプルのluaや画像などをzipでまとめます
  3. GameEngineのWorkspaceをimport
  4. あとは普通のAndroidアプリと同じで実機に転送


でも動かない、GCMを使おうとして例外発生しているようなのでとりあえずコメントアウト

音が出てタッチ操作できるサンプルとして16.Soundを実行してみました


サンプルを見た感じ

luaでイベントを受信して描画、音声再生など複雑な記述しなくてもできそう
アプリが非アクティブになると音と止めてくれたりはする

あとコマンドプロンプトでndk-buildするとこんなの出るのは正常なんだろうか

Android NDK: WARNING:jni/Android.mk:Game: non-system libraries in linker flags:-lcurl -lfreetype2
Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK: current module

GitHubのMotorControlを更新

Bluetooth USBドングルを使って2つのモーターをコントロールするPICマイコンのプログラムを
PIC24FJ256GB106またはPIC24FJ64GB002どちらでも使えるようにしました。
開発環境はMPLAB Xです

hrdakinori/PIC24F_MotorControl


これを操縦するAndroidアプリも最近のSDKで読み込めるようにしました。
hrdakinori/MotorControl


この基板に搭載のPIC24FJ64GB002でも使用できます


基板の購入はこちら
Shop Yokorobo 01-PIC24F

本が発売されます

Android ADKプログラミング & 電子工作バイブル
http://www.socym.co.jp/book/809


Androidと電子工作を絡めた何かをはじめたいときの参考にしてもらえるとよいかと思います
みんなで書きました、私もすこしだけ担当させてもらいました


Android ADK プログラミング&電子工作バイブル (smart phone programming bible)

Android ADK プログラミング&電子工作バイブル (smart phone programming bible)

Android Bazaar and Conferenceに参加した

Androidな人の集まりAndroid Bazaar and Conferenceに参加した
ロボット部のブースで展示を行いました


こんな感じ

RXマイコンADK

3/20の日記では、AndroidをAccessoryモードで認識したところまでだったけど
ABCにむけてAndroidと通信してるのが分かる様に、カラーLED10個の部品を制御してみた。


AndroidのVisualizerのAPIを使うと再生中の音のFFT結果がとれたので楽ができた。
あと、LED点灯するにデジタルトランジスタを使ってみた、これは部品が少なくできてよかった。
LEDのダイナミック点灯はRTOSに助けられた感じでループで時間調整しています(^^;)


次はRXマイコンBluetoothかな