산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

WALTER: 아두이노 기반 4족 광향성 곤충 로봇

부품 및 소모품

부품 수량
스파크펀 아두이노 프로 미니 328 - 5V/16MHz 1
초음파 센서 HC-SR04 (범용) 3
포토다이오드 (광센서) 4
저항 100kΩ 4
MG90S 메탈 기어 마이크로 서보 5
스마트폰용 휴대용 보조배터리 (2채널: 1A, 2.1A) 1

필요 도구

앱 및 온라인 서비스

프로젝트 소개

[영어 실력 양해 바랍니다]

유튜브에서 인기 있는 '2 서보 아두이노 곤충 로봇'들을 보며, 그보다 훨씬 앞서 BEAM 로봇िक(아날로그 로봇) 창시자들이 더 자연스러운 보행(마이크로코어/바이코어 워커 등)을 구현했음을 떠올렸습니다. 하지만 그중에서도 마크 틸든(Mark Tilden)의 VBug1.5(워크맨)만큼 생동감 있어 보이는 로봇은 없었습니다. 5개 모터로 더 뛰어난 기동성을 보여주었기 때문입니다.

단순한 BEAM 로봇은 만들기 쉽지만, VBug1.5처럼 복잡한 구조는 전자 초보자(저 같은 공학도 지망생)에게 벅찬 일입니다. 그래서 아두이노 플랫폼을 선택했습니다. 비전공자에게 가장 접근하기 쉬운 길이니까요.

그 결과 탄생한 것이 WALTER입니다. 4족 보행에 서보 5개를 쓴 로봇이죠. "왜 8개나 12개 서보를 안 썼나?" 싶겠지만, 최소한의 부품으로 최대한의 기동성을 내는 게 목표였습니다. 프레임 가공 대신 글루건으로 조립하는 방식도 택했습니다.

주요 행동(Behaviors)

초기에는 각 발바닥에 택트 스위치를 달아 바닥 감지(표면 센서) 기능을 넣으려 했으나, 보조배터리 무게 때문에 서보가 버티기 힘들었고, 로봇 무게가 스위치를 누를 만큼 무겁지 않아 포기했습니다. 향후 버전 2에서는 더 강한 서보로 이 기능을 추가할 예정입니다.

회로도

WALTER: 아두이노 기반 4족 광향성 곤충 로봇

소스 코드 (WALTER.ino)

서보 중앙값 캘리브레이션(**** 표시), 핀 할당(*** 표시), 튜닝 파라미터(** 표시) 등 수정 필요 지점을 주석으로 표시해 두었습니다. 주요 상수와 로직은 다음과 같습니다.

핵심 설정 상수

// 서보 중앙 위치(마이크로초 단위, writeMicroseconds 사용)
const int ANGLE_mid_Shaft = 1520;  // 몸체 회전 서보
const int ANGLE_mid_FLeft = 1550;  // 앞왼쪽 다리
const int ANGLE_mid_FRight = 1570; // 앞오른쪽 다리
const int ANGLE_mid_BLeft = 1450;  // 뒤왼쪽 다리
const int ANGLE_mid_BRight = 1450; // 뒤오른쪽 다리

const int ANGLE_sweep = 250;       // ** 서보 스윕 폭(보폭)
const int ANGLE_res = 10;          // ** 서보 이동 해상도(마이크로초)

// 보행 속도 3단계 (값이 작을수록 빠름)
int sweepSPEED_Rand[3] = {4, 6, 8};

// 회전/회피 각도 제한
const int ANGLE_turnMAX = ANGLE_sweep * 1.5;     // 빛 방향 최대 회전
const int ANGLE_turnNARROW = ANGLE_sweep * 0.25; // 좁은 공간 회피 회전

// 초음파/광센서 핀 할당 ***
const int PIN_trig[3] = {13, 11, 8};  // 전면, 좌, 우 Trig
const int PIN_ec[3] = {12, 10, 7};    // 전면, 좌, 우 Echo
const int PIN_PHOTO[4] = {2, 3, 1, 0}; // 전면좌, 전면우, 후면좌, 후면우 (아날로그)

// 장애물 회피 거리 임계값 **
const int distRotate = 25;  // 회피 회전 거리(cm)
const int distRetreat = 10; // 후진 회피 거리(cm)
const int distTurn = 20;    // 선회 회피 거리(cm)

주요 동작 로직

코드 사용 시 주의사항

— 요하네스 마르테디 (Yohanes Martedi), 2015

제조공정

  1. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  2. 아두이노 아이언맨 제작: 부품, 센서, 단계별 가이드
  3. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  4. 아두이노 구동 3D 프린팅 로봇 팔 만들기: 단계별 가이드
  5. 아두이노로 지구 질량 측정하기: 단계별 DIY 가이드
  6. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  7. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임
  8. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기
  9. 아두이노와 TEA5767 모듈로 만드는 고성능 FM 라디오 수신기
  10. 헬스 밴드: 노인을 위한 신뢰할 수 있는 스마트 웨어러블 어시스턴트