JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

今、話題の Raspberry Pi Pico を導入してみた

最近人気の Raspberry Pi シリーズの最新モデル Raspberry Pi Pico。
アキバの秋月電子、千石電商でも取り扱うようになり、その価格も @550 と、まぁ安めです。

f:id:JH1LHV:20210213155856j:plain

わたしは、海外の PIMORONI で購入しました。
(PIMORONI のメール通知でポチったので、結構前に届いてました。)

マイコンチップで一般的なエンボステープに入っていたのはちょっと珍しい、という第一印象。
「これは、マイコンなんだ」と意識付けできるのは、イイと思いました。

f:id:JH1LHV:20210213160357j:plain

基板の両脇にピンヘッダ用のスルーホールが空いています。
そして、その側面はハーフタイプのスルーホールになっています。
micro USB は、BOOTSEL を押しながらパソコンに接続すると、マスストレージとして認識します。

 

この Raspberry Pi Pico はマイコンボードなので注意が必要です!


Raspberry Pi と名乗ってはいますが、これまでのものとは、まったく別モノです。
購入時には、注意が必要です。

これまでの Raspberry Pi 〇〇 は、HDMI、LAN、USB、SDカードスロットなどが付いているスタンドアロンなシングルボードコンピュータで Linux 系の OS が動きましたが、この Raspberry Pi Pico は Arduino や M5Stack などと同じマイコンボードの位置付けで、OS を入れてパソコン(単品)として使用することはできません。

というような Raspberry Pi Pico は、ただのマイコンボードなので、プログラムを作り書き込むことで初めてその機能は発揮されます。

マイコンでなにかやってみたいとか・・・
電子工作に興味あるとか・・・
そういう方ならこの Raspberry Pi Pico は安価ですし、今 AI(人工知能)で人気を集めているプログラミング言語の Python も使えたりするので、ハムの新たなチャレンジとして面白いネタになると思います。
(この Pico 自体は AI 向きのボードじゃないです。Python が使えるだけです。)

主要なマイコンボードとのスペック比較


ザックリですが比較してみました。

f:id:JH1LHV:20210213165106j:plain

大きさ的にはこんな感じです。
この写真の中には入ってませんが、Arduino Nano と同じくらいの大きさです。
 

項 目  Raspberry Pi Pico ESP32-DevkitC  M5StickC Plus   
MCU RP2040
(Dual-core cortex M0+)
Xtensa® dual-core
32-bit LX6
ESP32-PICO-D4
クロック 133MHz 240MHz 240MHz
SRAM 264KB 520KB 520KB
Flash 2MB 4MB 4MB
ポート GPIO×26,UART×2,I2C×2,
SPI×2,PWM×16,PIO×8
GPIO×21,UART×3,I2C×2,
SPI×2,PWM×16
GROVE互換
(I2C+I/O+UART)×1
Wi-Fi ×
Bluetooth   ×
USB 〇 micro USB 〇 micro USB 〇 USB Type-C
電源 1.8V~5.5V 3.3V 5V(120mAh Batt付)
その他 温度センサ           IRセンサ           ボタン×2, LCD 1.14インチ,
IR送信センサ,マイク,ブザー,
6軸IMU,RTC
価格 550円 200円~(国内約1,500円) 2,200円

(この比較表の各項目の内容については間違いがあるかもしれません。どうぞご留意ください。)

こうやって比較してみると、Raspberry Pi Pico って???
メモリ容量もイマイチだし、今どき Wi-Fi や Bluetooth もないって・・・IoT もできやしない。

こうしてみると、Wi-Fi、Bluetooth も当たり前に付いていて、LCD やボタン、ブザーまで最初からひとつのパッケージに入っているという、"M5StickC Plus" の凄さがひときわ際立ちますねぇ。

今日は Raspberry Pi Pico のことを書いていて、なんなんですが・・・
これからマイコンで遊ぶというなら、「M5StickC Plus で始めた方がいい」とだけ言っておきます。

私として Raspberry Pi を騙るならどこまでもシングルボードコンピュータにこだわって欲しかったし、ラズパイはあくまでも Linux 系 OS が動いてナンボで、今回こういう普通のマイコンを後出しするよりも、Raspberry Pi Zero W の後継ボードでも出すべきだったんじゃないかと、ホント、残念でなりません。

Raspberry Pi Zero W の後継ボードだけは、これから先も期待しながら待つし、ゼッタイに販売して欲しいと願っています。

 

プログラム開発のためのファームウェアの書き込み


Pico の開発用プログラム言語として、MicroPython、C/C++ のどちらかを選択できます。

ただし、MicroPython なら開発環境から一発で Pico フォルダへバイナリを転送して実行できますが、C/C++ は CMake 済みのバイナリをいちいち Pico のフォルダへ転送する必要があったりと少々面倒です。(これは私が VS Code をちゃんと使えてないだけかもしれません。)

MicroPython 又は C/C++ のファームウェアの書き込み

本体の白いボタン BOOTSEL を押しながら USB ケーブルをパソコンに接続するとマスストレージデバイスとして ”RPI-RP2” のストレージが見えるので、その中の INDEX.HTM を開きます。すると、Raspberry Pi Pico の以下の公式ページがブラウザに表示されるので、使用したいプログラミング言語を選択してファームウェアをダウンロード、そして Pico へ書き込み(ドラッグ&ドロップ)します。

https://www.raspberrypi.org/documentation/pico/getting-started/


f:id:JH1LHV:20210213112523j:plain

① BOOTSEL を押しながら USB ケーブル接続
② RPI-RP2 のストレージ内の INDEX.HTM をクリック

f:id:JH1LHV:20210213112024j:plain

開発で使用するプログラミング言語を選択

MicroPython: Getting started with MicroPython

C/C++: Getting started with C/C++


③ ダウンロードした UF2 ファイルを "RPI-RP2" にドラッグ&ドロップ
④ 勝手に "RPI-RP2" ストレージはアンマウントされて、Pico へファームウェアが書き込まれます

これで準備OKとなりました。

 

プログラム開発環境の準備


MicroPython を使うための開発環境として、Visual Studio Code か Thonny という統合開発環境を使用するのが一般的なようです。

こういうのが初めてで最初の開発というなら、Thonny の方が扱いやすいと思います。

Thonny

Pico のための開発環境として Thonny を勧めているサイトも多く、PIMORONI の公式サイトでも、この Thonny のセットアップの方法は詳しく紹介されているので、使ってみたいという方は、こちらのページを参照してください。

Visual Studio Code

私は普段使っている VS Code で開発します。
VS Code に Pico-Go というエクステンションをインストールするだけで OK です。

f:id:JH1LHV:20210213120934j:plain

私の環境では Raspberry Pi Pico の接続ポートを誤って認識したので、pico-go.json を一部修正して、Pico が繋がっている com ポートを明示的に指定しました。

f:id:JH1LHV:20210213141546j:plain

大抵の場合は、こういう設定は不要だと思います。
私の場合は、幾つも通信ポートを使っていたりするので、こういうことが起きてしまいます。

動作確認は、LED の点灯・消灯で行いました。

f:id:JH1LHV:20210213142840j:plain

Pico 基板に付いている LED を点灯・消灯させるだけという、L チカより単純な方法で済ませました。
モチロン、動作は良好です。

 

Pico Display Pack を試す


PIMORONI から Raspberry Pi Pico を買った時に、この 1.14" IPS LCD の Pico Display Pack という拡張ボードも一緒に買っていたので、ついでにこちらのボードも動作チェックをしておきました。

f:id:JH1LHV:20210213144331j:plain

Pico Display Pack – Pimoroni

f:id:JH1LHV:20210213172543j:plain

f:id:JH1LHV:20210213154438j:plain

Raspberry Pi Pico と Pico Display Pack は、こんな感じに抱き合わせて接続します。
Pico Display Pack の基板裏の USB マークと Pico 本体の USB 側を合わせて繋げば OK です。

github.com


この Pico Display Pack は Pico 公式のファームウェアではダメなので、PIMORONI のサイトにあるイメージを落として使います。

PIMORONI ”MicroPython firmware image” は、ここからダウンロードできます。

f:id:JH1LHV:20210213152416j:plain

この GitHub にある、uf2 ファイルを使います。
それと、ライブラリやサンプルコードが入っている Source code も一緒に落としておきます。
 

f:id:JH1LHV:20210213152703j:plain

VS CODE でサンプルコードの demo.py を読み込み、実行してみました。

f:id:JH1LHV:20210213155320j:plain

サンプルの demo.py は、こういった円が次々と LCD に描画されるものでした。
このサンプルを Pico 起動時に自動実行するときは、main.py に名前を変更して保存します。

 

開発資料

Raspberry Pi Pico Python SDK は、こちらです。
Raspberry Pi Pico Datasheet は、こちらです。

 

■ ■ ■

 

ということで、マイコンボード収集マニアとしては、ラズベリーパイ財団の新しいマイコンに興味を持つのは至極当たり前のことで、今回こうして早速購入して触ってみたわけですが、スペック的にも開発スタイル的にも特に特筆すべきところはなく、そんなにイイとは思えませんでした。

今は販売が開始したばかりで巷で話題になってはいますが、私としてはあまり皆様におススメできないマイコンボードなんじゃないかと、私見バリバリですが、そう思ってしまいました。

そして、最初から LCD も付いていて開発環境も充実している M5Stack って、ホント素晴らしいマイコンだなぁ~と、改めて思ってしまった今日この頃です。

まぁ、マイコンボードによってその導入方法に違いがあるので、また後々になってイチから試行錯誤するのも時間がムダになるので、今回こうして新たに登場したラズパイ・マイコンの初期導入の流れについて忘れないようにブログに備忘録として残したと、そんな感じです。