2025年1月27日

020-1.SPIKEセンサー自作入門-第1回「マイコンの下準備」

この連載では「レゴ エデュケーションSPIKEプライム(以下、SPIKE)」で動作するセンサーの作り方を紹介します。センサーを自作して、市販のセンサーにはできないような面白い使い方を考えてみましょう。センサーを作るには電子工作のスキルが必要となります。様々な危険がともないますので、充分に注意して行いましょう。なお、以下の内容によって生じた損害については保障できかねますのでご了承ください。
SPIKEアプリおよびハブOSは、SPIKE App Legacyを利用しています。SPIKE App3での動作は未確認となりますのでご了承ください。(文/松原拓也)

◆ SPIKE用のセンサーを作る

まずは、SPIKE用の自作センサーの一例として、筆者が作った「DIY Distance Sensor」を紹介します。
https://github.com/Afrel-SPIKE-Prime-tec/diydistsensor
これは、「Seeeduino XIAO」または「M5StickC」というマイコンボードを使った自作のセンサーです。ラージハブに接続すると、ラージハブは「きょりセンサー」として認識します。写真は「ニセ」のきょりをラージハブに伝えている様子です。 この連載でまったく同じ「DIY Distance Sensor」を作ってもいいのですが、マイコンボードの入手性にも不安があります。そこで、今回は「Raspberry Pi Pico」を使ってみたいと思います。Raspberry Pi Picoなら確実に購入することができるというメリットがあります。しかも値段が安いです。

以下のものを用意します。
・「Raspberry Pi Pico」。
・ピンヘッダ(20pin×2個、細ピンタイプ、ピッチは2.54mm)。
・USBケーブル(Micro USB)。
・ブレッドボード。
・パソコン。

筆者の場合、「Raspberry Pi Pico」は秋葉原のテクノロジアで買いました。「Raspberry Pi Pico」にはピンヘッダが付いていないので、そのままではブレッドボードにさし込むことができません。そこで、自分でハンダ付けしないといけません。ピンヘッダは秋月電子通商で購入しました。40pinのものを買ってきて、ニッパーで20pinに切断しています。

ハンダ付けに必要な道具です。
ハンダこては1000円くらいで売っている20~30ワットのもので充分です。 ハンダは「電子工作用」とか「プリント基板用」を使います。

ピンヘッダをハンダ付けします。
ハンダ付けの方法はいろいろありますが、筆者の場合はユニバーサル基板でピンヘッダを固定して、その上からハンダ付けを行いました。 ピンヘッダはできるだけ垂直に取り付けます。基板を3枚ほど重ねて、ピンがテーブルに当たらないようにしています。

ピンヘッダのハンダ付けが完了すると、こうなります。
ピンヘッダが垂直になっているか、ハンダがちゃんと付いているか、ハンダが付きすぎていないかを確認します。 ピンヘッダの向きについては、ハンダ付けをある程度してしまうと直せなくなってしまうので、2ピンくらい付けてから確認しておいたほうが確実です。

Raspberry Pi Picoをブレッドボードにさし込みます。

Raspberry Pi Picoの初期設定を行います。Raspberry Pi Picoのプログラミングには「C/C++」と「MicroPython」のどちらかを選択することができます。ここでは「MicroPython」でプログラムを作ることにします。
USBケーブルを使って、パソコンのUSBポートとRaspberry Pi Picoを接続します。
なお、プログラミングの方法については、「Get Started with MicroPython on Raspberry Pi Pico」という本(PDF)が無料で読めて、参考になるのでオススメです。ただし、英語が書かれているので、読むのが大変かもしれません。
https://hackspace.raspberrypi.com/books/micropython-pico

パソコンに接続すると、このように仮想的なドライブがファイルエクスプローラーの中に出現します。写真はWindowsの場合です。
そして、このドライブの中にファームウェアのイメージファイル(rp2-pico-~.uf2)をドラッグ&ドロップします。この作業は購入時に最初に一度だけ行います。
イメージファイルは次のページ(公式サイト)からダウンロードします。
https://www.raspberrypi.com/documentation/
microcontrollers/micropython.html

続いて、「Thonny」を起動します。「Thonny」はPythonのIDEです。IDEは「Integrated Development Environment(統合開発環境)」の略で、「まとめてプログラムが作れる環境」というような意味です。
「Thonny」の読み方ですが、YouTubeの動画を見たかぎりでは、「ソニー」だったり、「スォニー」だったり「フォニー」だったり、人によってバラバラでした。どれが正解か、なんとも言えない状態です。
もし、Thonnyがパソコンに入っていない場合には、https://thonny.org/の公式サイトからインストーラをダウンロードして、インストールしておきましょう。インストール直後、「Language(言語)」の項目は「日本語」に設定します。

今回、特に重要な設定がこちらです。メニューから「ツール→Options」を選択して、「インタプリタ」タブに切り替えます。そして、「Thonnyはコードの実行にどのインタプリタまたはデバイスを使用すればよいですか?」の項目を「MicroPython(Raspberry Pi Pico)」に設定します。
これで、PythonのプログラムがRaspberry Pi Picoの中で動くようになります。 この設定を忘れると、プログラムがパソコンの中で動くだけになってしまいます。

先に紹介した「Get Started with MicroPython on Raspberry Pi Pico」の中からLED点滅のプログラム(Blink)をコピー&ペーストしてみました。
ここでは動作をチェックしたいだけなので、プログラムの詳しい意味については紹介しません。次回以降に紹介します。

キーボードのF5キーを押すか、「Run current script(緑色の丸)」をクリックすると、プログラムを実行します。 この時、ファイルは保存されている必要があります。保存方法は「This Computer」を選択します。ファイル名は「led.py」としました。
基板上の緑色のLEDが5秒おきに点灯/消灯します。LEDはすごく小さい(幅1ミリメートルくらい)のですが、点灯していることがハッキリとわかります。
Pythonでプログラムを動かすことができました。

今回は、マイコンボードの下準備だけで終わりました。 次回はセンサーを作る方法について、さらに具体的に紹介したいと思います。

当ブログの内容は、弊社製品の活用に関する参考情報として提供しております。
記載されている情報は、正確性や動作を保証するものではありません。皆さまの創意工夫やアイデアの一助となれば幸いです。