名称 MIRS1901 詳細設計書(ソフトウェア)
番号 MIRS1901-SOFT-0001

版数 最終更新日 作成者 承認者 改訂記事
A01 2020.02.10 佐藤 第2版

ドキュメント内目次


  • 1.はじめに
  • 2.機能概要
  • 3.モジュール構成
  • 4.フローチャート
  • 5.スレッド構成
  • 6.テスト項目
  • 7.コーディングルール   

  • 1.はじめに



    本ドキュメントは、MIRS1901 Cocktail Projectの詳細設計(ソフトウェア)に関するものである。


    2.機能概要

    機能概要をtable1に示す。
    Table.1 機能概要
    機能 内容
    走行機能 webアプリで入力されたプログラムをもとに動作する。
    基本動作指令(逐次処理)(例:10秒なにもしない)
    割り込み条件指定(例:もし何かが当たったならば、10秒前に進む)
    webアプリによるプログラミング機能 基本動作指令(逐次処理)(例:10秒なにもしない)
    割り込み条件指定(例:もし何かが当たったならば、10秒前に進む)
    led機能 プログラムで指定されると機能する。(LEDパネル)
    感圧機能 Arduinoへ命令を送る
    超音波センサ mirs本体についている。プログラムで指定されると機能する。




    3.モジュール構成

    Table.3 Arduinoのモジュール
    モジュール名 概要
    motor モーターのPWM制御
    encorder ロータリーエンコーダー値のカウント
    distance エンコーダー値を走行距離に変換
    vel_ctrl モーターの速度PI制御
    run_ctrl 機体の直進、回転のP制御
    io ioピンのデータの取得
    raspi RaspberryPiとの通信
    slave RaspberryPiとの命令で動作
    *border 境界線の検知



    "*"がついているものが新規に作成するモジュールである。


    Fig.2 Arduinoモジュール構成図
      

    4.フローチャート

      3.1 主要動作


      3.2 mirs側動作

    サンプル
      3.3 webアプリ動作

      主要動作を図.1に示す


    サンプル
    図.1 主要動作フローチャート

    5.スレッド構成

    スレッド構成は以下の通りになる。
    ・アプリスレッド
    ・動作スレッド
    ・通信スレッド

    6.テスト項目

    機能ごとのテスト

    テスト名 テスト内容
    アプリテスト アプリでプログラムすることができ、 CSVに変換されてmirsに送信されるか
    CSV受け取りテスト
    (app→mirs)
    mirsがcsvを受けとることができるか
    走行テスト 送信されたプログラム(csv)通りに走行できるか
    外部入力テスト 感圧装置が機能するか、超音波が機能するか
    外部出力テスト LEDが発光するかどうか(ストラックアウト時ボールが当たった際発光する)
    .


    7.コーディングルール

    ・インデントをそろえる。
    ・引数、関数はアルファベット小文字を使用し、2単語以上はアンダーバーで仕切る。
    ・関数名は頭にモジュール名を付ける。
    ・プログラム再編集時は編集前のファイルを別ファイルに保存し、変更点をメモ帳等に文章でまとめる。



    MIRS1901 管理台帳へ戻る