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.BLUETOOTH_ADMIN"/>

res/layout/activity_main.xmlに以下のコードを書いてください。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="konashiを探す"
android:id="@+id/btn_find"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="ON"
android:textOff="OFF"
android:visibility="gone"
android:id="@+id/tgl_blink"
android:layout_centerVertical="true"
android:layout_centerHorizontal="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.activity_main);
mKonashiManager = new KonashiManager(getApplicationContext());
final MainActivity self = this;
((ToggleButton)findViewById(R.id.tgl_blink)).setOnCheckedChangeListener(new ToggleButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton v, boolean isChecked) {
mKonashiManager.digitalWrite(Konashi.LED2, isChecked ? Konashi.HIGH : Konashi.LOW);
}
});
findViewById(R.id.btn_find).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.btn_find).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を触っていくことをおすすめします。
| Konashi.PIO0 | 0 | デジタルI/Oの0ピン目 |
| Konashi.PIO1 | 1 | デジタルI/Oの1ピン目 |
| Konashi.PIO2 | 2 | デジタルI/Oの2ピン目 |
| Konashi.PIO3 | 3 | デジタルI/Oの3ピン目 |
| Konashi.PIO4 | 4 | デジタルI/Oの4ピン目 |
| Konashi.PIO5 | 5 | デジタルI/Oの5ピン目 |
| Konashi.PIO6 | 6 | デジタルI/Oの6ピン目 |
| Konashi.PIO7 | 7 | デジタルI/Oの7ピン目 |
| Konashi.S1 | 0 | タクトスイッチ(ジャンパ をショートすることで、 デジタルI/Oの0ピン目 に接続されます) |
| Konashi.LED2 | 1 | 赤色LED(ジャンパ をショートすることで、 デジタルI/Oの1ピン目 に接続されます) |
| Konashi.LED3 | 2 | 赤色LED(ジャンパ をショートすることで、 デジタルI/Oの2ピン目 に接続されます) |
| Konashi.LED4 | 3 | 赤色LED(ジャンパ をショートすることで、 デジタルI/Oの3ピン目 に接続されます) |
| Konashi.LED5 | 4 | 赤色LED(ジャンパ をショートすることで、 デジタルI/Oの4ピン目 に接続されます) |
| Konashi.AIO0 | 0 | アナログI/Oの0ピン目 |
| Konashi.AIO1 | 1 | アナログI/Oの1ピン目 |
| Konashi.AIO2 | 2 | アナログI/Oの2ピン目 |
| Konashi.I2C_SDA | 6 | I2CのSDAのピン(デジタルI/Oの6ピン目) |
| Konashi.I2C_SCL | 7 | I2CのSCLのピン(デジタルI/Oの7ピン目) |
| Konashi.HIGH | 1 | ピンの出力をHIGH(3V)にする |
| Konashi.LOW | 0 | ピンの出力をLOW(0V)にする |
| Konashi.TRUE | 1 | ピンの出力をHIGH(3V)にする |
| Konashi.FALSE | 0 | ピンの出力をLOW(0V)にする |
| Konashi.OUTPUT | 1 | ピンの入出力設定を出力に |
| Konashi.INPUT | 0 | ピンの入出力設定を入力に |
| Konashi.PULLUP | 1 | ピンのプルアップ設定をON |
| Konashi.NO_PULLS | 0 | ピンのプルアップ設定をOFF |
| Konashi.ANALOG_REFERENCE | 1300 | アナログ入出力の基準電圧 1300mV |
| Konashi.PWM_DISABLE | 0 | 指定したPIOをPWMとして使用しない(デジタルI/Oとして使用) |
| Konashi.PWM_ENABLE | 1 | 指定したPIOをPWMとして使用する |
| Konashi.PWM_ENABLE_LED_MODE | 2 | 指定したPIOをLEDモードとしてPWMとして使用する |
| Konashi.PWM_LED_PERIOD | 10000 | LEDモード時のPWMの周期は10ms |
| Konashi.UART_DISABLE | 0 | UART無効 |
| Konashi.UART_ENABLE | 1 | UART有効 |
| Konashi.UART_RATE_9K6 | 0x0028 | 9600bps |
| Konashi.UART_RATE_19K2 | 0x0050 | 19200bps |
| Konashi.UART_RATE_38K4 | 0x00a0 | 38400bps |
| Konashi.UART_RATE_57K6 | 0x00f0 | 57600bps |
| Konashi.UART_RATE_76K8 | 0x0140 | 76800bps |
| Konashi.UART_RATE_115K2 | 0x01e0 | 115200bps |
| Konashi.UART_DATA_MAX_LENGTH | 18 | UARTで一度に送信できるバイト数(for 2.0) |
| Konashi.I2C_DISABLE | 0 | I2Cを無効にする |
| Konashi.I2C_ENABLE | 1 | I2Cを有効にする(100kbpsモードがデフォルト) |
| Konashi.I2C_ENABLE_100K | 1 | 100kbpsモードでI2Cを有効にする |
| Konashi.I2C_ENABLE_400K | 2 | 400kbpsモードでI2Cを有効にする |
| Konashi.I2C_START_CONDITION | 1 | スタートコンディション |
| Konashi.I2C_STOP_CONDITION | 0 | ストップコンディション |
| Konashi.I2C_RESTART_CONDITION | 2 | リスタートコンディション |
| Konashi.I2C_DATA_MAX_LENGTH | 19 | I2Cで一度に送受信できる最大バイト数 |
| Konashi.SUCCESS | 0 | 成功時 |
| Konashi.FAILURE | -1 | 失敗時 |
konashiの初期化を行います。
一番最初に表示されるActivityのonCreateなど、konashiを使う前に必ず initialize をしてください。
Konashi.initialize((Context)context);
| context | Context | konashiを使用するときのActivity |
なし
konashiとの接続を解除します。
Konashi.close();
なし
なし
KonashiManagerのシングルトンオブジェクトを取得します。
1つしかkonashiを使わない場合や初心者はこちらを使うと簡単です。
複数台konashiを接続する場合は、それぞれのデバイスに対してKonashiManagerのインスタンスを作成してください。
※注:以降、konashiのインスタンスをmKonashiManagerとして説明します。
Konashi.getManager();なし
KonashiManagerのシングルトンオブジェクト
KonashiManager mKonashiManager = Konashi.getManager();Android周辺のkonashiを探します。
この関数を実行した後、周りにあるkonashiのリストが出現します。リストに列挙されているkonashiのひとつをクリックすると、konashiに自動的に接続されます。その後、KonashiConnectionEvent.CONNECTED と KonashiConnectionEvent.READY のイベントが発火するので、事前にこれらのイベントを addListener でキャッチできるようにしておいてください。
mKonashiManager.find((Activity)activity, (boolean)isShowKonashiOnly=true);| activity | Activity | BLEデバイスリストを表示する先のActivity |
| isShowKonashiOnly | boolean | (Optional) konashiだけを表示する(true)か、すべてのBLEデバイスを表示する(false)か。未指定時はtrue |
なし
現在のアクティビティ(current_activity)に周囲のkonashiの一覧を表示する
mKonashiManager.find(current_activity, true);konashiの名前を指定して接続します。
find の場合はkonashiのリストが出現しますが、findWithName を実行した場合はリストが出ずに自動的に接続されます。
名前に関しては、find を実行することによって下から出現するリストでリストアップされる konashi#4-0452 などの文字列です。konashi#*-**** の*部分の数字は、konashiの緑色チップのシール上に記載されている番号と同じです。
もし、指定した名前が見つからない場合は KonashiConnectionEvent.PERIPHERAL_NOT_FOUND が発火されます。
mKonashiManager.findWithName((Activity)activity, (String)name);| activity | Activity | BLEデバイスリストを表示する先のActivity |
| name | String | 接続したいkonashiの名前。例:"konashi#4-0452" |
なし
konashi#4-0452 のkonashiを探して接続する
mKonashiManager.findWithName(activity, "konashi#4-0452");konashiとの接続を解除します。
mKonashiManager.disconnect();なし
なし
konashiと接続中か否かを返します。
KonashiConnectionEvent.CONNECTED のイベントが発火するタイミングでtrueとなります。それ以前はfalseです。
mKonashiManager.isConnected();なし
boolean
konashiが使える状態になっているか否かを返します。
KonashiConnectionEvent.READY のイベントが発火するタイミングでtrueとなります。それ以前はfalseです。
mKonashiManager.isReady();なし
boolean
接続中のkonashiの名前を返します。
konashiに接続していない状態で実行すると空文字 "" が返ります。
mKonashiManager.getPeripheralName();なし
String 接続中のkonashiの名前(例: konashi#4-0452)
String name = mKonashiManager.getPeripheralName();
Log.d("Konashi", name);konashiイベントリスナを追加します。
konashiとAndroidは BLE で繋がっているため、konashiの状態やピンの状態は非同期で取得することになります。
たとえば、AIOピンの電圧を取得するには、 analogReadRequest でkonashiにリクエストを送り、KonashiAnalogEvent.UPDATE_ANALOG_VALUE という取得完了イベントを受信した後にAIOピンの電圧を参照できるようになります。
どのようなイベントがあるかは Constants / Events を参照してください。
mKonashiManager.addListener((KonashiListener)listener);| listener | KonashiListener | 追加するイベントリスナを指定します。詳細は Event Listeners を参照してください。 |
なし
konashiと接続したらCONNECTEDと表示する
KonashiListener listener = new KonashiListener() {
@Override
public void onConnect(KonashiManager manager) {
Log.d("Konashi", "CONNECTED");
}
@Override
public void onDisconnect(KonashiManager manager) {}
@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) {}
};
mKonashiManager.addListener(listener);addListener で追加したkonashiイベントリスナを削除します。
mKonashiManager.removeListener((KonashiListener)listener);| listener | KonashiListener | 削除するイベントリスナを指定します。詳細は Event Listeners を参照してください。 |
なし
konashiと接続したらCONNECTEDと表示し、イベントリスナを削除する
KonashiListener listener = new KonashiListener() {
@Override
public void onConnect(KonashiManager manager) {
Log.d("Konashi", "CONNECTED");
mKonashiManager.removeListener(this);
}
@Override
public void onDisconnect(KonashiManager manager) {}
@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) {}
};
mKonashiManager.addListener(listener);
mKonashiManager.addListener(listener);addListener で追加したkonashiイベントリスナを全て削除します。
mKonashiManager.removeAllListeners();なし
なし
konashiとの接続/切断など、基本的なイベントを扱うイベントリスナです。
private final KonashiListener mKonashiListener = new KonashiListener() {
//konashiと接続した時
@Override
public void onConnect(KonashiManager manager) {}
//findWithNameでkonashiが見つからない時
@Override
public void onFindNoDevice(KonashiManager manager) {}
//konashiと切断した時
@Override
public void onDisconnect(KonashiManager manager) {}
//konashiと違うものに接続した時
@Override
public void onConnectOtherDevice(KonashiManager manager) {}
//エラーが発生した時
@Override
public void onError(KonashiManager manager, BletiaException e) {}
//PIOピンの値が変化した時
@Override
public void onUpdatePioOutput(KonashiManager manager, int value) {}
//RX端子の値が変化した時
@Override
public void onUpdateUartRx(KonashiManager manager, byte[] value) {}
//konashiのバッテリーレベルが変化した時
@Override
public void onUpdateBatteryLevel(KonashiManager manager, int level) {}
//SPIのMISOピンが受信した時
@Override
public void onUpdateSpiMiso(KonashiManager manager, byte[] value) {}
};PromiseオブジェクトのActionが成功したときに実行するcallbackの設定を行います。 詳細はjdeferred/jdeferred · GitHubをご覧ください。
//pmはPromiseオブジェクト
pm.done((DoneCallback<T>)callback);| callback | DoneCallback |
設定するcallback。ジェネリクスTは受け取る結果の型、すなわちPromiseオブジェクトのジェネリクスの1番目の型 |
Promise<T, BletiaException, Object>
LED2をOUTPUTにする。成功した場合Succeededと表示する。
mKonashiManager.pinMode(Konashi.LED2, Konashi.OUTPUT).done(new DoneCallback<BluetoothGattCharacteristic>() {
@Override
public void onDone(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Succeeded");
}
});PromiseオブジェクトのActionが失敗したときに実行するcallbackの設定を行います。 詳細はjdeferred/jdeferred · GitHubをご覧ください。
//pmはPromiseオブジェクト
pm.fail((FailCallback<T>)callback);| callback | FailCallback |
設定するcallback。ジェネリクスTは受け取る結果の型、すなわちPromiseオブジェクトのジェネリクスの1番目の型 |
Promise<T, BletiaException, Object>
LED2をOUTPUTにする。失敗した場合Failedと表示する。
mKonashiManager.pinMode(Konashi.LED2, Konashi.OUTPUT).fail(new FailCallback<BluetoothGattCharacteristic>() {
@Override
public void onFail(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Failed");
}
});PromiseオブジェクトのActionが成功/失敗したときに実行するcallbackの設定を行います。 詳細はjdeferred/jdeferred · GitHubをご覧ください。
//pmはPromiseオブジェクト
pm.then((DoneCallback<T>)callback1);
pm.then((DoneCallback<T>)callback1, (FailCallback<T>)callback2);
pm.then((DonePipe)pipe);| callback1 | DoneCallback |
成功した際に呼ばれるcallback。ジェネリクスTは受け取る結果の型、すなわちPromiseオブジェクトのジェネリクスの1番目の型 |
| callback2 | FailCallback |
(Optional)失敗した際に呼ばれるcallback。ジェネリクスTは受け取る結果の型、すなわちPromiseオブジェクトのジェネリクスの1番目の型 |
| pipe | DonePipe |
設定するpipe |
Promise<T, BletiaException, Object>
LED2をOUTPUTにする。成功した場合Succeededと表示し失敗した場合Failedと表示する。
mKonashiManager.pinMode(Konashi.LED2, Konashi.OUTPUT).then(new DoneCallback<BluetoothGattCharacteristic>() {
@Override
public void onDone(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Succeeded");
}
}, new FailCallback<BluetoothGattCharacteristic>() {
@Override
public void onFail(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Failed");
}
});PIOのピンを入力として使うか、出力として使うかの設定を行います。
mKonashiManager.pinMode((int)pin, (int)mode);| pin | int | 設定するPIOのピン名。指定可能なピン名は Constants / Pin name をご覧ください。 |
| mode | int | ピンに設定するモード。Konashi.INPUT か Konashi.OUTPUT が設定できます。詳細は Constants / PIO をご覧ください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2をOUTPUTにする。成功した場合Succeededと表示し失敗した場合Failedと表示する。
mKonashiManager.pinMode(Konashi.LED2, Konashi.OUTPUT).done(new DoneCallback<BluetoothGattCharacteristic>() {
@Override
public void onDone(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Succeeded");
}
}).fail(new FailCallback<BluetoothGattCharacteristic>() {
@Override
public void onFail(BluetoothGattCharacteristic result) {
Log.d("Konashi", "Failed");
}
});PIOのピンを入力として使うか、出力として使うかの設定を行います。
この関数での引数は、PIO0〜PIO7の入出力設定を8bit(1byte)で表現します。bitとピンの対応は以下です。

それぞれのビットでは、入力設定を0、出力設定を1として表現します。
例えばこの関数で、PIO0(S1)を入力に、それ以外のPIOを出力に設定する場合、入力=0、出力=1なので、以下のように11111110(254)と設定します。
mKonashiManager.pinModeAll(254);詳細は Core functions / Digital をご覧ください。
mKonashiManager.pinModeAll((int)modes);| modes | int | PIO0 〜 PIO7 の計8ピンの設定。OUTPUT を1、INPUT を0として 0x00 〜 0xFF を指定してください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
PIOすべてのピンをOUTPUTにする
mKonashiManager.pinModeAll(0xFF);PIOのピンをプルアップするかの設定を行います。
初期状態では、PIOはプルアップされていません。詳細は Core Functions / Digital の項をご覧ください。
mKonashiManager.pinPullup((int)pin, (int)pullup);| pin | int | 設定するPIOのピン名。指定可能なピン名は Constants / Pin name をご覧ください。 |
| pullup | int | ピンをプルアップするかの設定。Konashi.PULLUP か Konashi.NO_PULLS が設定できます。詳細は Constants / PIO 定数をご覧ください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
PIO7をプルアップする
mKonashiManager.pinPullup(Konashi.PIO7, Konashi.PULLUP);PIOのピンをプルアップするかの設定を行います。
この関数での引数は、PIO0〜PIO7のプルアップ設定を8bit(1byte)で表現します。bitとピンの対応は以下です。

それぞれのビットでは、プルアップ無効を0、プルアップ有効を1として表現します。
例えばこの関数で、PIO0(S1)をプルアップし、それ以外はプルアップ無効にする場合、以下のように00000001(1)と設定します。
mKonashiManager.pinPullupAll(1);詳細は Core Functions / Digital の項をご覧ください。
mKonashiManager.pinPullupAll(pullups);| pullups | int | PIO0 〜 PIO7 の計8ピンのプルアップの設定。0x00 〜 0xFF を指定してください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
PIOのすべてのピンをプルアップする
mKonashiManager.pinPullupAll(0xFF);PIOの特定のピンの入力状態を取得します。
ピンの入力状態を取得する前に、必ず pinMode, pinModeAll でピンのモードを入力にしておいてください。出力モードの場合は正しい入力状態を取得することはできません。
詳細は Core functions / Digital をご覧ください。
mKonashiManager.digitalRead(pin);| pin | int | PIOのピン名。指定可能なピン名は Constants / Pin name をご覧ください。 |
Konashi.HIGH もしくは Konashi.LOW
S1の入力の状態を取得する
mKonashiManager.digitalRead(Konashi.S1);PIOのすべてのピンの状態を取得します。
この関数での戻り値は、PIO0〜PIO7の入力状態が8bit(1byte)で表現されます。bitとピンの対応は以下です。

それぞれのビットで、0はLOW(0V)を、1はHIGH(3V)を表現しています。
例えば、PIO0(S1)がHIGH、それ以外がLOWの状態だった時にこの関数を実行すると、00000001(1)が戻り値として返ってきます。
int value = mKonashiManager.digitalReadAll();
Log.d("Konashi", String.valueOf(value)); //1詳細は Core functions / Digital をご覧ください。
mKonashiManager.digitalReadAll();なし
int PIOの8ピンの入力情報(0x00〜0xFF)
PIOのすべてのピンの入力状態を取得する。
mKonashiManager.digitalReadAll();PIOの特定のピンの出力状態を設定します。
詳細は Core functions / Digital をご覧ください。
Konashi.digitalWrite((int)pin, (int)value);| pin | int | PIOのピン名。指定可能なピン名は Constants / Pin name をご覧ください。 |
| value | int | 設定するPIOの出力状態。Konashi.HIGH もしくは Konashi.HIGH が指定可能です。詳細は Constants / PIO をご覧ください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2をHIGHにする
mKonashiManager.digitalWrite(Konashi.LED2, Konashi.HIGH);PIOの特定のピンの出力状態を設定します。
この関数での引数は、PIO0〜PIO7の出力状態が8bit(1byte)で表現されます。bitとピンの対応は以下です。

それぞれのビットで、0はLOW(0V)を、1はHIGH(3V)を表現しています。
例えば、この関数でPIO3(LED4)をHIGH、それ以外をLOWの状態にする場合、00001000(8)を引数に設定します。
mKonashiManager.digitalWriteAll(8);詳細は Core functions / Digital をご覧ください。
mKonashiManager.digitalWriteAll(value);| value | int | PIO0〜PIO7の出力に設定する値。 0x00 〜 0xFF が設定可能です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
PIOのすべてのピンをHIGHにする
mKonashiManager.digitalWriteAll(0xFF);AIO の指定のピンの入力電圧を取得します。この関数で取得できる値は前回の analogReadRequest 時に取得した電圧です。
konashiのAIOピンの電圧を取得したい場合は、まず analogReadRequest で konashi に取得リクエストを送り、 KonashiAnalogEvent.UPDATE_ANALOG_VALUE もしくは Constants / Events に定義されている入力電圧取得完了イベントを addListener でキャッチした後、 この関数で値を取得できます。
イベントリスナにはKonashiAnalogListenerを登録します。
アナログの機能に関しては、 Core functions / Analog をご覧ください。
mKonashiManager.analogRead((int)pin);| pin | AIOのピン名。指定可能なピン名は Konashi.AIO0, Konashi.AIO1, Konashi.AIO2 です。詳細は Constants / Pin name をご覧ください。 |
Promise<Integer, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
callbackには結果として0 〜 1300 までの、mV単位の値が渡されます。
AIO0の入力電圧を取得する
mKonashiManager.addListener(new KonashiConnectionListener() {
@Override
public void onNotFoundPeripheral() {}
@Override
public void onConnected() {}
@Override
public void onDisconnected() {}
@Override
public void onReady() {
mKonashiManager.analogReadRequest(Konashi.AIO0);
}
@Override
public void onCancelSelectKonashi() {}
});
mKonashiManager.addListener(new KonashiAnalogListener(){
@Override
public void onUpdateAnalogValue(int pin, int value) {}
@Override
public void onUpdateAnalogValueAio0(int value) {
Log.d("READ_AIO0", String.valueOf(value));
}
@Override
public void onUpdateAnalogValueAio1(int value) {}
@Override
public void onUpdateAnalogValueAio2(int value) {}
});
mKonashiManager.find(current_activity);Coming Soon
PIO の指定のピンを PWM として使用する/しないを設定します。
PIO のいずれのピンも PWMモード に設定できます。
Konashi.PWM_ENABLE モードを指定する場合は、事前に pwmPeriod, pwmDuty で周期とONになる時間を指定してください。
PWM の詳細は Core functions / PWM をご覧ください。
mKonashiManager.pwmMode((int)pin, (int)mode);| pin | int | PWMモードの設定をするPIOのピン名。Konashi.PIO0 〜 Konashi.PIO7 が設定可能です。 |
| mode | int | 設定するPWMのモード。Konashi.PWM_DISABLE , Konashi.PWM_ENABLE, Konashi.PWM_ENABLE_LED_MODE が設定できます。詳細は Constants / PWM をご覧ください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2を周期10ms、デューティ5msのPWMにする。
mKonashiManager.pwmMode(Konashi.LED2, Konashi.PWM_ENABLE);
mKonashiManager.pwmPeriod(Konashi.LED2, 10000);
mKonashiManager.pwmDuty(Konashi.LED2, 5000);指定のピンのPWM周期を設定します。
周期の単位はマイクロ秒(us)で指定してください。
PWM の詳細は Core functions / PWM をご覧ください。
mKonashiManager.pwmPeriod((int)pin, (int)period);| pin | int | PIOのピン名。Konashi.PIO0 〜 Konashi.PIO7 が設定可能です。 |
| period | int | 周期。単位はマイクロ秒(us)で32bitで指定してください。最大232us = 71.5分です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2の周期を10msにセットする
mKonashiManager.pwmPeriod(Konashi.LED2, 10000);指定のピンのPWMのデューティ(ONになっている時間)を設定します。
単位はマイクロ秒(us)で指定してください。
PWM の詳細は Core functions / PWM をご覧ください。
mKonashiManager.pwmDuty((int)pin, (int)duty);| pin | int | PIOのピン名。Konashi.PIO0 〜 Konashi.PIO7 が設定可能です。 |
| duty | int | デューティ。単位はマイクロ秒(us)で32bitで指定してください。最大232us = 71.5分です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2のデューティを5msにセットする
Konashi.pwmDuty(Konashi.LED2, 5000);指定のピンのLEDの明るさを0%〜100%で指定します。
pwmLedDrive 関数を使うには pwmMode で Konashi.PWM_ENABLE_LED_MODE を指定してください。
PWM の詳細は Core functions / PWM をご覧ください。
mKonashiManager.pwmLedDrive((int)pin, (double|float)dutyRatio);| pin | int | PIOのピン名。Konashi.PIO0 〜 Konashi.PIO7 が設定可能です。 |
| dutyRatio | double|float | LEDの明るさ。0.0〜100.0 または 0.0F〜100.0F を指定してください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
LED2の明るさを30%にする
mKonashiManager.pwmMode(Konashi.LED2, Konashi.PWM_ENABLE_LED_MODE);
mKonashiManager.pwmLedDrive(Konashi.LED2, 30.0);UART の有効/無効を設定します。
有効にする前に、uartBaudrate でボーレートを設定しておいてください。
UART の詳細は Core functions / Communication - UART をご覧ください。
Konashi.uartMode((int)mode);| mode | int | 設定するUARTのモード。Konashi.UART_DISABLE , Konashi.UART_ENABLE が設定可能です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
UARTを有効にする
mKonashiManager.uartMode(Konashi.UART_ENABLE);UART の通信速度を設定します。
現在は 2400bps か 9600bps が設定できます。
UART の詳細は Core functions / Communication - UART をご覧ください。
mKonashiManager.uartBaudrate((int)baudrate);| baudrate | int | UARTの通信速度。Konashi.UART_RATE_9K6, Konashi.UART_RATE_19K2, Konashi.UART_RATE_38K4, Konashi.UART_RATE_57K6, Konashi.UART_RATE_76K8, Konashi.UART_RATE_115K2 が設定可能です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
UARTの通信速度を9600bpsにする
mKonashiManager.uartBaudrate(Konashi.UART_RATE_9K6);UART でデータを1バイト送信します。
UART の詳細は Core functions / Communication - UART をご覧ください。
mKonashiManager.uartWrite((byte[]|String) data);| data | byte[]|String | 送信するバイト列または文字列 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
'A'という文字をUARTで送る
mKonashiManager.uartWrite("A");I2C を有効/無効を設定します。
I2C で通信できる速度として 100kbps と 400kbps がありmode引数で指定します。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cMode((int)mode);| mode | int | 設定するI2Cのモード。Konashi.I2C_DISABLE, Konashi.I2C_ENABLE, Konashi.I2C_ENABLE_100K, Konashi.I2C_ENABLE_400K が設定できます。Konashi.I2C_ENABLE と Konashi.I2C_ENABLE_100K は等価です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2C を100kbps(デフォルト)の通信速度で有効にする。
mKonashiManager.i2cMode(Konashi.I2C_ENABLE);I2C のスタートコンディションを発行します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cStartCondition();なし
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2C のスタートコンディションを発行するpipeを返します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.<T>i2cStartConditionPipe();なし
DonePipe<T, BluetoothGattCharacteristic, BletiaException, Void> 詳細はPromise をご覧ください。
I2C のリスタートコンディションを発行します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cRestartCondition();なし
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2C のリスタートコンディションを発行するpipeを返します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.<T>i2cRestartConditionPipe();なし
DonePipe<T, BluetoothGattCharacteristic, BletiaException, Void> 詳細はPromise をご覧ください。
I2C のストップコンディションを発行します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cStopCondition();なし
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2C のストップコンディションを発行するpipeを返します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.<T>i2cStopConditionPipe();なし
DonePipe<T, BluetoothGattCharacteristic, BletiaException, Void> 詳細はPromise をご覧ください。
I2C のコンディションを発行します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cSendCondition((int)condition);| condition | int | 設定するコンディション。Konashi.I2C_START_CONDITION, Konashi.I2C_STOP_CONDITION, Konashi.I2C_RESTART_CONDITION が設定可能です。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2C のコンディションを発行するpipeを返します。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.<T>i2cSendConditionPipe((int)condition);| condition | int | 設定するコンディション。Konashi.I2C_START_CONDITION, Konashi.I2C_STOP_CONDITION, Konashi.I2C_RESTART_CONDITION が設定可能です。 |
DonePipe<T, BluetoothGattCharacteristic, BletiaException, Void> 詳細はPromise をご覧ください。
I2Cで指定したアドレスからデータを読み込みます。
mKonashiManager.i2cRead((int)length, (byte)address);| length | int | 読み込むデータ(byte)の長さ。最大Konashi.I2C_DATA_MAX_LENGTHまで設定可能です。 |
| address | byte | 読み込み先アドレス |
Promise<byte[], BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
I2Cで指定したアドレスからデータを読み込むpipeを返します。
Tはこのpipeを与えるPromiseオブジェクトのジェネリクスの1番目の型です。
mKonashiManager.<T>i2cReadPipe((int)length, (byte)address);| length | int | 読み込むデータ(byte)の長さ。最大Konashi.I2C_DATA_MAX_LENGTHまで設定可能です。 |
| address | byte | 読み込み先アドレス |
DonePipe<T, byte[], BletiaException, Void> 詳細はPromise をご覧ください。
I2C で指定したアドレスにデータを書き込みます。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.i2cWrite((int)length, (byte[])data, (byte)address);| length | int | 書き込むデータ(byte)の長さ。最大Konashi.I2C_DATA_MAX_LENGTHまで設定可能です。 |
| data | byte[] | 書き込むデータ |
| address | byte | 書き込み先アドレス |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
アドレス0x45に'A'というデータを書き込む
mKonashiManager.i2cWrite(1, "A".getBytes(), 0x45);I2C で指定したアドレスにデータを書き込むpipeを返します。
Tはこのpipeを与えるPromiseオブジェクトのジェネリクスの1番目の型です。
事前に i2cMode で I2C を有効にしておいてください。
I2C の詳細は Core functions / Communication - I2C をご覧ください。
mKonashiManager.<T>i2cWritePipe((int)length, (byte[])data, (byte)address);| length | int | 書き込むデータ(byte)の長さ。最大Konashi.I2C_DATA_MAX_LENGTHまで設定可能です。 |
| data | byte[] | 書き込むデータ |
| address | byte | 書き込み先アドレス |
DonePipe<T, BluetoothGattCharacteristic, BletiaException, Void> 詳細はPromise をご覧ください。
SPIのモードを設定します。
SPIで設定出来るのは、動作モードと動作速度、ビットオーダーになります。
mKonashiManager.spiConfig((int)mode, (int)byteOrder,(int)speed);| mode | int | SPI通信のモードを設定する。
KOSHIAN_SPI_MODE_CPOL0_CPHA0,
KOSHIAN_SPI_MODE_CPOL0_CPHA1,
KOSHIAN_SPI_MODE_CPOL1_CPHA0,
KOSHIAN_SPI_MODE_CPOL1_CPHA1
が設定可能です。 |
| speed | int | 設定するSPIのモード。KOSHIAN_SPI_SPEED_200K ~ KOSHIAN_SPI_SPEED_6M, を設定できます。詳細は Constants / SPI をご覧ください。 |
| bitOrder | int | 設定するSPIのモード。KOSHIAN_SPI_BIT_ORDER_LSB_FIRST , KOSHIAN_SPI_BIT_ORDER_MSB_FIRST
が設定できます。詳細は Constants / SPI をご覧ください。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
SPI通信のモードを通信速度200kbps、クロックを正論理にし、0から1に切り替わるタイミングでデータを取り込むようにする。
mKonashiManager.spiConfig(Konashi.SPI_MODE_ENABLE_CPOL0_CPHA0,Konashi.SPI_BIT_ORDER_LITTLE_ENDIAN,Konashi.SPI_SPEED_1M)SPI経由でデータを読み込みます。
mKonashiManager.spiRead()なし
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
SPI経由でデータを書き込みます。
mKonashiManager.spiWrite(byte[] data);| data | byte[] | SPI通信で送信するデータ。 |
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
konashi を再起動します。
konashi が再起動すると、自動的にBLEのコネクションは切断されます。
mKonashiManager.reset();なし
Promise<BluetoothGattCharacteristic, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
konashi を再起動する
mKonashiManager.reset();konashi のバッテリ残量を取得します。
mKonashiManager.getBatteryLevel();なし
Promise<Integer, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
callbackには結果として0 〜 100 までのパーセント単位の値が渡されます。
konashi のバッテリ残量を取得し表示する
mKonashiManager.getBatteryLevel().done(new DoneCallback<Integer>() {
@Override
public void onDone(Integer result) {
Log.d("Konashi", String.valueOf(result));
}
});konashi の電波強度を取得します。
mKonashiManager.getSignalStrength();なし
Promise<Integer, BletiaException, Object> Promiseオブジェクト。詳細はPromise をご覧ください。
callbackには結果としてdb単位の値が渡されます。
konashi の電波強度を取得し表示する
mKonashiManager.getSignalStrength().done(new DoneCallback<Integer>() {
@Override
public void onDone(Integer result) {
Log.d("Konashi", String.valueOf(result));
}
});