Raspberry Pi PicoとWindows上のMicroPython

この記事は質問に答えます:という質問にお答えします。また、Windows 8.1上で "Board CDC"(MicroPythonをインストールするとPicoが表示される)の正しいドライバをインストールする方法も紹介します。(MicroPythonとCircuitPythonの違いについても説明します-ボードは "CircuitPython CDC Control "と呼ばれます)。
最後に、PuTTYを使ってPicoに接続する方法と、Thonny(Picoに統合されたPython IDEです!)を使ってより快適に接続する方法を紹介します。
はじめにPicoとMicroPythonとは?
のです。 Raspberry Pi Pico は、Raspberry Piの新しいマイコンボードで、自社開発のRP2040マイコンチップを搭載しています。
Raspberry Piは、RP2040にたくさんのクールな機能を設計した(私のお気に入りはPIO - プログラマブルIOで、正確なタイミングなどを必要とする多くのハードウェア・インターフェースをエミュレートできる)。- Picoは、RP2040が実装された本当に素晴らしいリファレンス・プラットフォームだ。
Raspberry Pi PicoとRaspberry Pi Zero Wはどう違うのですか?
のような)マイクロコントローラとの違いです。 ピコ)とシングル・ボード・コンピューター(仮にパイゼロwピコを直接(たとえばC言語で)プログラムするのだ、) オペレーティングシステムなしであるのに対し パイゼロW は通常Linuxを実行する。
これには、リアルタイムのようなメリットもあるが、デメリットもある。使用しているハードウェアについてより深く知る必要があり、モダンなオペレーティング・システムでは当たり前の多くの機能(ファイル・アクセスなど)を実装する必要がある。
PicoはPi Zero Wに比べてリソースが少ない(RAMが大幅に少ない、VideoCore GPUがないなど)が、消費電力が少なく、前述のPIOやアナログ入力(ADC)などの追加機能がある。
Picoは、ネットワーク接続、HDMI出力、カメラ入力、処理などを必ずしも必要としないプロジェクトに適しています。言い換えれば、ハードウェアとのインターフェイス、長いバッテリ寿命などを望むのであれば、Picoはあなたのためにあるのです。
ピコ用のソフトウェアはすでに存在しますか?
で提供される別のソフトウェアを使用して、Pico をフラッシュすることができます。 UF2ファイル (Pico getting started guideをご覧ください。).Raspberry Piは、いくつかのUF2ファイルを提供しています。
- MicroPython (この記事の焦点となる)と、近い親戚であるCircuitPython
- LEDを点滅させる (ブリンクUF2)
- ハローワールド (端末で接続すると "Hello world "と表示されます。)
- ピコプローブ (1台のPicoでもう1台のPicoをデバッグできます。)
- フラッシュメモリリセット (フラッシュメモリーを空っぽにします)
他にもたくさんあります。 の例は、ここにあります。 (Cコード)です。
注意してください。 特にMicroPythonがアップデートされているかもしれないので、必ず Raspberry Pi Picoのスタートページ.
MicroPython
もし、フルインしてC言語でプログラミングするのが少し難しく感じるのであれば、MicroPythonで始めることができます。この場合、Raspberry Pi Picoにいくつかのソフトウェアがプリインストールされており(MicroPython UF2ファイル)、小さなPythonインタプリタが動作します。
Python 3標準ライブラリをフルサポートしていないため、MicroPythonと呼ばれています。MicroPythonはPicoのような制約のある環境での使用を想定しています。PicoのRAMは2MBで、これではPython 3がもたらすすべてを満たすことはできません。チェック CPythonとMicroPythonの違いについては、こちらのGithubページをご覧ください。.また、こちらは公式 MicroPythonホームページを、そして MicroPythonの公式ドキュメント.
CircuitPython
注:ほとんどの手順は、Windows上のCircuitPython RP2040ベースのボード、例えばAdafruit Feather RP2040にも適用できますが、少し異なる手順を踏む必要があります - この記事でその違いを指摘します。
CircuitPythonは、基本的にAdafruit社が開発しているMicroPythonの亜種です。
フラッシュ後のデバイスマネージャでは、ボード自体の呼び方が変わります(CircuitPython CDC Control)-もちろん、別のソフトウェアが必要です。まず、必要なものは以下の通りです。
- Adafruit Feather RP2040 ダウンロードページ (CircuitPython 7.0.0 UF2ファイル)
今回は、Windows上のRP2040搭載機器にCircuitPythonライブラリをインストールする方法と、Thonnyを使ったプログラムの実行・停止方法についてもご紹介します。
MicroPython UF2には何が入っているのですか?
PicoにMicroPythonがインストールされると、シリアルコンソールを使ってPicoに接続し(この記事で方法を紹介します)、Pico上でPythonのコードを書き始めることができるようになります。
PicoへのMicroPythonのインストール
- Picoから電源を抜く
- BOOTSELボタンを押し、押したままにする
- microUSB-USBケーブルでPicoとPCを接続します。
- これでBOOTSELボタンを離すことができます。

Pico は RPI-RP2 としてファイルシステム上に表示されるはずです。

(補足:RPI-RP1ってなんだったんだろう?)
PicoはFAT32のフラッシュドライブをエミュレートしており、その中に2つのファイルが入っています。INDEX.HTM と INFO_UF2.TXT の2つのファイルがあります。

実際、Windowsのドライブマネージャーを見ると、Picoは128MBのFATフラッシュドライブであることがわかります。
間違ってもPicoにファイルを保存しようとしないでください 此の方: 無言で削除されます。書き込まれたように見えても、それはWindowsが操作をキャッシュしているだけで、あなたのファイルは消えてしまうのです。PicoのFlashは2MBしかないってもう言ったっけ?RP2040は最大16MBのフラッシュをサポートすることになっています。
補足:インドに行ったとき、128GBのサムドライブを買った。そのドライブを返品してお金を取り戻そうとしたら、その業者はもういなかった。
しかし、正しい種類のファイルであるUF2ファイルをこのドライブにコピーすれば、認識されて書き込まれます。

ダウンロードした後、ブラウザからドラッグ&ドロップするか、コピー&ペーストしてください。コピーが完了すると、Picoは自動的に再起動し、フラッシュ・ドライブは表示されなくなります。
注:CircuitPythonを使用する場合、もちろんこのステップではCircuitPython UF2ファイルを代わりに使用します。

Picoは現在(再起動後)MicroPythonが動作しており、USB経由でシリアルポート(COM-port)を提供しています。(専門用語では、USBデバイスクラス02となります =。 コミュニケーションとCDCコントロール およびUSBデバイスのSubClass02)。
ピコへの接続、Windows 10
Windows 10では、必要なCOM-Portドライバ(usbser.inf)が自動的にインストールされ、アクティベートされるので、簡単にPicoに接続することができるのです。
どのCOMポートにあるのかを確認するには、デバイスマネージャーを開いてください。

ここで、ポート(COMとLPT)の下に、新しいUSB Serial Deviceと、COMポート番号(接続するためにすぐに必要になります)が表示されます。

これが本当にMicroPythonが動作するPicoであるかどうかを再確認するために、次のようにします。
View」をクリックし、「Devices by Container」を選択します。

Board in FS mode "という項目があり、"USB Composite Device "と "USB Serial Device "の2つのノードがあります。COM3)".COM3は重要で、PuTTY(後述)に使用する必要があります。

デバイスを右クリックし、コンテキストメニューから適切なプロパティを選択することで、さらにデバイスを調査することができます。FSモードのBoardのプロパティは空です。

USB Composite Deviceは、Bus reported device descriptionに "Board in FS mode "と表示されます。

注:これはMicroPythonが動作しているPicoです。別のソフトウェアでリフラッシュすると、ここで違う結果が表示されるでしょう
USBシリアルデバイス自体には、興味深いプロパティが表示されます。

注意:CircuitPythonを使用している場合、ボードデバイスの説明は "Board CDC "ではなく "CircuitPython CDC Control "になります。


何を探しているのかがわかっている場合は、ハードウェアID(VID=ベンダーID、PID=製品ID)が便利です。

VID_2E8A → ベンダーIDは 2E8A (16進数)または 11914 (10進数)であり、これは Raspberry Pi
PID_0005 →プロダクトIDは 5MicroPythonを実行する際にボードに表示されるものです(デフォルトの製品IDは 3)
参考:Chromeブラウザのデバッグログ
この情報は、Chromeブラウザーを使っても取得することができます。
をクリックすると、現在接続されているデバイスが表示されます。

Windows 10に話を戻します。

上のスクリーンショットにあるように、Windows 10は自動的にusbser(USB Serial Driver)をインストールしてくれますので、すぐにPicoを使い始めることができます。
プッチー
PuTTYはtelnet/SSHクライアントです。Picoに接続し、MicroPythonのREPLと対話するために使用します。 PuTTYのダウンロードはこちら.(ほとんどのWindows 10のインストールには、64ビットのMSI Windows Installerを使用することができます)。
PuTTYを起動します。正しい設定を入力します。

- 接続の種類は、以下のように設定する必要があります。 シリアル
- Serial Lineは、上記で調査した結果に応じた値に設定する必要があります。私の場合、これは COM3.あなたの場合は、おそらく違うものになるでしょうね。
- スピードはとりあえず9600のままでOK
開く」をクリックすると、「ターミナル」が開きます。

最初のプロンプトを表示するには、Enterキーを1回押します。
そして、プロンプトの後にPythonのコードを書き始めれば、すぐに解釈されます。古典的な "Hello world "を入力してみてください。
print("Hello world!")
MicroPythonは次のように返信します。
Hello world!
予想通り🙂。
最初の接点ができたので、ハッピーコーデを祈ります
Thonny: Python IDE, Picoで動く!
PuTTYの使用は、長時間のセッションや、Picoに多くのコードをロードしたい場合には、あまり快適ではありません。幸いなことに、オープンソースのアプリケーションであるThonny(Raspberry Pi OSにデフォルトでインストールされています)がWindowsでも利用でき、Pico(MicroPythonとCircuitPython)のサポートを統合しています
ステップ1
Thonnyのダウンロードはこちらを選択し、インストールします。
ステップ2
Picoを上記のように接続し、COM番号を取得します。必要であれば、上記のPuTTYの方法で、Picoに接続できるかどうかテストすることができます。
ステップ3
Thonnyを起動し ツール メニューを選択します。 オプション

ステップ4: Pico をインタプリタとして設定する
Interpreter」タブをクリックします。デフォルトでこの画面が表示されます。

MicroPython (Raspberry Pi Pico)をクリックし、選択します。

ノート: を使用している場合 CircuitPythonを選択する必要があります。CircuitPython(汎用)「このドロップダウンメニューから
ポートは「try to detect port automatically」のままでも、特定のポートを設定することもできます(正しいポート番号を決定する方法は上記で見ています)。

注:ポートがドロップダウンに表示されるはずなので、そこにあることを再確認するのがよいでしょう。

ポートの自動検出を試みる」のままにしています。 OK]をクリックすると、設定が保存されます。
これで画面はこのように変わります。

ステップ5:テスト
これで、Picoとの通信テストができるようになりました。
タイプ
print("Hello world")
をMicroPythonのプロンプトに入力し、Enterキーを押します。

ピコが反応するのがわかると思います。
おめでとうございます!WindowsでThonnyとPicoの接続に成功しました。
もっと複雑なスクリプトThonnyでLEDを点滅させる
先ほどのREPL(read evaluate print loop)もいいですが、もっと複雑なプロジェクトでは、まずソースを入力したり、ファイルから読み込んだりしたいものです。
Thonnyウィンドウの上部はこんな使い方ができるんです。
コードを入力します。私の例では、オンボードのLEDを点滅させ(これはハードウェアのhello worldに相当します!)、永遠にループさせます。
import time
from machine import Pin
print("Welcome to Pico example 2, blinking an LED")
led = Pin(25, Pin.OUT)
# For demo purposes, we have an infinite loop here
while True:
led.high()
time.sleep(0.5)
led.low()
time.sleep(0.5)
Pythonでは適切なインデントに注意してください(Pythonでは空白は制御のために使われます!)。

ここで「実行」ボタンをクリックします

Thonnyが保存先を聞いてきます。

Raspberry Pi Picoを選択します。

ファイル名を hello.py としました - OK をクリックして保存します。
OKボタンが押されると、コードの実行が開始されます。PicoのオンボードLEDが点滅し始め、Shellに出力されるのがわかるはずです。

注:%Run -c $EDITOR_CONTENT コマンドを入力する必要はなく、Thonnyが自分でやっていました。以下の出力は、私たちのコードからのものです。
WindowsのThonnyでCircuitPythonを動かす。
同じ手順で、インタープリタにCircuitPython(generic)を選択します。

Thonny shellでは、別の確認が表示されます。

Adafruit CircuitPython 7.0.0 on 2021-09-20; Adafruit Feather RP2040 with rp2040
Windows 8.1

Windows 8.1では、シリアルドライバーは自動的にロードされず、デバイスはエラー状態で表示されます。
注意:CircuitPythonの場合、デバイスの名前は代わりに "CircuitPython CDC control "となります。同じ手順です。

Board CDC(MicroPythonが動作するPico)のプロパティはこんな感じです。


このデバイスのドライバがインストールされていない(Code 28)と表示される。
この問題を解決するためのソリューションが ザディグツールは、無料でダウンロードできます。
注目です。 Zadig 2.7に含まれるinstaller_x64.exeに「Trojan.Tedy」があることは、多くのウイルススキャナが認めているようです。 これは誤報かもしれませんが、しかし:私は、以下のものを使用することをお勧めします。 Zadig-2.5.exe その代わり、この警告は出ませんでした(2回目の検証)。念には念を入れましょう。

ザディグ は、USBデバイスにアクセスするための汎用USBドライバーのインストールを支援します。
ここでは、USBシリアル(CDC)ドライバを使用します。
上のドロップダウンメニューからBoard CDC (Interface 0)を選択し、他のフィールドでUSB Serial (CDC)を選択します。ドライバーのインストールをクリックします。
インストール後、ドライバがusbser(v1.0.0.0)に設定されていることが確認できます。

そして、Windows10で説明したように、正しいCOMポート番号で、接続できるようになります。


傍点

Windows 7のピコ/シリアルポート
お客様の声 ザディグ Windows7でもシリアルポートドライバをインストールすることで、Picoが使えるようになりました。必ず ザディグ2.5新しいZadig 2.7は、ドライバのインストール中にウイルススキャナによってフラグが立てられたためです。(理由は不明ですが、念には念を入れ、古いものを使用します。)
ステップバイステップのガイドが必要な場合は、上記のWindows 8.1用のガイドをチェックしてください。
WindowsでCircuitPython RP2040ボードのライブラリのインストールとプログラミングを行う。
AdafruitのFeather RP2040などを使っている場合、CircuitPythonを使いたいことがあるかもしれません。Adafruitには NeoPixel RGB にライブラリがインストールされている必要があります。 リブ フォルダーに保存されます。
(注 ライブラリのダウンロードはこちら - Download Project Bundle "のリンクをクリックしてください)。
プロジェクトのバンドルフォルダを展開すると、CircuitPython 6.xとCircuitPython 7.xの2種類のサブフォルダが表示されます。

をフラッシュしたため、ここではCircuitPython 7.xバージョンを使用しています。 7.0.0 CircuitPythonバージョン.
エクスプローラーに「CIRCUITPY」というドライブが表示されていることがわかると思います。

のです。 リブ フォルダは、CircuitPythonの新規インストールでは空です。Windowsのエクスプローラを使って、ここにファイルをコピー&ペーストするだけです。
ダウンロードしたlibフォルダから必要なライブラリをCIRCUITPYのlibフォルダにコピーしてください。

これで、code.pyも上書きできるようになりました。

Thonnyを使って、code.pyファイルを編集し、実行することができます。Thonnyの開くアイコンをクリックし、「Where to open from」ダイアログで「CircuitPython device」を選択します。

そして、ここでcode.pyを開くことができます。

これでThonnyのウィンドウは次のようになります。

キーボードのF5キーを押すか、実行アイコンをクリックします。

うまくいけば、Adafruit Feather RP2040のNeoPixel RGB LEDが、さまざまな色で点滅し始めるはずです。おめでとうございます🙂。
色や色の変化までの時間を変更したり、他の機能を追加することもできます。あるいは、他の機能を追加することもできます。
修正したスクリプトを実行できるようにするには、シェルで Ctrl + C を押します(または Thonny メニューで Run > Interrupt Execution を選択します)。これで、スクリプトを再度アップロードすることができます。
デバッグに嬉しいのは、Thonnyではコンソール出力が得られるので、print文を使って情報を出力できることです。

Adafruit CircuitPython Bundle
Adafruitでは、複数のライブラリをZIPでまとめてダウンロードできる便利なサービスを提供しています。対応するadafruit-circuitpython-bundle-7.x.-mpyまたは-6.x.mpyをダウンロードする。 これ.Windowsのエクスプローラーを使うだけで、上記で説明したようなライブラリの一部または全部をインストールすることができます。 Adafruit Feather RP2040には十分な容量があるので、全ライブラリをアップロードすると約1.2MBの容量になります。コピーには数分かかるかもしれません。

その他のメモ
このガイドの手順をCircuitPythonにも使用できますか?
もちろん、そうです。例えば、Windows 8.1でZadigを使用することができます(詳細は上記の説明をご覧ください。 Zadigのバージョン2.5.730を使用してください!)。ボードCDC "デバイスの代わりに "CircuitPython CDC control "デバイスを探すことになります。

Zadigでドライバのインストールに失敗?
アンチウィルスソフトが原因かもしれない。もしかしたら誤報かもしれませんが、確証はありません。私のVirus scanner (Bitdefender)は次のように教えてくれました。
"Die Datei C:\UsersMaxThreader_x64.exe ist Gen:Variant.Tedy.11444 infiziert und wurde in die Quarantäne verschoben." msgstr "" "インストールされたドライバーのインストールに失敗しました。We推奨は、システムスキャンを実行することです。"

多くのウイルススキャナーは、installer_x64.exe(USBドライバの一部)に「Trojan.Tedy」があることを認めているようです。代わりにZadig-2.5.exeを使用してみることをお勧めします。 こちらからダウンロードできます。.私はZadig-2.5を使って、CircuitPython USBシリアルドライバをWindows 8.1インストール(私のメインマシンです)にインストールしました。
ThonnyでPicoのコード実行を止めるにはどうしたらいいですか?
シェル内でクリックし、Ctrl+Cを押します。これで、現在のコードの実行が停止するはずです。

Thonnyで過去の発言を繰り返す
同じコマンドをもう一度実行したいときは、シェルプロンプトでキーボードの↑キーを押して、過去のコマンドの履歴を呼び出すと便利です。
Pi PicoがThonnyから切断されたことを知るにはどうしたらよいですか?
コードを実行しようとすると、次のようなエラーメッセージが表示されます。

つまり、ThonnyはPicoが想定しているシリアルポートに書き込むことができないのです。

Thonnyでデバイスが自動的に見つかりませんでしたエラー
以下のエラーが発生した場合。
デバイスを自動的に見つけられませんでした。
接続を確認する(デバイスがブートローダモードでないことを確認する)か、または、次のように選択します。
インタプリタメニューの「インタプリタの設定」(ウインドウ右下)
をクリックすると、特定のポートや他のインタプリタを選択することができます。
正しいインタプリタを選択しているか確認してください。お使いのデバイスがMicroPythonではなくCircuitPythonを実行している場合、次のように選択する必要があります。 CircuitPython(汎用) をThonnyのインタープリターとして使用することができます。やり方はこの記事の関連情報をご覧ください。
WindowsでPico/MicroPythonを使うためのヒントを教えてください。
他にもWindowsでPicoとMicroPythonを始めるためのヒントがあれば、コメントで教えてください!適宜、記事を更新します🙂。
Picoでできる素晴らしいプロジェクトを楽しんでください。
PiCockpitのPicoブログ記事をもっと見る
この記事を読んでくださった方は、次の記事も読んでみてください。
私はWin8.1ですが、COM問題の解決策を持っているのはこのサイトだけです。ありがとうございました。
Windows 8.1でBoard CDCを使用するためのソリューションが掲載されている記事のリンクを教えてください。
この記事は、Windows 8.1でBoard CDCを使用する方法 - Version 2.5のZadigツールを使用する方法を説明するものです。
ありがとうございます。Windows 7 64bitはスムーズに動作しています。
このチュートリアルに大感謝です
非常に素晴らしいチュートリアル ポーランドで言うところのコーヒーをテーブルに置く、つまり藪をつつむことなくということですね。素晴らしいです。
助けてほしいのです。 私のWindows11では、picoは「ポータブルデバイス」と表示されるだけです。 このため、Puttyがそれを見つけることができず、パスが特定できないというエラーが発生します。
どうすればいいのかわからない。
ありがとうございます。
これは私にとって素晴らしい紹介だった!ありがとう!
こんにちは、相談に乗るよ。
私のコーディゴを私のpi picoにサブミールした後、xの処理を実行するために、ある場所に置いた、
そうでない場合は、ピコピコを台座から外し、PCやノートPCに接続してください、
をクリックし、絨毯を取り除くアイコンをクリックし、絨毯を取り除くを選択すると、絨毯が取り除かれます。
講義を受けないようにする方法はありますか?
謝辞
パテもザディグも僕には効いたよ。素晴らしいチュートリアルだ。