であそぼう
+
ハードウェア
=
ハードウェアのサービス
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);