デジタル化、DXの波がすでに世間を飲み込んでいます。
私もそんな波に負けずプログラミング(Python,html,css,JavaScript)を未経験ながら始めたものですが、今回RaspberryPiというものに出会いました。
完全など素人ながらRaspberryPiを使ってこんなことしているというものを成長録としても残していきたいと思います。
RaspberryPiとは
まずRaspberryPiについて簡単に説明しておきます。
と言っても、プログラミングの勉強を始めてからRaspberryPiそのものの名前を知った程度の知識です。
ごめんなさい。詳しいことはググってください(笑)
僕の初期知識としては、「ラズベリーパイ何それ?おいしそうじゃん!」からの「あー機械なのね。自作PC的なもの?」でした。
さて、ラズベリーパイを一言で表すと、シングルボードコンピュータです。
もっと簡単に言うと、つまりはパソコンです。
見た目はこんな感じですべてむき出しで、機械いじりなんてしたことなかった僕からすると触るのですら怖いレベル。。。
モニターもキーボードもマウスも付いてないし、OSも自分でSDカードにインストールしてから使わないといけない代物です。
IoTの時代になっているので手持ちのカメラをネットワーク接続したりとかそんな感じで仕事では使われているみたいです。
とりあえずやってみる
ラズパイの購入
わからない話は使ってみてから、おいおい覚えるとして、ラズパイが活用されていることを知った僕は、まずはやってみないと!触ってみないと!ということで購入しました。
ラズパイを使用するには本体以外にもいろいろと必要です。
先ほど言ったようにモニターなども付いていないので、それらも用意する必要があります。
必要なもののググって、ひとまず次のものがあれば、起動はできるらしいです。
- ラズパイ本体
- ラズパイ本体用のケース
- HDMIケーブル(ラズパイ4の場合はmicroHDMIケーブル)
- microUSBケーブル(スイッチ付が良い)
- 電源アダプタ
- SDカード(最低8GB)
- マウス
- キーボード
- モニター
- パソコン
パソコンであるラズパイを触るのにパソコンがいるのかよ!って感じですが、最初にSDカードにRaspberryPi OSをインストールしないといけないのでしょうがないですね。
すでに手持ちにあるHDMIケーブル、microUSBケーブル(スイッチないやつ)、SDカード(PSPに使ってたやつかなw)、マウス、キーボードなんかはそのままにして不足分を買い足しました。
ただ、ラズパイやはり今、人気で在庫が内容でひとつ前の方のラズパイ3Bというものを購入しました。
参考書の購入
何をできるのかから学ぶ必要がある僕は、いろいろなことができると言われるけど、まずはラズパイってこんなもんかと思える程度でいいから早く手を付けたいと思い、参考書を購入することにしました。
ググっておすすめと書いてあった書籍をそのまま注文。
この本に書かれている通りまずは動かして、そのあと自分で挑戦してみようというスタイルで臨みます。
書籍は、ラズパイ本体の注文と一緒に行いましたので、先に通読することにしました。
そこでわかった衝撃の事実・・・モーターや抵抗器や各種ケーブルなど必要なものがいろいろある!
電子工作がテーマなのでいろいろと必要なのはわかってましたが、スタート地点に立つためにもいろいろと購入しないといけませんでした。
ただ、電子パーツ屋なんて行ったこともない僕ですので、そこも参考書に頼り切りました。
参考書には丁寧に必要な部品、パーツが紹介されていて、さらに秋月電子通商というお店で書籍連動のパーツセット(秋月電子通商HPはこちら)が販売されているとのことでした。
お店にも訪れてみましたが、部品パーツ一つ一つを購入することは素人には不可能と感じました。
何も迷わず、パーツセットを購入して、あとは、ラズパイ本体が届く日を楽しみに待っています。
後日届いた、ラズパイ本体と書籍、パーツはこんな感じ。
ラズパイ本体やその他もろもろで約1万円、書籍+部品パーツで約5000円。気軽に始めれると思ったら意外な出費を被ることになりました。
RaspberryPiのセットアップ
いよいよRaspberrypi(ラズパイ)が届きましたのでここからセットアップです。
ちなみに今回のラズパイのセットアップから操作まですべて参考書「Raspberrypiで学ぶ電子工作」をもとにしていますので、詳細説明はすべて書籍に譲ります。
まだ、一通り目を通した程度ですが、この通りやればラズパイ使ったと実感持てる内容かと思いますので、手に取ってみてください。
まず、SDカードにRaspberrypi OSをインストールしないといけないので、ノートパソコンからRaspberrypi OS(HPはこちら※英語のサイトです)からRaspberryPi Imagerをインストールして、手順に従い、SDカードにOSをインストールします。
なんのこっちゃーーって方は、パソコンのCドライブをSDカードにて構築してるんだよー程度でいいでしょうか。
インストールも参考書に沿って実施していけばいいのですが、僕はいきなりつまずきました。
SDカードのフォーマット
新しく購入したSDカードを使うのであれば、フォーマット(初期化)は不要です。
ただ、今回は手元にあったSDカードを使用しました。
このSDカード以前PSP(プレイステーションポータブル)で使用していたので、すでにフォルダの中にファイルが保存されていました。
まずは、このSDカードをフォーマットしてまっさらな状態にする必要がありました。
SDカードのフォーマット化も参考書に補足として記載はあるのですが、補足なのでページが後ろの方でした。
SDカードのフォーマットもRaspberrypi OSをSDカードに書き込むために手持ちのPCにインストールしたRaspberryPi Imagerから行うことができます。
OSを書き込む際は、SDカードにインストールするOSをプルダウンから選択しますが、逆に削除する場合はそのプルダウンからERASEを選択してWRITEを実行。
そしてその後、通常通り Raspberrypi OSをWRITE。
ずっと放置していたSDカードだったので、SDカードの方がダメだったのかなと焦りはしましたが、ネットの力も借りて無事セットアップ完了!!
それ以外は特に悩みはなく、デスクトップが表示されると、確かにそれは紛れもないパソコンでした。
なんか少し動作が重いなとは思いましたが、少し性能が低そうなPCそのものです。
エルチカの実装
今日はあまりラズパイを触る時間もないので、ラズパイの初歩中の初歩と言われているエルチカの実装にチャレンジしました。
エルチカなんのことからわかるでしょうか?
ズバリ!、、、LEDライトをチカチカと点滅させることです!
なんだそれだけかと思うかもしれませんが、LEDライトを光らせるために購入したパーツつなげる電子工作を行い、点滅させるためにプログラムを書く必要があります。
まずは点灯実験
参考書を参考にしながら、まずはプログラミングなどを使用せず、単純にLEDの点灯(点滅はしない)を実装しました。
電子というと、オームの法則であったり、学生時代の思い出がよみがえってくる僕ですが、単純に工作することが面白かったです。
これは、ラズパイから電源を供給して物理的にLEDを点灯させています。
小学生の理科のレベルです。
エルチカの実装
つぎにいよいよこれを点滅に切り替えます。
点滅させるためにはプログラミングが必要で、プログラムを書く環境自体も RaspberryPi OS に備わているので参考書通りに進めていきます。
プログラム自体はごくありふれたものでしたし、僕自身の備忘録のためにも今回は記載したコードを残しておきます。
inport RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(25,GPIO.OUT)
while True:
GPIO.output(25,GPIO.HIGH)
sleep(0.5)
GPIO.output(25.GPIO.LOW)
sleep(0.5)
点滅の実装は、ONとOFFを交互に0.5秒間隔で繰り返すことで実装が可能です。
while Trueで繰り返し処理をして、その中に電源ON(High)と電源OFF(low)をsleep関数を使ってプログラムを0.5秒止めつつ実行しています。
プログラムの内容をざっくり解説
1行目にimport文でRPi.GPIOというライブラリをインポートしています。
ラズパイに搭載されているGPIO端子の出力を制御するライブラリをインポートしている。これにより、次に紹介するプログラム本体の
GPIO. ~~
と記載されている文で制御が簡単にできるようになっている。
4行目と5行目は初期設定をしています。
僕もこの辺は定型文としてさらっと流して、なんとなくやってることがわかる程度です。
ラズパイにはGPIO端子と呼ばれる40個のピンがついていて、それぞれに番号とさらにGPIO番号がついています。
今回でいうとGPIO 25というポートを使用していて、OUTなので出力側に設定しましたよ。ということでしょう。
実際のLED照明の制御は7行目からのwhile true以下の数行で実施されています。
while trueとは、その下のインデント(字下げ)されている範囲のプログラム処理を停止するまで実行するループ処理のことです。
どんな言語でもいいのでプログラミング言語を学んでいるとすんなり理解できるだろうが、プログラム自体はじめて触るという人は少しなじみがわかないかもしれない。
outputで制御していて、GPIO番号とHIGHとLOWの状態で点灯、消灯を繰り返すことで点滅を実現しています。
ただそのままでは超高速に点灯と消灯を繰り返してしまうので、その間にsleep(秒数)という関数が記入されていて、これでプログラムの処理を止めています。
つまり、挙動としては、HIGHで点灯→プログラム停止(点灯したまま)→LOWで消灯→プログラム停止→繰り返し、、、、というもので点滅を実装していることがわかります。
いろいろと実験
プログラムのいいところは、書き換えてみてプログラムを実行するとすぐに返答が返ってくることだと思います。
また、プログラムが間違っていたとしても、エラーが表示されるだけで、ラズパイやLED照明自体がぶっ壊れることは基本ないというところいいところです。
僕はこんなことを思いました。
これ、たぶんHIGH、LOWじゃなくてもTrue、Falseとか1、0でも実行できるんじゃないかな?
てなことで、教科書通りに書いていたプログラムを書き換えて実行!
HIGHをTrueなど書き換えてみて、プログラム実行!
、、、いや、ダメでした(笑)
普通にそんなものはねぇとAttributeErro: module ’RPi.GPIO’ has no attribute 'trure'
が返ってきました。
まぁ、いろいろ試して、すぐに結果が返ってくるというもプログラミングにいいところということで(笑)
さらに、このプログラムでもう一つ気になったことがあります。
このままプログラムのままだとwhile Trueだからひたすら繰り返されるし、プログラムを止めようとすると必ずエラー文が返ってきてしまう。
書きながらエラー回避しないといけないなぁと思えたのはプログラミングを学習してきた賜物です。
まぁひとまず動くことは確認したのでこれでOK!!
なお、プログラムを触ったことない人でも、参考書にはコードが掲載されてますので、まずはコピペでも動くことが確認できます。
ただ、プログラムは初歩の初歩でも先に勉強していた方がやってることのイメージがしやすいかなと思います。
そんな感じで実装したエルチカがこちらです(GIF処理ですがw)!!
おわりに
ラズパイを触ってみようということで初歩中の初歩エルチカを実装しました。
参考書とその中に登場するパーツは一通りそろえたので、まずはこの参考書を完全制覇できるように頑張っていきます。
ラズパイ触ってみたは別記事も更新してます。
これからはどんな業界で仕事していてもICTは切り離せないですよね。
また、一般生活になじみすぎて、意味は理解してなくてもなんとなくわかるというもの増えてきました。
Wi-FiとかOS(iOS、Android)などなど、、、こういった言葉も当たり前のように使用してるけどどういう仕組みなんだろうとか細かく勉強してITリテラシー高めていきたいです。
目指せ!ラズパイマスター!!
また、次回お会いしましょう。
コメント