iOSアプリと連携させて使えるデバイスたち

第1回 「konashi」とiOSアプリを連携させる

この記事を読むのに必要な時間:およそ 5 分

はじめに

iPhoneやiPadは,あたりまえですが画面があって音も出て,インターネットにもつながり,さらにはGPSや加速度センサも付いていて,スマートフォンアプリに必要な機能を実現するにはかなり「揃っている」デバイスです。ただ,それでもiPhoneからにおいは出せませんし,脳波はとれませんし,時計のように腕に巻くことはできませんし,直接電子回路をつなげることはできません。

そういった「iOSデバイスにない機能」を使うには,外部デバイスに頼る必要があります。嬉しいことに,昨今のスマホアプリ開発人気のおかげで,iOSアプリと連携させて使えるデバイス,すなわちiOSアプリと連携させるためのSDKや,Web APIが用意されているデバイスが色々と市販され始めています。

本連載では,そういった「iOSアプリの可能性を広げるデバイス」を毎回1つずつ取り上げ,その特長や,連携させるためのアプリ側の実装方法などを紹介していきます。

konashiについて

記念すべき第1回は,国産フィジカルコンピューティングデバイス「konashi」を紹介したいと思います。

konashi

konashi

konashiとは

konashi(こなし)は,iPhone/iPadのための,フィジカル・コンピューティングツールキットです。iOSから簡単にハードウェアにアクセスする開発環境を提供し,マイコン側のファームウェア開発をすることなくソフトウェアエンジニア・デザイナ・アーティストが手軽にプロトタイピングを行うツールとしてお使いいただけます。

ユカイ工学のkonashi紹介ページより

本連載向けにざっくりいうと,konashiを使うことで,自分で電子回路を組んで,それをiPhone/iPadアプリと連携させることができます。

フィジカルコンピューティング向けのデバイスとしてよく使われているArduino(とくに最もメジャーなUno)との主な違いとしては,

  • Bluetooth Low Energyを搭載しており,拡張なしでiPhoneやiPadと無線接続できる
  • JavaScriptやObjective-Cで開発できるようライブラリが整備されている

といった点です。つまり,スマホアプリとの連携に重点を置いたプロダクトになっています。

konashiを使うことで,たとえば,次のようなものを実現できるようになります。

iPhoneを持った人物が近づくと作動する電球や扇風機

iPhoneを持った人物が近づくと作動する電球や扇風機

歯を磨く動作に合わせ,iPhoneアプリ内のキャラがキレイになっていく歯ブラシ

購入方法

konashiは,ユカイ工学のショップで購入することができます。

ユカイ工学

ユカイ工学

販売価格は9,980円(2013年11月現在)です。

基本的な使い方

iOS SDKの取得,導入から,Lチカ(LEDを光らせる)までの手順です。ここはほぼ公式サイトのGetting Started通り。

なお,本記事のすべてのサンプルコードは,こちらよりダウンロードしていただけます。

1.konashi-ios-sdkを取得する

下記のGitHubリポジトリから cloneするか,zipでdownloadします。

CocoaPodsからの取得&導入にも対応しています。Podfileに以下のように書き,

platform :ios, "6.1"
pod "konashi-ios-sdk"

ターミナルからpod installします。

$ pod install

2.SDKをプロジェクトに追加する

konashi-ios-sdk/Konashiフォルダごとプロジェクトに追加し,依存フレームワークであるCoreBluetooth.framework をプロジェクトにリンクします。

3.コードを書く

  • konashiを探して接続する
  • LEDを光らせる

というコードを書きます。

ViewController.m で,ヘッダをインポートしておきます。

#import "Konashi.h"

viewDidLoadで,Konashiオブジェクトを初期化し, konashiとの接続完了イベントの監視を開始します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // Konashiオブジェクトを初期化
    [Konashi initialize];
    
    // konashiとの接続完了時に発行されるイベントを監視する
    [Konashi addObserver:self
                selector:@selector(flashLED)
                    name:KONASHI_EVENT_READY];
}

接続完了イベント(KONASHI_EVENT_READY)発行時に実行するメソッドを実装します。

- (void)flashLED {
    
    [Konashi pinMode:LED2
                mode:OUTPUT];
    
    [Konashi digitalWrite:LED2
                    value:HIGH];
}

上記のflashLEDメソッドではLEDを点灯させる処理を行っています。

konashiとの接続を開始するアクションメソッドを用意し,

- (IBAction)pressFind {
    
    [Konashi find];
}

Interface BuilderでUIButtonオブジェクトと接続します。

ボタンの作成

ボタンの作成

ここではボタンのタイトルを「konashiを探す」としました。

動かしてみる

konashiに付属のボタン電池をセットするか,USBケーブルをつないで電源を供給します。iOSデバイス(iPhoneかiPad)側ではiOSの「設定」からBluetoothをOnにしておき,

設定

設定

作成したアプリの「konashiを探す」ボタンを押します。

近くにkonashiがあれば次のようにピッカーが出てきます。

ピッカーの表示

ピッカーの表示

ここでDoneボタンを押すと,konashiとの接続が開始され,接続完了するとLEDが点灯します。

LEDの点灯

LEDの点灯

著者プロフィール

堤修一(つつみしゅういち)

1978年生まれ。京都大学工学部を卒業後,同大学院修了。その後,NTTデータにて音声認識技術の研究開発,キヤノンにて画像処理機能の設計に携わる。

2010年より面白法人カヤックに入社。3年間ほぼiOSアプリ開発に専念し,フルスクラッチで開発しリリースしたアプリは30本以上。代表作は150万ユーザを突破した「バウンドモンスターズ」,AppStore Best of 2012を獲得した「タップ忍者」,カンヌ国際広告祭でブロンズを獲得した「Domino's App」など。

現在は,米国シリコンバレーのマウンテンビューにあるAppSocially社の一員として活躍中。

著書=『iOSアプリ開発 達人のレシピ100―開発現場で実証された実用コード集』

ブログ=Over&Outその後

Github=shu223

Twitter=shu223

コメント

コメントの記入