ゆるく楽しむプログラミング

RaspberryPI Picoでパソコンを操作しよう

RaspberryPI Picoは500円の小型マイコンボードです。
RaspberryPIの名前が付いていますが、RaspberryPiとRaspberryPI PicoはJavaとJavascriptくらいに違う別物です。
とは言え、スペック上はArduinoの8倍以上の性能を誇り、小型で安価です。
最も大きな特徴は USB HDIデバイス(マウスやキーボード)としてパソコンに認識される事です。
マウスやキーボードのふりをしてパソコンを操作する事ができますからアイディア次第で使い道が広がります。

 ※RaspberryPI Pico単体なら
  スイッチ・サイエンス
  秋月電子通商
  買った方が安いです。

Amazon
秋月電子通商
SWITCH SCIENCE

フリスクはサイズ比較用
中にピッタリ入ります。
フリスク工作にピッタリかも。

…フリスクの方が入手困難だったりします…

開発環境 MicroPythonのセットアップ - Thonny(PythonIDE)のインストール -
開発環境 CircuitPythonのセットアップ
開発環境 ArduinoIDEのセットアップ

RaspberryPI Picoの開発環境(MicroPython)のセットアップ

RaspberryPI Picoは今のところC++言語、Pythonでプログラムを作ることができます。
ArduinoIDEでプログラムを作る事も出来るようですし、他のプログラミング言語でも動かせるようになると思われます。

現状で最もお手軽なのはMicroPythonで開発環境を整える方法です。
※SB HDIデバイス(マウスやキーボード)としてパソコンを操作する場合は、後述のCircuitPythonの方が便利です。

(1) BOOTSELボタンを押しながらUSBポートに接続する
  するとUSBストレージとして認識されフォルダが見えます
 

 このフォルダにある INDEX.HTM をWebブラウザで開きます。
 RaspberryPI Picoの公式サイトが開くので miocroPythonをダウンロードします。
 

 ダウンロードした UF2ファイル(rp2-pico-20210618-v1.16.uf2 : 赤字の部分は代わります)
 をRaspberryPI Picoのフォルダにコピーします

(2) Thonny(Python IDE)をインストール
 公式でもお勧めらしい Thonny(https://thonny.org/) をインストールします。
 

(3) RaspberryPI PicoでPython実行
 RaspberryPI Picoを(BOTSELボタンは押さないで普通に)USBに接続します。
 Thonnyを起動して初期設定を行います。
 

 RaspberryPi Picoの準備が出来ていて、正しく接続していれば、コマンドを受け付ける状態になります。
 

 公式サイトの raspberry-pi-pico-python-sdk.pdf に記載されているLチカをコピペして動かしてみます。
 -- Blink.py --

from machine import Pin, Timer

led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
    global led
    led.toggle()

tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

 Thonnyの実行ボタンをクリックすると、保存先を聞いてくるので RaspberryPi Picnoのmain.pyに上書きします。
 main.py は RaspberryPi Pico の電源を入れた時に自動的に実行されるプログラムです。
 

 正しく書けていればRaspberryPi PicoのLEDが点滅します。

RaspberryPI Picoの開発環境(CircuitPython)のセットアップ

RaspberryPi Picoをマウスやキーボードとして動作させるには、HDIライブラリの揃っているCircuitPythonを使った方が簡単です。

(1) CurcuitPythonのインストール
 RaspberryPi Pico用のCircuitPythonをダウンロードします。
 RaspberryPi PicoのBOOTSELボタンを押したままUSBに接続します。
 ダウンロードした UF2ファイルをRaspberryPi Picoにコピーします。
 ※MicroPythonの場合と手順は同じです。

(2) Thonny(Python IDE)の設定
 RaspberryPI Picoを(BOTSELボタンは押さないで普通に)USBに接続します。
 Thonnyを起動して初期設定を行います。
 ※CurcuitPythonはUSBストレージとして認識されるので[CURCUITPY]がドライブとして見えます。

 

 CircuitPythonの配布元の[ライブラリ]ページにサンプルコード集がありますので、その中からLチカをコピペしてみます。
 MicroPythonrとはピンの操作関数が違いますのでCircuitPython用に書く必要があります。

 -- Blink.py --

from machine import Pin, Timer

led = Pin(25, Pin.OUT)
tim = Timer()
def tick(timer):
    global led
    led.toggle()

tim.init(freq=2.5, mode=Timer.PERIODIC, callback=tick)

 Thonnyの実行ボタンをクリックすると、保存先を聞いてくるので CircuitPython deviceのcode.pyに上書きします。
 CircuitPythonでは電源を入れた時にcode.pyが自動的に実行されます。
 ※MicroPythonとはファイル名が違うので注意

 

 正しく書けていればRaspberryPi PicoのLEDが点滅します。

RaspberryPI Picoの開発環境(ArdinoIDE)のセットアップ

Arduino公式がRaspberryPi Picoをサポートしたので、特に問題なくArduinoIDEが使えます。
マルチコアもサポートされているので普通に使えると思われます。

現状ではボードライブラリが公式版(Mbedベース)と非公式版(adafruitベース)の2種類があります。
公式の方が安心感がありますが (;´・ω・)
adafruitベース版は HDI(USBデバイス)ライブラリが揃っており、ボード設定も細かく指定できます。

(1) ボードマネージャーのURL追加
 adafruit版を使用する場合に必要です。
 公式版しか使わないなら設定不要です。
 ArduinoIDEの[ファイル]-[環境設定]から 追加のボードマネージャーのURLに下記を追加
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
  

(2) ボードライブラリのインストール
 ArduinoIDEの[ツール]-[ボードマネージャー]から PICO で検索してインストール

  

(3) ボードタイプの選択(公式版:Mbedベース)

 公式(Mbedベース)のライブラリを使用する場合のボードタイプ選択
 


 adafruitベースのライブラリを使用する場合のボードタイプ選択
  

(4) スケッチ書き込み時の注意
 初回だけ、スケッチ書き込み前と書込み後でCOMポートの番号が変わるようです。
 続けて書込みとするとポートが設定されていないエラーになりますので
 書込み前にCOMポートが選択されているか確認してください。