ROBOT PROJECT

강아지 로봇 프로젝트

2026.07.24

골판지와 서보모터 2개로 네 발로 걷는 강아지 로봇을 만들어 봅니다. 아두이노가 서보모터의 각도를 순서대로 바꿔 주면, 골판지 다리가 앞으로·뒤로 움직이며 로봇이 걷기 시작해요. 서보모터의 원리를 배우고, 골판지를 재단하고, 볼트·너트로 조립하고, 직접 코드를 수정해 걸음걸이를 만드는 것까지 — 메이커 수업의 기본기를 한 번에 다지는 프로젝트입니다.

한눈에 보기

난이도중급 (아두이노 첫 프로젝트로 적합)
제작 시간약 5차시 (차시당 2~3시간 블록 수업 기준)
대상중등 이상, 메이커 수업·동아리 프로젝트
핵심 부품아두이노 우노, 센서쉴드, 서보모터, 나무스틱
움직임전진(go) · 후진(back) · 좌회전(left) · 우회전(right)

자료 모음 (필요한 링크 전부)

따라 만들다가 길을 잃으면 언제든 이 표로 돌아오세요. 아래 본문에서 하나씩 순서대로 사용하는 자료들입니다.

순서자료설명
1완성 예시 영상 (Easy Arduino Robot Dog)무엇을 만드는지 먼저 보기
2CH340 드라이버아두이노가 인식되지 않을 때 설치
3서보모터 작동 원리 ①내부 구조 이해
4서보모터 작동 원리 ②각도 제어 신호 이해
5다축 로봇 참고 영상 ①서보 여러 개로 만드는 구조
6다축 로봇 참고 영상 ②걸음걸이 설계 참고
7다축 로봇 참고 영상 ③관절 배치 참고
8다음 프로젝트 — 외줄타기 로봇차시 예고

1. 준비물

전자부품 · 재료

품명용도구매 링크
아두이노 우노로봇의 두뇌구매
아두이노 센서쉴드서보 여러 개 연결 + 외부 전원 공급구매
아두이노 케이블코드 업로드용 USB구매
서보모터로봇의 다리 관절구매
서보모터 작은 나사서보 혼 고정구매
나사 너트골판지 부품 체결구매
나사 볼트 (M3×12mm)골판지 부품 체결구매
나무스틱서보 90도 정렬 확인용구매

공작 재료 · 도구

  • 골판지(카드보드) — 택배 상자를 재활용해도 좋아요
  • 가위, 칼, 자, 드라이버, 글루건
  • 외부 전원 (건전지 홀더 또는 어댑터)

💡 센서쉴드가 꼭 필요한가요? 네. 서보모터는 아두이노 보드만으로는 전력이 부족합니다. 센서쉴드를 끼우면 서보를 여러 개 꽂을 수 있고, VCC(빨강)·GND(검정)로 외부 전원까지 공급할 수 있어요.

2. 서보모터 이해하기

서보모터(Servo Motor)는 회전 각도를 정밀하게 제어할 수 있는 모터입니다. 로봇팔, 자동문, RC 장난감처럼 제한된 범위 안에서 위치를 정확히 잡아야 할 때 쓰입니다. 이 프로젝트에서는 0~180도 사이를 오가며 강아지의 다리가 됩니다.

만들기 전에 작동 원리 영상 ①를 먼저 보면 이후 코드가 훨씬 잘 이해됩니다.

⚠️ 아두이노가 컴퓨터에 안 잡힌다면? 장치 관리자 → 포트에서 USB Serial CH340이 보이지 않는 경우입니다. CH340 드라이버를 내려받아 Install을 눌러 설치하세요.

3. 서보모터 제어 코드 익히기

조립하기 전에 서보 하나만 연결해 코드를 돌려 봅니다. 이 감각을 익혀야 나중에 걸음걸이를 스스로 수정할 수 있어요.

3-1. 기본 — 90도와 0도를 오가기

#include <Servo.h>   // Servo 라이브러리 호출
Servo servo_1;       // 서보를 제어할 객체 생성

void setup() {
  servo_1.attach(8); // 서보모터를 8번 핀에 연결
}

void loop() {
  servo_1.write(90); // 90도 위치로 회전
  delay(1000);
  servo_1.write(0);  // 0도 위치로 회전
  delay(1000);
}

3-2. 여러 각도를 순서대로

#include <Servo.h>
Servo servo_1;

void setup() {
  servo_1.attach(8);
}

void loop() {
  servo_1.write(30);  delay(1000);
  servo_1.write(60);  delay(1000);
  servo_1.write(90);  delay(1000);
  servo_1.write(120); delay(1000);
  servo_1.write(150); delay(1000);
  servo_1.write(0);   delay(1000);
}

3-3. 심화 — for문으로 부드럽게

#include <Servo.h>
Servo servo_1;

void setup() {
  servo_1.attach(3);
}

void loop() {
  for (int angle = 0; angle <= 180; angle++) {
    servo_1.write(angle);
    delay(10);
  }
  for (int angle = 180; angle >= 0; angle--) {
    servo_1.write(angle);
    delay(10);
  }
}

📚 라이브러리 · 클래스 · 메소드
라이브러리 <Servo.h>는 서보 제어에 필요한 코드를 미리 모아 둔 꾸러미입니다.
클래스 Servo는 그 안에 정의된 설계도로, 각도 설정·핀 연결 같은 기능을 담고 있습니다.
메소드 .attach(), .write()servo_1이라는 객체에게 시키는 명령입니다.
Servo servo_1;은 설계도로 실제 조종 대상을 하나 만든 것이고, servo_1.write(90);은 그 대상에게 “90도로 가”라고 말하는 셈입니다.

4. 만들기 — 차시별 진행

1차시. 재료 배분 & 카드보드 재단

설계 도면을 참고해 골판지에 부품 모양을 그리고 잘라냅니다. 2시간 정도면 대부분의 학생이 외형 재단까지는 무난하게 마무리합니다.

  • 자르는 선은 칼과 자를 대고 한 번에
  • 접는 선은 칼등으로 살짝만 칼집 — 이게 완성도를 좌우하는 포인트!

2차시. 하드웨어 조립 (볼트·너트 체결)

잘라 낸 부품을 M3 볼트와 너트로 하나씩 결속합니다. 다리가 될 서보모터를 몸체에 고정하는 것이 이 차시의 핵심이에요. 형태가 잡히기 시작하면 학생들의 속도가 눈에 띄게 빨라집니다. 3시간 블록 수업이라면 빠른 조는 이 차시 안에 하드웨어를 끝내기도 합니다.

3차시. 외부 전원 연결 & 서보 90도 정렬

전원 연결

  • VCC → 빨간색 선
  • GND → 검정색 선

90도 정렬 — 이 프로젝트에서 가장 중요한 단계

서보를 몸체에 붙이기 전에 반드시 혼(날개)을 정확히 가운데로 맞춰야 합니다. 그래야 앞으로 걸을 때 다리가 좌우 대칭으로 움직여요. 아래 코드를 업로드한 뒤, 서보에 나무스틱을 꽂아 기준선을 확인하며 조립합니다.

#include <Servo.h>
Servo servo_1;

void setup() {
  servo_1.attach(8);
}

void loop() {
  servo_1.write(90); // 90도로 고정
  delay(1000);
}

4차시. 하드웨어 완성 & 프로그래밍 병행

하드웨어 모양이 갖춰지면 코드를 올려 보고, 움직임을 보며 각도를 수정해 나갑니다. 하드웨어와 소프트웨어를 오가며 다듬는 이 과정이 프로젝트의 진짜 핵심입니다.

5차시. 완성도 업그레이드 & 걸음걸이 정교화

배선을 정리하고, 다리 각도를 미세 조정해 넘어지지 않고 안정적으로 걷도록 만듭니다.

5. 걷게 만드는 코드 (함수로 정리하기)

서보 2개로 전진·후진·좌회전·우회전을 만듭니다. 동작마다 함수로 묶어 두면 loop() 안에서 이름만 불러 조합할 수 있어요.

#include <Servo.h>
Servo servo_1;
Servo servo_2;

void setup() {
  servo_1.attach(8);
  servo_2.attach(9);
}

void loop() {
  go();
  go();
  back();
  back();
}

void go() {
  servo_1.write(120);
  servo_2.write(70);
  delay(500);
  servo_1.write(70);
  servo_2.write(120);
  delay(500);
}

void back() {
  servo_1.write(70);
  servo_2.write(70);
  delay(500);
  servo_1.write(120);
  servo_2.write(120);
  delay(500);
}

void left() {
  servo_1.write(70);
  servo_2.write(70);
  delay(500);
  servo_1.write(120);
  servo_2.write(120);
  delay(500);
}

void right() {
  servo_1.write(88);
  servo_2.write(88);
  delay(500);
  servo_1.write(110);
  servo_2.write(110);
  delay(500);
}

내 로봇에 맞게 걸음 보정하기 (튜닝)

조립 상태가 조마다 다르기 때문에, 위 각도가 그대로 잘 걷는 경우는 드뭅니다. 숫자를 바꿔 가며 우리 로봇에 맞는 값을 찾는 것이 이 프로젝트의 코딩 학습 목표예요.

바꿀 값효과이렇게 보정하세요
write()의 각도 (70·120 등)다리를 얼마나 크게 휘두를지보폭이 작으면 두 값의 차이를 키우기
두 서보의 각도 차이좌우 균형한쪽으로 휘면 한쪽 값만 조금씩 조절
delay() 값 (500)걸음 속도넘어지면 값을 늘려 천천히
함수 호출 순서걸음 패턴go(); go(); left();처럼 자유롭게 조합

💡 left()right()는 아직 loop() 안에서 호출되지 않았습니다. 직접 넣어 보고, 실제로 회전하도록 각도를 고쳐 보세요. 위 코드의 left()back()과 값이 같으니 그대로는 회전하지 않습니다 — 여기서부터가 학생들의 몫입니다.

6. 문제가 생겼나요? (자주 묻는 질문)

  • 아두이노가 컴퓨터에 안 잡혀요 → 장치 관리자에 USB Serial CH340이 있는지 확인하고, 없으면 CH340 드라이버를 설치하세요.
  • 서보가 아예 안 움직여요 → ① 센서쉴드에 외부 전원(VCC 빨강 / GND 검정)이 연결됐는지 ② 코드의 attach() 핀 번호와 실제로 꽂은 핀이 같은지 확인하세요.
  • 다리가 짝짝이로 움직여요 → 조립 전 90도 정렬이 안 된 경우가 대부분입니다. 다리를 서보 혼에서 빼고 90도 코드를 올린 뒤 다시 끼우세요.
  • 걷다가 자꾸 넘어져요delay() 값을 늘려 속도를 줄이고, 몸체가 앞뒤로 쏠리지 않도록 배터리 위치를 조절하세요.
  • 서보가 떨리면서 소리만 나요 → 전원 용량 부족입니다. 아두이노 USB 전원만으로는 부족하니 외부 전원을 꼭 연결하세요.

7. 평가 기준표 (총점 40점)

등급점수
매우 우수37~40점
우수31~36점
보통24~30점
미흡23점 이하
평가 영역평가 요소상(4점)중상(3점)중하(2점)하(1점)
설계/계획아이디어 창의성독창적이며 문제 해결에 적합기존 아이디어에 응용이 있음단순 모방 수준아이디어 제시 없음
설계도 및 계획의 구체성부품·구조·기능이 명확히 표현됨주요 요소는 표현됨일부 누락·단편적불완전하거나 미작성
제작 과정부품 조립 및 배선 정리정확하고 안전하게 조립됨약간의 오차 있으나 작동 가능오작동·조립 오류 다수조립이 거의 안 됨
협업 및 역할 분담적극적으로 협력하며 역할 수행보통 수준의 협력협력 미흡·편중협업 의지 없음
기능 구현로봇 작동 정확도모든 기능이 정확히 작동대부분 기능 작동일부 기능만 작동작동하지 않음
작동 안정성오작동 없이 안정적간헐적 오작동잦은 오류로 불완전지속 작동 불가
창의성기능 외 요소의 창의적 추가참신한 장치 있음간단한 장치 추가특별한 창의 요소 없음단순 구현에 그침
실생활 응용 가능성현실 적용·문제 해결에 연계제한적 응용 가능성응용 연결이 모호응용 관점 없음
발표/완성제작 과정 설명 및 시연흐름이 자연스럽고 이해도 높음설명 구조가 분명일부 누락·전달 부족설명이 어렵거나 미실시
전체 완성도정리 상태 우수, 완성도 높음기능은 대부분 완성외형·기능 미완성조립·정리 미흡

과정 요소 보완 평가 항목

평가 영역평가 요소상(4점)중상(3점)중하(2점)하(1점)
문제 해결 과정문제 발생 시 해결 시도문제를 명확히 인식하고 창의적·효과적으로 해결문제 인식 및 해결 시도 있음시도는 있었으나 효과적이지 않음별다른 대응 없이 진행
수정 및 개선 노력제작 중 수정·개선 시도반복 실험과 피드백을 반영해 적극 개선수정 시도 있으나 일부 반영수정은 했으나 계획적이지 않음수정·개선 활동 없음
자기 주도성작업 주도적 참여주도적으로 기획·실행일정 부분 주도적 참여지시에 따라 주로 수행수동적 수행
기록 및 성찰 활동과정 기록 및 자기 성찰과정과 해결 과정을 구체적으로 기록·성찰기록은 있으나 단편적일부 기록 또는 성찰만기록·성찰 없음

8. 더 해보기 — 다음 프로젝트

강아지 로봇을 완성했다면 다음 단계로 넘어가 보세요.

  • 얼굴 로봇 프로젝트 — 카메라가 인식한 얼굴을 따라 고개를 돌리고 눈을 깜빡이는 로봇
  • 외줄타기 로봇예고 영상
    배우는 내용: 로봇 설계, 센서·액추에이터 활용, 제어 알고리즘
    사용 도구: 아두이노 우노, 센서쉴드, 모터드라이버, 서보모터, DC모터, 퓨전 360, 틴커캐드, 전자회로·배터리

수업에서 만든 작품이나 궁금한 점이 있다면 언제든 공유해 주세요. 여러분이 만든 강아지 로봇이 골봇의 다음 갤러리가 됩니다. 🤖