どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)
Raspberry Pi Pico を購入しようという記事「IoTで快適空間を作ろう!(温度管理 検討編)」を書いたものの、その後のセットアップしたりした時の記事を書いていませんでした。
Raspberry Pi Pico の紹介から、初期設定、L チカプログラムの解説までをまとめています。
2022年05月に書いた記事をベースにまとめているので、一部2022年の記述が混ざっています。
目次
Raspberry Pi Pico とは
MCU(マイコン):RP2040
RAM:256KB SRAM
電源:1.8V~5.5V
サイズ:21×51.3×3.9mm 約3g
動作環境条件:-20℃~85℃(70℃以下を推奨)
温度センサ搭載
名刺サイズのパソコンとして「Raspberry Pi」というシリーズがあります。
2023/03/25現在、半導体不足などの関係であまり出回っていませんが、
初代から数えて第4世代の Raspberry Pi 4 が出ています。
(初代に近い性能でフリスクサイズの Raspberry Pi Zero や Raspberry Pi 400というキーボードタイプのもあります)
(参考)
初代の Raspberry Pi を購入した時(2013/05/25)に書いた記事はコチラです。
「Raspberry Piをゲット」
Raspberry Pi という名前から同じシリーズに感じますが、Raspberry Pi シリーズと Raspberry Pi Pico は別物です。
販売してるところは同じなので Raspberry Pi というブランド名がついているってところでしょうか。
サイズ感はこんな感じで小さいです。まさにピコって感じ。
Raspberry Pi シリーズとの大きな違いは、OS 上で動くかどうかです。
Raspberry Pi は「パソコン」なので OS(オペレーティングシステム) をセットアップして、それの上にソフトを入れて使います。後からいろんな用途に活用できる完成されたコンピュータのイメージです。
これに対して Raspberry Pi Pico は「マイコン(マイクロコントローラ/マイクロコンピュータ)」なので、OS はなく、電子機器の制御用に最適化されたコンピュータです。
制御用にプログラムを組み込んで使います。プログラムを組み込んだ部品みたいなイメージです。
かげさんが思うに、 Raspberry Pi Pico は、いろいろあるマイコンの中でも IoT にはあまり向いていないです。(後から発売された Raspberry Pi Pico W だと向いていると思う)
なぜかというと、 Raspberry Pi Pico では無線通信( Wi-Fi や Bluetooth など)がそのままでは使えないためです。
この点は、SONY から出ている SPRESENSE(スプレセンス) も同様です。
どちらも後付けで Wi-Fi や Bluetooth などが使えるのですが、Arduiono や M5Stack 系統や ESP32 が最初から使える機器の方が IoT には向いているように思います。
Raspberry Pi Pico は、向いていなくて Raspberry Pi Pico W は向いていると思うのは、W はワイヤレス通信(2.4GHz 無線LAN 802.11n)対応だからです。
IoT (Internet of Things:モノのインターネット)は、インターネットにつながる=何らかの通信ができることが柱の1つ。
なので、センサーとして使うことができたとしても収集した情報をどこにも送れないと、データ活用が難しいと思うからです。
後付けじゃないと「通信機能」や「画面」を使えないというのが、導入上のデメリットですね。
Raspberry Pi Pico は、なんといっても安さが売りなんで手を出しやすいというメリットはあります。
かげさんが購入した時は、スイッチサイエンスで550円。今は値上がりしていますが、それでも他のマイコンより安い。
Python の学習には向いているんじゃないかと思います。
550円の割に「緑の LED 」や「温度センサー」がついているのも良い点だと思います。
ちなみにかげさんの Raspberry Pi Pico の購入動機は、PC 起動中の PC 周辺の温度が知りたかったためです。
夏の暑い時期の PC 周辺の空気を循環させる時の指標に使えるかな?と思ったのです。
PC 起動中という条件だったのでUSBに直刺しで温度が分かれば良かったので丁度良かった。安価な温度センサーとして購入しました。
本格的に IoT 系の何かをする場合、ピンヘッダをはんだ付けするか、ピンヘッダ付きのを Raspberry Pi Pico を購入した方が良いでしょう。
初期設定で用意するもの
- 作業用 PC ( Windows, Mac, Linux, Raspberry Pi Picoじゃない Raspberry Pi などいずれか)
- Raspberry Pi Pico
- PC と Raspberry Pi Pico を接続する USB ケーブル( Raspberry Pi Pico 側は、micro B )
Micro Python のファームウェアをセットアップ
今回は、開発言語として Micro Python を使います。かげさんは、まだやったことがないけど、 C / C++ が使えるように設定することもできます。
後述の Micro Python の開発環境 Thonny にも Raspberry Pi Pico のファームウェアをセットアップする機能があるのですが、うまくセットアップできなかったので、かげさんは、これから紹介する方法でセットアップしました。
下記のURLに移動します。
https://www.raspberrypi.com/documentation/microcontrollers/micropython.html
MicroPythonを使うためのファームウェアは、上記ページの動画の下にある項番1~5の項番1のリンクからダウンロードします。
2022/05/03 現在だとダウンロードされるファームウェアのファイル名は Raspberry Pi Pico の場合、「 rp2-pico-20230323-unstable-v1.19.1-992-g38e7b842c.uf2 」で、Raspberry Pi Pico Wの場合、「 rp2-pico-w-20230323-unstable-v1.19.1-992-g38e7b842c.uf2 」です。
次に USB ケーブルで PC に Raspberry Pi Pico を接続するんですが、ここで注意すべきことがあります、
それは Raspberry Pi Pico の「 BOOTSEL 」ボタンを押しながら接続することです。
PC に「 RPI-RP2 」という大容量ストレージデバイスが認識されるまで「 BOOTSEL 」ボタンを押し続けます。
接続されたら、ダウンロードしたファイル、今回だと「 rp2-pico-20230323-unstable-v1.19.1-992-g38e7b842c.uf2 」を「 RPI-RP2 」にドラッグ&ドロップします。
正常にファイルがコピーされた場合、 Raspberry Pi Pico が自動的に再起動されて「 RPI-RP2 」の接続が切れます。
Micro Python の開発環境 Thonny(ソニー)のセットアップ
Thonny の公式サイトは「コチラ」
右上の方にダウンロードのリンクがあります。インストール対象の OS にあわせたものをダウンロードします。
ここでは、Windows 版をダウンロードします。
2022/05/03 現在だとダウンロードされるのはバージョン「 3.3.13 」です。
インストーラを起動します。
「Install for me only(recommended)」をクリック。
「Next」をクリック。
「I accept the agreement」を選択し「Next」をクリック。
必要に応じてインストール先のフォルダを指定し「Next」をクリック。
スタートメニューの名称はそのままで「Next」をクリック。
デスクトップにアイコンを表示したいので「Create desktop icon」をチェックして「Next」をクリック。
「Install」をクリック。
「Finish」をクリック。
Thonny 初回起動時の設定
Thonny は初回起動時に言語の選択画面が表示されます。
Language で「日本語(ALPHA)」を選択し、「 Let's Go 」ボタンをクリックします。
次に、開発言語を指定します。
Thonny を起動すると、どの Python を使っているかが画面下側のコンソール部分と右下に表示されます。
Thonny バージョン「 3.3.13 」の場合、インストールされると Python 3.7.9 が初期インストールされています。
2022/05/04現在、Python 3.10.x が出ているのでかなり古いバージョンです。
ですが、あくまでこの段階で表示されているのは Python のバージョンです。Raspberry Pi Pico で使う MicroPython ではありません。
MicroPython に切り替えるためには、右下の「 Pyton 3.7.9 」と表示されているところをクリックします。
メニューが表示されます。ここで「MicroPython (Raspberry Pi Pico)」を選択します。
これで MicroPython に切り替わりました。
とりあえず簡単なプログラムを動かしてみる
さて、普通なら最初のプログラムは、定番の「Hello Wolrd」なんですが、「Hello Wolrd」を表示するディスプレイが Raspberry Pi Pico にはありません。
なのでマイコン系の定番のプログラム「 L チカ」を作ります。
「 L チカ」は、「 LED をチカチカさせる」の略です。
Raspberry Pi Pico には緑の LED が最初からついているので、これを使います。
プログラムは、こんな感じです。
import machine
import utime
led_onboard = machine.Pin(25, machine.Pin.OUT)
while True:
led_onboard.value(1)
utime.sleep(1)
led_onboard.value(0)
utime.sleep(1)
これを Thonny の中央部分のソースコードエディタに入力します。
入力したソースコードを保存するため、メニュー「ファイル」-「Save as...」をクリックします。
どこに保存するか確認する画面が表示されます。
まず「This Computer」をクリックして PC に保存します。
名前を付けて保存の画面が表示されるので、フォルダやファイル名を指定して保存します。ここではファイル名は、「LedBlink.py」とします。
「保存」ボタンをクリックします
もう一度メニュー「ファイル」-「Save as...」をクリックします。
どこに保存するか確認する画面が表示されるので、今度は「Raspberry Pi Pico」をクリックします。
Raspberry Pi Pico に保存する名前を入力する画面が表示されます。ここでは先ほどと同様に「LedBlink.py」と入力します。
「 OK 」ボタンをクリックします。
これで「 L チカ」プログラムの準備が整いました。
補足説明
先ほどのソースプログラムの保存でセーブのアイコンを使わず、メニュー「ファイル」-「Save as...」を使いました。
また、いきなり「Raspberry Pi Pico」をクリックしても問題ないのに、あえて一度「This Computer」をクリックして PC に保存しています。
これには理由があります。
なぜ一度「This Computer」に保存しているか?
それは今回のように行数の少ない一時的なプログラムなら問題ないのですが、少し複雑なプログラムを組んで翌日続きから作業するといった時に何らかの理由で「Raspberry Pi Pico」に保存したプログラムが消失してしまったときに、最初からプログラムを作り直す必要が出てくるからです。
それを避ける意味で、あえて一度「This Computer」に保存しています。
バックアップがないと不安なのは、システムエンジニアの「職業病」かもしれませんが(笑)
なぜセーブのアイコンを使わず、メニュー「ファイル」-「Save as...」を使うのか?
セーブのアイコンを使う場合、どこに保存するかの画面が表示されないため、「This Computer」に保存しているのか、「Raspberry Pi Pico」に保存しているのか分からなくなるからです。
一応、タイトルバーを見れば「Raspberry Pi Pico::」があるかどうかで分かるといえば分かるのですが、最初は気づかなかったので(;^_^A
なのであえて、どこに保存するか選択する画面が出るメニュー「ファイル」-「Save as...」を使って、意識的に切り替えを使い分けているのです。
プログラムの実行と停止
実行は、メニュー「実行」-「Run current script」か、緑のアイコンの「再生」ボタン
停止は、メニュー「実行」-「Stop/Restart backend」か、赤いアイコンの「STOP」ボタン
で行います。
実行するとLEDが1秒おきに点いたり消えたり、点滅を繰り返します。
プログラムを停止すると LED が点いている時に停止すれば LED が点いたまま、LED が消えている時に停止すれば LED が消えたままとなります。
趣味の問題かもしれませんが、LEDが消えている時に停止した方が良い気がします。(点いている時に止めても何も問題ないんですが)
うまく「 L チカ」が確認できたでしょうか?
L チカプログラムを解説
Raspberry Pi Pico の L チカのプログラムを再掲します。
import machine
import utime
led_onboard = machine.Pin(25, machine.Pin.OUT)
while True:
led_onboard.value(1)
utime.sleep(1)
led_onboard.value(0)
utime.sleep(1)
- 1~2行目
使用するパッケージを import 宣言。
4行目で使う machine、8行目、10行目で使う utime を使うので、そのパッケージを宣言しています。
Pythonにはモジュール・パッケージ・ライブラリと呼ばれるものがあります。
モジュールやパッケージは、何らかの処理を行う関数、関数や変数をまとめたクラスを1つのファイルにまとめたもののことです。
モジュールやパッケージのことをライブラリと呼んだりしますので、最初のうちは、そんな名前のグループがある程度で覚えておけば良いです。
- 4行目
今後も出てきますが、AA.BBのような記述で「.」は「の」と読むとイメージが湧きやすいです。
「machine.Pin」なら「machine の Pin」という感じです。
machine = Raspberry Pi Pico なので、Raspberry Pi Pico の 25番ピンを出力ピンとして使う、という意味です。
下図のように25番ピンが LED になります。
led_onboard という名前をつけておき、7行目、9行目で使います。
- 6行目
while は、○○の間中ループするという命令です。
True(真)の間中ということなので、常にTrueであるため、電源を切るまで無限にループするという意味になります。
- 7行目、9行目
Raspberry Pi Pico の LED に 1 を出力(LEDを点灯させる)、0 を出力(LEDを消灯させる)という意味です。
- 8行目、10行目
Sleep=寝かせる=待たせるという意味で1秒間待つという意味です。
7~10 行目で 1 秒おきに LED を点滅させる、という意味になります。
ここまではOKだ
MCU(マイコン):RP2040
RAM:256KB SRAM
電源:1.8V~5.5V
サイズ:21×51.3×3.9mm 約3g
動作環境条件:-20℃~85℃(70℃以下を推奨)
温度センサ搭載
ヘッダー ハンダ付け済み Raspberry Pi Pico
Vesiri Raspberry Pi Pico ラズベリーパイピコセット多機能開発ボード 透明アクリル保護ケース/Mirco USBケーブルライン/20cmデュポン ワイヤー/MB-102ブレッドボード/ブレッドボード接続ワイヤー用 65pce/単列針セット
OSOYOO Raspberry Pi Pico キット, Python プログラミング センサー, MicroPython ビジュアルプログラミング 基本レッスン, ラズパイピコ Pico基板付き, ラズベリーパイ ピコ 初心者向け