# マイコン~ Raspberry Pi(ラズベリーパイ)pico ~を始める
■参考サイト:Raspberry Pi pico(https://www.raspberrypi.org/products/)のサイト (opens new window)
# 目次
# Raspberry Pi pico(ラズベリーパイピコ)とRP2040マイクロコントローラーチップ
「Raspberry Pi pico」は、英国のRaspberryPiによって独自に設計されたRP2040マイクロコントローラーチップを搭載し、 柔軟なデジタルインターフェイスを備えた低コストで高性能のマイクロコントローラーボードです。
# RP2040マイクロコントローラーチップ とは
下の写真が「RP2040マイクロコントローラーチップ」になります。
# Raspberry Pi pico(ラズベリーパイピコ) とは
下の写真が「Raspberry Pi pico」です。 「RP2040マイクロコントローラーチップ」の他に、USBやLEDなどを1つのボードに集約したマイクロコンピュータになっています。
主な機能は次のとおりです。
- デュアルコアArmCortex M0 +プロセッサ、最大133MHzで動作する柔軟なクロック
- 264KBのSRAM、および2MBのオンボードフラッシュメモリ
- Castellatedモジュールにより、キャリアボードに直接はんだ付けできます
- デバイスとホストをサポートするUSB1.1
- 低電力スリープおよび休止モード
- USB経由の大容量ストレージを使用したドラッグアンドドロッププログラミング
- 26×多機能GPIOピン
- 2×SPI、2×I2C、2×UART、3×12ビットADC、16×制御可能なPWMチャネル
- オンチップの正確な時計とタイマー
- 温度センサー
- オンチップの高速浮動小数点ライブラリ
- カスタム周辺機器サポート用の8×プログラマブルI / O(PIO)ステートマシン
# Raspberry Pi pico (ラズベリーパイピコ)を始める準備
# Raspberry Pi pico (ラズベリーパイピコ)を入手
ネットでも品切れのサイトが多く、手に入らなかったので、 秋葉原の「秋月電子通商」さんにお邪魔してきました。
「お一人様1点まで、入り口レジにてお申し付けください。」とのPOPがあったので 店員さんに声をかけると、micro-USB付で680円でGETできました。
# 始めるにあたって揃えたモノ
今回は初めてのRaspberry Pi pico(ラズベリーパイピコ)ということで、LEDを点滅させる、通称「Lチカ」を行います。 はLEDが基盤についているのでLチカをするだけなら、Raspberry Pi pico(ラズベリーパイピコ)の本体とUSBケーブルがあればOKです。
- Raspberry Pi pico(ラズベリーパイピコ)
- micro USB ケーブル
ただ、せっかく(?)なのでハンダとハンダごてを買ってみました。 ダイソーで500円でゲットしたハンダごてと、バラ売りのハンダ200円です。
- ハンダごて
- ハンダ
- pico explorer
- ジャンパーケーブル
- ピンヘッダー
# Raspberry Pi pico (ラズベリーパイピコ)でのプログラミングの始め方を簡単に説明
# MicroPythonの使用を開始する
PicoをUSB経由でコンピューターに接続し、UF2ファイルをドラッグアンドドロップすることで 簡単にプログラムを実行できるようになります。 ダウンロード可能なUF2ファイルをまとめて、MicroPythonをより簡単にインストールできます。
手順はRaspberry Pi pico(ラズベリーパイピコ)の公式サイト (opens new window)に書いてある通りですが、 英語のドキュメントですので、以下に日本語での手順をまとめておきます。
下記①~⑤を実施することで、Raspberry Pi pico(ラズベリーパイピコ)でプログラミングができるようになります。
- ①UF2ファイルの入手
- ②BOOTSELモードで接続
- ③RPI-RP2としてマウント
- ④UF2ファイルをドラッグアンドドロップ
- ⑤プログラミングを楽しむ
■参考サイト:Raspberry Pi pico(ラズベリーパイピコ)のサイト (opens new window)
# ①UF2ファイルの入手
UF2ファイルは、以下のRaspberry Pi pico(ラズベリーパイピコ)の公式サイト (opens new window)よりダウンロード可能です。 「Download UF2 file」ボタンをクリックして、MicroPythonUF2ファイルをダウンロードします。
# ②BOOTSELモードで接続
BOOTSELボタンを押したままにして、PicoをRaspberryPiまたは他のコンピューターのUSBポートに接続します。 Picoが接続されたら、BOOTSELボタンを放します。
# ③RPI-RP2としてマウント
RPI-RP2と呼ばれる大容量ストレージデバイスとしてマウントされます。
# ④UF2ファイルをドラッグアンドドロップ
MicroPythonUF2ファイルをRPI-RP2ボリュームにドラッグアンドドロップします。 Picoが再起動します。これでMicroPythonを実行しています。
# ⑤プログラミングを楽しむ
USBシリアル経由でREPLにアクセスできます。 MicroPythonのドキュメントには、Picoに接続してMicroPythonでプログラミングするための詳細な手順が含まれています。
ここではThonny (opens new window)エディタを使ってプログラミングをしたいと思います。
画面右上の「Download」からインストーラを取得します。
プログラムの書き込み先を「Raspberry Pi pico」に変更します。
PCが正しくRaspberry Pi pico(ラズベリーパイピコ)の接続を認識出来ていれば、 Thonny (opens new window)の右下で「MicroPython(Raspberry Pi pico)」が選択できます。
これで、準備は完了です!!
# 【補足】フラッシュメモリのリセットについて
なぜ、上記のような手順が必要なのかを補足します。
Raspberry Pi pico(ラズベリーパイピコ)を動かすためには、最初にファームウェアを書き込んであげる必要があります。 このファームウェアの書き込みを行う「BOOTSELモード」は、Picoを接続するときにBOOTSELボタンを押し続けることで起動できます。
BOOTSELモードで起動すると、UF2ファイルをドラッグできるドライブとしてパソコンに表示されます。 これにより、RP2040チップ内の読み取り専用メモリ(ROM)に上書きできるようになります。
UF2ファイルはUSBフラッシュフォーマットデータと呼ばれるファイル形式になります。 MicrosoftがPXT(Microsoft MakeCodeとも呼ばれる)用に開発したファイル形式です。 MSC(Mass Storage Class)を介したマイクロコントローラーのフラッシュに特に適しており、 マイコン界隈では幅広く利用されています。
# Lチカ プログラミング
それではLチカをしていきます。プログラムは以下の通りです。
import machine
import utime
led = machine.Pin(25, machine.Pin.OUT)
while True:
led.value(1)
utime.sleep(0.5)
led.value(0)
utime.sleep(0.5)
「machine.Pin(25, machine.Pin.OUT)」がRaspberry Pi pico(ラズベリーパイピコ)のLEDを示すピンの場所になります。
プログラムをマイコンに書き込みます。書き込むためには、メニューバーにある保存ボタンを押下し、 「Raspberry Pi pico」を選択します。
実行するには、メニューバーにある緑のボタン「Run Current script」を押します。停止は赤いボタンです。
LEDが光りました。
# せっかくのマイコンなので電池駆動をさせてみます
マイコンなら電池で動かしたくなりますよね。 先程のプログラムを「main.py」で保存すると、電源接続時に実行されるようになります。
電池の接続先は、「39:VSYS」に+3.3Vを入力します。マイナス側はGNDにつなぐので、 今回は「38:GND」に接続しました。黒色(マイナス線)で、赤色(プラス線)です。
システム(笑)の全体構成図は以下になります。
せっかくなので、Raspberry Pi pico(ラズベリーパイピコ)がLEDをチカチカさせる雄姿を動画におめてみました。
# まとめ
いかがだったでしょうか。個人的にはとても気軽に始められたと思います。 ここまでは始めの第一歩ですので、ここから創意工夫を重ねていけば、いろいろと出来そうですね。