ここでは、konashi に搭載されているLEDを点灯させる手順を説明します。
(この Gettings Started で作られた xcode のプロジェクトは、konashi ライブラリの konashi-ios-sdk/samples/GettingStarted
にあります。
また、AndroidStudio のプロジェクトは、konashi ライブラリの konashi-android-sdk/samples/GettingStarted
にあります。)
GitHub のリポジトリを clone してください。
$ git clone git@github.com:YUKAI/konashi-ios-sdk.git
もしくは こちらから最新版のライブラリをダウンロードしてください。
Single View Application
のプロジェクトを作成します。
プロジェクトの「Targets」のプロジェクト名と同じ名前のターゲットを選択、「General」を表示し、Linked frameworks and Libraries
の+ボタンをクリックします。
検索ボックスに「bluetooth」と入力すると, CoreBluetooth.framework
が表示されるので追加します。
1.で取得したソースの中にあるkonashi-ios-sdk/Konashi/Konashi
ディレクトリをプロジェクトにドラッグ&ドロップして追加します。
konashi と接続するためのボタンをUIに追加します。
MainStoryboard.storyboard
を開き、ボタンを ViewControllerに配置します。
ボタンをダブルクリックし、タイトルをFindなどとしてください。
次に、そのボタンを押した時に実行される関数を設定します。
右上の蝶ネクタイアイコンのボタンをクリックしてアシスタントエディタモードにし、右のソースコードを ViewController.h
にします。そして以下のように - (IBAction)find:(id)sender;
を追加してください。
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
- (IBAction)find:(id)sender; // add this line
@end
最後にボタンのタップと関数を紐付けます。
まずFindボタンを選択し、右上のメニューから丸右矢印をクリック。"Touch Up Inside"から図示のようにView Controllerへドラッグ&ドロップ。
表示される、"Find"という選択肢をクリックしてください。
ViewController.m
に以下のコードを書いてください。
#import "ViewController.h"
#import "Konashi.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// Register event handler
[[Konashi shared] setReadyHandler:^{
// Set pin mode to output
[Konashi pinMode:KonashiLED2 mode:KonashiPinModeOutput];
// Make LED2 glow
[Konashi digitalWrite:KonashiLED2 value:KonashiLevelHigh];
}];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)find:(id)sender {
[Konashi find];
}
@end
konashi は通信するために Bluetooth 4.0 (Bluetooth Low Energy) を使用します。ですので、アプリを実行する前に iOS デバイスの Bluetooth 機能を有効にします。(すでに有効になっている方はこの項目をスキップしてください)
iOSデバイスの「設定」を開き、表示されたリストの中の「Bluetooth」を選択します。
Bluetooth の項目が オフ
になっている場合は オン
に変更してください。デバイスに検索中という項目が表示されますが、konashiとは関係ないのでホームボタンを押して設定を終了します。
用意は整いました!
konashi にコイン電池を差し込むか microUSBケーブルを接続して konashi の電源を供給し、プロジェクトを Run してください。
アプリが起動したら Find ボタンを押してみましょう。
すると接続できる konashi のリストが表示されるので、接続する konashi を選択し、 Done ボタンをタップしてください。
(konashiバージョン1ならkonashi#4-????
、バージョン2ならkonashi2-f0????
、バージョン3ならkonashi3-f0????
、という名前が表示されるはずです。{ ???? = ラベルに記載の4桁の16進数 } )
しばらくして LED2 が点灯すれば成功です!
Documents に機能や関数の詳しい説明がありますのでご覧ください。
また、konashi-ios-sdk/samples にすべての機能を網羅したサンプルがありますので、それを元に konashi を触っていくことをおすすめします。
iOS SDKに関するより詳しいドキュメントはこちらを参照ください。
GitHub のリポジトリを clone してください。
$ git clone git@github.com:YUKAI/konashi-ios-sdk.git
もしくは こちらから最新版のライブラリをダウンロードしてください。
Single View Application
のプロジェクトを作成します。
プログラム言語はswiftにします。
プロジェクトの「Targets」のプロジェクト名と同じ名前のターゲットを選択、「General」を表示し、Linked frameworks and Libraries
の+ボタンをクリックします。
検索ボックスに「bluetooth」と入力すると, CoreBluetooth.framework
が表示されるので追加します。
1.で取得したソースの中にあるkonashi-ios-sdk/Konashi/Konashi
ディレクトリをプロジェクトにドラッグ&ドロップして追加します。
konashi と接続するためのボタンをUIに追加します。
MainStoryboard.storyboard
を開き、ボタンを ViewControllerに配置します。
ボタンをダブルクリックし、タイトルをFindなどとしてください。
次に、そのボタンを押した時に実行される関数を設定します。
右上の蝶ネクタイアイコンのボタンをクリックしてアシスタントエディタモードにし、下のソースコードを ViewController.swift
にします。
これからボタンのタップと関数を紐付けます。
まずFindボタンを右クリックでソースコードにドラッグ&ドロップをします。
その後、吹き出しが出るので、Connectionをaction,NameをkonashiFindにします。設定したらconnectをクリックします。
konashi-ios-sdkはobjective-cで書かれているのでswiftで扱えるようにする必要があります。
まず、KonashiGettingStartedを右クリックしNew File...を選択し、ファイルを新しく作成します。その時、ファイルの形式はHeaderを選択します。
今回はファイル名をkonashi-Bridging-Header.hにします。konashi-Bridging-Header.hのkonashiは任意の名前でも大丈夫です。
これから、Konashi-Bridging-Header.h内を編集します。 Konashi-Bridging-Header.hに
#import "Konashi/Konashi.h"
と記入してください。KonashiGettingStartedを基準にKonashi.hを示すパスを入れてください。
KonashiGettingStartedのBuild Setting内でObjective-c Bridging Headerと検索します。Objective-c Bridging Headerに先ほど作成したheaderファイルのパスを入れます。
これで、swiftでkonashi-ios-sdkを使うことができます。
ViewController.swift
に以下のコードを書いてください。
import UIKit
// Do any additional setup after loading the view, typically from a nib.
class ViewController: UIViewController {
@IBAction func konashiFind(_ sender: Any) {
Konashi.find()
}
override func viewDidLoad() {
super.viewDidLoad()
// Register event handler
Konashi.shared().readyHandler = {
// Set pin mode to output
Konashi.pinMode(KonashiDigitalIOPin.LED2,mode: KonashiPinMode.output)
// Make LED2 glow
Konashi.digitalWrite(KonashiDigitalIOPin.LED2, value: KonashiLevel.high)
}
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
konashi は通信するために Bluetooth 4.0 (Bluetooth Low Energy) を使用します。ですので、アプリを実行する前に iOS デバイスの Bluetooth 機能を有効にします。(すでに有効になっている方はこの項目をスキップしてください)
iOSデバイスの「設定」を開き、表示されたリストの中の「Bluetooth」を選択します。
Bluetooth の項目が オフ
になっている場合は オン
に変更してください。デバイスに検索中という項目が表示されますが、konashiとは関係ないのでホームボタンを押して設定を終了します。
用意は整いました!
konashi にコイン電池を差し込むか microUSBケーブルを接続して konashi の電源を供給し、プロジェクトを Run してください。
アプリが起動したら Find ボタンを押してみましょう。
すると接続できる konashi のリストが表示されるので、接続する konashi を選択し、 Done ボタンをタップしてください。
(konashiバージョン1ならkonashi#4-????
、バージョン2ならkonashi2-f0????
、バージョン3ならkonashi3-f0????
、という名前が表示されるはずです。{ ???? = ラベルに記載の4桁の16進数 } )
しばらくして LED2 が点灯すれば成功です!
Android SDK につきましては現状で konashi 1.0 への対応をしていません。Android でご利用のお客さまは konashi 2.0 のご用意をお願いいたします。
konashi 2.0 は、マクニカオンラインストア などにてご購入いただけます。
Android 6.xからのpermission modelの変更により,当該OSではgetting startedやサンプルコードは正しく動作しません。
ここでは、konashi に搭載されているLEDを点灯させる手順を説明します。
新規プロジェクトを作成します。
プロジェクト名・保存場所・Android SDKのバージョン入力します。
Minimum SDK
は、以下の通りとしてください。
Blank Activity
を選択します。
Finish
をクリックしてプロジェクトを作成します。
次の1行をbuild.gradle(Module: app)
のdependencies
に追加します。
compile 'com.uxxu.konashi:konashi-android-sdk:1.1.0'
ツールバーのSync Project with Gradle Files
をクリックし、konashi Android SDKを導入します。
次の2行をAndroidManifest.xml
に追加します。
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTHADMIN"/>
res/layout/activitymain.xml
に以下のコードを書いてください。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layoutwidth="matchparent"
android:layoutheight="matchparent"
android:paddingLeft="@dimen/activityhorizontalmargin"
android:paddingRight="@dimen/activityhorizontalmargin"
android:paddingTop="@dimen/activityverticalmargin"
android:paddingBottom="@dimen/activityverticalmargin"
tools:context=".MainActivity">
<Button
android:layoutwidth="wrapcontent"
android:layoutheight="wrapcontent"
android:text="konashiを探す"
android:id="@+id/btnfind"
android:layoutcenterVertical="true"
android:layoutcenterHorizontal="true"/>
<ToggleButton
android:layoutwidth="wrapcontent"
android:layoutheight="wrapcontent"
android:textOn="ON"
android:textOff="OFF"
android:visibility="gone"
android:id="@+id/tglblink"
android:layoutcenterVertical="true"
android:layoutcenterHorizontal="true" />
</RelativeLayout>
MainActivity.java
に以下のコードを書いてください。
import
については、 auto-import などを用いて補完してください。
public class MainActivity extends AppCompatActivity {
private KonashiManager mKonashiManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activitymain);
mKonashiManager = new KonashiManager(getApplicationContext());
final MainActivity self = this;
((ToggleButton)findViewById(R.id.tglblink)).setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton v, boolean isChecked) {
mKonashiManager.digitalWrite(Konashi.LED2, isChecked ? Konashi.HIGH : Konashi.LOW);
}
});
findViewById(R.id.btnfind).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mKonashiManager.find(self);
}
});
mKonashiManager.addListener(new KonashiListener() {
@Override
public void onConnect(KonashiManager manager) {
refreshViews();
mKonashiManager.pinMode(Konashi.LED2, Konashi.OUTPUT);
}
@Override
public void onDisconnect(KonashiManager manager) {
refreshViews();
}
@Override
public void onError(KonashiManager manager, BletiaException e) {}
@Override
public void onUpdatePioOutput(KonashiManager manager, int value) {}
@Override
public void onUpdateUartRx(KonashiManager manager, byte[] value) {}
@Override
public void onUpdateBatteryLevel(KonashiManager manager, int level) {}
@Override
public void onUpdateSpiMiso(KonashiManager manager, byte[] value) {}
});
}
private void refreshViews() {
boolean isReady = mKonashiManager.isReady();
findViewById(R.id.btnfind).setVisibility(isReady ? View.GONE : View.VISIBLE);
findViewById(R.id.tgl_blink).setVisibility(isReady ? View.VISIBLE : View.GONE);
}
}
konashi は通信するために Bluetooth 4.0 (Bluetooth Low Energy) を使用します。ですので、アプリを実行する前にAndroidデバイスのBluetooth機能を有効にします。(すでに有効になっている方はこの項目をスキップしてください)
Androidデバイスの「設定」を開き、表示されたリストの中の「Bluetooth」を「ON」にします。
用意は整いました!
konashiにコイン電池を差し込むかmicroUSBケーブルを接続してkonashiの電源を供給し、プロジェクトをRunしてください。
アプリが起動したら「KONASHIを探す」ボタンを押してみましょう。
すると接続できるkonashiのリストが表示されるので、接続するkonashiを選択してください。
(konashi2-f0????、という名前が表示されるはずです。{ ???? = ラベルに記載の4桁の16進数 } )
しばらくして「OFF」ボタンが表示されれば接続成功です。
「OFF」ボタンをタップして「ON」ボタンに変わり、konashiのLED2が点灯すれば成功です。
DocumentsやAPI Reference に機能や関数の詳しい説明がありますのでご覧ください。
また、konashi-android-sdk/samples にすべての機能を網羅したサンプルがありますので、それを元にkonashiを触っていくことをおすすめします。