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

yasuo kominami(nifty) ykominami @ nifty.com
2017年 6月 8日 (木) 17:18:56 JST


軽部様、山本様、皆様

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/20170608/37fa97aa/attachment.html>