はじめに
第1章 Raspberry Pi Picoについて
第2章 Raspberry Pi Picoによる開発
第3章 "Blink an LED"
第4章 作りながら学ぶ電子工作
付録A ソフトウェアインストール手順書
おわりに
みなさま、ごきげんよう。Fluffy Made Cafe(読み方:フラッフィーメイドカフェ)のChamao(読み方: ちゃまお)です。この度は、数ある技術書の中から本書に興味を持っていただき、ありがとうございます。
本書は、2021年7月10日から7月25日の期間に開催された「技術書典11」で同人誌版として販売した同名タイトルをベースに、加筆修正を行った商業版となります。本書を執筆した目的は、2021年2月に発売された、Raspberry Pi Picoの素晴らしさを広めることです。本書が想定している読者の皆さんは、『マイコンや電子工作に興味があるけど、何からすればいいかわからない方』です。
本書は4章の構成となっており、各章の概要は以下の通りです。これらのことを知りたい方の手助けになれば幸いです。
・Raspberry Pi Picoとは何か?(1章の内容)
・Raspberry Pi Picoの開発環境はどうすれば良いのか?(2章の内容)
・Raspberry Pi Picoのソースコードはどう書いて、どう実装すれば良いのか?(3章の内容)
・Raspberry Pi Picoで何が作れるのか?(4章の内容)
本書で紹介する内容は、下記のふたつの開発環境での動作を確認しております。
(メイン環境: Raspberry Pi 4 element14版)
OS: Raspbian 10 Buster(32 bit)
OS Kernel: 5.10
CPU: ARM Cortex-A72(1.5 GHz)
RAM: 4 GB
(サブ環境: Windows PC)
OS: Windows 10 Pro(64bit)
OSバージョン: 2004
CPU: Intel Core i7-4770HQ(2.2 GHz)
RAM: 16 GB
この記事を読んでいる方が、そもそもRaspberry Piについて全く知らないかもしれないので、簡単に紹介します。Raspberry Piは、Eben Uptonさんが中心となって設立されたプロジェクトから生まれたハードウェアのことです1。元々、Eben Uptonさんは、イギリスの子供たちのコンピューティング教育に役に立つことを目的としてRaspberry Piを広める活動を行っていました。いまでは年齢など関係なく、世界中の多くの人に親しまれているハードウェアのひとつとなっています2。詳細を知りたい方は、Raspberry Pi公式サイトのAbout us(英語)(https://www.raspberrypi.org/about/)を読んでいただくのがいいと思います。
これまでに発売された製品を時系列に書くと、Raspberry Pi 1 Model B(2012年2月)→ Raspberry Pi 1 Model A(2013年2月)→ Compute Module 13(2014年4月)→ Raspberry Pi 1 Model B+(2014年7月)→ Raspberry Pi 1 Model A+(2014年11月)→ Raspberry Pi 2 Model B(2015年2月)→ Raspberry Pi Zero(2015年11月)→ Raspberry Pi 3 Model B(2016年2月)→ Compute Module 34(2017年1月)→ Compute Module 3L5(2017年1月)→ Raspberry Pi Zero W(2017年2月)→ Raspberry Pi Zero WH(2018年1月)→ Raspberry Pi 3 Model B+(2018年3月)→ Raspberry Pi 3 Model A+(2018年11月)→ Raspberry Pi 4 Model B(2019年6月)→ Compute Module 46(2020年10月)→ Raspberry Pi 4007(2020年11月)→ Raspberry Pi Pico(2021年2月)→ Raspberry Pi Zero 2 W8(2021年10月)です。
同じシリーズ(たとえばRaspberry Pi 3)でも、仕様の違いによってModel AとかModel Bとなっています。これらの製品にはRaspberry Pi独自のOSを載せることができて、公式がメインで配布しているのはDebianをベースに開発したRaspberry Pi OS9ですが、Windows10 IoTを載せたりできます。値段もお手頃で、25ドルのシングルボードコンピューターとして知られていますが、Zeroに関しては5ドルです。
図1.1は、最新モデルであるRaspberry Pi 4です。サイズは、85mm × 56mm × 18mm。手のひらサイズでありながら、CPUは1.5 Hzのクアッドコアで、4Kモニター2枚に映像出力できるので、ひと昔前のパソコンより高性能といえます。
国内では有名な電子部品販売店の実店舗や、ネット販売で入手できますが、右肩上がりの人気の高さと、近年の半導体不足により、最新モデルは在庫不足 or 値段高騰しています。
Raspberry Pi Picoは、これまでの製品とは大きく異なっていて、OSが載りません10。電子機器などに載っていて、機器の制御を行っているマイクロコントローラー(通称マイコン)として作られました。サイズは図1.2の通り、100円玉2枚分くらいなので、どれだけ小さいかがわかるかと思います。
Raspberry Pi Picoの詳しい仕様等は、ドキュメント名: Raspberry Pi Pico Datasheetや、ドキュメント名: RP2040 Datasheet(https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html)からPDFファイルとしてダウンロードできますので、気になる方は公式ドキュメント11をご確認ください。
本書では、簡単に紹介します。Raspberry Pi Picoには、独自開発されたRP2040と呼ばれるマイクロコントローラーが搭載されています。このマイクロコントローラーは、最大133 MHzのDual-core Arm Cortex M0+、264 kBのSRAM、2MBのオンボードフラッシュメモリー、USB1.1、26つのマルチファンクションGPIO、ふたつのSPI、ふたつのI2C、ふたつのUART、3つの12bit ADC、16つのPWM channels、温度センサー(CPU用)、8つのProgrammable I/O(PIO)など…抜粋して書いても、これだけの内容で構成されています。
おそらく馴染みがないであろう単語につきまして…GPIOは「汎用性のある入出力」、SPI・I2C・UARTは「通信方法の名称」、ADCは「アナログデジタルコンバータ」、PWMは「パルス幅を使った電圧変調」、PIOは「CPUを必要とせずに、単純なプロセッサー機能を持つステートマシンを使ってデータのやり取りを行うこと」です。PIOは、Raspberry Pi Pico最大の特徴といってもいい機能ですが、ハードウェア・ソフトウェアの仕様が結構難しいので、本書での解説は見送らせていただきます。
図1.3は、Raspberry Pi Picoのピン配置を表したものです。灰色で囲まれた四角の中の数字がピン番号となっており、各ピン番号の横に書かれているのが、ピンの役割です。たとえば、ピン番号1は、GPIO、SPI、I2C、UARTの機能を持っていますが、ピン番号3はGND(グラウンド)の役割しか持っていません。ちなみに余談ですが、ピン番号とGPIOの番号12は間違えやすいので、他のサイト等を参考にしながら電子工作を行う際は、注意してください。本書では混乱しないように記載します。
マイコンを用いた電子工作では、センサーや液晶モジュール等をマイコンに接続して、マイコンにプログラムを書いて実行することで、センサーや液晶モジュール等が動作します。そのため、ハードウェアとソフトウェアの両方の知識が必要となってきますが、やっていくうちに覚えていくことができます。
シングルボードコンピューターのRaspberry Piシリーズにも初代からGPIOピンがあり、センサーや液晶モジュールを接続することができます。そのため、「Raspberry Piがあれば、Raspberry Pi Picoは不要なのでは?」と感じるかもしれません。また、他のマイコンとRaspberry Pi Picoがどう違うのかわからない方もいらっしゃると思います。
まず、前者に関しては「開発の際にOSを必要としたり、複数のタスクを処理させたいならシングルボードコンピューターのRaspberry Piシリーズがおすすめ」ですが、「小型化・低消費電力での開発を必要とするならマイコンのRaspberry Pi Picoがおすすめ」といえます。後者に関しては、「マイコンごとに性能や価格差や使用する開発言語の違いはあるものの、大きな違いはない」といえます。Aというマイコンで開発できるものは、基本的にRaspberry Pi Picoを用いても、同様の開発ができると思います。
開発用途や予算によって選択肢が変わってきますので、「絶対これを使ったほうがいい」というものはないです。世の中で普及しているスマートフォンやパソコンのどれがいいかは、人それぞれなのと同じです。