3.5 Lチカをモジュール(部品のセット)にしよう


 3.5 Lチカをモジュール(部品のセット)にしよう
Lチカを部品(関数)にします。部品は初期化、LEDのオン、LEDのオフの3種類です。この部品を他のプログラムで取り込んで使えるようにします。
回路は3.2と同じです。

(1) Lチカノの部品をモジュール(部品のセット)にしよう

作ったモジュールを使ってみよう。自分で作った、モジュールを「import」して使うことで、自分で作った関数(部品)を使って簡単にプログラムを大きくしていけます。
*Pythonの新しい命令を使います。
*import、as
*書き方
import モジュール名as ニックネーム
*取り込んで、部品(関数)を使うときは「ニックネーム.関数」で使います。

① 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_led1c_1.py」コマンドを実行して下さい。画面が「nano」エディターの画面に変わります。

② プログラムを変更します。
サンプルの様にプログラムを変更します。

サンプルプログラム1

 #! /usr/bin/env python

import RPi.GPIO as GPIO
import time

def led_init(leds):
GPIO.setup(leds, GPIO.OUT) # set GPIO leds output

def led_on(leds):
GPIO.output(leds, GPIO.HIGH) # leds ON

def led_off(leds):
GPIO.output(leds, GPIO.LOW) # leds OFF

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
led_init(LED1)

LED2 = 6 # LED1 –> GPIO6
led_init(LED2)

for i in range(10):
print(i)
led_on(LED1)
led_on(LED2)
time.sleep(0.5)

led_off(LED1)
led_off(LED2)
time.sleep(0.5)

GPIO.cleanup()
print(“led2b done”)

 

 

 

 

③ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。

④ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_led1b_1.py」を実行します。
*LEDが1秒間隔で10回点滅します。その後に、「led1b done」のメッセージが出ます。

raspi_code_3.5_1

⑤ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。

raspi_code_3.5_2

(2) モジュールを使おう
作ったモジュールを使ってみよう。自分で作った、モジュールを「import」して使うことで、自分で作った関数(部品)を使って簡単にプログラムを大きくしていけます。

*Pythonの新しい命令を使います。
*import、as
*書き方
import モジュール名as ニックネーム
*取り込んで、部品(関数)を使うときは「ニックネーム.関数」で使います。

① 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_led2c_1.py」コマンドを実行して下さい。画面が「nano」エディターの画面に変わります。

② プログラムを変更します。
サンプルの様にプログラムを変更します。
-「import time」の後に「import rpi_bp_gpio_led2c_1.pyas ctrl」を追加します。
-全部の関数定義「def」を削除します。

サンプルプログラム2

 #! /usr/bin/env python

import RPi.GPIO as GPIO
import time

import rpi_bp_gpio_led2b_1 as ctrl

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
ctrl.led_init(LED1)

LED2 = 6 # LED1 –> GPIO6
ctrl.led_init(LED2)

for i in range(10):
print(i)
ctrl.led_on(LED1)
ctrl.led_on(LED2)
time.sleep(0.5)

ctrl.led_off(LED1)
ctrl.led_off(LED2)
time.sleep(0.5)

GPIO.cleanup()

 

 

 

③ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。

④ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_led1c_1.py」を実行します。
*LEDが1秒間隔で10回点滅します。その後に、「led1b done」のメッセージが出ます。

raspi_code_3.5_3

⑤ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。

raspi_code_3.5_4

(3) 同じ部品名(関数名)でモジュールを使おう
作ったモジュールを使ってみよう。自分で作った、モジュールを「import」して使うことで、自分で作った関数(部品)をそのまま使えるようにします。
*Pythonの新しい命令を使います。

*from
*書き方
from モジュール名import *

① 「nano」エディター立ち上げます。
「nano rpi_bp_gpio_led2d_1.py」コマンドを実行して下さい。画面が「nano」エディターの画面に変わります。

② プログラムを変更します。
サンプルの様にプログラムを変更します。
-「import rpi_bp_gpio_led2c_1.pyas ctrl」を「from rpi_bp_gpio_led2c_1.pyimport *」に変更します。
-使用する関数の「ctrl.」をとります。

サンプルプログラム3

 #! /usr/bin/env python

import RPi.GPIO as GPIO
import time

from rpi_bp_gpio_led2b_1 import *

if __name__ ==(“__main__”):
#start

GPIO.setmode(GPIO.BCM) # use GPIO Number

LED1 = 5 # LED1 –> GPIO5
led_init(LED1)

LED2 = 6 # LED1 –> GPIO6
led_init(LED2)

for i in range(10):
print(i)
led_on(LED1)
led_on(LED2)
time.sleep(0.5)

led_off(LED1)
led_off(LED2)
time.sleep(0.5)

GPIO.cleanup()
print(“led2d done”)

 

 

 

 

③ 入力を終わります。
「ctrl+X」を実行します。次に、「y/n」は「enter」を入れます。

④ 入力したプログラムを実行します。
「sudo python rpi_bp_gpio_led1d_1.py」を実行します。
*LEDが1秒間隔で10回点滅します。その後に、「led1d done」のメッセージが出ます。

raspi_code_3.5_5

⑤ 電源をきります。
「sudo shutdown -h now」を入力して下さい。
*ステータスLEDの点滅が終わり、消えてからマイクロUSBのDC5Vを抜いて下さい。

raspi_code_3.5_6

Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です