분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
라즈베리 파이로 연동시키는 객체인식 프로그래밍
1.개요
2.필요 라이브러 설명
3.프로그래밍
4.코딩해석(chatgpt)
차량이 주행 또는 좌/우회전할 때, 사람, 사물을 인식하는 '객체인식' 학습을 시켜
사람,사물이 있으면 비켜가거나, 멈춤을 수행할 수 있다.
이 프로그래밍은 사람, 사물이 존재할 시 일정속도로 줄이거나 멈춘다.
#주석을 통해 간략한 설명을 추가했습니다.
import pixy2
import time
import RPi.GPIO as GPIO
# Pixy2 객체 생성
pixy2.init()
pixy2.change_prog("color_connected_components")
# GPIO 핀 설정
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
# 모터 제어 핀 설정
motor1_pin1 = 17
motor1_pin2 = 18
motor2_pin1 = 27
motor2_pin2 = 22
# 초음파 센서 제어 핀 설정
trigger_pin = 23
echo_pin = 24
GPIO.setup(motor1_pin1, GPIO.OUT)
GPIO.setup(motor1_pin2, GPIO.OUT)
GPIO.setup(motor2_pin1, GPIO.OUT)
GPIO.setup(motor2_pin2, GPIO.OUT)
GPIO.setup(trigger_pin, GPIO.OUT)
GPIO.setup(echo_pin, GPIO.IN)
# 초음파 센서 거리 측정 함수
def measure_distance():
GPIO.output(trigger_pin, True)
time.sleep(0.00001)
GPIO.output(trigger_pin, False)
start_time = time.time()
stop_time = time.time()
while GPIO.input(echo_pin) == 0:
start_time = time.time()
while GPIO.input(echo_pin) == 1:
stop_time = time.time()
elapsed_time = stop_time - start_time
distance = (elapsed_time * 34300) / 2
return distance
# 모터 제어 함수
def control_motor(left_speed, right_speed):
if left_speed >= 0:
GPIO.output(motor1_pin1, GPIO.HIGH)
GPIO.output(motor1_pin2, GPIO.LOW)
else:
GPIO.output(motor1_pin1, GPIO.LOW)
GPIO.output(motor1_pin2, GPIO.HIGH)
if right_speed >= 0:
GPIO.output(motor2_pin1, GPIO.HIGH)
GPIO.output(motor2_pin2, GPIO.LOW)
else:
GPIO.output(motor2_pin1, GPIO.LOW)
GPIO.output(motor2_pin2, GPIO.HIGH)
left_speed = abs(left_speed)
right_speed = abs(right_speed)
# 모터 속도 제어를 위한 추가 로직이 필요함.
# 이 부분은 사용하는 모터 드라이버에 따라 달라짐.
# 모터 속도를 PWM 신호로 제어하는 방법을 사용하는 것이 일반적임.
# 객체 인식 및 자동차 제어 루프
while True:
# 객체 인식
count = pixy2.ccc_get_blocks(100, blocks)
if count > 0:
print('객체 인식됨')
# 첫 번째 인식된 객체에 대해서만 처리
block = blocks[0]
위 프로그래밍을 메모장, 편집기에 입력후 py파일로 확장합니다.
이후, 명령프롬포트를 통해 실행시킵니다.
이상으로 라즈베리파이를 이용한 자동차의 객체인식 프로그래밍 글을 마무리하겠습니다.
또한, 아두이노 기초-->크리스마스트리 전구 구성-----> 내연기관과 전기자동차의 이상감지 센서---->자동차 객체인식
순으로 데이콘크루 5기 활동을 마무리하겠습니다.
감사합니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved