0)前提(おさらい)

相変わらずIP間違えてます。192.168.11.1ではなく192.168.11.3です

1)Mbedへのソフト焼きこみ

上述のようにつながっていること前提で、再起動後。MbedへのUSBをつなげなおすと

sudoのパスワードを入れると

「ファイルマネージャーで開く」をすると、Mbedのプログラムを書き込むためのストレージが開く

そこに、先までの作業で作った「はず」のMbed用ソフト「mros2_mbed.bin」をドラッグアンドドロップ。

場所は以下の絵を参照のこと。

Mbedは再起動して勝手に動き出します。

(LD3が500msecで点滅すると思います。

 これは500msecタスクがちゃんと呼び出されていることを示します)

2)ラズパイ実行

コンソールを三つ開き以下のように入力。

コンソール1:ros2 run cp_mbed_io_stab cp_mbed_io_stab_node

  ・・・ノード(ROS2用語でプログラムの単位)の実行命令

コンソール2:ros2 topic echo mbed2rasppi

コンソール3:ros2 topic echo rasppi2mbed

  ・・・指定したトピック通信をモニターしろ、という命令

これを1,2,3の順で実行すると・・・うまく動くとこうなる

で、同時にMbedの青LEDがつく

で、Mbed上の青いボタンを押すと

ボタンを押している間だけ数値の0⇔1が反転する。

そして、押している間は青色LEDは消灯し緑色のLEDが光る

何が起こっているか。

①Mbedが青色ボタンを見て、おされていたら「v_bluestat1=1」「v_bluestat2=0.0(floatです)」を送信

②ラズパイはそれぞれをv_bluestat_rpi1、v_bluestat_rpi2に転記してMbedに返す

③Mbedは帰ってきた信号を見てLED1(緑),LED2(青)の点灯状態を決める

です。

非常に基礎な動きですが、逆にこれができれば「複数のデータをMbedが取得し、ラズパイに送信して、それをラズパイが調理してMbedに駆動信号を送る」という分散処理の基本ができた、ということになります。

最悪、環境含めて配布して、それこそ「誰でも」できるチュートリアルを作る、という意味で本コンテンツを作りました。