RaspberryPi のシリーズとしてリリースされている RaspberryPi Pico。
カテゴリーとしては Micro Controller で、ネットワークがなく 基本的には OS もインストールできないマイコンです。
同じようなカテゴリーとしては、 Arduino や micro:bit, ESP32開発ボード などがあります。
今までは Arduino などで電子工作していたのですが、Arduino IDE の環境が面倒で RaspberryPi で Python で工作することが多くなっていました。
この Pico は、マイコンの言語として MicroPython が使用できます。また、CircuitPython などの異なるPython、 C/C++ SDK でも直接プログラミングできます。
CircuitPython を使うと、手軽に Pico を HID として動作させることも出来るのも魅力です。Picoで、簡単にコンピュータのキーボードやマウスをエミュレーションできます。
HID: Human Interface Device.一般的にキーボードやマウスもHID
Arduino でも、HIDとして動作できますが、Arduino IDEが面倒で工作が進まなかったんです。
Table of Contents
RaspberryPi Pico のセットアップ
RaspberryPi Pico は、ピンヘッダーがついていませんので購入後に ピンヘッダーをハンダ付けする必要があります。ピンヘッダー付きの RaspberryPi Pico H もありますので、ハンダが面倒であれば Pico H を購入することも出来ます。
※) RaspberryPi Pico 公式ページから引用
工作をするには、このピンにピンヘッダーを準備するか、直接ハンダで接続することになります。
私は後述するブレッドボードキットを使っているので、ピンヘッダーをハンダ付しています。
最終的にケースに入れる場合にもユニバーサル基板にメスのヘッダーをつけて接続しています。
こうすることで Pico を使い回すことができるので便利です。
Pico に MicroPython をインストール
RaspberryPi Pico で、Micro Pythonが使えるように設定をしていきます。
今回は、RaspberryPi 4 をコンピュータとして使い プログラミングと制御をしてみます。
まずは、Pico の BOOTSEL を押しながら microUSBを接続します。
コンピュータに認識されると、Pico のメモリーが「RPI-RP2」ストレージのように表示されます。
フォルダーの中に INDEX.HTM がありますので、こちらをWEBブラウザで開くと RaspberryPi Pico の本家サイトを開くことが出来ます。
Micro Python を選択すると、初期のセットアップ方法が説明されていますので、その内容に従って UF2 ファイルをPicoにコピーします。
MicroPython IDE : Thonny から制御
Pico に MicroPython の準備が出来たら、コンピュータから Pico に プログラムを書き込む準備をします。
Pico に MicroPython(や CircuitPython)を書き込んで管理するための IDE として、公式でもすすめている Thonny を使用します。
Thonny は、Windows,macOS,Linux をサポートします。
RaspberryPi OS デスクトップ環境の場合には、最初から プログラム カテゴリーに Thonny がインストールされていますので環境構築の手間がありません。
簡単な動作確認: LEDチカチカ(Lチカ)
Thonny で接続が確認できたら、スケッチを描いて工作を始める前に…
本当に動いているかの Lチカ(LEDチカチカ)でプログラム環境と実行の確認をしておきます。
1 2 3 4 5 6 7 8 9 | import machine import utime led = machine.Pin(25, machine.Pin.OUT) while True: led.value(1) utime.sleep(5) led.value(0) utime.sleep(5) |
作成した プログラムを RaspberryPi Pico のルートフォルダーに main.py という名前で保存します。
main.py で保存したプログラムは、Picoの電源を接続すると自動的に実行するプログラムになります。
Pico 単体で動作させる場合には、main.py が実行されます。
さらに アナログI/O の確認:温度測定
Lチカで基本的なデジタルI/Oの確認が出来たら、アナログI/Oも確認しておきます。
RaspberryPi Pico には A0からA3 のアナログI/Oがあり、そのうち1つはPico本体の温度を測定するセンサーに接続されています。
この値を取得することで Pico の温度を測定することが出来ます。
1 2 3 4 5 6 7 8 9 10 11 12 | import machine import utime sensor = machine.ADC(4) conversion_factor = 3.3 / (65535) while True: tempval = sensor.read_u16() * conversion_factor temperature = 27 - (tempval - 0.706)/0.001721 print(temperature) utime.sleep(5) |
今のところコードは少ないですが、以下のGitHubでソースコードを公開しています。
工作に便利なブレッドボード
工作するときに便利なのが、ブレッドボード。
ただ、ジャンプワイヤーを準備したりと面倒なので、私はすべてセットになっている 「Breadboard Kit for RaspberryPi Pico」というキットを使用しています。
このブレッドボードキットでは、Picoを差し込むコネクタと接続ピン、ミニブレッドボードと、他のインターフェースとして ブザー、タクトスイッチ x4、LED x4 と 3.3V,5V,GND が最初から使える状態になっています。
簡単な検証であれば、ブレッドボードにセンサーをつけてつなげるだけで簡単に使えます。
注意点
マニュアルのFAQにも記載があるのですが、電源を入れるとブザーが鳴ってしまうことがあります。マニュアルでは、制御されていない(使わない)場合には、BEEP ピンをGNDに接続するようにと記述があります。
ブザーを使うケースは少ないので、不要であれば取り外してしまっても良いかもしれません。
準備が出来たので、色々な工作をしていきます。
基本的には、アナログI/O, GPIO と I2C 接続のデバイスで工作するので、簡単な配線の接続で工作していきます。
SPI 接続のデバイスは… 必要になったら工作します。