であそぼう

ハードウェア

=

ハードウェアのサービス

pio = new PeripheralManagerService();

LED をつける

Gpio led = pio.openGpio("GPIO_34");

led.setDirection(DIRECTION_OUT_INITIALLY_LOW);

led.setValue(true);

LED を消す

led.setValue(false);

ボタンの値をよむ

Gpio button = pio.openGpio("GPIO_174");

button.setDirection(DIRECTION_IN);

boolean val = button.getValue();

ボタンをリッスンする

button.setEdgeTriggerType(EDGE_BOTH);

button.registerGpioCallback((gpio)->{

//...

led.setValue(!gpio.getValue());

});

ドライバを使うと

compile 'com.google.android.things.contrib:driver-button:+'

「Android っぽく」なる

button = new Button("GPIO_174", PRESSED_WHEN_HIGH);

button.setOnButtonEventListener((button, pressed)->{

//...

});

ユーザードライバを使うと

inputDriver = new ButtonInputDriver("GPIO_174",

PRESSED_WHEN_HIGH,

KEYCODE_A);

inputDriver.register();

「Android らしく」なる

boolean onKeyDown(int keyCode, KeyEvent event){

//...

}

14 セグのドライバ

compile 'com.google.android.things.contrib:driver-ht16k33:+'

display = new AlphanumericDisplay("I2C1");

display.setEnabled(true);

display.display("OREO");

BMP280 のドライバ

compile 'com.google.android.things.contrib:driver-bmx280:+'

bmp280 = new Bmx280("I2C1");

float temp = bmp280.readTemperature();

BMP280 のユーザードライバ

compile 'com.google.android.things.contrib:driver-bmx280:+'

sensorDriver = new Bmx280SensorDriver("I2C1");

sensorDriver.registerTemperatureSensor();

//...

void onSensorChanged(SensorEvent event) {

}

ブザーのドライバ

compile 'com.google.android.things.contrib:driver-pwmspeaker:+'

buzzer = new Speaker("PWM2");

double NOTE_A = 440.0;

buzzer.play(NOTE_A);

シリアル LED のドライバ

compile 'com.google.android.things.contrib:driver-apa102:+'

leds = new Apa102("SPI3", Apa102.Mode.RGB);

int[] colors = new int[] {

Color.RED, Color.GREEN, Color.BLUE

};

leds.write(colors);

UI が使える

button.setOnCheckedChangeListener((button, isChecked)->{

//…

led.setValue(isChecked);

}

Android だから!

Firebase をかんたんに使う

compile 'com.google.firebase:firebase-database:11.4.0'

FirebaseDatabase.getInstance()

.getReference("hello")

.setValue("firebase");

Android だから!

GCP をかんたんに使う

compile 'com.google.firebase:firebase-database:11.4.0'

pubsubService.projects()

.topics()

.publish(topic, request)

.execute();

Android だから!

Assistant SDK も使える

github.com/androidthings/sample-googleassistant

assistant = EmbeddedAssistant.Builder()

.setRequestCallback(...)

.setConversationCallback(...)

.build();

assistant.connect()

assistant.startConversation()

void onSpeechRecognition(String utterance) {}

void onConversationEvent(EventType eventType)) {}

MyThingsもできるかな?

compile 'com.android.volley:volley:1.0.0'

url = "https://mythings-developers.yahooapis.jp/v2/services/"

+ serviceId + "/mythings/" + combinationId + "/run";

req = new JsonObjectRequest(Request.Method.POST, url, ...);

//...

queue = Volley.newRequestQueue(this);

queue.add(req);

Android Thingsであそぼう - Google Slides