Spark Core を今すぐ使用するべき4つの理由| IOT 入門

posted in: DIY, Make, Technology, Tool | 1
はてなブックマーク

ネットワークにつながる機器を作るためのSpark Core というプラットフォームをご存知でしょうか。IOTの様なネットワークにつながるプロトタイプを作る際には、とても強力なツールです。

Spark CoreはWi-Fiモジュールと強力なマイコンを搭載したArduinoの互換ボードです。海外のエンジニアやデザイナー、アントレプレナーの人たちが使っているケースが増えているようです。

しかし、日本ではいまいち影が薄いというのが私の印象です。

理由の1つが日本語ドキュメントが少ないことかと思います。しかし実際にはArduinoのスケッチもそのまま使えたり、乗り換えは非常に簡単です。これからIOT(Internet of Things)等、モノのインターネットに関わるプロトタイプをする人にとっては大いに選択肢になり得るのではないでしょうか。

もう一つは技適の問題がありましたが、こちらは既に解決しているようです。

本日、このSpark Core を調べ、実際に使ってみました。今すぐ使用するべき4つの理由を実際にLEDがを点灯させるまでのチュートリアルと合わせて紹介します。


Spark Core とは?

Spark Core はWi-Fiを搭載した小型のArduino互換ボードです。サイズも非常に小さく、スマートフォンとも簡単に接続することができます。GPIOというセンサやアクチュエータに接続できる端子も有しているため、モノのインターネット(Internet of Things M2M)と呼ばれている分野のプロトタイプに向いています。

Spark core


IOT 試作の現状

IOT という言葉が最近よく聞かれる様になりましたが、どの様なプラットフォームで開発するのが良いのでしょうか。はじめに必要になる要素から考えてみましょう。

  • センサ(+アクチュエータ)
  • 制御部位
  • 通信機能
  • サーバー

Raspberry Pi は小型のLinuxコンピュータでありながらGPIOを通してセンサやアクチュエータと簡単に接続ができます。そのためRaspberry Piをカスタマイズすれば上の機能を全て満たすことができます。一方でRaspberry Pi自体はあくまでコンピュータなので単純にハードウェアを制御する、アナログ信号を扱う、リアルタイム性という点においてはArduino等のマイクロコンピュータの方が小回りが効くと感じます。

またサーバーとしての機能は現在の普及しているものに比べるとRaspberry Piはややパワー不足なので用途やスケールによって適切なサーバーを選択する必要があるでしょう。

プロトタイプ時の現在の主流としてはArduinoの様なマイコンにインターネット接続機能を持たせたもの(MBEDとか)とレンタルサーバー+Paasサービスを組み合わせる、またはRasphberry Piを利用する等ではないでしょうか。

こちらの記事もご参考ください。

Arduino vs. Raspberry Pi:あなたにぴったりのDIYプラットフォームはどっち? | ReadWrite Japan
pberry Pi:あなたにぴったりのDIYプラットフォームはどっち? …


Spark Core を今すぐ利用するべき4つの理由


1. 小型でパワフルな Arduino 互換ボードである

Size

Arduino に慣れている人にとってはArduino のシールドやスケッチ、ライブラリを利用できることは大きな利点になるでしょう。

またSpark Core はWi-Fi トランシーバに加えて、STM32F205 マイクロコントローラを搭載しており、その動作はとてもパワフルです。それにもかかわらずサイズはとても小さく収まっています(上の写真参照)

Sparc Core のチップはNest Protect, LIFXをはじめ多くのプロジェクトで採用されています。

実際に下のプロジェクト等がSpark Coreにより行われており、高いポテンシャルをもっていることが分かります。

Luna Project

LONO

Lono


2. 開発環境が充実している

開発環境

Image via spark.io

Spark Core の公式サイトはとても洗練されています(英語のみですが・・・)。Sparkでは開発の効率化を測るために簡単にAndroid, iOSと接続するためのソフトウェアやブラウザ上で動作するIDEを無償で公開しています。

またチップもブレッドボードに刺さった状態で出荷されてくるため、チップは小さいですがArduino Uno と同じような形でプロトタイプに移行できます。

そのため、センサの信号を取得する、そのデータをサーバーに送るといったことをできるだけ簡単にし、本来の注力したい開発項目により注力することができます。


3. IOT を狙ったプラットフォームである

IOTプラットフォーム

Image via spark.io

Spark シリーズはIOTを明確に意識したプラットフォームです。そのため、リアルタイム性、セキュアな通信、スケーラビリティ、そして他の機器とのコネクティビティなどを重視した開発が進んでいます。

彼らのHPでは次の様なコメントが見られます。


Spark OS is designed to be infinitely scalable, and manage connections between millions of users and their devices. There is no upper limit to how many products can be connected to our messaging system, so don’t worry about your overwhelming success.

(意訳)Spark OSは数百万のユーザーと彼らのデバイスとの接続を行えるように、無制限のスケーラビリティを意識して作られました。多くの製品の接続に上限はありません、あなたの圧倒的な成功に対する心配はしなくて大丈夫です。


4. 積極的な開発チーム

Development kit

Image via spark.io

プラットフォームは現在も進化しています。すでに多くのDevelopment Kitが存在しますが、現在も複数のキットの開発が進んでいます。

この他にも公式HPによるとPythonやRubyによる開発も可能にするための準備も勧められているようです。

より詳しい情報は下のリンクをご参照ください(英語)

Spark | Resources
Spark公式ページ


その他:価格は競合とほぼ同等

ここは意見が別れるところかもしれませんが、Spark Coreは現在日本円で約6000円です。残念ながら海外よりは割高のようです。


Image via spark.io

この価格はArduino と Xbeeを購入したり、Raspberry Pi にwifiドングルを買うのと同程度の値段には収まっています。よくライバルとして挙げられるArduino YUNよりはやや安いです。

(※2015/3/31追記|YunはArduinoチップとLinuxの両方を搭載したモデルなのでSparkと比べるのがフェアかはわかりませんが、IoTのプロトに使えるという意味で記載しました。)





Spark Core 入門

Spark Core の概要を確認したところで、Physical Computing のHello World に該当するLチカことLEDの点滅をしてみましょう。


開封の儀

それでは開封の儀を執り行いたいと思います。下の写真がSpark Core の箱です。

開封

うん、地味ですね。このシンプルな感じ嫌いじゃないです。1辺あたり約10cmです。

開けてみると、中にいましたSpark Core!これからよろしく頼みます。

では一思いに中身を覗いてましょう・・・

せぃっ!と剥がしてみると内容物はこんな感じでした。

(急に文章が乱れてきたのは3000文字を過ぎたからだと思われます・・・疲労怖い・・・がこのままいきます。)

Spark core 中身

先ほど見えていたSpark Coreはなんと既にブレッドボードにセットされていました。また、PCと接続するためのUSBケーブル Sparkのロゴ付きとステッカーがついておりました。

本当はドヤ顔で、MacにArduinoやらSparkやらのロゴを貼りたいところなんですが、技術がついていってないので、もう少し実力がつくまで我慢します(変なこだわり)。


起動とネットワーク接続

それでは起動してみましょう。普通にUSBケーブルとSpark CoreをUSBケーブルでつなげばOKです。

起動時の様子

問題なくつながると青色のLEDが点滅します(上の写真参照)。 ちなみに、このLEDはマルチカラー対応の様で状況に応じて色々なカラーを表示します(詳細は後述)。

続いてアプリケーションをダウンロードします。

iOS

Android

Spark Core 0.1.3
カテゴリ: ツール
Google Playで詳細を見る

私はAndoroid(SONY Xperia Z2)で試しています。それではSpark Coreのアプリを起動してみましょう。

アプリ起動画面

上の起動画面が立ち上がったら開発に使用する自分のメールアドレスとパスワードを入力して「SIGN UP」をクリックしましょう。 

また、この段階でスマートフォンがWi-Fiにつながっているか確認しましょう。

Spark Coreのアプリには下のSSIDとパスワードの入力画面が開いているかと思います。ここに現在つないでいるWi-Fiの情報を入力しましょう。

Smart config

上手く接続できるとLEDが青の点滅から緑の点滅、最終的にはシアンが点灯します。

なお、プロキシをつないでいたり、エンタープライズの接続等では上手くいかない場合もあるみたいです。私も職場のWi-Fiでは上手くつなげませんでした・・・自宅のWi-Fiも最初は上手くつなげませんでしたが、モデムとルーターを再起動したらなぜかつながる様になりました。

接続についてのトラブルシューティングはこちらを御覧ください。

参考URL:spark Docsトラブルシューティング

携帯をつなげると、下の様な画面になります。このUI上で各端子の状態(Input, Output)などを指定したり、出力値をいじったりすることができます。こんな簡単にスマートフォンとつながるとは・・・・

Tinker select

スマートフォン上のユーザーインターフェース


シリアル接続 の準備

Spark Core がスマホのアプリから上手くWi-Fiにつながらなかった場合でも、USB経由でWi-Fi接続することが可能です。


Windows で接続する場合

公式HPではPuTTYというターミナルソフトが推奨されています。

PuTTY: a free telnet/ssh client
PuTTYのサイト

またドライバもこちらからダウンロードできます。


Mac で接続する場合

Mac でつなぐ場合はCoolTermが推奨されています。シンプルなUIで使いやすいので特に決まったソフトなければダウンロードしてみましょう。

Roger Meier’s Freeware
Cool Termダウンロードページ


USBからシリアル接続をしてみよう

先ほどダウンロードしたCool Termを起動してみましょう。はじめに上のメニューのConnectionからOptionを選択し、下の写真の様に設定しましょう(Portをusbmodemにしましょう)。

CoolTerm設定画面

またConnectを押すときはSpark Core のLEDが青色で点滅していることを確認しましょう。仮にLEDが別の状態のときにはUSBケーブル差込口脇のModeボタンを長押ししてみましょう。

Connectを行った状態でキーボードの’w’を押すと、’SSID’と表示されます。繋ぎたいWi-FiのSSID, セキュリティ方式、パスワードを順に入力しましょう。

(できるとLEDががシアンに変わります。


WEB IDE を用いて Spark Core のLチカをしてみよう


WEB IDEへのアクセス

WEB IDEにプログラミングを書き込んでLチカをしてみましょう。

下のページからWEB IDEにログインできます。ログインにはスマートフォンアプリで登録したメールアドレスとパスワードを使用してください。

Spark Docs | Web IDE (Build)
Spark Core のWeb IDE

続いてWEB IDEからサンプルプログラムをダウンロードしてみましょう。

Webide


プログラムを書き込もう

My appsから先ほどダウンロードしたBLINK AN LEDを開いてみましょう。

ソースコードは下の様になっています。基本的に Arduino と同様です。

ソースコードの中身を理解したい方は下の記事のプログラミングの箇所をお読みください。

関連記事:Arduino Uno と Bluetooth でウェアラブルを自作する

内容は非常にシンプルでD0, D7の端子のデジタル出力を一秒毎にHigh, Low切り替えてLEDを点灯させるというものです。D0はUSBをつないだすぐとなりのボード上に内蔵されたLEDに対応しています。D7は特に接続されていないのでブレッドボード上に適当な抵抗とLEDを接続してみましょう。

回路構成 spark

Lチカ用回路の様子

あとは先ほどのサンプルプログラムを実際に Spark Core に書き込んでみましょう。

IDE書き込み

書き込みを行うとLEDが紫に点滅し、途中で緑に変わり、最終的にはシアンの点灯状態になります。


Hello World!

無事に下の動画の様に内部のLEDとつないだLEDが同期しながら点灯していれば成功です。

Spark Core LED from INTERACTION DESIGN on Vimeo.

これでSpark CoreにおけるHello World!は終了です。基本的にArduinoと同じC/C++で書けるので公式HPの様々なチュートリアルを元にWEBにつながるプロトタイプへとステップアップしていきましょう。

まだ日本語のドキュメントや作例が少ないので一人でも多くの人がSpark Coreによるプロジェクトを開始すると面白いなと思っています。

長文をお読みいただきありがとうございました。

面白いと思ったらモチベーションアップにつながるのでぜひシェアしてください↓ また機会があればSpark Coreのネタも書いてみたいと思います。



記事の更新をFacebookでチェック!


はてなブックマーク

One Response

  1. MESH
    | 返信

    […] 参考|Spark Core を今すぐ使用するべき4つの理由| IOT 入門 […]

Leave a Reply