見出し画像

Raspberry Pi Pico 覚書き 始めての Pico

いろいろ回り道をしたが、結局、次のサイトに書いてある通りにやるだけでよいとわかった

Getting started with Raspberry Pi Pico

必要なことはここ↑に全部書いてある。

以上。

─────────────────────────────────

となると、この記事を書く意味がなくなるな。ま、無駄な回り道を含む学習記録をここに残しておこうと思う。

ちなみに、Thonny Python IDE 環境 の話である。

やったこと

Thonny のインストール(Mac El Capitan 環境)
MicroPython ファームウエアのインストール(Raspberry Pi Pico 用)
公式のチュートリアルで学習
コンピューターを接続しないでの動作を確認
ピンヘッダーのはんだ付け

Thonny のインストール

Thonny + MicroPython の環境でやってみることにした。

Thonny をインストールする。

ダウンロードのリンクは右上に小さく存在した。

幸い El Capitan にも対応

Thonny のWebサイトの語句を一部和訳
Ctrl + F5 でステップバイステップ実行。ブレークポイントを設定しなくて良い。
F6 大きなステップ
F7 小さなステップ
シンプルできれいなpipのGUI。(きれいな=clean)
「ツール」→「パッケージの管理」を選択すると、サードパーティ製パッケージのインストールがさらに簡単になります。

インストールするとき、こんなことやったような、、、

Th初期設定

これもやらないと Pico が使えなかったような、、、

Pico を選択

全部、参考にしたサイトに書いてあったか。ちゃんと読まない自分。

Raspberry Pi Pico のセットアップ

Raspberry Pi Pico のオフィシャルサイト

View the documentation をクリックして、、、

Getting started MicroPython タブをクリックして、、、

書いてある手順に従う。

ファイルをダウンロード

ファイル名参考:rp2-pico-20210205-unstable-v1.14-8-g1f800cac3.uf2

Pico の BOOTSEL スイッチを押しながら、Mac に接続。

RPI-RP2 というドライブが現れた。

一応、中身を確認
   INDEX.HTM
   INFO_UF2.TXT

RPI-RP2 ドライブにファイルをドラッグアンドドロップ。

RPI-RP2 ドライブが消える。

ディスクの不正な取り出しが表示されるが、Pico が再起動したからだろう。

公式チュートリアルで学習

チュートリアルはどこに?

Hardware > All products

Raspberry Pi Pico の More info >

Raspberry Pi Pico のページ

Learn > Guided coding projects を選択

Hello! What would you like to make today? と書いてあるページだ。

Getting started with Raspberry Pi Pico をクリック

やっとチュートリアル発見。

後付けでたどり方を書いた。まだ Pico の情報へのリンクが整備されていない模様。もしかしたら、もっと楽にたどり着く方法があるかも。

○ Introduction
○ Meet Raspberry Pi Pico
○ Install Thonny
○ Add the MicroPython firmware
○ Use the Shell
○ Blink the onboard LED
○ Use digital inputs and outputs
○ Control LED brightness with PWM
○ Control an LED with an analogue input
○ Power your Raspberry Pi Pico
○ What next?

Introduction から順番に進める。Use the shell からで良いか。

Meet Raspberry Pi Pico ステップ でブレッドボードが登場するので、ピンヘッダーをはんだ付け。

Install Thonny ステップ内、Thonny on Raspberry Pi は、Pico ではない Raspberry Pi のことだ。

Use the Shell 内の用語 REPL

REPL (read–eval–print loop) と書いてある。
対話形式でのスクリプトの実行ということで良いか。

Use digital inputs and outputs ステップ

画像13

こんな感じで、、、

Power your Raspberry Pi Pico ステップ

If you want to run your Raspberry Pi Pico without it being attached to a computer, you need to use a USB power supply.

コンピューターに接続せずに走らせたいときは、とある。これこれ、これが知りたかった。

main.py という名前で保存すれば良いとのこと。

動作電圧 1.8V - 5.5V。モバイルバッテリーでやってみる。

モバイルバッテリーでの動作

うまくいった。

部品の関係でアナログ入力がゼロにならない。

ちなみに、Thonny から保存するときは、自分で拡張子をつける必要がある。

ちなみにこのモバイルバッテリー、ノジマのプライベートブランド ELSONIC の商品だ。期限が切れそうなポイントを使って入手したものだ。充電器としては使えると思う。しかし電源としては使えない。電流が少ないと電力供給を止めてしまうようだ。この写真のケースでは30秒くらいで切れてしまった。

What next? ステップ

Raspberry Pi Picoを使って、ブザーや光依存性抵抗器(LDR)、モーターコントローラーなど、いろいろな部品を試してみてはいかがでしょうか。
Raspberry Pi Picoの詳しい使い方については、こちらのドキュメントをご覧ください。
今回のプロジェクトはいかがでしたか?間違いを発見されましたか?下の「フィードバックを送信」ボタンをクリックして、ぜひ教えてください。

What next? ステップに What's next? ボタンがある。クリックすると、

✔️Congrats! Project complete!

が表示される。What did you think? というので、I loved it をクリックする。

ちょっとトラブル発生

話は前後するが、LED の点滅を試していたときのこと。

import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)
while True:
   led.value(1)
   utime.sleep(1)
   led.value(0)
   utime.sleep(1)

次のエラーが発生。

>>> import machine
Traceback (most recent call last):
 File "<pyshell>", line 1, in <module>
ModuleNotFoundError: No module named 'machine'

モジュールがないと言っている。そんなはずはない。

どうもアップデートが終わっていなかった模様。

よくわからないままに BOOTSEL スイッチを押しながらMac に接続して、 必要がないのに Thonny を起動したのではないかと思う。

そんなことをすると、次のようなウインドウが表示される。そして、インストールをクリックしたのではないかと思う。

画像4

Done! と表示されたら完了。Close the dialog and start programming! とあるので、プログラミングを開始した。が、おそらく、Pico は再起動せずマスストレージモードのままだったのだろう。

このダイアログは、Add the MicroPython firmware ステップに登場する。そして次のように言っている。

You don’t need to update the firmware every time you use your Raspberry Pi Pico. Next time, you can just plug it into your computer without pressing the BOOTSEL button.

このときは、なんかよくわからないまま、最終的には無事にプログラムを実行することができた。 

トラブル、もう1つ

main.py というファイルを Pico に保存すれば、自動実行されると知ったが、いざ保存しようとしたときに Save as... がなかった。

Pico がマスストレージモードになっていたのではないかと思う。

何かの拍子にメニューが変わって、Save as... が現れた。

無事に、main.py として保存できた。

マスストレージ接続は1回だけ

Thonny MicroPython IDE 環境では、Pico をマスストレージクラスで接続するのは、MicroPython ファームウエアを書き込むときだけ。

Thonny でプログラムを書いたりPico に書き込んだりするときには、ボタンを押したりせず普通に接続すれば良い。

自動起動したプログラムを停止する

Thonny を起動したら、

Device is busy or does not respond. Your options:
- wait until it completes current work;
- use Ctrl+C to interrupt current work;
- use Stop/Restart to interrupt more and enter REPL.

というメッセージが表示された。

Mac に接続した時点で Pico に電源が供給され、main.py が走っていたのだ。

main.py に限らず、実行中のプログラムは、Ctrl+C で停止する。停止ボタンでも良い。

ピンヘッダーのはんだ付け

画像12

秋月電子通商から購入したセットには、カット済みピンヘッダーとUSBケーブルとが付属していた。ピンヘッダーは、細ピンタイプだった。

はんだ:goot ソルペット®鉛フリーハンダ SD-47
TAIYO ELECTRIC IND CO.,LTD. MADE IN JAPAN

はんだこて:HAKKO RED No.501 100V-30W
白光株式会社 MADE IN CHINA

公式 Getting started with soldering

うれしいピン配置

Arduino Nano Every よりも幅広。長て方向も少し長い。

反面、GND 端子が、等間隔に並んでいるので、ブレッドボードを使ってあれこれやってみるには、わかりやすくて良いと思った。

ブレッドボードは 5 の倍数で数字が印刷されている。Pico のGND をそれに合わせたら、なんだか楽しくなってきた。

画像16

40 ピンもあるピン番号は読みたくないので、、、

USB 端子保護

手持ちのUSBケーブルを挿したら結構固かった。異常に固いわけではないが、抜き差しするときに Pico の端子に力が掛かってしまい、断線するのではないかと心配。

ちょうど秋月のセットに付属していた USB ケーブルがあった。短すぎて使っていなかったが、ここで役に立つとは。

USB の延長ケーブルは、たまたま手元にあったものを使用。

名称未設定1

これで安心。

参考にしたサイト

このサイトで

ちなみに、このファームウェアの書き込みは接続のたびに必要となります。

と言っているが、自分は必要ないと思う。というか、必要がないことは、公式が明言していた。

C/C++ SDK 環境の場合
マスストレージとして接続して、現れたドライブに *.uf2ファイル をドロップする、らしい。よって、BOOTSEL を押しながらの接続が必要。
Thonny を利用する MicroPython 環境の場合
BOOTSEL を押さずに接続して、Thonny を使って Pico にプログラムを書き込む。

UF2 ってなんだ?と思ったので確認。

なるほど。USB でマスストレージデバイスとして接続したマイコンを焼くために作られたファイルフォーマット、ということかな。

英語では flash という語が使われている。意味はわかるが、日本語ではなんという?
しばらく考えて「焼く」という語を思い出した。

ということは、ドライブアイコンにUF2ファイルをドロップすると、上書きされるんだな。

C/C++ 環境の場合、コンパイルしたプログラムを焼けば良い。MicroPython 環境の場合、UF2 ファイルのドロップで MicroPython ファームウエアを書き込み、Python スクリプト(プログラム)は別途ルートに配置する、ということであろう。

ちなみに、Thonny が Python スクリプトをルートに置いてくれるので、深く考えなくて良いだろう。

MicroPython ファームウエアのUF2 ファイルをドロップする。

ドライブが消える。次に、Thonny を起動してみる。

画像11

ストップボタンをクリックして current work を cancel する。

Pico に保存したファイルを確認。main.py ファイルは無事だった。

今後、新しいファームウエアにアップデートすることになっても、Pico に保存した Python スクリプトは消えないということで良いと思われる。

マスストレージ接続で、Thonny を起動したときの挙動

画像4

が表示される。

ここで、インストールを選択すれば、MicroPython firmware がインストールされる。Cancel すればインストールされない。

Cancel してみる。

画像5

Pico はマスストレージモードで接続されているので、認識されない。

デフォルトのインタープリター(自分の環境では、Thonny と一緒にインストールされた Python 3.7.9)を選択するとコードは実行できるが、Pico を使わないと machine という名のモジュールがないためエラーが発生。

また、マスストレージモード接続では、Thonny の停止ボタンをクリックしても、インストール画面が表示される。

この場合、インストールが完了しても Pico は自動的に再起動しないように見える。

ファインダーから Pico をイジェクトして、USBケーブルを一旦切り離し、再び接続する。

* Thonny からのアップデートの手順は、Add the MicroPython firmware に書いてあるとおり。自分の場合、余計なことをしていた感あり。

Pico にファイルを保存するということ

読み込みボタンクリック。

画像7

未だにフロッピーディスクなんだな、と思う。

画像6

Raspberry Pi Pico を選択。

誰かの書き込みをみたら Pico に保存していたので、それを真似した結果、ゴミファイルがたくさん。

画像8

公式は、ファイルには py という拡張子をつけるように言っている。

ここで、Pico に保存する意味とはなんだろう、と疑問に思う。

Thonny からは、プログラムの保存先として、コンピューター と Pico と選べる。

Pico に保存すべきなのは、自動実行ファイルだけで良いと思う。この場合、main.py。

それ以外は、いらないと判断した。一応、Mac に退避する。一旦開いてから Save as... で This computer に保存した。

削除するには、ファイル名を右クリックして Delete を選択する。

画像9

NB!
辞書にある n.b. や N.B. がそれか?
nota beneの略で、注意せよ、とある。

Yes をクリック。

ちなみに、ファイル名の右クリックで表示されるのは、次の4項目。

Open in Thonny
────────
Delete
New directory...
────────
Properties

これらのファイルは、マスストレージ接続しても見えないが、Pico のどこに保存されているのだろうか。

画像10

Properties で確認すると、ルートということか?ディレクトリーも作れるようなので、階層構造も可能ということか。

Thonny は複数のプログラムを開ける。開いたプログラムは、タブで表示される。実行ボタンをクリックすると、手前に表示されたプログラムが実行される。

自動実行するための main.py 以外のファイルは、どこに置いてあっても良いと考える。

Thonny を使うことしか知らないが、バックアップファイルとか履歴のファイルを Pico に保存する意味はないと思われる。コンピューターから切り離してプログラムを実行するための main.py だけを Pico に保存すれば良いだろう。

もしかしたら、main.py 以外のファイルを保存することがあるかもしれない。例えば、自分が作ったモジュールとか。しかし、自分の場合、それはまだない。

まとめると、
検討段階のプログラムファイルの保存場所は、コンピューターのどこかで良い。
自動実行する場合は、main.py という名称で Pico に保存する。 

終わりに

これで Pico の初歩を理解できたと思うので、次に進もうと思う。

t.koba







いいなと思ったら応援しよう!