YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

組み込み世界への入門はRaspberry Pi Picoからが良いと思う5つの理由

はじめに

組み込み世界は入門がしんどい!です。理由は、何から始めれば良いかわからない、初期費用が高い(PCの他にターゲットマシンの購入が必要) 、情報が探しにくいなどです。*1

そんなしんどさがあったのですが、2021年2月にRaspberry Pi Picoが発売されました!このターゲットデバイスは組み込み世界への入門にピッタリです!!その5つの理由を本記事で解説します。

ターゲットデバイスとは

組み込み開発は、開発環境(コーディング、ビルドなど)と動作環境(プログラムの実行)が異なるという性質があります。開発環境があるマシンをホストマシン、動作環境があるものをターゲットデバイスと呼びます。このターゲットデバイスとしてRaspberry Pi Picoが良い!という話です。

1. 初期費用が安い

商品 価格 Amazon
Raspberry Pi Pico 1000円程度 Raspberry Pi Pico
マイクロ usb ケーブル(データ転送対応) 700円程度 マイクロ usb ケーブル
ピンヘッダー(無くても良い) 500円程度 ピン ヘッダー 1*40 P ピッチ
はんだこてセット(無くても良い) 1000円程度 はんだごてセット

Amazonを利用して最小構成で2000円弱で済みます。そして、多くの人が利用しているであろうAmazonで扱ってくれているのは、部品調達のハードルが下がってくれてありがたいです。
補足として、スイッチサイエンスであれば、もう少し安く購入できますが送料がかかってきます。他の商品もまとめて購入する場合はスイッチサイエンスがおすすめです。部品調達も組み込みの醍醐味の一つなので、いろいろチェックする遊びも楽しいです。

2. クロス開発環境が整っている

Raspberry Pi Picoの開発を行うには、ホストマシンにPico向け開発環境を構築する必要があります。このような環境をクロス開発環境と呼びます*2。PicoをPythonで動作させるクロス開発環境としてThonny Python IDEが利用できます。このIDE*3をインストールするだけでホストマシンとターゲットデバイスがやりとりできるようになります!クロス開発環境は結構面倒なことが多い*4のですが、Pico向けは全く面倒でないです。
さらにPicoとPCはマイクロusbケーブルで接続するだけで、PCがPicoを認識してくれます!とりあえず動かすために、ピン配線不要なことも入門向きだと思います。

3. Pythonが使える

Raspberry Pi Pico向けのソースコードをPythonで書けます!Pythonはコードの記述がシンプルでとっつきやすい言語ですので、これを利用できるPicoは入門におすすめです。
2021年時点、組み込み開発ではC言語が利用されることが多いですが、C言語は難解な部分もあり入門には不適切、と私は思います。

4. Lチカまでの丁寧な解説動画がある

Raspberry Pi Pico本体にLEDが実装されています。これを制御する(LEDをチカチカと点滅させる)ことが組み込み世界入門の第一歩です。そこまでの手順が丁寧な動画で公開されています!大変に心強いですね。
www.youtube.com

5. 組み込み入門のハードウェアインターフェースが十分

Raspberry Pi Picoのハードウェアインターフェースは以下です。

HWインターフェース 個数
多機能GPIOピン 26
SPI 2
I2C 2
UART 2
12ビットADC 3
制御可能なPWMチャネル 16

Lチカができたら、PicoにモーターやLCDなどをつないでいろいろ制御してみましょう。ただしこれらには、はんだ付けセット、ブレッドボード、ジャンパワイヤなど追加購入が必要です。はんだ付けについては4.で紹介した動画で解説されています。これらのハードウェアインターフェース制御ができるととても楽しいはずです!

注意!マイクロ usb ケーブルはデータ転送対応のものを利用ください

マイクロ usb ケーブルには充電用とデータ転送用の2種類があり、充電のみ対応のケーブルだと、PicoをPCに接続しても認識してくれません。*5

おわりに

組み込み世界への入門はRaspberry Pi Picoからが良いと思う5つの理由を挙げさせていただきました。組み込み開発者はWeb系開発者に比べて少ないので、一人でも組み込み世界に興味をもってくれる方が増えればと思います。

*1:Webやスマホアプリなど世界に比べて

*2:ホストマシンからターゲットデバイスへ実行ファイルを送信したり、デバッグでターゲットデバイスからホストマシンへ情報を送るなど、相互やりとりをしながら開発するところからクロスという名前が付いているのだと思っています。

*3:統合開発環境、プログラミング開発に必要となるテキストエディタ、コンパイラ、デバッガを1つにまとめた開発環境のこと

*4:プログラミング言語の開発環境、ターゲットデバイス向けのツールチェーン、補助ツールなどの準備が必要です。これらをThonny Python IDEは一つにまとめてパッケージしてくれています。

*5:私は最初自宅に余っていたマイクロ usb ケーブルを接続しても認識せず、焦りました。。