현재 R-Pi Python LIB는 대략 3개정되는거 같다.
1. Rpi.GPIO = 과거부터 정통적인 오래된 라이브러리 = 거의 90%로 사용
2. gpiozero == 2-3년전 부터 == 최근
3. piGPIO 라이버리 = 1-2년부터 = 최근
Python Rpi.GPIO 라이브러리를 사용하여 LED Test 프로그램을 작성하여 Test 하였다.
동작은 매우 잘 되고, C언어 보다도 안정적인 동작을 보였다.
프로그램 자체도 C언어보다 매우 가볍고 쉬우며, 소스코드 자체가 간결하여 보기도 좋고 프로그램 짜기도 매우 쉬웠다..
또한 R-Pi Python 용 My GPIO Lib도 구축하였다.
이 부분은 좀 더 보강하여 클레스 형태로 My R-Pi Python 라이브러리 게시판에
별도로 올릴예정이다.
import RPi.GPIO as GPIO
import My_Rpi_GPIO_Lib_V1_0 as my
import time
import sys
import select
GPIO.setmode(GPIO.BCM)
for i in my.LED_Pin:
GPIO.setup(i,GPIO.OUT)
try:
while 1:
#?ㅼ뒿 3
my.byte_out(0x55)
time.sleep(0.2) #200ms
my.byte_out(0xaa)
time.sleep(0.2) #200ms
'''
# ?ㅼ뒿 2
my.pin_out(my.__LED_1__, GPIO.LOW)
my.pin_out(my.__LED_3__, GPIO.LOW)
time.sleep(0.2) #200ms
my.pin_out(my.__LED_1__, GPIO.HIGH)
my.pin_out(my.__LED_3__, GPIO.HIGH)
time.sleep(0.2)
'''
'''
# ?ㅼ뒿 1
for i in my.LED_Pin:
#GPIO.output(i,GPIO.LOW)# digitalWrite LOW
my.d_out(i, GPIO.LOW)
time.sleep(1) #delay 1second
for i in my.LED_Pin:
GPIO.output(i,GPIO.HIGH)# digitalWrite HIGH
time.sleep(1) #delay 1second
'''
# a = input()
# if a == 'q':# any key input and enter
# break# exit while
except KeyboardInterrupt:
pass
finally:
GPIO.cleanup()
//======================================================
// My Rpi Python GPIO LIB
'''
My Rpi GPIO Lib
Hp : 010-2402-4398
Name : ??紐?洹? Email : mgsong@hanmail.net
V1.0 == 2024, 07, 04 == 理쒖큹?묒꽦
'''
# LED define
import RPi.GPIO as GPIO
LED_Pin = [10,9,11,5,6,13,19,26]
__LED_0__ = LED_Pin[0]
__LED_1__ = LED_Pin[1]
__LED_2__ = LED_Pin[2]
__LED_3__ = LED_Pin[3]
__LED_4__ = LED_Pin[4]
__LED_5__ = LED_Pin[5]
__LED_6__ = LED_Pin[6]
__LED_7__ = LED_Pin[7]
def d_out(pin, value):
GPIO.output(pin, value)
def pin_out(pin, value):
GPIO.output(pin, value)
def d_in(pin):
return GPIO.input(pin)
def pin_set(pin):
GPIO.output(pin, GPIO.HIGH)
def pin_clr(pin):
GPIO.output(pin, GPIO.LOW)
def pin_tg(pin):
GPIO.output(pin, not d_in(pin))
def pin_chk(pin):
return d_in(pin)
def byte_out(data):
for k in range(0, 8):
pin_out(LED_Pin[k], not (data >> k) % 2)