MIRSMG4 管理台帳へ戻る
名称 |
Arduino ソフトウエア解説 |
番号 |
MIRSMG4D-SOFT-0001 |
版数 |
最終更新日 |
作成 |
承認 |
改訂記事 |
A01 |
2017.04.19 |
牛丸真司 |
牛丸真司 |
初版 |
A02 |
2021.05.25 |
牛丸真司 |
牛丸真司 |
管理台帳フォーマットへの変更 |
Arduino ソフトウエア解説
1. 概要
- MG4の Arduino の標準ソフトウェアは、MG3S標準プログラムを参考に、2015年度の卒業研究で宇佐美昂礼氏(牛丸研究室)
が開発したものである。
- Arudino ソフトウェアの主要な役割は、RaspberryPi 側から受け取った動作指令に対応する走行制御を行うことである。
- ロータリーエンコーダのカウント値を利用して、モータの速度制御をPI制御で、機体の直進・回転制御をP制御で実装している。
- プログラム開発にはArduino IDE を用いる。
2. 動作概要
- プログラム処理の起点となるloop関数は mg4_arduino_ver*.ino に実装され、そこから slave または test_* ルーチンが
呼び出される。
- slave ルーチンは、RaspberryPi との通信、走行制御を一定周期で実行する。
- test_* ルーチンは、testモジュールに実装されたテストプログラムのいずれかを実行する。
- ロータリーエンコーダのA層信号を用いた割り込み処理により、エンコーダカウントが行われる。
3. モジュール構成
Arduino プログラムは下図のように、一定周期で各種の処理実行させるモジュール(slave)、RaspberryPiとの通信モジュール(raspi)、走行制御系モジュール(run_ctrl, vel_ctrl, motor, distance, encoder)と
その他のデバイス情報取得モジュール(io)からなる。
Arduinoソフトウェア モジュール構成図
これ以外に、これらのモジュールの動作試験を行うためのプログラムをまとめたテストモジュール(test)、loop関数を
実装するモジュール(mg4_arduino)がある。
4. バージョンアップ履歴
- Ver1.0 (2016年1月リリース)
- Ver2.0 (2016年3月リリース)
ver1.0との主な変更点
-
シリアル通信の送信データをunsigned char×3からsigned short×3に変更した。
これにより、負数や255超えの数も加工なしでやり取りできるようになった。
- Ver3.0 (2016年11月リリース)
var2.0との主な変更点
- RaspberryPi とのシリアル通信速度を 9600bps から 115200bps に変更した。
- Ver3.1.4 (2019年5月リリース)
var3.0との主な変更点
- run_ctrl() の直進制御をP制御から、PID制御に変更した。
- test_run_ctrl()の最後にmotor(0,0)を入れた。
(これがないと、run_ctrl()が繰り返し、実行されてしまう。)
- Ver3.2.0 (2022年7月リリース)