a24a24a24のブログ -23ページ目

a24a24a24のブログ

アメピグ残党。
釣り、温泉、お出かけ、パソコン。最近、電子工作。

Raspberry Pi Pico RP2040+Arduino IDEのマルチコアプログラミングの試作で、

猫ふんじゃったをピコピコ演奏してみました。 

 

 

 

 

 

 

既存のライブラリは使わず、デジタル出力PINを高速で上下して音階を鳴らしています。 

単音だと寂しいので、2和音をトレモロ演奏してみました。

(ドとミの和音=高速でドミドミドミ・・・)

 

 

 

 

 

プログラムは一画面に収まりました。

短くするため行儀悪い表現がありますが、ご容赦を。

 

冒頭で12音階の周波数を定義し、5オクターブ分展開しています。

msc1[]、msc2[]の文字列が2和音分の楽譜に当たります。

発音部loop1()は前回のLEDチカチカを100倍高速にしたもので、実質2行です。

2コアに発音・制御を割り振れるので、シンプルなプログラムが組めました。 

 

 

 

 

そろそろ放置しているESP32も手を付けねばと思います。

おしまい。

 

 

 

 

 

 

 

一年以上、電子工作やプログラミングをサボっていました。

 

そろそろ再開せねば、と思っていたところ

amanoya3様のブログ(ameblo.jp)

「Raspberry Pi Picoのマルチコア処理」が紹介されていて、これは欲しい!と。

速攻でラズパイピコを購入しました。

 

 

 

 

 

 

親指一本分くらいの大きさ。AliExpressで517円。

単体で立派なコンピュータで、プログラムを転送すると様々な動作制御が可能。

 

 

 

Raspberry Pi Picoの特徴は、CPUが「2コア」。

Arduino IDE環境を使うと簡単に並列処理=マルチコアプログラミングができる、そうです。

 

マルチコアとは何かというと・・・。

 

 

 

 

こんな感じ(適当)

2コアのマイコンは頭脳に当たる部分が、1→2に増えています。

同時に2つの処理ができる分、速い。

 

 

しかし常に速いとは限らず。

並列処理が嚙み合わず「二人羽織でわんこそばの早食い」みたいな状態になると

お椀や箸を奪い合って互いの足を引っ張ったり、止まったりすることになります。

 

プログラム次第で、

「大量の計算をひたすら二匹並行で解く」

「一匹が歌に集中して、もう一匹はタイミングをとって指揮する」

みたいに使うと、速度が上がったり簡潔なプログラムが組める可能性があります。

※偉そうに語っていますが、私はマルチコアのプログラムを試すのは初めて。間違っていたらすみません。

 

 

 

 

というわけで、Raspberry Pi Picoを使った簡単なプログラムを考えてみました。

 

お題:

「LEDで、1秒間に5回点滅・その後1秒間休み、をくり返す」

 

 

 


 

ざっくり説明。

片方のコアで秒間5往復=100ミリ秒ごとにHIGH / LOWを切り替え。

もう一方のコアで1秒ごとにHIGH / LOWを切り替え。

両方ともHIGHのときにLEDを点灯させることにしました。

 

 

 

ソースがこちら。

 

 

 

めちゃくちゃシンプルに出来ました。

 

loop()とloop1()がそれぞれコアに割り振られ、同時実行されるので

1秒と100ミリ秒ごとにフラグをひっくり返して、アンドを取ってLEDに出力しています。

チカチカチカチカチカ シーーン みたいな点滅を繰り返します。

 

 

 

 

Raspberry Pi Pico、簡単にマルチコアプログラミングが出来ることがわかりました。

試作途中のESP32と合わせて、いろいろ試していきたいと思います。

おしまい。

 

 

 

 

 

 

 

 

今年は元旦から大きな地震がありました。

被災地の方は今も苦しい生活が続いているようで、ニュースを見るたび言葉を失います。

一日も早い復興と安息の日々が戻ってくることを願っています。

 

 

 

めでたく干支を意識する年始まりではありませんでしたが

今年は辰年。

龍の年といえばぴったりの漫画(YouTubeコミック)があります。


 

 

【ルリドラゴン】

 

 

 

 

昔の雑誌「アフタヌーン」に載ってそうな雰囲気の、ゆるーいお話です。

好みは分かれそうですが。

15分くらいですし、興味のある方、時間のある方、よろしければ一度どうぞ。