App Inventor で
   m3pi を
   動かした
2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
おさらい

 2010年10月
横浜支部 定例会

2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
http://www.slideshare.net/ohwada/
  20101024-3min-cooking-in-yokohama-android

2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
2011年8月
  App Inventor
     ハッカソン
2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor による Bluetooth 制御




      http://android.ohwada.jp/archives/146

 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
2011年8月
横浜支部 定例会

2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor による Mind Storm 制御




       http://android.ohwada.jp/archives/240

   2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
本題
2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor による m3pi 制御




2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
m3pi              210ドル




mbed (ARM)




                           3pi robot (AVR)
    http://www.pololu.com/catalog/product/2151

   2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
http://www.youtube.com/watch?v=zrVL81FC77w


2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor vs Java

 App Inventor 利点
  簡単
 Java 利点
  細かい制御
2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
Java の Bluetooth 制御
      BluetoothChatService.java 500行
http://developer.android.com/resources/samples/BluetoothChat/index.html
           public class BluetoothChatService {
             // Debugging
             private static final String TAG = "BluetoothChatService";
             private static final boolean D = true;


             // Name for the SDP record when creating server socket
             private static final String NAME_SECURE = "BluetoothChatSecure";
             private static final String NAME_INSECURE = "BluetoothChatInsecure";


             // Unique UUID for this application
             private static final UUID MY_UUID_SECURE =
                UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66");
             private static final UUID MY_UUID_INSECURE =
                UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66");


             // Member fields
             private final BluetoothAdapter mAdapter;
             private final Handler mHandler;
             private AcceptThread mSecureAcceptThread;
             private AcceptThread mInsecureAcceptThread;
             private ConnectThread mConnectThread;
             private ConnectedThread mConnectedThread;
             private int mState;




      2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor の Bluetooth 制御




                   簡単



 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
Java の Button 制御
ImageView mForward= (ImageView) findViewById(R.id.forward);
mForward.setOnTouchListener( new OnTouchListener() {
   @Override
   public boolean onTouch( View view, MotionEvent event ) {
       switch (event.getAction()) {
           case MotionEvent.ACTION_DOWN:
               cmdSendForward();
               break;
           case MotionEvent.ACTION_UP:
               cmdSendStop();
               break;
           }
           return true;
     }
   });

   2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor の Button 制御
    ACTION_UP イベントがない

    => 工夫が必要
     例: タイマーで停止




  2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
デモ

2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
App Inventor による m3pi 制御




2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
今後
(1) App Inventor 側
 傾きセンサーで前進


(2) m3pi 側
 NTX(MindStorm)ブロック互換


2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
終わり

2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一

20120422 m3pi in Yokohama

  • 1.
    App Inventor で m3pi を 動かした 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 2.
    おさらい 2010年10月 横浜支部 定例会 2012年4月22日日本アンドロイドの会 横浜支部 大和田健一
  • 3.
  • 4.
    2011年8月 AppInventor ハッカソン 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 5.
    App Inventor によるBluetooth 制御 http://android.ohwada.jp/archives/146 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 6.
  • 7.
    App Inventor によるMind Storm 制御 http://android.ohwada.jp/archives/240 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 8.
  • 9.
    App Inventor によるm3pi 制御 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 10.
    m3pi 210ドル mbed (ARM) 3pi robot (AVR) http://www.pololu.com/catalog/product/2151 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 11.
  • 12.
    App Inventor vsJava App Inventor 利点  簡単 Java 利点  細かい制御 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 13.
    Java の Bluetooth制御 BluetoothChatService.java 500行 http://developer.android.com/resources/samples/BluetoothChat/index.html public class BluetoothChatService { // Debugging private static final String TAG = "BluetoothChatService"; private static final boolean D = true; // Name for the SDP record when creating server socket private static final String NAME_SECURE = "BluetoothChatSecure"; private static final String NAME_INSECURE = "BluetoothChatInsecure"; // Unique UUID for this application private static final UUID MY_UUID_SECURE = UUID.fromString("fa87c0d0-afac-11de-8a39-0800200c9a66"); private static final UUID MY_UUID_INSECURE = UUID.fromString("8ce255c0-200a-11e0-ac64-0800200c9a66"); // Member fields private final BluetoothAdapter mAdapter; private final Handler mHandler; private AcceptThread mSecureAcceptThread; private AcceptThread mInsecureAcceptThread; private ConnectThread mConnectThread; private ConnectedThread mConnectedThread; private int mState; 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 14.
    App Inventor のBluetooth 制御 簡単 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 15.
    Java の Button制御 ImageView mForward= (ImageView) findViewById(R.id.forward); mForward.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch( View view, MotionEvent event ) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: cmdSendForward(); break; case MotionEvent.ACTION_UP: cmdSendStop(); break; } return true; } }); 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 16.
    App Inventor のButton 制御 ACTION_UP イベントがない => 工夫が必要  例: タイマーで停止 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 17.
  • 18.
    App Inventor によるm3pi 制御 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 19.
    今後 (1) App Inventor側  傾きセンサーで前進 (2) m3pi 側  NTX(MindStorm)ブロック互換 2012年4月22日 日本アンドロイドの会 横浜支部 大和田健一
  • 20.