O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

BLEラジコン基板でIoTしてみた

2.551 visualizações

Publicada em

大阪版IoT縛りの勉強会Vol.2 でのLT

Publicada em: Engenharia
  • Seja o primeiro a comentar

BLEラジコン基板でIoTしてみた

  1. 1. 2016.4.6 IoTLT@大阪 西村備山@奈良キカイケン BLEラジコン基板でIoTしてみた
  2. 2. 自己紹介 西村備山 (@lipoyang) ■奈良県在住&勤務 ■組込み系技術者 ■ミニ四駆
  3. 3. ミニ四駆をBLEラジコン化 BLE Androidアプリ 魔改造ミニ四駆
  4. 4. 歩くミニ四駆 ニコニコ動画で 40万再生
  5. 5. GPduino  Konashi互換のBLEモジュール  Arduino互換のマイコン  DCモータ×2, RCサーボ×3 BLEラジコン基板 http://lipoyang.net/gpduino
  6. 6. やりたいこと BLE 指令
  7. 7. Web系はまったく未経験 JavaScript わからん ← C言語歴20年
  8. 8. Milkcocoaがお手軽らしい
  9. 9. 仕組み send DataStore BLE
  10. 10. Webアプリ
  11. 11. ソース (HTML) <body> <table><tr><td></td> <td><img id="up" src="up.png"></td> <td></td></tr> <tr><td><img id="left" src="left.png"></td> <td></td> <td><img id="right" src="right.png"></td></tr> <tr><td></td> <td><img id="down" src="down.png"></td> <td></td></tr></table> <script src='https://cdn.mlkcca.com/v2.0.0/milkcocoa.js'> </script> <script src="controller.js"></script> </body>
  12. 12. ソース (JavaScript) window.onload = function(){ var buttonUp = document.getElementById('up'); (中略) var milkcocoa = new MilkCocoa("アプリのID.mlkcca.com"); var ds = milkcocoa.dataStore('gpduino'); buttonUp.onclick = function() { if( direction != DIR_UP){ direction = DIR_UP; ds.send({direction: 'up'}); buttonUp.src = "up_active.png"; (中略) } }; (後略)
  13. 13. Androidアプリ BLE Konashi SDK Milkcocoa SDK 中継アプリ ※ Android は Konashi SDK が Java版しかない
  14. 14. Milkcocoa SDK for Android jarをダウンロード
  15. 15. GitHubのはメンテされてない!? ぬるぽ 発生!
  16. 16. Milkcocoa/Konashi 中継アプリ
  17. 17. ソース (Java) public void onCreate(Bundle savedInstanceState) { (中略) m_milkcocoa = new MilkCocoa("アプリのID.mlkcca.com"); m_dataStore = m_milkcocoa.dataStore("gpduino"); m_dataStore.addDataStoreEventListener(this); m_dataStore.on("send"); } public void onSended(DataElement dataElement) { String direction = dataElement.getValue("direction"); (後略) } public class MainActivity extends Activity implements DataStoreEventListener {
  18. 18. 動いた~
  19. 19. でもリアルタイムって… → 数10msecのレイテンシを リアルタイムとは呼ばない ※ メカトロ屋の感想です
  20. 20. 時間の尺度 10 μsec 100 μsec 1 msec 10 msec 100 msec 1 sec 10 sec RTOS メカ LAN クラウド Linux, Windows UI BLE 分野によって リアルタイムの 意味は違う!
  21. 21. 次は何しようかな~? http://lipoyang.net 7/9~10 メイカーズバザール大阪 7/16~18 NT金沢2016 出展予定

×