라즈베리 파이 피코 리미트 스위치

이 가이드는 Raspberry Pi Pico와 리미트 스위치를 사용하는 방법을 설명합니다. 다음 세부 사항을 다룰 것입니다:

라즈베리 파이 피코와 리미트 스위치

준비물

1×라즈베리 파이 피코 W 아마존
1×라즈베리 파이 피코 (또는) 아마존
1×마이크로 USB 케이블 아마존
1×리미트 스위치 Limit Switch (KW12-3) 쿠팡 | 아마존
1×리미트 스위치 Limit Switch (V-156-1C25) 쿠팡 | 아마존
1×Wires 아마존
1×(옵션) 수축 튜브 세트 아마존
1×(옵션) 전기 인두기 아마존
1×(추천) 라즈베리 파이 피코용 스크루 터미널 확장 보드 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

리밋 스위치에 대하여

이것은 이동하는 물체가 끝점에 도달했을 때 이를 감지하는 주 기능 때문에 리밋 스위치라고 불립니다. 또한 트래블 스위치로도 알려져 있습니다. 또한 트래블 스위치라고도 합니다.

핀아웃

다양한 종류의 리미트 스위치가 일반적으로 사용되며, 예를 들어 KW12-3V-156-1C25가 있다. 각 모델은 3개의 핀을 포함한다.

  • C 핀: 공통 핀입니다. 개방 및 폐쇄 설정 모두에서 사용됩니다.
  • NO 핀: 개방 핀을 의미합니다. 설정이 열려 있을 때 사용됩니다.
  • NC 핀: 폐쇄 핀을 의미합니다. 설정이 닫혀 있을 때 사용됩니다.
리미트 스위치 핀아웃
image source: diyables.io

작동 방식

리미트 스위치에는 세 개의 핀이 있지만, 보통 두 개의 핀만 사용됩니다: C 핀과 나머지 두 핀 중 하나.

리미트 스위치를 연결하는 방법은 네 가지가 있습니다.

아래는 네 가지 방법 모두에 대해 Raspberry Pi Pico에서 리미트 스위치의 배선과 판독값을 보여주는 표입니다.

C pin NO pin NC pin Raspberry Pi Pico Input Pin's State
1 GND Raspberry Pi Pico Input Pin (with pull-up) NOT connected HIGH when untouched, LOW when touched
2 GND NOT connected Raspberry Pi Pico Input Pin (with pull-up) LOW when untouched, HIGH when touched
3 VCC Raspberry Pi Pico Input Pin (with pull-down) NOT connected LOW when untouched, HIGH when touched
4 VCC NOT connected Raspberry Pi Pico Input Pin (with pull-down) HIGH when untouched, LOW when touched

각 방법마다 Raspberry Pi Pico의 GND 핀과 입력 핀의 위치를 변경할 수 있습니다. 이를 통해 Raspberry Pi Pico를 리미트 스위치에 연결하는 8가지 다른 방법을 제공할 수 있습니다.

앞서 언급한 네 가지 방법 중 하나만 선택하면 됩니다. 이번 튜토리얼에서는 첫 번째 방법을 사용하겠습니다.

선연결

라즈베리 파이 피코 리미트 스위치 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

라즈베리 파이 피코 코드 - 리밋 스위치

버튼과 유사한 리미트 스위치는 제대로 동작하기 위해 디바운싱이 필요합니다. 디바운싱 처리는 코드를 더 복잡하게 만들 수 있습니다. 다행히도, DIYables_MicroPython_Button 라이브러리는 디바운싱 기능을 제공하며 내부 풀업 저항기도 포함하고 있어 프로그래밍 과정을 단순화합니다.

두 가지 일반적인 상황은 다음과 같습니다:

  • 첫 번째: 스위치가 터치되면 무언가를 수행하고, 터치되지 않으면 반대로 수행합니다.
  • 두 번째: 스위치가 터치되지 않은 상태에서 터치된 상태로, 또는 터치된 상태에서 터치되지 않은 상태로 바뀌면 무언가를 수행합니다.

두 경우 모두에서 MicroPython 스크립트를 작성하는 방법을 살펴보겠습니다.

라즈베리 파이 파이코 코드 - 제한 스위치 상태 읽기

/* * 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-limit-switch */ from DIYables_MicroPython_Button import Button import time # Initialize the limit switch connected to GPIO pin GP1 of the Raspberry Pi Pico limit_switch = Button(1) # Set debounce time to 50 milliseconds limit_switch.set_debounce_time(50) while True: limit_switch.loop() # Update the button state state = limit_switch.get_state() if state == 1: # GPIO HIGH print("The limit switch: UNTOUCHED") else: print("The limit switch: TOUCHED")

자세한 사용 방법

다음 지침을 단계별로 따르십시오:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하십시오.
  • Raspberry Pi Pico에 MicroPython 펌웨어가 설치되어 있는지 확인하십시오.
  • Raspberry 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에서 Tools Manage packages로 이동하십시오.
  • “DIYables-MicroPython-Button”를 검색한 후, DIYables가 만든 Button 라이브러리를 찾으십시오.
  • DIYables-MicroPython-Button를 클릭한 다음, Button 라이브러리를 설치하기 위해 Install 버튼을 클릭하십시오.
라즈베리 파이 피코 버튼 라이브러리
  • 위 코드를 복사하여 Thonny IDE의 편집기에 붙여넣습니다.
  • Raspberry Pi Pico에 스크립트를 저장합니다:
    • 저장 버튼을 클릭하거나 Ctrl+S 키를 사용합니다.
    • 저장 대화 상자에는 '이 컴퓨터'와 'Raspberry Pi Pico'의 두 섹션이 표시됩니다. Raspberry Pi Pico를 선택합니다.
    • 파일을 main.py로 저장합니다.
  • 녹색 실행 버튼을 클릭하거나 F5 키를 눌러 스크립트를 실행합니다. 스크립트가 실행됩니다.
  • Thonny 하단의 Shell에서 메시지를 확인하면서 리미트 스위치를 누르고, 유지한 다음 놓습니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: TOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED The limit switch: UNTOUCHED
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

스크립트의 이름을 main.py로 지정하고 라즈베리 파이 피코의 루트 디렉토리에 저장하면, 피코가 전원이 켜지거나 리셋될 때마다 자동으로 실행됩니다. 이는 전원 공급과 동시에 즉시 실행되어야 하는 독립 실행형 애플리케이션에 유용합니다. 스크립트의 이름을 main.py 이외의 다른 이름으로 지정한 경우에는 Thonnys의 Shell에서 수동으로 실행해야 합니다.

Raspberry Pi Pico 코드 - 리미트 스위치의 터치/언터치 이벤트 확인

/* * 이 라즈베리 파이 피코 코드는 newbiely.kr 에서 개발되었습니다 * 이 라즈베리 파이 피코 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/raspberry-pico/raspberry-pi-pico-limit-switch */ from DIYables_MicroPython_Button import Button import time # Initialize the limit switch connected to GPIO pin GP1 of the Raspberry Pi Pico limit_switch = Button(1) # Set debounce time to 50 milliseconds limit_switch.set_debounce_time(50) while True: limit_switch.loop() # Update the button state if limit_switch.is_pressed(): print("The limit switch: UNTOUCHED -> TOUCHED") if limit_switch.is_released(): print("The limit switch: TOUCHED -> UNTOUCHED")
  • 위의 코드를 복사하여 Thonny IDE의 편집기에 붙여넣습니다.
  • 스크립트를 Raspberry Pi Pico에 저장합니다.
  • 녹색 Run 버튼을 클릭하거나 (또는 F5를 눌러) 스크립트를 실행합니다. 스크립트가 실행됩니다.
  • Thonny 하단의 Shell에서 메시지를 확인하면서 리미트 스위치를 누르고, 계속 눌렀다가 떼어줍니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The limit switch: UNTOUCHED -> TOUCHED The limit switch: TOUCHED -> UNTOUCHED
MicroPython (Raspberry Pi Pico) • Board CDC @ COM29 ≡

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.