본문 바로가기
모빌리티 프로젝트

Bob The Robot: 아두이노 기반 로봇 프레임워크 제작기

by 모빌리티키즈 2025. 3. 28.
728x90
반응형

안녕하세요,  이번 포스트에서는 제가 직접 개발한 아두이노 기반 로봇 프레임워크, ‘Bob The Robot’을 소개합니다. Bob은 두 개의 초음파 센서와 기어드 n20 모터를 사용하여 빠르고 효율적인 반응을 제공합니다. 게다가 프레임과 바퀴는 모두 3D 프린팅이 가능하여 저렴하면서도 유연하게 제작할 수 있습니다. 로봇 떼(Swarm Robotics) 프로젝트를 염두에 두고 설계되었기 때문에 여러 대를 제작하여 확장성이 뛰어난 구조를 자랑합니다.

 

1단계: 3D 프린팅 및 조립

Bob의 제작에 필요한 부품들은 다음과 같습니다:

  • 3D 프린팅 부품
    • 프레임, 바퀴 및 기타 부품: Thingiverse에서 다운로드
  • 필수 하드웨어
    • M3 나사 (10mm) 및 너트
    • 기계적인 니트릴 고무 O 반지 (휠 타이어용)
    • 황동 널링 너트 (M3 나사용)
  • 전자 부품
    • 아두이노 나노
    • Arduino 나노 센서 쉴드
    • 미니 L293D 모터 쉴드
    • 2x 초음파 HC-SR04 센서
    • 2x n20 100RPM 미니 메탈 기어 모터
    • 배터리: Wild Scorpion 7.4V 1100mAh
    • 미니 2 핀 SPST ON-OFF 스위치
    • 연결용 전선 (암-암 포함)
 

Bob The Robot - 1409401.zip
6.25MB

2단계: 회로 연결

아래는 Bob The Robot의 기본 회로도입니다:

부품연결 사항
초음파 센서 Trig/echo 핀을 아두이노 디지털 핀에 연결
n20 모터 L293D 모터 쉴드의 출력 핀에 연결
배터리 모터 쉴드의 전원 입력 단자에 연결
ON/OFF 스위치 배터리와 아두이노 전원 사이에 연결

회로 설명:

  1. 초음파 센서는 로봇의 주변 환경을 감지해 장애물을 피하도록 설계되었습니다.
  2. 모터 쉴드는 두 개의 n20 모터를 제어하며, 속도와 방향을 조절할 수 있습니다.
  3. 배터리와 스위치는 전체 시스템에 전력을 공급하며 안전한 동작을 보장합니다.

3단계: 코드 작성

아래는 기본 코드 샘플입니다:

#include <NewPing.h>

#define TRIG_PIN 3
#define ECHO_PIN 4
#define MAX_DISTANCE 200

#define MOTOR_LEFT_FORWARD 5
#define MOTOR_LEFT_BACKWARD 6
#define MOTOR_RIGHT_FORWARD 9
#define MOTOR_RIGHT_BACKWARD 10

NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  pinMode(MOTOR_LEFT_FORWARD, OUTPUT);
  pinMode(MOTOR_LEFT_BACKWARD, OUTPUT);
  pinMode(MOTOR_RIGHT_FORWARD, OUTPUT);
  pinMode(MOTOR_RIGHT_BACKWARD, OUTPUT);
}

void loop() {
  int distance = sonar.ping_cm();

  if (distance > 0 && distance < 20) {
    // 장애물 감지 시 후진
    moveBackward();
  } else {
    // 장애물이 없으면 전진
    moveForward();
  }
}

void moveForward() {
  digitalWrite(MOTOR_LEFT_FORWARD, HIGH);
  digitalWrite(MOTOR_RIGHT_FORWARD, HIGH);
  digitalWrite(MOTOR_LEFT_BACKWARD, LOW);
  digitalWrite(MOTOR_RIGHT_BACKWARD, LOW);
}

void moveBackward() {
  digitalWrite(MOTOR_LEFT_FORWARD, LOW);
  digitalWrite(MOTOR_RIGHT_FORWARD, LOW);
  digitalWrite(MOTOR_LEFT_BACKWARD, HIGH);
  digitalWrite(MOTOR_RIGHT_BACKWARD, HIGH);
}

이 포스트를 통해 여러분의 로봇 제작에 영감을 줄 수 있기를 바랍니다. 추가 질문이나 개선 사항이 있다면 언제든지 댓글로 남겨주세요. 함께 더 멋진 로봇을 만들어가요! 🚀

728x90
반응형