(toppers-users 4675) Re: mruby_on_ev3rt の接続手順等について

yasuo kominami(nifty) ykominami @ nifty.com
2017年 6月 12日 (月) 11:19:24 JST


軽部様、山本様、山根様、皆様

小南です。

あれから試行錯誤した結果、Windows
10でBluetoothが安定して認識され、PC-EV3間でBluetoothでプログラムを転送して、EV3で転送したプログラムを実行できることを確認しました。

私がやったことは以下の通りです。

1.BluetoothのUSBアダプターBSBT4D09BKを、PCのUSBポートに直接取り付けた。
-> セルフパワーのUSBポートハブに取り付けていたときは、Bluetoothが認識されたり、認識されなかったりと不安定な状態でした。

2. EV3とペアリングした後に、PCを再起動する。
 ->
ペアリングすると2個のCOMポートが作成されるが、TeraTermでこのポートを指定すると、オープンに失敗しました。TeraTermを管理者として実行しても失敗しました。
しかし、再起動後は管理者として実行しなくても、COMポートをオープンできました。

通知領域にBluetoothのアイコンをダブルクリック(またはアイコンをマウスの右ボタンクリック-「Bluetoothデバイスの表示」選択)で、「設定」-「デバイス」と同じ設定ウィンドウが表示されるようになりました。
以前は「CSR Harmony Wireless Software Stack」の独自(?)の設定ウィンドウがでましたが、現在はWindows
10の標準の設定ウィンドウが表示されます。
ここから「Bluetoothまたはその他のデバイスを追加する」-「デバイスを追加する」-「Bluetooth」で追加できます。

3. TeraTermで、方向が発信のCOMポートを選択する。
 -> Windows
10では2種類のCOMポートが作成されます。「設定」-「デバイス」-「その他のBluetoothオプション」で表示される「Bluetooth設定」ウィンドウに以下のように表示されます。
ポート 方向 名前
COM7    着信    Mindstorms EV3
COM8    発信    Mindstorms EV3 'Serial Port Profile'

以前は着信のポートをオープンし、Zmodemでデータを送ってもEV3からの応答がなく、PC側がずっと応答待ちになっていました。
発信のポートをオープンすれば、無事にZmodemでの転送が完了しました。

# 軽部様の最初のメールの質問について
>> 1.Bluetoothでのプログラムアップロードについて
>>     パッケージをダウンロードして解凍してできる「doc」フォルダー内の
>>  付属の手順書「mruby_on_ev3rt+tecs_build.pdf」では、
>> ①SDカードでEV3を起動
>> ②EV3とPCペアリング
>> ③EV3を受信待ちメニューにする(決定ボタンを押す)
>> ④tera termからEV3に接続
>> ⑤tera termからアプリ転送
>>
>>  となっていますが、
>>  ③の手順を実行すると、電源が落ちてしまうという問題が発生しております。
>>  β1.0.0などでは、上記の手順で動いていたと記憶しています。
>>
>>  試しに、手順を
>>  ①→②→④→③→⑤
>>  にすると、プログラムを転送して起動できるようになりました。
>>  この手順が正しいと考えてよろしいでしょうか?1. Windows10では

Windows10では1->2->3としても電源は落ちませんでした。
ただし、4でCOMポートをオープンできず、PCの再起動が必要なため、付属の手順書「mruby_on_ev3rt+tecs_build.pdf」通り
には出来ません。

>> 2.プログラムの起動について
>>  上記の手順によって、プログラムが起動できるのですが、
>>  1回目のプログラム転送では、プログラムが実行されません。
>>  2回目に転送すると、プログラムが実行されます。
>>  さらに、何度か転送すると、電源が落ちてしまうという現象が発生しております。

mruby-on-ev3rt+tecs_package-beta2.0.1.tar.gz
の
hr-tecs/workspace/bluetooth/tEV3Sample.cdlは、以下の通りになっています。

// import("VM1.cdl");
import("VM2.cdl");

VM2.cdlはVMを2個利用するように記述されています。
これに対し、VM1.cdlはVMを1個利用するように記述されています。

そこため、ここを以下のように、

import("VM1.cdl");
//import("VM2.cdl");

とVM1.cdlをインポートするように変更して保存し、

make realclean
make tecs
make depend
make

でmakeしなおすと、1回目のプログラム転送後、転送されたプログラムが起動します。

ただし、私の方でも(VM1.cdlでもVM2.cdlでも)何度か転送すると、電源が落ちたり、
assert()に引っかかったりします。

現時点では、「Bluetoothでプログラム転送して、転送したプログラムを起動」する
ことはできるが、「それを何回も繰り返しても正常動作する」ことは期待できない
と考えてもらったほうが良いと思います。

>> 3.SDから起動する場合について
>>  アプリケーションのバイナリファイルをSDカードにコピーして、
>>  SDカードから起動した場合に、
>>
>>  プログラムを実行した後に、戻るボタンを長押ししても、
>>  メニュー画面に戻らず電源が落ちてしまいます。
>>  以前は、メニューに戻ったと記憶しているのですが、
>>  これは、正常な動作でしょうか?
2016-05-11リリースの
https://www.toppers.jp/download.cgi/mruby-on-ev3rt+tecs_package-beta1.0.0.tar.gz

では、手順書「mruby_on_ev3rt+tecs_build.pdf」の記述の通り、「戻る(back)ボタン長押しでスタート画面へ」
になります。

しかし、2016-05-27リリースの
https://www.toppers.jp/download.cgi/mruby-on-ev3rt+tecs_package-beta1.0.1.tar.gz

では、SDカードから起動するときはter_ker()を呼び出して、電源が落ちるように変更されています。
ところが、手順書「mruby_on_ev3rt+tecs_build.pdf」はなにも変更されていません。

この時点でプログラムとドキュメントに差異が生じていました。

beta1.0.1以降、Bluetoothを利用しているとき、ボタン操作で電源を落とすには、「戻るボタン+左ボタン+右ボタン」を
同時に長押しする必要があります。


2017-06-08 17:42 GMT+09:00 yamane <yamayuri @ gmail.com>:

> 小南さま、みなさま
>
> 山根です。
>
> ※本題から少しそれてしまいますがご容赦ください。
>
> > 最近BUFFALOのBSBT4D09BKを購入して、パソコンとEV3をBluetoothでつなぐことを試しています。
> > ペアリングまでは出来ましたが、mrubyプログラムの転送には成功していません。
>
> とうとう購入されたんですね。
> ちなみに(mruby on EV3RT+tecsではなくて)EV3RT単体でもBluetooth接続できないでしょうか?
>
> EV3RTの方でも接続できないとなると、ETロボコン関係者にも問い合わせるなど情報収集先が増えますの
> で、まずこちらの切り分けをしていただけると助かります。(もし、EV3RTだけでもNGなようでしたら私の方からETロボコン方
> 面に問い合わせしてみますので)
>
> 以上、よろしくお願いします。
>
>
>
> 2017年6月8日 17:18 yasuo kominami(nifty) <ykominami @ nifty.com>:
> > 軽部様、山本様、皆様
> >
> > TOPPERSプロジェクト個人会員の小南です。
> > ETロボコン2017のmruby版教育用教材作成にTOPPERSプロジェクトのTECS
> > WGとして協力している関係でEV3の貸出してもらい、いろいろやっているところです。
> >
> > 私の環境は、64bit Windows 10 Home Edition (Build 15063.332)+Cygwinです。
> >
> > 最近BUFFALOのBSBT4D09BKを購入して、パソコンとEV3をBluetoothでつなぐことを試しています。
> > ペアリングまでは出来ましたが、mrubyプログラムの転送には成功していません。
> > TeraTermのメニュー「ファイル」-「転送」-「ZMODEM」-「送信」を選び、送信したいファイル(*.
> mrb)を選択しても、一向に送信が開始されませんでした。
> >
> > また、最近はBUFFALOの「CSR Harmony Sotware
> > Stack」に含まれるプログラムで障害が発生し(イベントビューアで確認)、操作できなくなり、何度アンインストール、
> 再インストールを繰り返しても正常に動作しません。
> >
> > Windows
> > 10の「設定」-「デバイス」-「Bluetoothとその他のデバイス」-「デバイスを追加する」-「Bluetooth」では「mindstorm
> > EV3」が見つかりませんでした。
> >
> > 上記以外にも、Windows 10
> > では、ペアリングができてCOMポートが作成されても、「管理者として」TeraTermを起動しないと、COMポートをオープンできませんでした。
> >
> > # EV3RTとmruby-on-ev3rt+tecsの関係
> >
> > EV3RTはTOPPES/HRP2のmindstrom EV3依存部とEV3用デバイスドライバとかダイナミックローダ機能などを持たせたものです。
> >
> > mrbuy-on-ev3rt+tecsはEV3RTの機能をTECSコンポーネントとしてまとめ(
> EV3RTが提供するAPIを機能ごとにまとめたラッパーとも言えます)、さらにmrubyのRite
> > VMもTECSコンポーネントとしています。
> > EV3の各デバイスを操作するAPIも、mrubyのクラスメソッド、インスタンスメソッドとてい提供しています。
> > さらに、version 1.0.では、システム全体で1個のRite VMを動かすことが出来ましたが、version
> > 2.0.0以降では、1タスク1VMまたは1タスク複数VMという形態で動かすことが可能になっています。
> >
> > ただし、どのように設定すればよいかなどに関してはドキュメント化されていません。
> >
> > EV3RTが提供するBluetooth機能を用いて、mrbuy-on-ev3rt+tecsでのプログラムのアップロードを実現しています。
> > そしてEV3RTのChangelog.txtでは以下のことが書かれています。
> >
> > 2016-03-16 Version Beta 6-2
> > * Miscellaneous
> >   - SIO_PORT_DEFAULT can be set to LCD, BT or UART in rc.conf.ini now
> >
> >
> > SDカードには以下のディレクトリ構成でファイルを配置します。
> >  uImage
> >  ev3rt/etc/rc.confi.ini
> >
> > 私が試してみたところ、Bluetoothを使う場合は、上記のrc.conf.iniを以下のようにする必要がありました。
> >
> >
> > [Debug]
> > DefaultPort=BT
> > [Bluetooth]
> > LocalName=Mindstorms EV3
> > PinCode=0000
> > IPAddress=10.0.10.1
> > [Sensors]
> > DisablePort1=0
> > [USB]
> > AutoTerminateApp=1
> >
> > この設定方法に関するドキュメントを見つけられなかったので、TOPPERS-ETROBO MLにおいて
> > 質問して、回答を得ることができました。
> >
> > https://www.toppers.jp/ETROBO-ML/2017-May/thread.html
> >
> > ただし、質問はBTではなくSIRIALに出力させる方法についてでした。
> >
> > 私の場合、うまくいかなかった時は、SIOポートのオープンでエラーが発生したことが、LCDに表示されました。
> >
> > # 戻るボタン長押しについて
> >
> > EV3RTにおいて、「戻るボタン+左ボタン+右ボタン」を同時に長押しすることによって電源断になります。
> > mrbuy-on-ev3rt+tecsにおいても「戻るボタン+左ボタン+右ボタン」を同時に押しても電源断になりますが、
> それが同時押しによるものなのか、それとも、以下に記述するように、mrbuy-on-ev3rt+tecsが提供するタスクが「戻るボタン」
> が押されたと判定して電源断になったのかは、まだ未確認です。
> >
> >
> >
> > mrbuy-on-ev3rt+tecsの提供するタスク群は、EV3RTにおいてアプリケーション用に開放されているタスク優先度を用いています。
> > そのうちの最も優先度の高いタスクのメインルーチンは、hr-tecs/tecs_lib/mindstorms_ev3/
> tEV3Platform.cのeTaskBody_main関数です。
> >
> > このタスクは、250ms毎に戻るボタンが押されているか確認し、Bluetooth向けとしてコンパイルされていなければter
> _ker()を呼んで終了します。
> >
> > hr-tecs/workspace/bluetoothにおいて(そこに存在するMakefileを用いて)
> コンパイルした場合にのみBluetooth向け
> > としてコンパイルされ、戻るボタンが押されたら、mrubyのRite VMをリセットし、Rite
> > VMを載せたタスクをactiveate(act_tsk()を呼ぶ)します。
> >
> > EV3のタッチセンサーがチャタリングとかバウンシングを発生させないとしても、単純に250ms周期で戻るボタンを確認しているだけなので、
> 人間がボタンを1回押したつもりでも、プログラムは何回も戻るボタンを押していると判定する可能性はあると思います。ただし、
> 私としてはBluetoothを用いた動作を確認できていません。
> >
> >
> >
> > 2017-06-08 14:23 GMT+09:00 Takuro Yamamoto
> > <t-yamamoto @ hopf.sys.es.osaka-u.ac.jp>:
> >>
> >> 株式会社アフレル 軽部さま
> >>
> >> 大阪大学の山本です.
> >>
> >> 報告ありがとうございます.
> >> 以下,回答させていただきます.
> >>
> >> 1.Bluetoothでのプログラムアップロードについて
> >>
> >> 私の方でも試してみましたが,
> >> ①→②→③→④→⑤の手順で正常に動作が確認できました.
> >> 特に,③と④の順序が入れ替わっても問題ないとは思っていますが、、
> >> 何度試しても電源が落ちてしまうのでしょうか.
> >>
> >> 2.プログラムの起動について
> >>
> >> VMの個数を2つにしていませんか.
> >> (tEV3Sample.cdl で,  VM2.cdl をインポートしていませんか.)
> >> もし,VMが2つなら2回目の転送でプログラムが実行されるという挙動で合っています.
> >>
> >> 何度か転送すると電源が落ちる現象については,こちらでも確認しており,
> >> 今後対応していきたいと思っています.
> >> (リセットを行う際に,mrubyアプリケーションをきれいに解放できずに
> >> メモリが足りなくなっていることが原因だと思います.)
> >>
> >> 3.SDから起動する場合について
> >>
> >> SD版では,バックボタンで「電源オフ」
> >> Bluetooth版では,バックボタンで「リセット」
> >> となっているので,正常に動作しています.
> >> メニューボタンに戻るのは,Bluetooth版のはずです.
> >>
> >>
> >> 以上です.よろしくお願いいたします.
> >>
> >>
> >>
> >> On 2017/06/08 2:58, karube wrote:
> >>
> >> お世話になります。
> >> 私、株式会社アフレルの軽部と申します。
> >> いつもありがとうございます。
> >>
> >> さて、mruby-on-ev3rt+tecs のパッケージβ2.0.1を
> >> 利用させていただいているのですが、
> >>
> >> いくつか質問をさせていただきます。
> >>
> >> 1.Bluetoothでのプログラムアップロードについて
> >>     パッケージをダウンロードして解凍してできる「doc」フォルダー内の
> >>  付属の手順書「mruby_on_ev3rt+tecs_build.pdf」では、
> >> ①SDカードでEV3を起動
> >> ②EV3とPCペアリング
> >> ③EV3を受信待ちメニューにする(決定ボタンを押す)
> >> ④tera termからEV3に接続
> >> ⑤tera termからアプリ転送
> >>
> >>  となっていますが、
> >>  ③の手順を実行すると、電源が落ちてしまうという問題が発生しております。
> >>  β1.0.0などでは、上記の手順で動いていたと記憶しています。
> >>
> >>  試しに、手順を
> >>  ①→②→④→③→⑤
> >>  にすると、プログラムを転送して起動できるようになりました。
> >>  この手順が正しいと考えてよろしいでしょうか?
> >>
> >> 2.プログラムの起動について
> >>  上記の手順によって、プログラムが起動できるのですが、
> >>  1回目のプログラム転送では、プログラムが実行されません。
> >>  2回目に転送すると、プログラムが実行されます。
> >>  さらに、何度か転送すると、電源が落ちてしまうという現象が発生しております。
> >>
> >> 3.SDから起動する場合について
> >>  アプリケーションのバイナリファイルをSDカードにコピーして、
> >>  SDカードから起動した場合に、
> >>
> >>  プログラムを実行した後に、戻るボタンを長押ししても、
> >>  メニュー画面に戻らず電源が落ちてしまいます。
> >>  以前は、メニューに戻ったと記憶しているのですが、
> >>  これは、正常な動作でしょうか?
> >>
> >> 上記の3つの問題は、弊社内の2台のEV3にて動作検証して、
> >> 同じ現象が発生しております。
> >>
> >> 以上、よろしくお願いいたします。
> >>
> >> =========
> >>  Karube Yoshifumi
> >> =========
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> --
> >> *-----------------------------------------------*
> >> 山本 拓朗  (Yamamoto Takuro)
> >> 大阪大学大学院 基礎工学研究科 システム創成専攻
> >> 社会システム数理領域 博士前期課程 (潮研究室)
> >> e-mail : t-yamamoto @ hopf.sys.es.osaka-u.ac.jp
> >> *-----------------------------------------------*
> >
> >
>
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://www.toppers.jp/pipermail/users/attachments/20170612/7a5f611d/attachment.html>