Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Play with Android Things

shanonim
February 18, 2019

Play with Android Things

2019.02.18
Cookpad.apk #2
https://cookpad.connpass.com/event/117054/

shanonim

February 18, 2019
Tweet

More Decks by shanonim

Other Decks in Technology

Transcript

  1. "OESPJE5IJOHT0WFSWJFX
    $PPLQBEBQL
    !TIBOPOJN

    View Slide

  2. ΫοΫύουגࣜձࣾങ෺ࣄۀ෦
    ࣰݪ߂ޫ
    !TIBOPOJN
    "OESPJEJ04*P51SPUPUZQJOH

    View Slide

  3. View Slide

  4. ϚΠίϯ .4UBDL
    Ͱ*P5ϓϩτλΠϐϯάΛͨ͠Γ͍ͯ͠·͢

    View Slide

  5. w ೥ʹ(PPHMF͕ϦϦʔεͨ͠*P5ػث޲͚ͷϓϥοτϑΥʔϜ
    w 3BTQCFSSZ1J౳ͷϛχίϯϐϡʔλͰ"OESPJE͕ಈ͘
    w ௨ৗͷ"OESPJEΞϓϦͱ΄΅มΘΒͳ͍։ൃମݧ
    w ૊ΈࠐΈ෼໺ͷΞϓϦέʔγϣϯΛର৅
    w ֤छηϯαʔΛࣗ༝ʹ࢖͑Δ
    w Ϟμϯͳٕज़Λαϙʔτ
    w FHσʔλ෼ੳʹ'JSFCBTF($1Λ࢖͏

    View Slide

  6. w ೥ϦϦʔε
    w ೥݄WFSTJPOϦϦʔε
    w ೥݄$MPVE*P5$PSFϥΠϒϥϦϦϦʔε

    View Slide

  7. View Slide

  8. (JWFOUIFTVDDFTTFTXFIBWFTFFOXJUIPVS
    QBSUOFSTJOTNBSUTQFBLFSTBOETNBSUEJTQMBZT
    XFBSFSFGPDVTJOH"OESPJE5IJOHTBTB
    QMBUGPSNGPS0&.QBSUOFSTUPCVJMEEFWJDFTJO
    UIPTFDBUFHPSJFTNPWJOHGPSXBSE

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. EFWFMPQFSTDBODSFBUFOFXCVJMET
    BOEQVTIBQQVQEBUFTGPSVQUP
    EFWJDFTGPSOPODPNNFSDJBMVTF

    View Slide

  14. 1SPEVDUJPOಋೖͷເ͕ઈͨΕͨࠓɺ
    "OESPJE5IJOHTͷ࢖͍Έͪ͸
    ύʔιφϧϢʔε͔͠ͳ͍

    View Slide

  15. ઌि·Ͱͷ"OESPJE5IJOHT

    View Slide

  16. ϋʔυ΢ΣΞ
    1SPEVDUJPOQMBUGPSNT %FWFMPQNFOUQMBUGPSNT

    View Slide

  17. 1SPEVDUJPOQMBUGPSNT
    %FWFMPQNFOUQMBUGPSNT
    ϓϩτλΠϐϯά։ൃ
    ݕূ
    1SPEVDUJPO4P.TBSFDFSUJpFE
    CZ(PPHMFUPNFFUUIFTFDVSJUZSFRVJSFNFOUT
    %FQMPZ 05"0WFS5IF"JS

    View Slide

  18. ϋʔυ΢ΣΞ (2019.2.12 ~)
    1SPEVDUJPOQMBUGPSNT %FWFMPQNFOUQMBUGPSNT
    XJMMOPUCFNBEFBWBJMBCMFUISPVHIUIFQVCMJDEFWFMPQFSQMBUGPSN

    View Slide

  19. w 1SPEVDUJPOQMBUGPSNTͷσόΠε͕࢖͑ͳ͘ͳ͚ͬͨͩ
    w %FWFMPQNFOUQMBUGPSNTͷσόΠεϥζύΠͱ/911JDPͷαϙʔτ͸ੜ͖͍ͯΔʂ
    ϙΠϯτ

    View Slide

  20. NBLFTPNFUIJOH

    View Slide

  21. "OESPJE5IJOHT0WFSWJFX
    $PPLQBEBQL
    !TIBOPOJN

    View Slide

  22. 1MBZXJUI"OESPJE5IJOHT
    $PPLQBEBQL
    !TIBOPOJN

    View Slide

  23. /911JDPJ.9%͘ΜΛ࢖͍·͢

    View Slide

  24. w (PPHMF*0Ͱ഑෍͞Εͨ4UBSUFS,JUʹೖ͍ͬͯΔ։ൃϘʔυ
    w "OESPJE5IJOHT4UBSUFS,JU։෧ͷّIUUQTIBOPOJNIBUFOBCMPHDPNFOUSZ

    /911JDPJ.9%

    View Slide

  25. "OESPJE5IJOHTͰ௿ԹௐཧثΛ࡞Δ

    View Slide

  26. ௿Թௐཧ
    w ਅۭௐཧ๏
    w ʮম͘ʯʮৠ͢ʯʮࣽΔʯʹ͙࣍ɺୈ࢛ͷௐཧ๏ͱ΋ݺ͹ΕΔɻ
    w ੜ͋Δ͍͸ম͖໨Λ͚ͭΔͳͲͷԼॲཧΛࢪͨ͠৯ࡐͱௐຯӷΛϑΟϧϜାʹೖΕͯਅۭີ෧
    ͠ɺ55ʢUFNQFSBUVSFUJNFʣ؅ཧͷग़དྷΔௐཧثͰࡐྉʹԠͨ࣌ؒ͡ͱԹ౓ઃఆΛͯ͠ௐཧ͞
    ΕΔɻ
    w ਅۭύοΫதͰௐཧɺௐຯ͕ߦΘΕΔͨΊࡐྉͷ෩ຯ΍ࢫຯΛಀͣ͞ۉҰʹௐཧ͢Δ͜ͱ͕Մ
    ೳͰ͋Δɻ 8JLJQFEJBΑΓ

    View Slide

  27. ࣮૷ͨ͠௿Թௐཧث
    w ࢢൢͷεϩʔΫοΧʔͷిݯΛίϯτϩʔϧͯ͠ɺৗʹҰఆͷԹ౓ଳΛอͭ
    w εϩʔΫοΧʔʹԹ౓ηϯαʔΛ࣮૷
    w Թ౓͕ࢦఆͨ͠Թ౓Λ௒͑ͨΒˠεϩʔΫοΧʔͷిݯΛ੾ΔʢԹ౓͕Լ͕Δʣ
    w ٯʹԹ౓͕Լ͕Γ͗ͨ͢ΒˠεϩʔΫοΧʔͷిݯΛೖΕΔʢԹ౓͕࠶্ঢ͢Δʣ

    View Slide

  28. /911JDPJ.9%
    (SPWF#BSPNFUFS4FOTPS #.1

    εϩʔΫοΧʔ
    ܲ೑
    εϚʔτϓϥά )4

    UFNQFSBUVSF
    8FCIPPL TFOE0/0''FWFOU

    View Slide

  29. View Slide

  30. View Slide

  31. ιϑτ΢ΣΞ
    TVQQPSUFECZ"OESPJE04
    w ։ൃ؀ڥ
    w "OESPJE4UVEJP
    w *OUFMMJ+*%&"
    w ݴޠ
    w +BWB
    w ,PUMJO

    View Slide

  32. ηϯαʔ͔ΒσʔλΛऔಘ
    class MainActivity : Activity(), SensorEventListener {
    companion object {
    private val TAG = MainActivity::class.java.simpleName
    }
    private val temperatureSensorDriver: Bmx280SensorDriver by lazy {
    Bmx280SensorDriver("I2C1")
    }
    private val sensorManager: SensorManager by lazy {
    getSystemService(Context.SENSOR_SERVICE) as SensorManager
    }
    private val dynamicSensorCallback = object : DynamicSensorCallback() {
    override fun onDynamicSensorConnected(sensor: Sensor) {
    if (sensor.type == Sensor.TYPE_AMBIENT_TEMPERATURE) {
    Log.i(TAG,
    "Temperature sensor connected")
    sensorManager.registerListener([email protected],
    sensor,
    SensorManager.SENSOR_DELAY_NORMAL)
    }
    }
    }
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    sensorManager.registerDynamicSensorCallback(dynamicSensorCallback)
    temperatureSensorDriver.registerTemperatureSensor()
    }
    override fun onDestroy() {
    super.onDestroy()
    sensorManager.unregisterDynamicSensorCallback(dynamicSensorCallback)
    sensorManager.unregisterListener(this)
    temperatureSensorDriver.run {
    unregisterTemperatureSensor()
    close()
    }
    }
    override fun onSensorChanged(event: SensorEvent) {
    // event.values[0]
    }
    override fun onAccuracyChanged(sensor: Sensor,
    accuracy: Int) {
    Log.i(TAG,
    "sensor accuracy changed: $accuracy")
    }
    }

    View Slide

  33. ⚡εϚʔτϓϥά
    w 51-JOL)4
    w 8J'J಺ଂ
    w *'555࿈ܞ
    w XFCIPPLୟ͚ͩ͘Ͱ0/0''੍ޚͰ͖Δ

    View Slide

  34. ·ͱΊ
    w OPODPNNFSDJBMVTFPOMZͰ͸͋Δ͕ɺ"OESPJEΤϯδχΞʹͱͬͯ։ൃ͠΍͍͢ϓϥοτϑΥʔ
    Ϝʹ͸มΘΒͳ͍
    w Πν͔Β૊ΈࠐΈษڧ͢ΔΑΓ΋ϋʔυϧ͸௿͍ʢͱࢥ͏ʣ
    w 8FCͱͷ࿈ܞָ͕ͩͬͨΓɺN#BB4Λ؆୯ʹ࢖͑ΔͷͰɺͪΌΜͱͨ͠*P5αʔϏε͕؆୯ʹ
    ࡞ΕΔ
    w *0Ͱ෮׆ͯ͘͠ΕཔΉ

    View Slide