Raspberry Pi の概要と使い方
Author:ren
記事作成日:2022/12/17 21:37
/icons/hr.icon
はじめに
みなさん、Raspberry Pi って知ってますか?
電子系の人からよく名前を耳にすることがあったのですが、僕はただのラズベリーのパイだと思っていました。ですが違いました。最近になってラズパイについて詳しく知ったのですが、使ってみたところ組み込みシステムを作るにはかなりいいということがわかりました。そのためこの記事では概要と使い方について簡単に説明します。組み込みシステムを作るかもしれないという人には是非読んでもらいたいです。
記事は以下の項目に分けてあります。
Raspberry Pi とは
Raspberry Pi 、通称ラズパイは小型のデスクトップコンピューターです。デスクトップPCなので、モニターに繋いで普通のPCとして使うことができます。ですが、本体が小さいので電源だけ繋いで組み込みシステムのように使うこともできます(実際はこっちが本業)。
例として僕が使った Raspberry Pi 4 Model B にはmicroHDMI端子が2つとUSB Type-A端子が4つ、LANコネクタ、そして電源用のUSB Type-C端子が付いています。これにRaspberry Pi OS (Linux系OS)を書き込んだ32GB microSDカードを差し込んで使います。
https://scrapbox.io/files/639caffa22e1cb001d482c2e.jpg
組み込みシステムとして使う際にはOSの機能を使ってラズパイの起動と同時に作成したプログラムを実行するように設定します。これだけで簡単に組み込みシステムを作れます。
ラズパイのセットアップ
ラズパイを使うための最初の一歩として、デスクトップ画面を表示するまでのセットアップについてざっくり説明します。
大まかな流れとしては、
付属のmicroSDカードにOSをインストールする -> ラズパイ本体にmicroSDを入れてモニターと電源、マウス、キーボードを繋ぐ -> 通常のPCと同じように初期設定をする
という流れになります。
https://scrapbox.io/files/639cb2bde12331001eb8882e.png
Imagerを起動したらあとは差し込んだmicroSDと書き込むOSを選択して色々同意してOSを書き込みます。書き込みが終了するとmicroSDはSDカードとして認識されなくなるためそのまま引っこ抜いてください(OSを書き込むとラズパイのストレージ以外の用途として使えなくなります)。
次に、OSの入ったmicroSDをラズパイに差し込んでモニター、マウス、キーボード、電源を繋ぎます。付属のHDMIケーブルは片側がmicroHDMI端子になっています。
最後にラズパイの初期設定ですが、普通のPCの初期設定と一緒です。地域と言語を選んでユーザーネームとパスワードを設定して終わりです。
デスクトップ画面が開くと分かりますが普通にPCです。壁紙を変えたり、Webサイトを見たりできます。ちなみにデフォルトのWebブラウザはパチモンのGoogle Chrome (Chromium)です。
ラズパイで出来ること
実際のラズパイの用途ですが、大学で組み込みシステムについて研究している人はマイコンとしてラズパイを使ってたりします。例えば、車に取り付けて路面が濡れているか、凍っているかを判別するシステムや、レシピを見ながら料理をする時に補助をするシステムとかで使われています。
僕は音を出す部分を作ったので、一例としてラズパイを使ったスピーカーシステムについて説明します(主にハードの部分について)。
ラズパイには40個のピンが取り付けられていてそこから電源を取ってきたり電圧のHigh, Lowをラズパイに入力したり、ラズパイから信号を出力したりできます。
ピンについては下記のページで詳しく説明されています
スピーカーシステムを作る場合、イヤホンジャックから音の信号を取り、その信号をアンプ回路で増幅してスピーカーユニットに繋ぐ必要があります。僕が大学で試作したものでは2番と9番のピンから電源を取っています。
https://scrapbox.io/files/639d87c161bf84001dfb68ee.jpg
使用したドライバーとアンプ
ちなみにアンプ基盤は下の図のようになっています。1つのスピーカーユニットで音を出すため、抵抗を挟んだ上で左右の音の信号を合わせています(抵抗を挟まないとショートします)。
https://scrapbox.io/files/639d93f9547a57001ee8a5fb.jpg
これだけでハードウェア的にはスピーカーシステムができました。
あとはソフトウェアの部分ですが、ラズパイでのプログラミングはPythonが主流なので僕はPythonでコードを書きました。SimpleAudioというライブラリを使うことでwavファイルを再生できます。
指定したプログラムをOSの起動と同時に実行する
具体的にどのような組み込みシステムを作るかは人それぞれですが、組み込みシステムとして使うためには最後に設定作業を行う必要があるため、作ったプログラムをOSの起動と同時に実行する方法について説明します。
この設定についてはやることが二つあります。まず1つ目に、起動するプログラム内のコードで使われているファイルのパスを絶対パスにすること、2つ目に/etc/systemd/system内にユニットファイルを作成してそれを有効にすることです。
(説明ではユーザー名が pi で、実行したいプログラムはDesktopに保存されているものとします)
1つ目は簡単なので2つ目から説明します。
まずはターミナルを開いてDesktopに移動して、ユニットファイルを作成します。
cd /home/pi/Desktop
touch test.service
ユニットファイルはunit(処理)が書かれているファイルで、拡張子は.serviceです。
test.serviceを開いて下記のコードを書き込みます。パスは絶対パスで指定します。
[Unit]
Description=Do test
After=cd Desktop
[Service]
ExecStart=python3 /home/pi/Desktop/test.py(実行するプログラムへのパス)
User=pi(ユーザー名)
[Install]
WantedBy=multi-user.target
下記のコマンドでtest.serviceを/etc/systemd/systemフォルダに移動します。
sudo mv test.service /etc/systemd/system
ちなみに、systemdフォルダにはバックグラウンドで実行されるプロセスが色々入っています。
cdコマンドで作業するフォルダを移動します。
cd /etc/systemd/system
下記のコマンドで所有者、グループ、その他のユーザー全てに対して読み込み権限、書き込み権限、実行権限を与えます。
sudo chmod 777 test.service
chmodコマンドについてはこちらで説明されています。
下記のコマンドで1回、プロセスを実行します。
sudo systemctl start test
下記のコマンドで実行できたか確認します。
sudo systemctl status test
表示された項目の中でActive: active (running)という表示があれば成功です。
確認ができたら下記のコマンドでプロセスを終了します。
sudo systemctl stop test
下記のコマンドでユニットファイルを有効にします。
sudo systemctl enable test
これでtest.serviceがバックグラウンドで実行されるようになり、起動と同時にプログラムが実行されます。
指定のユニットファイルが有効になっているかどうかを確認するにはsudo systemctl is-enabled testを実行してください。ユニットファイルを無効にする場合はsudo systemctl disable testを実行してください。
最後に
細かいところまで説明するとかなり長くなってしまうのでこの記事では導入として手短に書きました。実際に使ってみないとわからないこともあるので、今後使う機会があればまたこの記事を見てもらいたいです。
/icons/hr.icon