Skip to content

TomoNi1130/serial-manager-micro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

serial_manager マイコン側 仕様

複数マイコンを同時に管理するために作った。

基本仕様

  • マイコンの識別にはID(1~254)を使っている。0は使えない
  • PC・マイコンどちらを初期化しても自動的にIDの特定、通信の接続が行われる
  • 必要なピンを指定するとあとからIDの確認、変更ができる
  • float,boolをデータとして送信可能

送信

  • SerialMsg構造体でデータ送信が可能
  • send_log(std::string) でログを送信 ※PC側ではこの文字列は一切使えない
  • send_msg(SerialMsg) で情報を送信、topicで公開される

受信

  • pcから受け取ったデータは received_flags(bool),received_nums(float) に格納される
  • 値を使用したい場合はインスタンスから直接取得する

IDの確認・変更

  • インスタンス宣言時にピンを指定すると、IDの確認・変更機能が有効化
  • IDを宣言時に設定していると変更は無効
  • 一度ボタンを押すとセットIDモードになり、その後ボタンを押した回数がIDとなる
  • しばらく押さずにいるとセットIDモードが終了、IDの変更が適応される。

注意事項

  • logmsg はバス詰まり対策のため、一定間隔(20ms)を空けて送信される
  • 同時に送信すると、送られない場合がある

導入方法

  • ROS2側の手順:ros2_serial_manager README
  • serial_managerlib フォルダに入れてインクルード
  • SerialManager クラスのインスタンスを作成
    (引数:mbed::BufferedSerial,ID)-> IDの変更不可
    or
    (引数:mbed::BufferedSerial, 表示用ledピン , 変更用ユーザーボタンピン)->初期IDなし(ソフトリセットしても現在の値を保持)
    or
    (引数:mbed::BufferedSerial,ID, 表示用ledピン , 変更用ユーザーボタンピン)->初期IDあり(ソフトリセットすると初期に戻る)

小ネタ

  • 実はpc側でserial_managerが立ち上がっていなければ何も送らない。
    なので、あろうがなかろうがほぼ変わらない状態になる。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages