名称 MIRS2203 ソフトウェア技術資料
番号 MIRS2203-SOFT-0002

版数 最終更新日 作成 承認 改訂記事
A01 2023.2.2 吉貞 初版

目次


1.はじめに

本ドキュメントは令和4年11月7日以降に行われたMIRS2203のソフトウェアの技術資料である。

2.参加者

清水太喜, 吉貞敬司

3.概要

各日の実施日、作業内容などを以下にまとめる。
Table.1 作業内容
実施日 作業内容 作業参考サイト
2022.11.07 ソケット通信の確立 【C言語】ソケット通信について解説
2022.11.11 input.cの作成 send() - ソケットに関するデータの送信
【Arduino入門編⑧】サーボモーターを動かす。PWM制御についての解説
2022.12.9 入力関係の見直し,Arduinoの設定 Arduinoの走行は入力をdistr.cから振り分けて使用する。リアルタイム入力の仕様上、入力なし(-1)が3回繰り返された場合にstop指令を出す方向性
2022.12.9 ~
2022.12.31
各種実装、デバッグ リアルタイム入力中に不具合が多い印象。遅延が増加する代わりに安定性を取ることにした。
サーボモータのプログラム実装【C言語】キーボード入力をチェックするWindowsの_kbhit関数とLinuxの自作関数
momo実装 以下参考サイト
ソフト:momoアプリケーションダウンロード(直リンク)
セットアップ:Momo を使ってみる
同一LAN内での相互通信:テストモードを利用して Momo を動かしてみる

ドットマトリクス実装 以下参考サイト
プログラム:Controlling RGB LED display with Raspberry Pi GPIO
demoプログラムのビルド:Table.2 記載コマンドでビルド
python3でライブラリの依存関係の読み込み:Table.2 記載コマンドでビルド
各モジュールの使用方法
demo(テストプログラム):Raspberry PiでP3 RGB LED Matrix Display 64×32 を動かすまで
2023.1.1 ~
2023.1.18
動作不安定解消 Arduinoとの接続切断&接続不可になる問題を確認。サーボモータの接続を切ると正常動作。これらから電源不足と推定してその他の検証を行った。Arduinoに外部電源(9~12V,1A)を接続していた為、少し盲点だった。
サーボモータに直接5Vの直流電源を別途接続することで安定動作を確認。発表会当日までに対応した。

4.詳細内容


11/04
・ソケット通信進捗
 参照したプログラムを使用してソケット通信の確認の完了
 scanfを用いて実際のプログラムに近い動作確認が未達成(11/7)達成(11/7)

11/11
・input.c進捗
 参考サイトからソケット通信,リアルタイム入力を実装。

12/19
・走行関係
 単体試験でリアルタイム入力からモータの動作を確認

12/21
・サーボモータ
 入力ごとに3~4度変更することで話したら止まるシステムを構築

1/13
・デバッグ
 走行のみであれば動作安定
 サーボ動作時の接続切断
 サーボ用の外部電源が必要
Table.2 外部ソフト、使用コマンド
ソフト名 コマンド
momo host(ras pi)側
./momo --use-sdl --show-me test

client(user)側
linux
./momo --use-sdl --no-video-device --show-me ayame --signaling-url ws://[Momo 1のIPアドレス]:8080/ws --channel-id test

win11,10
.\momo.exe --no-video-device --use-sdl --show-me ayame --signaling-url ws://[Momo 1のIPアドレス]:8080/ws --channel-id test
ドットマトリクス
Controlling RGB LED display with Raspberry Pi GPIO
demoプログラムのビルド
rpi-rgb-led-matrix/ make -C examples-api-use

python3でライブラリの依存関係の読み込み
sudo apt-get update && sudo apt-get install python3-dev python3-pillow -y
make build-python PYTHON=$(command -v python3)
sudo make install-python PYTHON=$(command -v python3)

RGBMatrixOptions():テストプログラムのコマンドラインで指定していた動作をスクリプトで指定するためにつかう。使用例はrpi-led~/bindings/python/samples/image-vierw.py, samplebase.pyを参考にした
RGBMatrix(options = [option])
引数のoptionにRGBMatrixOptions()で指定したオプションをいれる。使用例として同上のimage-viewer.pyを参考にした
RGBMatrix(options = [option]).SetImage([image])
[image]にはthumbnailなどを用いて表示させたい画像をドットマトリックスのサイズに調整したものにすること。これを実行すると[image]で指定した画像を表示できる。これも使用例は同上のimage-viewer.py
Table.3 input.c テストバージョン記録
関数 動作 備考
void enable_raw_mode(void) 入力モードを有効
void disable_raw_mode(void) 入力モードを無効
bool mykbhit(void)
void input_key(void) リアルタイムに入力した文字を文字コードにする。 上記の関数が組み込まれ、(int)keyに入力した文字コードが入る。



MIRS DATABASE