2026/09/08(火)2・3・4限
★STM32の環境構築及び表示系、センサ系てすと¶
完成¶
ALEOは基盤に一部センサを除くほぼすべての機能の搭載を完了した。またST-LINKやUARTモジュールなどのデバックようのデバイスがすべて揃ったためファームウェアの開発を今回から行った。
デバックのはじめなので各センサの値が正常に取得できるかの調査を行った。
SSD1306¶
以下SSDと呼称。I2Cにより正常にアクセス成功。
STM32と直接続するI2CなのでシンプルにSSDのアドレスでアクセスできた。
画面の表示には適切なドライバが見つからなかったためドライバを自作した。ドライバに使用した文字はASCII英語の5x7である。以下のサイトから文字コードは頂いた。文字間隔の問題で実際の文字サイズは基本的に6x8となる。
https://www.ccsinfo.com/forum/viewtopic.php?p=34689
実際のソースコードはリポジトリのfirmware/ALEO/App/Src/SSD1306.cを参照
VL53L0X¶
以下VLと呼称。I2Cにより正常にアクセス成功。
こちらは既存のドライバが見つかったためそれを使用。今回のプロジェクトではVLは先ほどのSSDとは違いTCA9548A(以下TCAと呼称)を通しているため、一度TCAのチャンネル開閉処理が必要となる。そのため既存ドライバにTCAの処理を追加し左右前後の値の取得を可能にした。
参考にさせていただいたドライバのリポジトリは以下
https://github.com/Squieler/VL53L0X---STM32-HAL
PJ85775P¶
以下PJと呼称。I2Cにより正常にアクセス成功。
基盤温度を正常に取得することができた。ドライバは自作
AHT20¶
以下AHTと呼称。I2Cにより正常にアクセス成功。
室温、湿度ともに正常に取得することができた。ドライバは自作
BMP280¶
以下BMPと呼称。I2Cからのアクセスに失敗。
現在原因を究明中。考えられる原因としては以下が考えられる
-
アドレスミス データシートから参照したのでおそらくこれではない
-
初期不良 何らかの初期不良でI2Cでアクセスするのが不可能になっているのかもしれない。
-
アクセス先 BMPへの直アクセスではなく別の所にアクセスする方式の可能性がある。(BMPがアナログセンサだった場合などはアナログの値をI2Cに対応させるICを経由する可能性がある。なおBMPはI2Cに対応しているはずである。)
次回行うこと¶
-
気が向いたらBMPの原因究明
-
Git/JJの簡単操作システムのチーム内共有
簡単操作システム
https://github.com/mikannohako/EasyController