VSCodeの標準機能でフローチャートを表示する例
アイデアの壁打ちや考えを整理する際に,AIを利用している人は多いと思います.
〇〇を箇条書きにして...とか
さらに考えを進める時には,フローチャートが役に立ちますよね.
マークダウン(Mermaid記法対応)形式ファイルのフローチャートをVSCodeの標準機能でプレビューする例を示します.
ここでは,ドローンのRTH(Return to Home:異常事態が生じた時に,ホームポイントへ帰還する自動航行機能)を例に挙げます.
<フローのポイント>
トリガーの検知:電波喪失(フェイルセーフ),バッテリー低下,あるいは手動でのスイッチ操作によってRTHが起動する.
高度の調整:周囲の障害物(建物や木など)を避けるため,現在の高度が設定されたRTH高度より低い場合は,まず指定高度まで上昇してからホームへ向かう.
帰還と着陸:ホームポイント上空まで水平移動したのち,垂直に降下し,接地を検知してモーターを停止する.
<stateDiagram-v2 の特徴>
状態の遷移を表現:ドローンが「どのような状態(State)」を経由して「どのタイミングで次の動作に移るか(Transition)」を時系列で追いやすい.
ネスト(入れ子)構造:RTH発動中の細かなステップ(高度確認〜着陸まで)をグループ化してすっきりと見やすくまとめている.
VSCodeで下記のdrone_rth.mdを開き,右上のエディタービュー選択で

(左から2番目のプレビューを開くアイコン)をクリックする.
すると,次のようなフローチャートがVSCode内のプレビューとして表示される.
```mermaid
stateDiagram-v2
[*] --> 飛行中 : 離陸・飛行開始
state 飛行中 {
[*] --> 通常飛行
通常飛行 --> 異常検知 : 電波ロスト / バッテリー低下 / 手動スイッチON
}
異常検知 --> RTH発動 : 緊急モード移行
state RTH発動 {
[*] --> 高度確認
高度確認 --> 指定高度まで上昇 : 現在高度 < 設定RTH高度
高度確認 --> ホームへ移動 : 現在高度 >= 設定RTH高度
指定高度まで上昇 --> ホームへ移動
ホームへ移動 --> 降下開始 : ホーム上空到着
降下開始 --> 着陸判定 : 地面接近
}
着陸判定 --> 着陸完了 : 接地検知
着陸完了 --> [*] : モーター停止
%% 例外処理(障害物回避)
RTH発動 --> 障害物回避 : センサー反応
障害物回避 --> ホームへ移動 : 回避完了
