저번까지는 개발 환경 구축에 힘을 써왔습니다.
이제 자율주행 자동차 키트로 만든 자동차의 각 부품들이 정상적으로 작동하는지 테스트를 해보겠습니다.
현재 사용중인 자동차의 모습을 위의 사진을 보면, LED가 좌우,위아래로 4개, 전방에 스위치가 4개,
그리고 전방 우측에 소리를 내는 버저가 하나, 그리고 자동차를 움직일 모터가 하판에 4개가 붙어있습니다.
이번에는 LED와 스위치가 잘 작동하는지 테스트 해보겠습니다.
이제 자동차를 제어하기 위해서 코딩을 해줄건데, 파이썬을 사용할 것이므로 위와같이 시작 > programing > Thony에 들어가줍니다.
이제 앞으로 이 프로그램에서 자동차 제어프로그램을 짜줄겁니다.
그럼 이제 LED를 제어해보겠습니다.
import RPi.GPIO as GPIO
import time
LED_FR = 16
LED_FL = 26
LED_BR = 21
LED_BL = 20
GPIO.setwarning(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_FL, GPIO.OUT)
GPIO.setup(LED_FR, GPIO.OUT)
try:
while True:
GPIO.ouput(LED_FL,GPIO.HIGH)
GPIO.ouput(LED_FR,GPIO.LOW)
time.sleep(1.0)
GPIO.ouput(LED_FL,GPIO.LOW)
GPIO.ouput(LED_FR,GPIO.HIGH)
time.sleep(1.0)
except KeyboardInterrupt:
pass
GPIO.cleanup()
LED의 PIN번호는 각 부품마다 적혀있으니 그에맞는 PIN번호를 부여해줍니다.
LED이름은 Front Right 와 같이 상하좌우 구별을 위해 LED_FR이런식으로 지었습니다.
그리고 각 LED를 출력설정을 해주고, LED_FL이 켜지고 FR이 꺼지고, 1초뒤 LED_FL이 꺼지고,
LED_FR이 켜지는 것을 반복시켜주었습니다.
정상적으로 출력되는 모습을 볼 수 있었습니다.
1초마다 LED가 번갈아가면서 켜졌다 꺼지기를 반복합니다.
이제 스위치를 테스트해보겠습니다.
import RPi.GPIO as GPIO
import time
SW_F = 5
SW_B = 19
SW_R = 6
SW_L = 13
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SW_F,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(SW_B,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(SW_R,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(SW_L,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
Zero_F = 0
Zero_B = 0
Zero_R = 0
Zero_L = 0
S_SW_F= 0
S_SW_B= 0
S_SW_R= 0
S_SW_L= 0
try:
while True:
S_SW_F= GPIO.input(SW_F)
S_SW_B= GPIO.input(SW_B)
S_SW_R= GPIO.input(SW_R)
S_SW_L= GPIO.input(SW_L)
if S_SW_F != Zero_F:
Zero_F = S_SW_F
if S_SW_F == 1:
print("Front Button!!")
time.sleep(0.5)
elif S_SW_B != Zero_B:
Zero_B = S_SW_B
if S_SW_B == 1:
print("Back Button!!")
time.sleep(0.5)
elif S_SW_R != Zero_R:
Zero_R = S_SW_R
if S_SW_R == 1:
print("Right Button!!")
time.sleep(0.5)
elif S_SW_L != Zero_L:
Zero_L = S_SW_L
if S_SW_L == 1:
print("Left Button!!")
time.sleep(0.5)
except KeyboardInterrupt:
pass
GPIO.cleanup()
스위치들 역시 GPIO핀번호들이 부여되어 있으므로 각 스위치에 맞는 핀번호를 부여해주었습니다.
스위치들의 이름은 자동차의 정면을 Front로 잡아서 SW_L (Left 스위치)같은 식으로 지정해주었습니다.
앞뒤좌우의 스위치4개를 선언해줍니다.
그리고 각 스위치에 해당하는 4개의 Zero와 S_SW 스위치 변수를 선언해주었습니다.
그리고 반복문안에 S_SW에 스위치의 input값을 넣어주었습니다.
그러면 해당 스위치가 눌려지면, 해당버튼 S_SW 값이 1로 바뀌면서, Zero라는 변수와 달라지면서
if문이 실행되어 해당과정이 잘 출력이 되었다는 메세지를 출력해줍니다.
스위치을 누를때마다 Thony의 Shell에서 설정한 출력값들이 정확히 출력이 됩니다.
스위치 역시 정상인듯 합니다.
이번에는 여기까지 하겠습니다.
다음에는 부저를 테스트해보고, 모터를 움직여보면서 본격적으로 자동차를 움직여보겠습니다.
좋은하루 되세요!
#해당 프로젝트는 앤써북의 'AI 인공지능 자율주행 자동차' 를 참고하고 있습니다!
#자동차의 구매나 정보를 원하시면 찾아보시기를 추천합니다!
https://book.naver.com/bookdb/book_detail.naver?bid=20861845
'AutoDriving > AutoDriving RC_Car' 카테고리의 다른 글
라즈베리파이 자율주행 자동차 - (6) OpenCV를 이용한 카메라 사용 1 (0) | 2022.04.30 |
---|---|
라즈베리파이 자율주행 자동차 - (5) 블루투스를 사용해보자! (0) | 2022.04.22 |
라즈베리파이 자율주행 자동차 - (4) 부저와 모터를 움직여보자! (0) | 2022.03.08 |
라즈베리파이 자율주행 자동차 - (2) 필요 소프트웨어 설치! (1) | 2022.03.06 |
라즈베리파이 자율주행 자동차 - (1) 자율주행 자동차를 만들어보자! (3) | 2022.03.06 |