はじめに
業務で適用できないかと考え、Raspberry Piを購入しました。今回、チュートリアルの位置付けとされるLED点灯を行いました。
私自身電子工作は初めての経験となります。ご意見、ご感想何なりとお申し付けください。
当方、メインPCはWindowsを使用しております。
- Raspberry Piをリモートで接続
- LED回路を作製
- Python経由でLED点灯プログラムを作成
Raspberry Piをリモート接続
Windowsでは他のPCを表示、操作するリモートデスクトップという機能があります。これは、Windows10であればWindowsアイコンの横の検索欄から検索することで出すことができます。
私の場合はWIFI経由でRaspberry Piへアクセスします。コンピュータ名としてはIPアドレスを入力する必要があります。これは、Raspberry Pi内のターミナル画面からipconfigコマンドによって確認することができます。
上記のwlan0以下、inetに記載されているものがIPアドレスになります。こちらを入力しましょう。
続いてxrdpによるログイン画面になります。
xrdpとはLinux上へMicrosoft Remote Desktop Protocolを提供するサーバープログラムのことです。
Raspberry Pi上のターミナルにて下記コマンドからインストールしておきましょう。
sudo apt-get install python-rpi.gpio
上の画像がログイン画面です。
初期設定では、id:pi, password:raspberryとなっています。セキュリティの観点からこれは変えておいた方が良いと思います。
無事に入ることができました。
LED回路を作製
今回、Raspberry Piへの回路作製を行うため、こちらを購入しました。
とりあえず何でもall in oneで入っているタイプにしました。
https://www.amazon.co.jp/BONROB-Raspberry-%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89-%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%91%E3%83%BC%E3%83%AF%E3%82%A4%E3%83%A4%E3%83%BC-RAB%E3%83%9B%E3%83%AB%E3%83%80%E3%83%BC/dp/B07P5LMVN1
LED点灯に関しては、こちらを参考にしました。
http://make.bcde.jp/raspberry-pi/gpio%E3%81%A7led%E3%81%AE%E7%82%B9%E6%BB%85python/
Raspeberry PiにはGPIO(“General Purpose Input/Output”)と呼ばれる入出力を行う端末があります。私はRapberry Pi 4を購入したため、40ピンあります。
まず気づいた点としては、これら40個のどこを指しても同じ機能を有するわけではなく、入力させたい場合や出力させたい場合で使用しなければならないピンが分かれている点です。
Rapberry PiからこのGPIOを通じてLED回路へ電気を流す(=ハードウェアをコントロールする)ことを行うためには、通常デバイスドライバのインストールが必要になります。しかし、プログラム上からGPIOと呼ばれるコマンドを用いることで制御できます。
今回は、こちらの図のように組み立てました。注意ポイントとしては、LEDライトの電極の向きです。足が長いほうがアノード端子(+)になります。
Python プログラムによりLED点灯
さて、いよいよLED点灯を行いましょう。LED点灯はターミナル上からコマンドでもできますが、今回はPythonを使います。Raspberry Pi 4ではThonny Python IDEというIDEがインストールされていますので、こちらから実行します。
GPIOを操作するためには、GPIOライブラリを導入する必要があります。Raspberry Piのターミナル上で以下コマンドによりインストールしましょう。
$ sudo apt-get install python-rpi.gpio
さて、実際に点灯させるプログラムが下記です。今回は、5回2秒ピッチで点滅させます。
import RPi.GPIO as GPIO
import time
GPIO.setmode(RPi.GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
for x in xrange(5):
GPIO.output(18, True)
time.sleep(2)
GPIO.output(18, False)
time.sleep(2)
GPIO.cleanup()
無事に点灯させることができました。
終わりに
今回、Raspberry Pi工作のチュートリアル的存在であるLED点滅を行いました。リモートで行うことにより、より離れた位置から操作している感を出すことができて楽しいです。
これをさらに応用させてAWS上にサーバーを立ててペット監視用ウェブサイトを作る等、IoTを実感できる仕組みを作っていきたいと思います。