-
Notifications
You must be signed in to change notification settings - Fork 0
3_2_CodeExplanation
Soi Dev edited this page Nov 9, 2024
·
4 revisions
プログラムの環境構築の際に実行するファイル
プログラムの環境構築で必要なファイルがまとめられたフォルダ
プログラムの環境構築の際に導入するライブラリの名前がまとめられたファイル
プログラム実行時に出力されるログを記録したファイルが置かれるフォルダ
メインプログラムファイル
このプログラムがアプリ起動時に自動的に実行される.
| ファイル名 | 用途 |
|---|---|
| _flask.py | アプリとの通信に使用するウェブサーバ |
| battery.py | バッテリーの電圧値取得(ADC) |
| bme280.py | 温湿度センサデータ取得 |
| bno055.py | 9軸センサデータ取得 |
| browser.py | ブラウザ操作・管理 |
| buzzer.py | ブザーの管理 |
| camera.py | カメラの管理・画像認識 |
| cpu.py | CPU関連のデータ取得 |
| display.py | ディスプレイ操作 |
| encoder.py | モータエンコーダ取得 |
| fan.py | ファン操作 |
| gps.py | GPSデータ取得 |
| led.py | LED操作 |
| led_sudo.py | LED手動操作 |
| motor.py | モータ操作 |
| servo.py | サーボ操作 |
| static/index.js | ウェブのプログラム |
| static/video_settings.json | カメラの画質設定等 |
| templates/flask.js | ウェブの通信プログラム |
| templates/index.html | ウェブのレイアウトコード |
main.pyを自動的に開始
~プログラムスタート~
・logの初期化
・センサ等初期化
・カメラ初期化・起動
・SkyWay通信用webサーバ起動
・ブラウザ起動
・インターネット確認
・SkyWay通信用web開く
・GPS受信処理設定
~ループ処理~
・各センサのデータ取得
・CPUの温度に応じてファンonoff
・ログに各センサデータ出力
・送信キューに各センサデータまとめを送る
~ループ処理2~(_flask.py)
(ラズパイからデータを送る処理)
・送信キューにデータが入っていたら最初のデータを送る
~受信イベント~
(アプリからデータが来た時|非同期処理)
・受信したデータをそのまま送信キューに送り返す
・受信したデータの判別
・受信したデータを登録されているコマンドと照らし合わせて、コマンドの処理を実行
アプリで実行することができるコマンドについて紹介する.
※引数が複数の時はカンマで区切る
<コマンド> <引数1>,<引数2>,...,<引数n>
使い方の例(左のモータの出力を0.3, 右のモータの出力を0.4とする)
bothMotor 0.3,0.4
| コマンド | 引数 | 処理 |
|---|---|---|
| ConnectionCheckPing | - | 定期確認(基本手動では使わない) |
| restart | - | プログラムだけ再起動 |
| reboot | - | Raspberry Pi再起動 |
| getGPScon | - | GPSのデータを定期的に受信 |
| getGPSraw | - | GPSの生データを定期的に受信 |
| onGPSran | - | 緯度経度情報の乱数モードON |
| offGPSran | - | 緯度経度情報の乱数モードOFF |
| stopGPS | - | GPSの定期的なデータ受信を終了 |
| ping | - | pongが返ってくる |
| leftMotor | power (Float) | 左モータの出力(0.0~1.0)を決める |
| rightMotor | power (Float) | 右モータの出力(0.0~1.0)を決める |
| bothMotor | left_power (Float), right_power (Float) | 両方のモータの出力(0.0~100.0)をそれぞれ決める |
| servo | angle (Float) | サーボの角度(-90.0~90.0)を決める |
| buzzer | freq (Float) | ブザーの周波数を決め,鳴らす |
| updateVS | height (int), width (int), frame_rate (int), isAvailable (int) |
アプリに送る動画の高さ[px],横幅[px], FPS,有効(1)/無効(0)を決める |
| led | n (int),r (int),g (int),b (int) | n番目のLEDの色(r,g,b)を決める |
| onFan | - | ファンをONにする |
| offFan | - | ファンをOFFにする |
| autoFan | - | ファンを自動制御モードにする(デフォルト) |
受信したコマンドの判別処理はmain.pyの下部で行われている.

onFan,offFan,autoFanと同じようにelif文で判別処理を続けて書けばオリジナルのコマンドを作成することができる.
なお,上書き保存後にRaspberry Piかプログラムの再起動が必要である.

NAFT NCS Explorer Kit