[Sparkfun] Edisonの開発環境とは

Tweet about this on Twitter0Share on Facebook0Share on Google+0

Edison開発環境の探求

みんなも気付いてるかもしれない。

近頃、SparkFunはEdisonに首ったけだと。

でも正直言ってしまうと、我々も”やめられないとまらない”状態なのである。

文字通り、この小さなボディーに秘められた果てしない可能性に首ったけである。

13024-04

数週間前、IDFで我々の”Blockを発表しに行った時に受けたもっとも多かった質問は、

「OK、こいつがスゴいのは良くわかった。でも、こいつで何をどうすれば良いんだ?」

である。

非常に共感出来る質問である。

Edisonは他のマイクロコントローラー開発プラットフォーム(我々が慣れ親しんで来た)とは違う。

USBコネクターもピンブレークアウトも、言ってしまえば我々がよく使うインターフェースなんかは1つも付いていない。

そもそも、Raspberry PiBeagleBonepcDuino等とは全く別次元の代物と言っても良いだろう。

コンピューターターミナルの様に、開発に必要なキーボードもマウスもモニターも無い。

Edisonは我々メイカーにとって全く新しい存在だと考えて欲しい。

とは言ったものの、Edisonでの開発環境の選択肢は、実は我々が慣れ親しんで来たものとはそれほど違わない。

今回の記事では、Edisonで何かを開発する時に選べる選択肢を紹介したいと思う。

なじみのArduinoの開発ウィンドウから、C/C++のクロスコンパイリング環境やPython、更にはnode.jsまで幅広い選択肢が用意されている。


Arduino – 入門用、即席プロトタイプ用

Edisonはほぼ完璧なArduinoサポートを謳って発表された。

まぁ、近頃はなんでもかんでもArduinoサポートを謳っている気がするが。

と言うわけで、EdisonバージョンのArduinoソフトウェアをダウンロードしてみると、おなじみの開発環境にたどり着ける。

arduino_ide_example2

全ての関数コールやAPIは、慣れしたんだArduino環境とまったく同じ様に利用できる。

更に、Arduinoブレークアウトボードを使いたい時のために、ピンアウトがシールド互換となっている。

こう言ったとっつき易さは、教育目的やプロトタイプ制作と言った様々なマーケットにとってとても便利な環境と言える。

エデュケーター達は、既に多くの現場で証明済みであるArduinoの使い易さととっつき易さを手に入れられる。

日々プロトタイプの制作を行っているクリエイター達には、豊富なスケッチとライブラリー群が用意されている。

裏でどんなに複雑な事が起こっていようと、Arduino環境では気にすることなく迅速なプロトタイプの制作が可能だ。

これは実際の経験だが、以前、本格的なプロダクションを行えるようEdisonのArduino環境を使用してOLED Blockの簡素なプロトタイプを作ってみた。

oled-lit-up-1000w

写メでごめんよ。空港でローマに行く途中だったんだ。

当然の事だが、この単一画面のIDE(統合開発環境)の裏で実際に何が起こっているかは、いつものArduinoとは完全に違って”digitalWrite”からWiFiにいたる全てのライブラリー は、Edison上のLinuxカーネル用に書き直されている。

書いたコードをEdisonにロードするために、Arduino IDEはコンパイルをローカルで行った後、lszを使って実行ファイルをEdisonに送り込んでいる。

“Arduinoスケッチ”は、OSによって管理されている多くのプロセスのほんの一つに過ぎないと言うわけだ。

Arduinoで慣れしたんだ環境はとても便利に感じるだろうが、Edisonで開発を行っていると、この環境の限界を感じる日がすぐにやって来るだろう。

それでも、もしEdisonでの開発を始めてみたいと思っているなら、この環境を試してみる価値は十分にあると言える。

が本当にためになったと思うのは、ライブラリやコアコードに潜って、ピンのトグリングやUARTプリンティングなんかを管理しているファイルシステムが、どんな仕組みになっているかを学べたことだ。

内部のソースコードを知ることは、次のステップに進むための最適なエクササイズでもある。


C/C++(gcc, g++)

gcc、g++、linker、makefile等に精通しているなら、Arduinoは飛び越えて一般的なC/C++の開発環境に飛び込んでも良いだろう。

EdisonのYocto Linux環境には、gccとg++が初めからインストールされている。

この環境でまず苦労するのは、ファイルを実際にEdisonにロードすると言う作業だろう。
EdisonのYocto Linuxにはviが入っているので、もし「自分はマゾである」と信じているなら、コンソールからすべてのコードをEdisonに直接書き込んでみても良いかもしれない。

もちろん、もっと楽な方法があるのは言うまでもない。

EdisonにはビルトインのWiFiがついているため、実際に開発しているマシンと同じネットワークにEdisonを接続する事が出来る。

そして、SSHを使ってEdisonにファイルをアップロードすると言うわけだ。

また、WinSCP (Windows) やCyberduck (Mac)等のソフトを使えば、ファイルブラウザーを通してEdison上のファイルを管理する事も出来る。

もっと簡単な方法(おそらくこれが一般的になると予想している)を探しているなら、まずPC上でEdisonのコードを全てクロスコンパイルしてしまい、出来た実行ファイルをSSHかUSBでEdisonに転送すると言うアプローチもあるだろう。

Intelのホームページ上では、クロスコンパイルに必要なパッケージがダウンロード出来る様になっている。

Eclipseやmakefile等を使えば、実行プログラムをビルドするためのクロスコンパイラー(WindowsならMinGW)を呼べる環境も作れる。

今後、Edisonのコミュニティーが成長して行くことで、このアプローチに関するドキュメントも増えていくことを願っている。


Pythonとnode.js

もしスクリプト言語により親しみを感じるなら、EdisonにはPythonとnode.js両方のサポートが組み込まれているので、それを利用するのひとつ手だ。

これらのツールには既に大量のサンプルコードやサポートが付いてくるので、とても使い勝手が良いはずだ。

そして、大抵の場合はプラットフォームに依存しない仕様になっている。

例えば、ツイッターに投稿したければ、

それを実現してくれるPythonのスクリプトがあるだろう。

野球のスコアをチェックしたければ、

それを実現してくれるnode.jsのパッケージがあるだろう。

また、Edisonの活用場所として注目されるのがIoT(モノのインターネット)である。

そして、Pythonもnode.jsもその分野ではとても人気のある開発環境として知られている。

もし、IoTとnode.jsに本当に興味が有るなら、 Intel XDK IoT Editionをチェックしてみて欲しい。

多くのXDKがスマートフォンのアプリ開発にフォーカスしている中で、”Internet of Things with Node.js Projects”と言うセクションが有る。

xdk_example

はnode.jsに対する知識はほとんど無いが、この開発環境のとっつき易さのおかげで本当にnode.jsを勉強したくなった。

用意されているサンプルを追って行くだけで、LEDを点滅させるnodeアプリケーションをリモートでアップロードする事が出来る様になる。

これは、Edisonが「node.jsのArduino」になり得る大きな可能性を表していると言えるだろう。


今、Edisonの最新のプラットフォームとして、多くの開発スキームが生み出されている。

これから、Edisonの開発環境を取り巻くコミュニティーがどのように発展して行くか非常に楽しみである。

Edisonでの開発は既に体験したかな?

どの環境が一番快適かな?

我々がBlockをリリースする時に、どんなサンプルコードを見てみたいかな?

—–

この記事の原文はこちら

https://www.sparkfun.com/news/1612

Comments are closed, but trackbacks and pingbacks are open.