スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 その他趣味ブログ LEGO・ブロックへ

Google App Inventor for Androidを試してみる 7 NXTモーター制御編1

こんばんは、kobaです。
現在NXT2.0のリファレンスにあるColor Sorterを実行させながら、App Inventorで同じ動作をするようにプログラムを作成を行っていました。最後に色分けを行ったボールを入れる部分がうまくいかず1週間以上たってしまいました。

App InventorでNXTのモーターを利用する場合はデザイナのパレットでNxtDriveという部品を利用します。この中にNxtDrive.MoveForwardという部品があります。この部品にはモーターのパワーと移動距離を指定することができるので、モーターを90度ずつ移動するように色々とテストを行っていました。しかしいくらやっても安定しません。少ししかモーターが動かないときもあれば、指定した距離よりかなり長く動いてしまうこともあります。規則性があればプログラムの中で補正をかけられるのですが、色々と実験を行ってもこれだ!という規則性を見つけることができませんでした。

そこで昨日NxtDrive.MoveForward(メソッド)のソースコードを確認してみました。App InventorのNxtDriveのソースコードはこちらで確認をすることができます。(確認するにはGmailのアカウントが必要なようです。)普段の開発時はこちら参照していれば良いですが、望んだ動きと異なる場合や中の動きを確認したい場合はソースも確認してみることをお薦めします。まだApp Inventorは開発途中ということもありバグを含んでいる可能性もあります。

話を戻しましてソースを確認すると162行目に「This doesn't work accurately, but it is the best we can do with bluetooth direct commands」とあります。つたない英語で訳すと「これは正確に動作しませんが、私達がブルートゥースダイレクトコマンドでできるベストな方法」という意味になると思います。なんと正確に動作しないとあります。

今回Color Sorterの動きをApp Inventorで実現してみたかったのはルービックキューブを解くプログラムをApp Inventorで作成できる可能性を知りたかったということもあります。色の判定や、モーターの90度の制御がルービックキューブを解く場合にも必要になるからです。スイッチセンサーを上下左右に4つ使えばできるかなぁ?とも考えていますが、NXT2台は必要になるので、なんとか他の方法がないか考えております。モーターパワーが小さい方がぶれが少ないようではあります。まさかモーターの90度制御がこんなに大変とは思ってもみませんでした。プログラムだけでの対応は既に限界も感じてきているので、ブロック側の変更を含めて何とか安定動作する方法を見つけたいと思います。

スポンサーサイト


にほんブログ村 その他趣味ブログ LEGO・ブロックへ

コメントの投稿

非公開コメント

リンク
フリーエリア
プロフィール

tsukuba.lego

Author:tsukuba.lego
●主な登場人物
koba : 会長. RCX, WeDo, NXT1.0, NXT2.0を持つ.
matk : 副会長. 2010年夏にNXT2.0を購入, 20年来のレゴ熱復活.
●会員募集中です!小学生から歓迎. 近日月1ぐらいで集まる予定.
mail:tsukuba.lego@gmail.com
YouTube (tsukubalego)
Twitter(tsukubalego)

カテゴリ
最新記事
最新コメント
月別アーカイブ
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
最新トラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。