31
App Inventor で ロボットを 動かした 2012年5月20日 日本AppInventorユーザ会 大和田健一

20120520 App Inventor in user meeting

  • View
    2.587

  • Download
    0

Embed Size (px)

DESCRIPTION

App Inventor で ロボットを 動かした 2012年5月20日 日本 App Inventor ユーザ会 オフラインミーティング http://atnd.org/events/28432

Citation preview

Page 1: 20120520 App Inventor in user meeting

App Inventor でロボットを動かした

2012年5月20日 日本AppInventorユーザ会 大和田健一

Page 2: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

@ohwada

大和田健一日本Androidの会 横浜支部三代目 支部長

自 己 紹 介

Page 3: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

おさらい

Page 4: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

2010年7月

丸山です。7月12日に公開された、App Inventor ですが、皆さん、使っていますか? 僕は、ちょっと出遅れて、まだ動かせていません。 面白そうですね。

http://groups.google.com/group/android-group-japan/msg/151d683951d04c24

Page 5: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

2010年9月

Page 6: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

2010年10月

横浜支部定例会

3分間クッキング

http://www.slideshare.net/ohwada/20101024-3min-cooking-in-yokohama-android

Page 7: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

仕 組 み

ランチャーはないよ

Page 8: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

操作が簡単・ 直感的で分かりやすい・ 小学生でも 

学習コストが小さい・ Java 知らなくていい

良いところ

Page 9: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

拡張性なし・ Javaコード 出力なし・ 画面デザイン 自由度少ない・ 機能は Google 頼り 

説明が英語 大きなディスプレイが必要

悪いところ

Page 10: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

横浜支部 ハッカソン2011年8月

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

新機能Bluetooth / MindStorms

Page 11: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

LEGO MindStorms 購入

アマゾン31,500円

http://www.amazon.co.jp/dp/B001V7RF9U/

Page 12: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

App Inventor による Mind Storm 制御

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

2011年8月 横浜支部定例会

Page 13: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

2011年12月 Advent Calendar

傾きセンサ でMind Stormを動かす

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

Page 14: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

App Inventor による m3pi 制御2012年4月 横浜支部定例会

http://www.slideshare.net/ohwada/20120422m3pi

Page 15: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

m3pi 個人輸入

3pi robot (AVR)

mbed (ARM)

http://www.pololu.com/catalog/product/2151

210ドル

Page 16: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

App Inventor vs Java

App Inventor 利点 簡単Java 利点 細かい制御

Page 17: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

Java の Bluetooth 制御

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;

BluetoothChatService.java 500行http://developer.android.com/resources/samples/BluetoothChat/index.html

Page 18: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

App Inventor の Bluetooth 制御

簡単

Page 19: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

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; } });

Page 20: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

App Inventor の Button 制御ACTION_UP イベントがない

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

Page 21: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

今日のネタ

Page 22: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

NTX ブロックで mp3i を動かす

Page 23: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

ソース 公開

http://code.google.com/p/app-inventor-releases/

2012年1月

Page 24: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

app-inventor-releases/appinventor/components/src/com/google/appinventor/components/runtime/

NxtDrive.java

それっぽいのがある

public void MoveForwardIndefinitely(int power)

Page 25: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

LEGO MINDSTORMS Bluetooth Developer Kithttp://mindstorms.lego.com/en-us/support/files/Advanced.aspx

Page 26: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

結 果

Page 27: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

Error 401:The Bluetooth property has not been set.

Page 28: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

protected final boolean checkBluetooth(String functionName) { if (bluetooth == null) { form.dispatchErrorOccurredEvent(this, functionName, ErrorMessages.ERROR_NXT_BLUETOOTH_NOT_SET); return false; }

LegoMindstormsNxtBase.java

どこでエラーに

Page 29: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

今回は間に合わず

どうすればいい?

Page 30: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

デ モ時間があれば

Page 31: 20120520 App Inventor in user meeting

2012年5月20日 日本AppInventorユーザ会 大和田健一

質疑応答