콘텐츠로 이동

GPIO 카드

로봇 제어함의 외부 입출력 (GPIO) 카드들입니다. 외부 버튼·스위치·센서 신호를 받거나, 외부 장치 (램프·부저 등) 를 제어할 때 사용합니다.

무엇을 하는 단계인가요?

UFactory Lite 6 로봇 제어함에 있는 다음 IO 핀을 카드로 제어합니다:

종류 용도
CI0 ~ CI7 디지털 입력 외부 버튼·스위치·센서 신호 받기
CO0 ~ CO7 디지털 출력 외부 램프·부저·릴레이 등 제어
IO0 ~ IO1 툴(Tool) GPIO 로봇 손목 끝 그리퍼 측 신호
AI0 ~ AI1 아날로그 입력 가변 신호 (전압, 0~10V 등) 읽기

외부 장치 연결은 강사 영역

GPIO 핀에 외부 장치를 연결하는 것은 메뉴얼 범위 밖입니다 (전기·전자 안전 지식 필요). 외부 장치 연결은 강사 또는 자격을 갖춘 분이 진행하시고, 카드는 그 후 사용 안내로 활용하세요.

카드 종류

  • 입력 (디지털)


    버튼 입력 대기 (블록) · GPIO 읽기 (즉시)

    외부 버튼·스위치 신호 받기

  • 출력 (디지털)


    출력 켜기 · 출력 끄기 · 툴 출력 설정

    외부 장치 ON/OFF, 그리퍼 측 신호

  • 입력 (아날로그)


    아날로그 읽기

    가변 신호 (전압) 변수에 저장

입력 (디지털) 카드

버튼 입력 대기 (블록형)

지정한 입력 핀에 신호가 들어올 때까지 대기하고, 들어오면 안의 블록을 실행합니다.

  • 파라미터: 입력 핀 (CI0 ~ CI7, 기본 CI0)
  • 블록 구조: 버튼 입력 대기 ~ 버튼 대기 끝 사이의 카드들이 신호 입력 시 실행
  • 동작: 신호가 들어오면 안의 카드 1회 실행 후 흐름 다음 카드로
버튼 입력 대기 (CI0)
  ├─ [실행할 카드들]
  └─ ...
버튼 대기 끝

GPIO 읽기 (즉시)

대기하지 않고 현재 입력 상태를 즉시 읽어 변수에 저장 합니다.

  • 파라미터:
    • 입력 핀 (CI0 ~ CI7, 기본 CI0)
    • 저장 변수명
  • 사용: IF 카드와 함께 즉시 분기 처리

버튼 대기 vs GPIO 읽기

  • 버튼 입력 대기 — 흐름이 멈추고 신호를 기다림 (블록형)
  • GPIO 읽기 — 흐름이 멈추지 않고 현재 상태만 즉시 읽음 (변수 저장)

출력 (디지털) 카드

출력 켜기 / 출력 끄기

로봇 제어함의 디지털 출력 (CO) 핀을 ON/OFF 합니다.

  • 파라미터: 출력 핀 (CO0 ~ CO7, 기본 CO0)
  • 사용: 외부 램프·부저·릴레이 등 제어

툴 출력 설정 (Tool GPIO)

로봇 손목 끝 (그리퍼 측) 의 IO 핀을 설정합니다.

  • 파라미터: 툴 핀 (IO0 ~ IO1, 기본 IO0)
  • 사용: 그리퍼 외 사용자 정의 그리퍼·도구·LED 등

CO vs IO 구분

  • CO 핀 — 로봇 본체 제어함 측 출력
  • IO 핀 — 로봇 손목 끝 (툴 측) 출력

물리적 위치가 다르므로 어느 쪽에 연결한 장치인지 확인 후 카드 선택하세요.

입력 (아날로그) 카드

아날로그 읽기

아날로그 입력 핀의 전압값을 읽어 변수에 저장합니다.

  • 파라미터:
    • 아날로그 포트 (AI0 ~ AI1, 기본 AI0)
    • 저장 변수명
  • 사용: 전압 가변 센서 (조도, 압력, 온도 등) 값 읽기
아날로그 읽기 (AI0 → light_value)
만약 light_value > 5.0 이면     ← 변수 비교
  ↳ 메시지 보내기 ("밝음")
만약 끝

사용 예시

예시 1 — 버튼 입력 대기 후 작업

시작
버튼 입력 대기 (CI0)
  ├─ 메시지 보내기 ("작업 시작")
  ├─ 컨베이어 켜기
  ├─ 센서 감지 대기 (IR1)
  └─ 컨베이어 끄기
버튼 대기 끝
종료

외부 시작 버튼이 눌릴 때까지 대기 → 눌리면 작업 1회 실행.

예시 2 — 출력으로 상태등 제어

시작
출력 켜기 (CO0)              ← 작업 중 램프 ON
[실제 작업 카드들]
출력 끄기 (CO0)              ← 작업 완료 램프 OFF
종료

예시 3 — 즉시 읽기 + 조건

GPIO 읽기 (CI1 → emergency_btn)
만약 emergency_btn == 1 이면
  ├─ 메시지 보내기 ("비상 중지")
  └─ 종료
만약 끝
[정상 흐름 계속]

예시 4 — 아날로그 센서 활용

LOOP 무한 반복
  ├─ 아날로그 읽기 (AI0 → light)
  ├─ 메시지 보내기 ("조도: {light}V")
  ├─ 만약 light < 2.0 이면
  │  └─ 카메라 조명 (보통)
  ├─ 아니면
  │  └─ 카메라 조명 (끄기)
  └─ 만약 끝
LOOP 끝

자주 발생하는 문제

버튼 입력 대기가 영원히 안 끝남
  1. 버튼이 실제로 입력 핀에 연결됐는지 확인
  2. 핀 번호가 일치하는지 확인 (CI0 vs CI1 등)
  3. 버튼이 정상적으로 신호를 보내는지 (멀티미터 측정 또는 [GPIO 읽기] 카드로 변수 확인)
출력 켜기 카드 실행해도 외부 장치가 안 움직임
  1. CO 핀에 장치가 연결됐는지 확인
  2. 핀 번호 일치 확인
  3. 외부 장치의 전원 공급 확인 (CO 핀은 신호만 보냄, 전원은 별도 필요)
  4. 릴레이 사용 시 연결 방식 확인
아날로그 값이 항상 0 또는 일정한 값
  1. AI 핀에 센서가 연결됐는지 확인
  2. 센서 출력 전압 범위 확인 (AI 핀은 0~10V 범위 권장)
  3. 센서 전원 공급 확인
툴 출력 (IO0/IO1) 이 그리퍼 동작과 충돌

그리퍼 카드 (그리퍼 열기/닫기) 와 [툴 출력 설정] 을 같은 IO 핀에 사용하면 충돌합니다. 그리퍼는 그리퍼 카드만 사용하고, IO 핀은 별도 사용자 정의 도구에만 사용하세요.

강사 팁

외부 버튼은 학생 참여도를 높임

외부 시작 버튼·비상 정지 버튼 등을 학생이 직접 누르게 하면 자동화 학습이 더 실감납니다. CI 핀에 단순 푸시 버튼만 연결해도 충분합니다.

상태등 활용으로 디버깅 쉽게

학생 흐름이 어디까지 진행됐는지 외부 LED 로 표시하면 시각적 디버깅이 쉽습니다. 단계마다 [출력 켜기] 카드 추가.

전기 안전 우선

CO/CI/AI 핀에 외부 장치 연결 시 정격 전압·전류를 반드시 확인하세요. 잘못 연결하면 로봇 제어함 손상 가능성 있습니다. 강사가 직접 연결하거나 자격 있는 분에게 의뢰 권장.

다음 단계

GPIO 카드에 익숙해졌다면 MQTT 카드 → 로 이동합니다 (다른 키트와의 통신).


이 페이지에 빠진 내용이나 잘못된 부분을 발견하시면 페이지 하단 📮 피드백 보내기 를 활용해 주세요.