창의과학

자율주행 로봇에 스캐너 모듈 연결하기: 전체 가이드

생활정보알람 2024. 10. 17. 10:06

자율주행 로봇 책찾기 프로젝트에 스캐너 모듈을 연결하는 것은 책의 바코드를 찾아 원하는 책을 찾는 기능에 사용됩니다.  이전 포스팅(2024.10.16 - [학교 과제] - 자율주행 로봇 키트에 레이저 포인터 모듈 연결하기: 단계별 가이드)에 이어 이번 포스팅에서는 GM65 바코드 스캐너 모듈을 예시로 하여, 자율주행 로봇에 스캐너 모듈을 연결하고 제어하는 방법을 단계별로 설명하겠습니다.


1. 준비물

스캐너 모듈을 로봇에 연결하려면 다음과 같은 부품들이 필요합니다:

  • Arduino Uno: 이전과 같이 자율주행로봇 조립 키트의 보드에 별도 장치 없이 그대로 사용할 수 있습니다.
  • GM65 바코드 스캐너 모듈: 다양한 바코드를 인식할 수 있는 스캐너 모듈로, UART 통신을 통해 Arduino와 연결됩니다.사용자 매뉴얼이 꼭 필요해요. 그리고 사용자 매뉴얼에 QR코드 중 uart를 먼저 스캐너 모듈을 pc 연결한 후 스캔해야 uart 스캐너 기능이 사용가능합니다.   사용자매뉴얼 보기
  • 점퍼 와이어: 아두이누 우노 보드와 모듈 연결선
  • 전원 공급 장치: 모듈과 Arduino에 전력을 공급하기 위한 장치가 필요하나 로봇 키트의 배터리팩 기본 사양으로 동작하는 것을 확인했습니다.

2. 하드웨어 연결

(1) GM65 바코드 스캐너 모듈의 핀 구성

GM65 모듈은 총 6개의 핀을 가지고 있습니다:

  • VCC: 전원을 공급하는 핀입니다. Arduino의 5V 핀에 연결합니다.
  • GND: 접지 핀으로 Arduino의 GND에 연결됩니다.
  • TXD: 데이터 송신 핀입니다. Arduino의 RX 핀(예: 4 )에 연결됩니다.
  • RXD: 데이터 수신 핀입니다. Arduino의 TX 핀(예: 5)에 연결됩니다.

(2) 회로 구성

  1. 전원 연결: GM65 모듈의 VCC 핀을 Arduino의 V 핀에, GND 핀을 Arduino의 GND 핀에 연결합니다.
  2. 통신 연결: GM65의 TXD 핀을 Arduino의 RX 핀에 연결하고, RXD 핀을 Arduino의 TX 핀에 연결합니다. 소프트웨어 시리얼을 사용

자율주행로봇 키트, GM65 스캐너모듈, 초음파센서 모듈
gm65 스캐너모듈
아두이노 우노, 자율주행로봇 키트
아두이노 우노 센서쉴드

3. 소프트웨어 구현

(1) 소프트웨어 시리얼 설정

GM65 바코드 스캐너는 UART를 통해 데이터를 전송하므로, Arduino와 통신하려면 소프트웨어 시리얼을 설정할 수 있습니다.

#include <SoftwareSerial.h>

SoftwareSerial barcodeScanner(4, 5);  // RX, TX 핀 설정

void setup() {
  Serial.begin(9600);        // Arduino의 기본 시리얼 통신
  barcodeScanner.begin(9600); // GM65 모듈과의 통신 속도 설정
  

void loop() {
  if (barcodeScanner.available()) {    // 스캐너로부터 데이터가 들어왔는지 확인
    String barcodeData = "";            // 바코드 데이터를 저장할 변수
    while (barcodeScanner.available()) {
      barcodeData += (char)barcodeScanner.read();  // 바코드 데이터를 읽어옴
    }
    Serial.println("Scanned Data: " + barcodeData);  // 스캔한 바코드 데이터 출력
  }
}

이 코드는 GM65 모듈에서 데이터를 수신하고 이를 Arduino 시리얼 모니터에 출력하는 간단한 예제입니다. 바코드 데이터를 성공적으로 읽었다면, 스캐너가 스캔한 결과가 시리얼 모니터에 표시됩니다.

4. 스캐너 데이터를 이용한 로봇 동작 제어

바코드 데이터를 수신하면, 로봇의 행동을 결정할 수 있습니다. 예를 들어, 특정 바코드를 인식했을 때 로봇이 다른 경로로 이동하게 할 수 있습니다.

void loop() {
  if (barcodeScanner.available()) {
    String barcodeData = "";
    while (barcodeScanner.available()) {
      barcodeData += (char)barcodeScanner.read();
    }

    if (barcodeData == "123456") {  // 특정 바코드를 인식했을 때
      // 로봇의 새로운 경로 설정 또는 동작 변경
      Serial.println("Moving to location A");
      // 이동 명령 코드 작성
    }
  }
}

5. 프로젝트에 스캐너 모듈 응용하기

스캐너 모듈을 자율주행 로봇에 연결하여 로봇의 기능이 확장되는 사례를 생각해보면 창고 관리용 로봇이 여러 상자의 바코드를 스캔해 분류 작업을 수행하거나, 안내 로봇이 지정된 책을 찾아 주는 데 사용할 수 있다는 것을 아이들이 학습하는 계기가 되는 것 같습니다. GM65 같은 바코드 스캐너 모듈과 다른 모듈을 연결시 기능 동작이 잘 되지 않을 경우 소프트웨어 뿐만 아니라 하드웨어 불량이 있을 수도 있는 것을 경험해 보았습니다. 테스트시 소프트웨어 하드웨어 구별하여 테스트하는 것도 잊지 마세요.

결론

이번 포스팅에서는 자율주행 로봇 키트에 GM65 바코드 스캐너 모듈을 연결하고, 이를 제어하는 방법을 다뤘습니다. 하드웨어 연결부터 소프트웨어 설정, 그리고 스캐너 모듈을 활용한 로봇의 다양한 응용에 대한 학습 효과를  설명드렸습니다. 여러분의 프로젝트에 이 스캐너 모듈을 연결해 새로운 기능을 구현해 보세요.아이들에게 다양한 생각을 할 수 있는 실험이 될거예요.

반응형