デコピンの強さの要素の一つとして指の速さがあり,透過型と反射型の光センサー2種を使って測ってみています。
![](https://stat.ameba.jp/user_images/20231223/23/pta55/e1/1a/j/o1200087915380645084.jpg?caw=800)
それぞれのセンサーで別プログラムにしているのは切り替えが面倒です。
と,ここでRaspberry Pi Picoはマルチコア(デュアルコア)だよというささやき声が聴こえてきました(^^;;;;;;;
この程度の装置に使うには牛刀っぽいPicoですが,2種のセンサー入力は扱いが少しずつ違うので別コアにし,結果の出力部は統一するのが楽そうなのでやってみました(^^)。
なお、私が使っているArduino IDE のボードマネージャは "earlephilhower/arduino-pico" です。
1.セットアップ部
デュアルコアのプログラムにはsetup1()は必須ですが,空でも良いので普通のsetup()に全部書いても特に問題はありません(^^;;;;;
なお,6行の char* は const char* にした方が良いのでしょうかね。コンパイラ?が何やらぶつくさ言います。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/27/cb/j/o0948045915385572287.jpg?caw=800)
2.ループ部
loop()はCore0で,loop1()はCore1で並列して動きます。
実際にデコピンする透過型センサーと指の速さだけみる反射型センサーでは少し扱いが違いますが,どちらでも切り替えなしに使えるようにはなりました。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/40/0d/j/o0982072815385572283.jpg?caw=800)
3.結果出力部
結果出力部はloop()とloop1()の両方から呼ばれます。あまり必要ないとは思いましたが気持ちだけビジーフラグを立てています(^^;;;;。
出力は,入力元のセンサー,経過時間,m/s,km/hをシリアルモニタから出しています。2つのセンサーそれぞれのセンサー間隔が異なるので,経過時間の比較は直接にはできません。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/04/56/j/o1012058815385572290.jpg?caw=800)
速度の計算式も追加しています。正しいかどうかはわかりませんが,それっぽい値は出ています(^^;;;;;。
整数型BASIC言語のPICAXEを触ってきたからでしょうか,どうにも"float型”の扱いが良くわからず,,できるだけ整数型で計算できるようには考えています。
Raspberry Pi Picoのマルチコアを使うにはどうかと思うような単純な動作ですが,切り替えなしで両方から入力できるのは便利です。
ま,センサー接続などいろいろな試作にPICOは扱いやすいですね(^^)。
![](https://stat.ameba.jp/user_images/20231223/23/pta55/e1/1a/j/o1200087915380645084.jpg?caw=800)
それぞれのセンサーで別プログラムにしているのは切り替えが面倒です。
と,ここでRaspberry Pi Picoはマルチコア(デュアルコア)だよというささやき声が聴こえてきました(^^;;;;;;;
この程度の装置に使うには牛刀っぽいPicoですが,2種のセンサー入力は扱いが少しずつ違うので別コアにし,結果の出力部は統一するのが楽そうなのでやってみました(^^)。
なお、私が使っているArduino IDE のボードマネージャは "earlephilhower/arduino-pico" です。
1.セットアップ部
デュアルコアのプログラムにはsetup1()は必須ですが,空でも良いので普通のsetup()に全部書いても特に問題はありません(^^;;;;;
なお,6行の char* は const char* にした方が良いのでしょうかね。コンパイラ?が何やらぶつくさ言います。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/27/cb/j/o0948045915385572287.jpg?caw=800)
2.ループ部
loop()はCore0で,loop1()はCore1で並列して動きます。
実際にデコピンする透過型センサーと指の速さだけみる反射型センサーでは少し扱いが違いますが,どちらでも切り替えなしに使えるようにはなりました。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/40/0d/j/o0982072815385572283.jpg?caw=800)
3.結果出力部
結果出力部はloop()とloop1()の両方から呼ばれます。あまり必要ないとは思いましたが気持ちだけビジーフラグを立てています(^^;;;;。
出力は,入力元のセンサー,経過時間,m/s,km/hをシリアルモニタから出しています。2つのセンサーそれぞれのセンサー間隔が異なるので,経過時間の比較は直接にはできません。
![](https://stat.ameba.jp/user_images/20240104/20/pta55/04/56/j/o1012058815385572290.jpg?caw=800)
速度の計算式も追加しています。正しいかどうかはわかりませんが,それっぽい値は出ています(^^;;;;;。
整数型BASIC言語のPICAXEを触ってきたからでしょうか,どうにも"float型”の扱いが良くわからず,,できるだけ整数型で計算できるようには考えています。
Raspberry Pi Picoのマルチコアを使うにはどうかと思うような単純な動作ですが,切り替えなしで両方から入力できるのは便利です。
ま,センサー接続などいろいろな試作にPICOは扱いやすいですね(^^)。