テレワークで自宅時間が増えた。そうなれば、自宅を快適にしたいという流れが自然だろう。とは言えお金はかけたくないと誰もが思うところだ。せっかくPythonが使えるならRaspberry Picoを活用してみよう。550円から電子工作が始められるので手軽だ。今回は、Picoのセットアップから温度取得までやってみよう。

  • Raspberry Pi Picoを使えばPCにさまざまな電子部品を接続して活用できる

    Raspberry Pi Picoを使えばPCにさまざまな電子部品を接続して活用できる

550円の衝撃 - Raspberry Pico

「Raspberry Pi Pico」(以後、ラズパイピコと略す)とは、2021年初頭に発売されたRaspberry Piの新シリーズだ。そもそも、Raspberry Piは手のひらサイズの小型Linuxであり、世界中で3700万台以上を売り上げた大ヒット製品だ。

主要最新モデルのRaspberry Pi 4 Model Bは、CPU1.5GHz、メモリも8GBと高性能だ。ブラウザもサクサク動作し、互換オフィスのLibreOfficeも快適に動くため格安PCとしても使える。OSにLinuxを採用しているため、Windowsしか使ったことないと若干ハードルが高いが、テレワークでもう一台格安の作業マシンが欲しいという人にも十分活用できる。価格もメモリ8GBモデルが1万円前後、2GBモデルなら5000円前後とかなりお得だ。

そして、新シリーズのRaspberry Pi Picoは、550円からという衝撃の価格だが、実はLinuxが搭載されていないモデルだ。別途PCとつなげて使うことを想定している。つまり、PicoはWindowsやmacOSなどのPC、あるいは、ラズパイのBシリーズやZeroのLinuxが動くモデルと組み合わせて使うという前提となっている。

Picoの使い道は

ラズパイピコには、電子工作に便利なGPIOと呼ばれるピン、そして、SPIやI2C、UARTなど各種通信に使えるピンが合計43個用意されている。これに加えてUSB1.1ポート、LED、温度センサーが備わっている。つまり、こうしたインターフェイスを利用して、さまざまなセンサーや機器を接続して使うことができるのだ。

  • ラズパイピコのインターフェイス

    ラズパイピコのインターフェイス

そして、ラズパイが人気を博した理由でもあるのだが、こうしたピンに接続して使える電子部品には、LED、LCD液晶ディスプレイ、温度や湿度センサー、明るさや距離センサー、モーターなどさまざまなものがある。そして、それら個々のセンサーは数百円から数千円程度で購入できる。つまり、アイデア次第でさまざまな製品を安価に自作できるのだ。冒頭で紹介したように自分の好きな電子部品をつなげて、自宅をより快適にする施策にも使える。

Picoと一緒に買うと良いもの

なお、前述の通りラズパイピコは単なるインターフェイスだ。ラズパイピコだけ買っても、物足りない。そのため、実際に電子工作を楽しもうと思った時には、これに加えて、電子部品とピコと部品をつなぐためのブレッドボードやジャンパワイヤー、抵抗なども一緒に買うと良いだろう。

また、ラズパイピコには、ピンを刺す穴だけが空いている状態だ。手軽に電子工作するためには、別途ピンヘッダを買ってそれをラズパイピコにハンダ付けする必要がある。そのため、ハンダ付けをしたことなかったり、もう何年もしていないという人には若干ハードルが高い。一般家庭にハンダゴテを備えている人は少ないと思うので、別途揃える必要があるだろう。なお、価格は倍になるが1000円前後でハンダ付け済みのモデルも販売されている。

なお、ブレッドボードやジャンパワイヤーがあれば、大抵の電子部品はハンダ付けすることなく使うことができる。穴にピンや部品を差し込むだけで使えるよう配慮されているのだ。

  • ピコと一緒に買うと良いもの

    ピコと一緒に買うと良いもの

なお、電子部品を購入するには、秋月電子、スイッチサイエンス、マルツオンライン、Amazonなどの通販サイトが便利だが、送料が必要となる場面も多いので、必要な部品はまとめて購入すると便利だ。

MicroPythonでPicoを始めよう

それでは、ラズパイピコを始めよう。一番簡単なのは、Raspberry PiのModel BにピコをUSBで接続する方法だが、Windows/macOSなどとつなげることもできる。ここでは、Windowsとラズパイピコをつなげる方法を紹介しよう。

ラズパイピコで使えるのは、MicroPythonと呼ばれる組み込み用途向きのPythonかC/C++言語だ。なお、MicroPythonはフル機能を持つPythonではないが、電子部品を制御する範囲であれば、フル機能のPythonとそれほど使用感に違いはないだろう。マイコン用のライブラリもいろいろ用意されているので便利だ。そこで、MicroPythonを使う方法を紹介する。

まず、ラズパイピコについてるボタンを押しながら、Windows PCと接続する。すると、ラズパイピコがUSBメモリーのようにストレージとして認識される。そして、中に入っている「index.htm」をブラウザで開いてみよう。

  • ラズパイピコのボタンを押してUSB接続するとストレージとして認識される

    ラズパイピコのボタンを押してUSB接続するとストレージとして認識される

そして、「Getting started with MicroPython」というリンクをクリックしよう。英語のページだが下にスクロールすると「Download UF2 file」と書かれているリンクがあるのでクリックしてファイルをダウンロードしよう。

  • ダウンロードしよう

    ダウンロードしよう

ダウンロードしたらこのファイルをラズパイピコのドライブ(ルートフォルダ)にドラッグ&ドロップしよう。そして、書き込みが終わったら一度USBケーブルを抜いて挿し直そう。これによってラズパイピコでMicroPythonが使える状態となる。

あとは、MicroPythonの開発環境をWindowsに構築しよう。Visual Studio Codeのプラグインにラズパイピコ用の拡張があるのでこれが便利だ。Visual Studio Codeをこちらからダウンロードしよう。

  • Visual Studio Codeをインストール

    Visual Studio Codeをインストール

Visual Studio Codeをインストールしたら、メニューから[View > Extensions]をクリックし、「Pico-Go」を検索してインストールしよう。これで準備完了だ。

  • 拡張機能のPico-Goをインストール

    拡張機能のPico-Goをインストール

LEDをチカチカ光らせる

それでは、ラズパイゼロの基板の左上にあるLEDをチカチカと光らせてみよう。なお、このLEDは25番ピンに割り振られており、手軽に操作できる。

以下のプログラムをVisual Studio Codeに書き込み「led25.py」という名前で保存しよう。

import machine, time
# Pico の LED を操作する
led = machine.Pin(25, machine.Pin.OUT)
# 繰り返す
while True:
    led.high() # LEDを点灯
    time.sleep(0.5)
    led.low()  # LEDを消灯
    time.sleep(0.5)

プログラムを実行するには、メニューの[View > Terminal]をクリックして、Pico Consoleを表示してステータスバーにある[Run]ボタンから行う。もし、Pico Consoleが表示されていなければ、表示したTerminalの右上にあるターミナルの一覧からPico Consoleを選ぼう

  • プログラムを実行しよう

    プログラムを実行しよう

そして、青色のステータースバー上にあるPico Disconnectedのラベルをクリックする。するとこの部分がPico Connectedに変わるので、その右側にあるRunボタンを押そう。すると、ラズパイピコのLEDが点滅を始める。

  • 基板左上にあるLEDをチカチカさせたところ

    基板左上にあるLEDをチカチカさせたところ

温度センサーから温度を取得しよう

次にラズパイピコに付いている温度センサーから温度を取得してみよう。以下のプログラムを「temp.py」という名前で保存しよう。

import machine, time
sensor_temp = machine.ADC(4)
f = 3.3 / 65535

while True:
    reading = sensor_temp.read_u16() * f
    temperature = 27 - (reading - 0.706)/0.001721
    print(temperature)
    time.sleep(1)

上記と同じ手順でラズパイピコに接続し、[Run]ボタンを実行するとプログラムを実行できる。するとピコから取得した温度がPico Console上に表示される。

  • ラズパイピコから温度を取得して表示したところ

    ラズパイピコから温度を取得して表示したところ

まとめ

以上、今回はラズパイピコについて、また簡単にラズパイピコを使う方法について紹介した。今回は特に電子部品をつなげたりしなかったが、ラズパイピコについているLEDや温度センサーを使ってみた。思ったよりも簡単にラズパイピコを操作できたのではないだろうか。また、機会があれば簡単な電子工作についても紹介したいと思う。お楽しみに。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2004年度未踏ユース スーパークリエータ認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。直近では、「シゴトがはかどる Python自動処理の教科書(マイナビ出版)」「すぐに使える!業務で実践できる! PythonによるAI・機械学習・深層学習アプリのつくり方 TensorFlow2対応(ソシム)」「マンガでざっくり学ぶPython(マイナビ出版)」など。