趣味の電子工作と釣りについて。電子工作は、おもに変換器作成。釣りはおもにトラウトの管釣り。
最近、園芸ばかりやっていたが、寒くなってきたこともあり、電子工作なガジェット作りを再開することにした。とりあえず、作るものは、車用の外付けメーターのようなもの。AmazonとかでもOBDメーターとかいろいろ売っているが、まああんな感じなもの。以前S14に乗っていたときにはトラストのインフォメーターを付けていたが、それよりもイケてるものにしたいかな。
まずは、調査として、次のような素材を入手した。
・CPU:STM32F103C8T6 (互換品)
・LCD:ILI9341コンパチ、SPI接続
車との通信はCANを使用する予定。レーシングメーターにならい、レスポンス重視でOBD-IIにはしない予定。使用中のフルコンがCAN対応(Link G4X)なので、それにあわせる予定。
開発環境はArduinoにする予定。STM32Cubeが標準開発環境らしいが、使ったことないもので、いきなり高難度のものを作るのは厳しい。
さて、Arduino開発環境のコアとライブラリを選ぶ。
コアの選択肢は
①mapleコア (別名Arduino STMコア、roger'sコア、rogerclarkmelbourne)
②STMコア(別名Arduino Core STM、stmduinoコア)
・・・ややこしい。。。
①は/users/ユーザー/Arduino/hardwareディレクトリの下にGitから取ってきたArduino_STM32-masterを解凍して環境を作る。コンパイラは含まれていないので、Arduino SAM boards ( 32-bits ARM Cortex-M3 ) という別のコアも入れる(コンパイラのみ使う)。
②は環境設定でボードマネージャのURLにstm32duinoのリンクを追加して、ボードマネージャを使ってインストールする。ネットには古いURLが書いてあるサイトが非常に多いので、注意が必要。2021年12月時点では、こちら↓が最新の模様。
ttps://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
こちら↓は古いので、絶対に使ってはならない。ネットの情報だと、こっちが一般的になっているみたい。。。
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
どっちがいいかわからなかったので、両方試すことにした(なった)。
次、ライブラリの選択肢としては、
1⃣ Adafruit_ILI9341
2⃣ Adafruit_ILI9341_STM
3⃣ TFT_eSPI
などがある。実際は、もっといろいろ試したが、まともに動いたのが、この3つ。てか、サンプルを動かそうと思っても、ほとんどのライブラリは一筋縄ではいかない。
まず、コア①と②の違いだが、
①mapleコア
情報が多い、コンパイルが非常に速い(STMコアの1/4ぐらいの時間)、対応機能は少なめ
②STMコア
情報少な目、コンパイル劇遅、対応機能は多い
ということで、機能さえ許せば①mapleコアがいいが、今回はSTMコアを選ぶことにした。その理由は、①はCAN通信に対応していないから。一応、phonoっていう人がCANのライブラリを出している。が、5時間ぐらいがんばった結果、まったく動作しなかった。。。。
次、ライブラリの選択肢だが、これはパフォーマンス重視で選びたいところ。こういうライブラリには、たいていgraphictestというベンチマークプログラムが付いてくるので、これで測定してみた。尚、SPI2で接続しているので、SPI1の60~70%の性能しか出ていない模様。
maple(roger's)コアがぶっちぎりの高速なのだが、CANが使えないことが惜しすぎる。。。
まずは、調査として、次のような素材を入手した。
・CPU:STM32F103C8T6 (互換品)
・LCD:ILI9341コンパチ、SPI接続
車との通信はCANを使用する予定。レーシングメーターにならい、レスポンス重視でOBD-IIにはしない予定。使用中のフルコンがCAN対応(Link G4X)なので、それにあわせる予定。
開発環境はArduinoにする予定。STM32Cubeが標準開発環境らしいが、使ったことないもので、いきなり高難度のものを作るのは厳しい。
さて、Arduino開発環境のコアとライブラリを選ぶ。
コアの選択肢は
①mapleコア (別名Arduino STMコア、roger'sコア、rogerclarkmelbourne)
②STMコア(別名Arduino Core STM、stmduinoコア)
・・・ややこしい。。。
①は/users/ユーザー/Arduino/hardwareディレクトリの下にGitから取ってきたArduino_STM32-masterを解凍して環境を作る。コンパイラは含まれていないので、Arduino SAM boards ( 32-bits ARM Cortex-M3 ) という別のコアも入れる(コンパイラのみ使う)。
②は環境設定でボードマネージャのURLにstm32duinoのリンクを追加して、ボードマネージャを使ってインストールする。ネットには古いURLが書いてあるサイトが非常に多いので、注意が必要。2021年12月時点では、こちら↓が最新の模様。
ttps://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
こちら↓は古いので、絶対に使ってはならない。ネットの情報だと、こっちが一般的になっているみたい。。。
https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json
どっちがいいかわからなかったので、両方試すことにした(なった)。
次、ライブラリの選択肢としては、
1⃣ Adafruit_ILI9341
2⃣ Adafruit_ILI9341_STM
3⃣ TFT_eSPI
などがある。実際は、もっといろいろ試したが、まともに動いたのが、この3つ。てか、サンプルを動かそうと思っても、ほとんどのライブラリは一筋縄ではいかない。
まず、コア①と②の違いだが、
①mapleコア
情報が多い、コンパイルが非常に速い(STMコアの1/4ぐらいの時間)、対応機能は少なめ
②STMコア
情報少な目、コンパイル劇遅、対応機能は多い
ということで、機能さえ許せば①mapleコアがいいが、今回はSTMコアを選ぶことにした。その理由は、①はCAN通信に対応していないから。一応、phonoっていう人がCANのライブラリを出している。が、5時間ぐらいがんばった結果、まったく動作しなかった。。。。
次、ライブラリの選択肢だが、これはパフォーマンス重視で選びたいところ。こういうライブラリには、たいていgraphictestというベンチマークプログラムが付いてくるので、これで測定してみた。尚、SPI2で接続しているので、SPI1の60~70%の性能しか出ていない模様。
コア | STM | STM | STM | maple | STM |
ライブラリ | Adafruit_ili9341 | Adafruit_ili9341 | Adafruit_ili9341 _STM※ |
Adafruit_ili9341 _STM |
TFT_eSPI |
SPI設定 | software | hardware | hardware | hardware | default |
Screen fill | 20,977,419 | 4,038,734 | 607,443 | 341,501 | 509,483 |
Text | 1,001,104 | 232,005 | 391,305 | 56,788 | 102,278 |
Lines | 9,416,033 | 2,105,339 | 2,373,464 | 295,436 | 622,156 |
Horiz/Vert Lines | 1,694,722 | 336,677 | 71,240 | 29,874 | 56,786 |
Rectangles (outline) | 1,071,852 | 213,486 | 62,720 | 20,294 | 37,433 |
Rectangles (filled) | 41,494,480 | 8,383,502 | 1,266,324 | 709,570 | 1,048,175 |
Circles (filled) | 4,737,970 | 994,918 | 901,059 | 144,201 | 284,465 |
Circles (outline) | 4,102,111 | 928,387 | 1,854,738 | 245,911 | 230,202 |
Triangles (outline) | 2,154,609 | 478,946 | 560,409 | 66,245 | 144,875 |
Triangles (filled) | 13,950,920 | 2,751,883 | 980,072 | 277,898 | 496,978 |
Rounded rects (outline) | 2,012,161 | 425,180 | 585,568 | 87,019 | 107,493 |
Rounded rects (filled) | 43,203,450 | 8,346,793 | 1,493,471 | 724,952 | 1,139,529 |
※ag88版 |
maple(roger's)コアがぶっちぎりの高速なのだが、CANが使えないことが惜しすぎる。。。
PR
この記事にコメントする