Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,546 views

Published on

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

Published in: Engineering
  • Be the first to comment

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 出展予定

×