ArduinoインタプリタiArduinoのeXodusinoへの移植(その1)
@nnmtng氏がArduino向けのインタプリタを作っておられることを聞いたので、使ってみた次第です。
iArduinoの本家さまに詳細があります
自分はAVRマイコンのオリジナルArduinoが手元にないので(ぉぃ)、eXodusinoでも少しの変更で動くのではないかと、移植をしてみたわけです。
変更する部分は以下の部分です
- 算術関数
- eXodusinoではコードサイズの肥大化を避けるべく、一部の算術関数の対応をしていません。乱数などは今のところ対応するつもりがないので、return 0にしてしまってます。
- Arduino1.0特有の記述方法
- Serial.printlnなど
- EEPROMクラス
- LPC1114F/301にはユーザ用EEPROMがありません。したがって、IAPをもちいてプログラムフラッシュ領域に記録するか、外部EEPROMに記録することになると思います。外部EEPROM必須だと、ハード構成に制約をかけてしまうことになります。一方、プログラムフラッシュ領域に記録する方法だと、プログラム領域が減ってしまいます。ここはまだ検討中です。
とりあえず、動くところまで、動かしてみたのが以下のスクリーンショット。先ほどの理由のため、EEPROMからのインタプリタ起動にはまだ対応してません。
ちゃんと、GPIOの設定もできています。
■なんでインタプリタなのか
統合開発環境として申し分のないLPCXpresso IDEが準備されているものの、これを使うにはEclipseを使った経験がある人でないと、使いづらいという面があると思います。とてもArduinoライクな開発はできません。また、Mac OSXには対応していません。
かといって、Arduino IDEをLPC1114向けに改良するのも時間がかかります。
というわけで、eXodusinoとシリアルコンソールで、限定的でもいいから簡単に開発できればと思っていたところ、このiArduinoを見つけた次第です。
■これから
中間言語を出力させる仕組みを確立し、OSX、Linuxといったデスクトップだけでなく、Android、WP7.5、iPhone用のeXodusino VM出力アプリを用意しようと思います。スマホで「digitalWrite(hoge,ababa)」と打つのは面倒なので、なにかうまい事考えないと。。。