라즈베리 파이 피코 장애물 회피 센서
이 가이드에서는 Raspberry Pi Pico와 적외선 장애물 회피 센서를 사용하여 장애물을 감지하는 방법을 배울 것입니다.

준비물
1 | × | 라즈베리 파이 피코 W | 아마존 | |
1 | × | 라즈베리 파이 피코 (또는) | 아마존 | |
1 | × | 마이크로 USB 케이블 | 아마존 | |
1 | × | IR 장애물 회피 센서 | 아마존 | |
1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
1 | × | (추천) 라즈베리 파이 피코용 스크루 터미널 확장 보드 | 아마존 |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
IR 장애물 회피 센서에 대하여
적외선(IR) 장애물 센서는 적외선 신호를 사용하여 앞에 있는 장애물을 감지합니다. 2cm에서 30cm 사이에 있는 물체를 식별할 수 있습니다. 포함된 도구인 가변저항기를 사용하여 감지 범위를 조정할 수 있습니다.
핀아웃
IR 장애물 회피 센서는 세 개의 핀을 가지고 있습니다:
- GND 핀: 이 핀을 GND (0 볼트)에 연결합니다.
- VCC 핀: 이 핀을 VCC (5 볼트 또는 3.3 볼트)에 연결합니다.
- OUT 핀: 이 핀은 출력 핀입니다. 장애물이 있을 때 LOW를, 없을 때 HIGH를 표시합니다. 이 핀을 Raspberry Pi Pico의 입력 핀에 연결합니다.

image source: diyables.io
작동 원리
적외선 장애물 센서 모듈은 IR 송신기와 IR 수신기를 갖추고 있습니다. IR 송신기는 IR 신호를 발산합니다. IR 수신기는 물체에 반사된 이 신호를 감지하여 장애물이 있는지 확인합니다. 장애물의 존재는 OUT 핀을 통해 표시됩니다.
- 장애물이 센서를 막으면, OUT 핀이 LOW 상태가 됩니다.
- 센서 앞에 장애물이 없으면, OUT 핀이 HIGH 상태가 됩니다.
※ 주의:
배송 중에 센서가 휘어질 수 있어 정상적으로 작동하지 않을 수 있습니다. 센서가 올바르게 작동하지 않으면 적외선 송신기와 수신기를 서로 평행하게 정렬하세요.
선연결

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
라즈베리 파이 피코 코드
장애물 센서를 사용하는 방법의 예는 다음과 같습니다:
- 장애물이 있는지 여부에 따라 행동하거나 기다리세요.
- 장애물을 인지했거나 장애물이 사라졌을 때 행동하거나 기다리세요.
장애물 존재 여부 확인을 위한 Raspberry Pi Pico 코드
/*
* 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다
* 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-obstacle-avoidance-sensor
*/
from machine import Pin
from time import sleep
# Define pin
SENSOR_PIN = 0 # The Raspberry Pi Pico pin GP0 connected to the OUT pin of IR obstacle avoidance sensor
# Initialize the pin
sensor = Pin(SENSOR_PIN, Pin.IN)
# Main loop
while True:
state = sensor.value() # Read the state of the input pin
if state == 0:
print("The obstacle is present")
else:
print("The obstacle is NOT present")
sleep(0.1) # Delay 100 ms
자세한 사용 방법
다음 지침을 단계별로 따르십시오:
- 컴퓨터에 Thonny IDE가 설치되어 있는지 확인합니다.
- Raspberry Pi Pico에 MicroPython 펌웨어가 설치되어 있는지 확인합니다.
- Raspberry Pi Pico를 처음 사용한다면, 자세한 설치 방법은 라즈베리 파이 피코 - 시작하기 튜토리얼을 참조하세요.
- 제공된 다이어그램에 따라 장애물 회피 센서를 Raspberry Pi Pico에 연결합니다.
- USB 케이블을 사용하여 Raspberry Pi Pico를 컴퓨터에 연결합니다.
- 컴퓨터에서 Thonny IDE를 실행합니다.
- Thonny IDE에서 Tools Options로 이동하여 MicroPython (Raspberry Pi Pico) 인터프리터를 선택합니다.
- Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (Raspberry Pi Pico)를 선택합니다.
- 올바른 포트가 선택되어 있는지 확인합니다. Thonny IDE가 자동으로 포트를 감지하지만, 필요에 따라 수동으로 선택할 수도 있습니다 (예: Windows의 경우 COM3, Linux의 경우 /dev/ttyACM0).
- 위의 코드를 복사하여 Thonny IDE의 에디터에 붙여넣습니다.
- 아래의 방법으로 Raspberry Pi Pico에 스크립트를 저장합니다:
- 저장 버튼을 클릭하거나 Ctrl+S 키를 사용합니다.
- 저장 대화 상자에서 "This computer"와 "Raspberry Pi Pico" 두 섹션이 표시됩니다. "Raspberry Pi Pico"를 선택합니다.
- 파일 이름을 main.py로 저장합니다.
- 초록색 Run 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행합니다.
- 센서 앞에 잠시 장애물을 놓았다가 제거합니다.
- Thonny 하단의 Shell에서 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is NOT present
The obstacle is present
The obstacle is present
The obstacle is present
The obstacle is present
The obstacle is NOT present
The obstacle is NOT present
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡
Raspberry Pi Pico 장애물 감지 코드
/*
* 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다
* 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-obstacle-avoidance-sensor
*/
from machine import Pin
from time import sleep
# Define pin
SENSOR_PIN = 0 # The Raspberry Pi Pico pin GP0 connected to the OUT pin of IR obstacle avoidance sensor
# Initialize the pin
sensor = Pin(SENSOR_PIN, Pin.IN)
# Variables to store the previous and current obstacle states
prev_obstacle_state = 1 # Start with HIGH (no obstacle)
obstacle_state = 1 # Current reading from the input pin
# Main loop
while True:
# Read the state of the input pin
obstacle_state = sensor.value()
if prev_obstacle_state == 1 and obstacle_state == 0:
print("The obstacle is detected")
elif prev_obstacle_state == 0 and obstacle_state == 1:
print("The obstacle is cleared")
# Save the last state
prev_obstacle_state = obstacle_state
sleep(0.1) # Delay 100 ms
자세한 사용 방법
- 제공된 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣습니다.
- 코드를 Raspberry Pi Pico에 저장합니다.
- 녹색 실행 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행합니다.
- 센서 앞에 잠깐 무언가를 놓았다가 제거합니다.
- Thonny 하단의 Shell에서 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
The obstacle is detected
The obstacle is cleared
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.