안녕하세요! 이번 포스트에서는 자율 로봇 프로젝트의 하이라이트인 바코드 스캔과 레이저 포인터 작동에 대해 설명드릴게요. 로봇이 책장을 인식하고, 바코드를 스캔한 뒤, 찾은 책을 레이저 포인터로 정확하게 가리키는 멋진 동작을 어떻게 구현했는지 함께 알아보겠습니다.
1. 바코드 스캔(Barcode Scanning)
로봇이 책장에서 책을 찾는 방법은 바코드 스캐너를 활용하는 것입니다. 책에 부착된 바코드를 읽어, 미리 지정한 책과 일치하는지 확인합니다.
바코드 스캐너 사용 과정
우리가 사용한 바코드 스캐너는 GM65라는 모델로, 데이터를 블루투스를 통해 로봇에 전달받은 후, 찾을 책의 바코드와 일치하는지 비교하는 역할을 합니다. 로봇이 책장에 도착하면, 목을 좌우로 회전하면서 책의 바코드를 스캔합니다.
바코드 스캔을 위한 코드 설명
다음은 바코드 스캐닝을 위한 코드입니다:
void scanForBarcode() { Serial.println("Scanning for barcode (책 검색 시작)"); bool barcodeFound = false; stopMove(); // 천천히 목을 좌측으로 45도까지 회전하며 바코드를 스캔 slowMoveNeckToPosition(45); delay(500); // 천천히 목을 좌에서 우로 회전하며 바코드를 스캔 for (int pos = 45; pos <= 135; pos += 1) { neck.write(pos); delay(30); // 각도마다 잠시 대기하여 부드럽게 회전 if (GM65.available()) { String scannedBarcode = GM65.readStringUntil('\n'); if (scannedBarcode.indexOf(receivedBarcode) >= 0) { Serial.println("찾는 책 발견!"); barcodeFound = true; break; } else { Serial.println("찾는 책 발견 실패"); } } } // 정면에서 바코드 스캔을 2초간 다시 시도 slowMoveNeckToPosition(90); delay(2000); if (!barcodeFound) { Serial.println("찾는 책을 발견하지 못했습니다."); } } |
이 코드는 로봇이 책장에 도착한 후, 목을 좌우로 천천히 회전시키며 책의 바코드를 스캔하는 동작을 구현한 것입니다.
바코드 스캔의 동작 과정
- 로봇이 책장에 도착하면 목을 **좌측(45도)**으로 천천히 회전합니다.
- **좌측에서 우측(135도)**까지 천천히 회전하면서 바코드를 스캔합니다.
- 스캔이 완료된 후, 다시 **정면(90도)**을 바라보고 바코드를 2초간 추가로 스캔합니다.
- 스캔된 바코드가 찾는 책의 바코드와 일치하면 책을 찾았다는 메시지를 출력합니다.
이렇게 목을 좌우로 회전하며 책장을 스캔한 후, 책을 찾으면 다음 단계로 넘어갑니다.
2. 레이저 포인터 작동(Laser Pointer Activation)
로봇이 책을 찾은 후에는 레이저 포인터를 이용해 책의 위치를 정확하게 가리킵니다. 이 기능은 로봇이 바코드 스캔을 완료한 후, 사용자에게 책의 위치를 시각적으로 보여주기 위해 추가된 기능이에요.
레이저 포인터 사용 과정
로봇은 목을 회전시켜 책의 위치를 정밀하게 맞춘 뒤, 레이저 포인터를 작동시켜 책을 가리킵니다. 이 과정은 바코드 스캔이 성공하든 실패하든 동일하게 작동합니다. 사용자는 책장 위에서 레이저 포인터로 책의 위치를 확인할 수 있죠.
레이저 포인터 작동 코드
void activateLaserPointer(int direction) { slowMoveNeckToPosition(direction); // 목을 천천히 목표 각도로 이동 delay(500); // 목의 위치가 안정되도록 대기 digitalWrite(laserPin, HIGH); Serial.println("레이저포인터 ON (책 위치 표시)"); delay(10000); // 레이저 포인터 작동 시간 digitalWrite(laserPin, LOW); Serial.println("레이저포인터 OFF (책 위치 표시 완료)"); } |
이 코드는 로봇이 찾은 책을 향해 목을 천천히 회전시킨 후, 레이저 포인터를 켜서 책을 10초간 가리키는 동작을 수행합니다. 레이저 포인터가 10초간 작동한 후 자동으로 꺼지게 설정했어요.
레이저 포인터 동작 과정
- 로봇이 책을 찾으면, 찾은 책을 향해 목을 정면(90도) 또는 찾은 위치로 천천히 회전시킵니다.
- 레이저 포인터가 켜지고, 사용자는 책의 위치를 확인할 수 있습니다.
- 10초 후 레이저 포인터가 꺼집니다.
이 동작으로 로봇은 사용자가 책의 위치를 쉽게 찾을 수 있도록 도와줍니다.
3. 바코드 스캔과 레이저 포인터의 결합
로봇이 책을 찾고 레이저 포인터를 이용해 책을 가리키는 두 기능은 매우 자연스럽게 이어집니다. 책장을 스캔하는 과정에서 바코드를 인식하면, 바로 레이저 포인터가 책의 위치를 가리키게 되죠. 스캔이 실패하더라도 레이저 포인터는 항상 작동하게 설정해, 사용자가 책을 놓친 경우에도 확인할 수 있도록 했어요.
마무리
이번 포스트에서는 바코드 스캔과 레이저 포인터 작동을 통해 로봇이 책을 찾아내는 동작을 어떻게 구현했는지 살펴보았습니다. 이 과정에서 중요한 점은 바코드 스캔이 성공하든 실패하든, 레이저 포인터는 항상 작동한다는 것입니다. 이를 통해 로봇이 항상 책을 가리킬 수 있도록 했어요.
다음 포스트에서는 로봇의 주행과 완성된 시나리오를 다뤄보겠습니다. 로봇이 처음부터 끝까지 어떻게 동작하는지 완성된 모습을 보여드릴 예정이니, 기대해주세요!
다음 포스트: [로봇의 주행과 완성된 시나리오 (링크)]
질문이나 궁금한 점이 있으면 댓글로 남겨주세요. 다음 포스트에서 다시 만나요! 😄
'창의과학' 카테고리의 다른 글
비숑의 성장 과정과 주의사항 (14) | 2024.10.15 |
---|---|
비숑 입양 가이드 (5) | 2024.10.15 |
로봇의 똑똑한 주행, 책장에서 책을 찾아내는 전체 시나리오 (0) | 2024.10.14 |
자율주행 로봇이 스스로 길을 찾다! 라인 트래킹과 장애물 감지 구현 (0) | 2024.10.14 |
자율주행 로봇 프로젝트의 첫 걸음! 로봇 만들기 준비하기-1 (1) | 2024.10.14 |