2014年4月26日土曜日

電子オカリナの製作 ─ iPhoneアプリでシミュレーション

RaspberryPiで何かを作るためには、プログラムを作って、RaspberryPi上で動作させねばなりません。
今回は、私独自のプログラム開発環境についてちょっと紹介しましょう。


通常ARMボード上でプログラム開発をする際は、ホストコンピュータにARMボードをマウントして、クロスコンパイルしボード上に実行ファイルを転送して動作チェックを行ないます。
当初私もその環境を構築しようとしたのですが、Linux関係の知識も乏しく、ホストがMacでうまくマウント出来なくて、いろいろ苦労はしたのですが、結局断念してしまいました。

そこで編み出したのは、Xcode上でiPhoneアプリとしてiPhone上でシミュレーション動作させて基本的なデバッグを済ませ、そのプログラムをGithubを中継させて、RaspberryPiに転送し、RaspberryPi上でコンパイル、実行させるという方法です。

Xcode上の開発は例えば以下のような感じです。

上の図は、XcodeでiPhoneの画面を設計しているところですが、この環境の中でプログラムを書き、コンパイルし、手元のiPhoneにプログラムを転送して動作させます。

ここで動作させたプログラムは、何とGithubを介してRaspberryPiに送ります。
この辺りは、もうちょっと何とかならないかというツッコミはたくさんありそうですが、MacからGithubにpushするのも、RaspberryPi上でGithubからpullするのも比較的簡単に出来るので、結局こんな形に陥ってしまいました。
なので、プログラム開発中は、すごいサイクルでpush, pullが回っていたりします。

GithubはWeb上でソースコードを管理するためのツールで、以下のようなページです。

完全にオープンにしてますので、興味のある方はご覧下さい。
場所はコチラ→ https://github.com/hasebems/Musical_Sound_Generator_Framework

上記の方法の最大の欠点は、RaspberryPiでしか動かないプログラムがデバッグ出来ないこと。
そりゃ環境が違うので、どうしてもiPhone上だけでしか動かないプログラムと、RaspberryPi上だけでしか動かないプログラムが出てくるのは当たり前。
Xcode上でRaspberryPi用のプログラムを書いてもコンパイルさえ通せないので、Githubを介して送った後、RaspberryPiでコンパイルするまでコンパイルエラーが分かりません。
もう、RaspberryPi用のプログラムは、push時のコメントとかもかなり悲惨ですので、この辺はあまり見ないでください。

あともう一つ、CPUの性能がかなり違うので、iPhone上で動いても、RaspberryPiではうまく動かないということも起こります。
その場合、結局はGithubで送ってRaspberryPiで動かしてみるまでは、修正した結果は分かりません。

私自身は、きれいな環境にあまりこだわらず、動けばいいやという感じでやってしまっているので、今のところこんな方法でやっています。
とは言え,洗練された環境の方が効率も良いですから、もっと詳しい方で適切なアドバイスを頂けると大変助かります。

0 件のコメント:

コメントを投稿