🙌

Raspberry Piに入門しました

2024/05/11に公開

はじめに

以前から興味があったものの、なかなか手を出せなかったラズパイ。
具体的なゴールを見いだせないと始められない性分なのですが、このたび子どもと電子工作を学ぶという口実のもと、ようやくはじめました!

…が、触れてみたところ小1の子どもにはハードルが高く、将来一緒に遊べるよう先に学んで見る、という目標に落ち着きました(笑)

こちらが外箱です。サイズ感は思っていたよりも小さかったです。

揃えたもの

初学者向けの本を買いました

Raspberry Piで学ぶ電子工作」という書籍を購入し、まずはこちらをなぞることにしました。

必要なものの購入から紹介されており、WEBページでは紹介されているサンプルコードのダウンロードもできます。各ステップも非常に丁寧に紹介されていたのでこれなら躓かなさそう、と選びました。

https://bluebacks.kodansha.co.jp/books/9784065193396/appendix/

キットを買いました

書籍内でキットの紹介があり、秋月電子通商のネット販売を利用しました。

https://akizukidenshi.com/catalog/g/g129362/
https://akizukidenshi.com/catalog/g/g115351/

バラで必要なものを買ったほうが安いという話もありました。

  • ケースは不要、もしくは後で好みのものを探せば良い
  • 電源はスイッチ付きのものを選んで購入しても良いかも
  • マイクロSDカードくらい持っている

ただ、ネット販売を使った際に買いそびれで作業が止まるのは絶対イヤなので、躊躇せずキットを買いました。

初期設定

OSインストール

まずはOSをSDカードにインストールするところから始めました。
こちらはPC(Mac)で作業をおこないました。

https://www.raspberrypi.com/software/
こちらのサイトでSDカードにOSを書き込むアプリをダウンロードすることができます。

64bitを選んでみました。また、OS選択で Raspberry Pi OS(Other) というタブを選ぶとLite、Fullなど細かい選択ができ、最初なのでFullを選んでみました。

実は購入時に含まれていたSDカードにはOSがインストール済みで、そちらをそのまま使っても動かすことはできました。ただ、手順として触れておきたく、敢えてサイトからのダウンロードをおこなってみました。

組み上げ・起動

パソコンのようにモニタでのソフトウェア操作をおこなうため、ラズパイをセットアップしていきます。

  • 本体をケースに収納し、OSをインストールしたSDカードを差し込みます。
  • モニター(HDMI)、キーボード・マウス(USB)、最後に電源(type-C)を接続します。
  • ラズパイスイッチがないので給電が始まると起動する仕組みです。

起動後に初期設定が始まり、アカウント作成、言語選択やWiFi設定、スキップ可能ですがOSアップデート等も実行できます。親切なGUIなので割愛しますが、この手続きを経てようやくOSが立ち上がります。

GUI設定

OSがDebianベースのようで、GUIも非常にしっかりしたものが用意されています!

Chromium完備!

Chromiumが入っているので、快適なネット体験が可能です。これならデスクトップPCとしても利用できますね!YouTube再生等も問題なく、子どもに与える最初のパソコンはこれだな、と思いました(笑)

ググりながらの電子工作がラズパイで完結する、というのが一番の感動です!

VSCodeが使える!

慣れ親しんだエディタがあるのは良いですね!
ラズパイのコードを書く際、標準的なPythonエディタとして「Thonny」というツールが用意されているのですが、VSCodeでも同じようなコード実行、デバックなどができるので、早速移行してみました!


上のキャプチャがThonnyとVSCodeの画面です。

ちなみにラズパイは多くのアプリがGUIからのインストールも可能なのですが、ターミナルからのインストールが圧倒的に早い傾向にあります。

VSCodeのインストールは以下のコマンド実行が便利です。

sudo apt install code

いくつか対処したこと

素晴らしいGUIインターフェイスに歓喜しながらも、いくつかのトラブルにはみまわれました。

スクリーンショットが取れない

こちらのブログ用にキャプチャを撮ろうとした際に起きた問題です。

ググると「print screen」押下後にターミナルからscrotコマンドを実行することでキャプチャが取れるとの記事が散見されます。が、実施したところ真っ黒な画像が保存されるばかり…

調査の結果、ウィンドウマネージャーにWayLandを利用しているとキャプチャが取れないとの情報を得ました。WayLandは昨年採用されたばかりのウィンドウマネージャーで、それ以前にX11があります。こちらのころに利用されていたコマンドが前述したものでしたが、どうやらWayLandでは動かせていないようです。

以下の記事でX11への切り替え方法が紹介されていました。
https://www.indoorcorgielec.com/resources/raspberry-pi/window-manager/

暫定で切り替えをおこないつつも、今後はWayLandが主流になっていくと思うので、そちらでのスクリーンショット対応ができるよう調べていければと思います。

Chromiumで日本語入力ができない!?

しばらくは英語サイトを狙って検索していたので気づきませんでしたがアドレスバーに日本語が入らない事象にぶつかりました。
ちなみにメモ帳等は普通に入力できるんですよ?

調べたところ、こちらを見つけました。

https://www.indoorcorgielec.com/resources/raspberry-pi/raspberry-pi-input-japanese/

またもウィンドウマネージャ…
スクリーンショットの不具合では一時的に切り替えを行っていましたが、その後規定設定のほうはWayLandに戻しており、こちらはアプリ起動時のオプションで凌ぐことにしました。

chromium-browser --ozone-platform=x11 %U` (オプションが追加されています)

  • 「Chromium ウェブ・ブラウザ」のアイコンを右クリックすると「プロパティ」が開けます。
  • プロパティを開いたところで「コマンド」の項目に起動オプションを付与できます。

WayLandは細かいところがまだ不安定に思いました。
将来的には移行していくと思われますが、直近パソコンのように利用するのであれば、まだX11を選択しておくのも手かもしれません。

Lチカ

ようやく電子工作にたどり着きました!
LEDをチカチカする操作を「Lチカ」と言うそうで、電子工作の「Hello World」のようです。

書籍の手順でこちらの実行をおこないました。

  • ラズパイから電源供給(3.3V)だけ受けて、まずは点灯してみる。
  • 次に、GPIOポートを使って、プログラムで点滅操作を入れてみる。

前者は小学校でやった豆電球の工作とほぼ同じですね。非常にすんなり動きました。
後者がラズパイならではのハンズオンになります。

GPIOエラーで躓く

書籍をなぞってコードを書いたら、こちらの問題に当たりました。

Traceback (most recent call last):
  File "/home/ttaniguchi/raspi1a-sample/04-01-led.py", line 5, in <module>
    GPIO.setup(port, GPIO.OUT)
RuntimeError: Cannot determine SOC peripheral base address

またもや、勇んで新しいバージョンを買ったために踏んだ地雷のようです…
Pythonライブラリのバージョン依存問題とのことで、以下のような解決方法を見つけました。

https://www.denshi.club/parts/2024/02/202310-bookworm-9-5gpio.html

まとめると、書籍で紹介されていたライブラリがサポートされなくなる傾向にあり、別のライブラリの移行が推奨されていました。
ただ、今は書籍をなぞりたいこともあり、旧ライブラリを動かす方向で作業をすすめました。

pip install --break-system-packages rpi-lgpio

ひと仕事終えて…

最初の入門、Lチカまで駆け抜けました。
たいして大きな進捗はないのですが、最新のラズパイを試したことでソフトウェア起因の問題に多くぶつかった気がします。

電子工作部分にはほぼ入れていませんが、これから入門する方、またはラズパイ5への移行を検討されている方に対して、一助になればと思います。

今後は面白い開発ができたら記事にしたいと思います!

Discussion