akira.kei が 2026年05月13日11時54分28秒 に編集
コメント無し
本文の変更
[次の記事はまだ書いていない>]() ## Maker Pi RP2040 ずいぶん前に[Maker Pi RP2040](https://akizukidenshi.com/catalog/g/g116939/) というボードを確か1500円程度で買って死蔵していた。今(2026/5)はもう2000円なんだな。 
秋月で買えるRaspberry Pi Pico(RP2040)互換品の内、最も安いのが[秋月オリジナルのRP2040](https://akizukidenshi.com/catalog/g/g117542/)だが、これの倍程度で多機能ボードが買える!長¥お買い得!!ってことで買ったんだが、他にもあるし、大きさ的に持て余すし、もっと安いのを見つけたので死蔵してたんだけど、思い直してちょっと使ってみた。
秋月で買えるRaspberry Pi Pico(RP2040)互換品の内、最も安いのが[秋月オリジナルのRP2040](https://akizukidenshi.com/catalog/g/g117542/)だが、これの倍程度で多機能ボードが買える!超お買い得!!ってことで買ったんだが、他にも互換ボードがあるし、大きさ的に持て余すし、もっと安いのを見つけた(↓)のでこのボードは死蔵してたんだけど、最近、思い直してちょっと使ってみた。
 ## MicroPythonではなくCircuitPythonなの? RP2040搭載ボード(Raspberry Pi Pico互換品)はかなり多彩だが、開発環境も多い。 - 公式SDKを使ってC /C++ - Arduino IDE(2種ある) - Thonny/MUでMicroPython - Thonny/MUでCircuitPython どれも一長一短あるが、ここではCircuitPythonを使ってみる。Adafruitってところの独自開発Pythonで真っ向からMicroPythonに喧嘩を売ってるんだけど、HW側にかなり寄り添って互換性(抽象化)にそれほど拘らない印象がある。 例えばMaker Pi RP2040には「M1A」と名前が付いたスイッチがあるが、MicroPythonはそのスイッチがどこに接続されているのか調べて呼ばなければいけないのに対し、CircuitPythonではその名前でアクセスできる。一方で、他のボードにはM1Aなんてスイッチは無いからスクリプトの互換性(抽象性?)は損なわれる。 ここでは「Maker Pi RP2040」ボードの使い方をまとめておくわけで、その目的ならCircuitPythonの方が妥当だろう。 ただ、CircuitPythonでは意図的に割り込みハンドラ(ISR)がサポートされていない。ポーリングでなんとかするか、適切なライブラリを利用することになる点には注意が必要だ。これによりMicroPythonに移植するのが難しい点が出てくるし、マイコン電子工作の一般的?な考えからはちょっとずれているから頭を切り替える必要がある。 ## CircuitPython本体とライブラリのダウンロード CircuitPythonは[ボード毎にダウンロードファイルが異なる](https://circuitpython.org/downloads)。一方で[巨大な共通ライブラリ](https://circuitpython.org/libraries)も用意されている。本体ファイルは例によって「BOOTボタンを押しながら接続して、出てきたディスクにコピーする」方法で良い。MicroPythonと異なり、CircuitPythonではCIRCUITPYというディスクが常にマウントされるので、この中のlibフォルダにライブラリをコピーするのは直感的にできる。 ## IDEはThonnyで十分 世の中には全てのIDEをVS Codeで統一したい勢が居る?けど、CircuitPythonでの開発はThonnyで十分だ。異論は認めるけど、VS Codeは整えるのに手間と実力が必要だけどCircuitPythonならThonnyで十分だよね。  ## Maker Pi RP2040のペリフェラル Maker Pi RP2040のボード上には様々なブツが載っていて、CircuitPythonの```board```から名前でアクセス可能だ。列挙してみると以下のようになる。 - GP0-7、GP16-17、GP26-28: インラインの青LED - ブザー - M1A/M1B/M2A/M2B/GP20/GP21スイッチ - NeoPixel x2 (ws2812, RGB-LED) - アナログ入力(電源電圧モニター) - GROVE x7 - DCモーター接続端子x2 - サーボモーター接続端子x4 残念ながら可変ボリュームは載ってない。また全てのGPIOが何らかのコネクタに接続されていて3線以上の接続(SPIとかI2Sとか)が面倒くさい。 ## 次の記事は 実際にはMaker Pi RP2040や、Circiuit Pythonの使い方は簡単なのであまり記事で紹介するまでも無いのだが、最初から入っている```Out-of-the-box Demo for Cytron Maker Pi RP2040```をざっと紹介することで基本機能見てみる。