正規のオンライン小売業者:
前のレッスン- Prepare GPIO tool-WiringPi utility では、WiringPiとC言語を使用してGPIOを制御し、LEDを点灯する方法を学びました。今回のレッスンでは、別の強力なプログラミング言語であるPythonを使用して、同じ作業を行います。
PythonはLinux、Windows、Mac iOSで実行できるプログラミング言語です。Pythonについてもっと学びたい場合は、以下のウェブサイトを訪問してください Python official website.
C言語プログラマーにとって、最も頻繁に使用されるGPIOライブラリはWiringPiであり、前のレッスンで学びました。プログラミング言語がPythonに変更された場合、通常はRaspbian Jessie OSに付属している別のGPIOライブラリであるRPi.GPIOを使用します。
**RPi.GPIOのピン定義はWiringPiと異なります。RPi.GPIOのピン定義の詳細については、当社のレッスン2を注意深くお読みください。 Introduction Of Raspberry Pi GPIO
Raspbian Jessie 2015-05-27以降のリリースにはRPi.GPIOが事前にインストールされており、直接使用することができます。以降のチュートリアルでは、RPi.GPIOを使用して時々Raspberry Pi GPIOをプログラムします。RPi.GPIOについてもっと学びたい場合は、以下のウェブサイトを訪問してください。here.
Python RPi.GPIOライブラリがインストールされているかどうかをテストするには、ターミナルでpythonを入力してPythonを起動する必要があります(以下の画像を参照してください)。
そして、import RPi.GPIOと入力します。エラーが表示されなければ、RPi.GPIOがインストールされていることを意味します。
最後に、RPi.GPIO.VERSIONと入力します。以下のようにバージョンが表示されれば、あなたのPiは準備完了です!
Python IDLE上記のPythonのテスト例では、ターミナルコマンドを介してPythonプログラムを実行しました。このような原始的なプログラミング方法は、コードの管理やデバッグに便利ではありません。Pythonの専門家たちの努力のおかげで、Pythonのための開発および学習環境(IDLE)という進化したツールがあります。実行およびコンパイルコマンドを覚える必要はありません。それは、使用しやすくデバッグに便利なグラフィックユーザーインターフェイス(GUI)です。Raspbian Jessie PIXELオペレーティングシステムには、Python IDLEが付属しています。以下の画像のように、アプリケーションメニュー→プログラミング→Python 3(IDLE)からIDLEを開くことができます。
IDLEには、python2とpython3の2つのバージョンがあります。プログラムがpython3を介して実行された場合、python2を介して実行することはできません。新しいバージョンであるPython 3を推奨します。IDLEについて詳しくは、以下を参照してください。here
RPi.GPIOを使用するサンプルプロジェクト
次のチュートリアルでは、前のC言語のレッスンで行ったLEDの制御をPythonプログラムを使用して行うために、IDLEを使用します。 Lesson 3 .
1)実験の原理
ラズベリーパイのGPIOにLEDを接続し、その後、プログラムはこのGPIOに高または低のレベルを出力してLEDの点滅を制御します。
**上記のグラフでのB17は、物理ピン#11、wiringPiピン#0、BCMピン#17です。
注意:BはBCM(Broadcomピン番号)を意味します。BCMピン番号、物理ピン番号、wiringPiピン番号がわからない場合は、レッスン2:Raspberry Pi GPIOの紹介を確認してください。 lesson 2: Introduction Of Raspberry Pi GPIO
2)接続グラフ
3) Pythonプログラムの実行
方法A:IDLEでPythonコードを実行する
Raspberry Piがモニターに接続されている場合は、以下の手順を実行することをお勧めします。
a)IDLEを開き、[ファイル] -> [新しいファイル]をクリックして新しいウィンドウを開き、 the code をこのウィンドウにコピーします。または、 pythontest.py ファイルをダウンロードして、ダブルクリックして開きます。
b)「Ctrl」+「S」を押して、/home/pi(デフォルト)などのパスにプログラムを保存します。拡張子(.py または pyw)を保持し、名前をつけるときには自分の好きな名前をつけます。以下の写真のように、ファイル名は pythontest.py とします:
c) ファイルを保存した後、「F5」をクリックするか、「Run->Run Module」をクリックして、このプロジェクトを実行してください。
Method B)コマンドラインでPythonコードを実行する方法
もしRaspberry Piがモニターに接続されていない場合、またはリモートでアクセスしている場合、以下の手順でPythonプログラムを実行できます。
a) 次のコマンドを実行して/pythontest.pyコードをダウンロードしてください。
wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_4/pythontest.py
b) 以下のコマンドを実行して、プロジェクトを実行してください。
python pythontest.py
5) Pythonコードの実行結果
コードを実行すると、最初にターミナルには「codef」というメッセージが表示され、その後LEDが点滅し、ターミナルにはLEDの状態が表示されます。
Pythonコードの説明
import RPi.GPIO as GPIO import time # set GPIO 0 as LED pin LEDPIN = 17
importは、Python環境に特定のライブラリを追加するキーワードです。「import RPi.GPIO as GPIO」はRPi.GPIOライブラリを追加し、「import time」はtimeモジュールライブラリを追加します。.
Python RPi.GPIOは、BCM命名システムを使用しています。「LEDPIN = 17」とすることで、BCMピン#17を使用して信号を送信します。BCMピン#17は、物理ピン#11であり、wiringPiではGPIO.0またはピン#0の名前です。Raspberry Pi GPIOYに関する詳細情報は、参考にすることができます。GPIOレイアウトを確認するには、コマンド「gpio readall」を実行してください。
#print message at the beginning ---custom function def print_message(): print ('|*********************************|') print ('| blink LED |') print ('| ------------------------- |') print ('| LED connect to GPIO |') print ('| |') print ('| LED will blink at 500ms |') print ('| ------------------------- |') print ('| |') print ('| OSOYOO |') print ('**********************************\n') print ('Program is running...') print ('Please press Ctrl+C to end the program...')
Def means definition of a function.
Print_message is a custom (edited by yourself) function, and show print message on the terminal. To learn more information about function definition, please click here.
#setup function for some setup---custom function def setup(): GPIO.setwarnings(False) #set the gpio modes to BCM numbering GPIO.setmode(GPIO.BCM) #set LedPin's mode to output,and initial level to LOW(0V) GPIO.setup(LEDPIN,GPIO.OUT,initial=GPIO.LOW)
GPIO.setmode(GPIO.BCM) function sets up BCM numbering method as GPIO numbering method. GPIO.setup(LedPin,GPIO.OUT,initial=GPIO.LOW) function sets up LedPin as output mode and set low level as LedPin’s initial level.
#main function def main(): #print info print_message() while True: GPIO.output(LEDPIN,GPIO.HIGH) print('...LED ON\n') time.sleep(0.5) GPIO.output(LEDPIN,GPIO.LOW) print('LED OFF...\n') time.sleep(0.5) pass pass
メイン関数は、LEDのピンレベルを何度も変更してLEDを点滅させ、ターミナルにメッセージを送信します。
Agpiozeroを使用したPythonの代替ソリューション
上記の解決策では、基本的なGPIOライブラリを使用してPiに信号を送信します。実際には、gpiozeroライブラリを使用する方が簡単な解決策があります。次の手順を実行するだけです。
1)gpiozero Pythonライブラリがインストールされていない場合は、インストールしてください。gpiozeroは通常、最新のRaspberry Pi Pythonに含まれています。ただし、OSに含まれていない場合は、以下のコマンドを実行してインストールしてください。
sudo apt update sudo apt install python3-gpiozero
2)Pythonコードをダウンロードし、以下のコマンドに従って実行します:
wget http://osoyoo.com/driver/pi3_start_learning_kit_lesson_4/gpiozerotest.py python gpiozerotest.py
gpiozerotest.pyのコードは以下の通りです
import gpiozero import time led = gpiozero.LED(17) while True: led.on() print('...LED ON\n') time.sleep(0.5) led.off() print('...LED OFF\n') time.sleep(0.5)
実行結果は以前のプログラムと同じになります。
DownLoad Url osoyoo.com