아두이노, 메이커

[아두이노 프로젝트] R2D2 로보트 만들기

탁이 2019. 11. 23. 10:18

시리즈로 아두이노 프로젝트를 포스팅하고 있는데요. 이번 시간에는 스타워즈의 사랑스런 캐릭터 R2D2 를 아두이노와 모터를 이용해서 휴대폰으로 조정하는 프로젝트입니다. 본 프로젝트를 진행해 보고 싶으신 학교나 단체가 있으시면 연락 주세요. 

 

기본적인 진행은 지난 시간에 포스팅한 8족 보행 로보트를 만드는 프로젝트와 같습니다. 블루투스모듈로 아두이노와 스마트폰을 연결해서 아두이노에 연결된 모터를 조정하는 구조입니다.

 

 

[아두이노 프로젝트] 8족 보행 종이 로보트 만들기

이번 시간에는 아두이노와 종이로 만드는 로보트를 소개합니다. 꽤 오래전에 만들어 봤던 로보트인데요. 아두이노와 블루투스 모듈 그리고 스마트폰을 이용해서 조정하는 로봇입니다. Step 1: 디자인 디자인은..

tagilog.tistory.com

Step 1: 디자인

디자인은 블렌더를 이용해서 했습니다. 블렌더는 무료로 사용할 수 있는 3d CG 프로그램입니다. 사용한 블렌더의 버전은 2.7입니다. 

 

 

무료로(도) 사용할 수있는 무료 CAD 와 CG 소프트웨어 리스트

공업용 CAD는 알겠는데, CG 는 뭔가요? 3D 소프트웨어는 CAD와 CG의 2 종류가 있습니다. CAD(Computer Aided Design) 는주로 건축이나 공업 제품의 설계 등에 이용되고 있습니다. 치수가 정확하게 숫자로 정의되어..

tagilog.tistory.com

Step 2: 준비물

이번 프로젝트에서 사용한 부품은 아래와 같습니다.

  • One Arduino UNO
  • One HC-06 (Bluetooth module)
  • Two DC motors
  • One servo motor
  • One L298N (DC motor driver)

Step 3: 코딩

이번 프로젝트에서 사용한 코드는 아래와 같습니다. 프로그램은 아두이IDE 를사용해서 옮겨 줍니다. 머리의 회전을 코드로 추가해 보세요. LCD를 추가해 빛나게 해도 좋습니다.

#include <SoftwareSerial.h>
SoftwareSerial BT(7,6);
#include <VarSpeedServo.h> 
VarSpeedServo myservo;

void setup()
{
  BT.begin(9600);
  pinMode(2, OUTPUT); 
  pinMode(3, OUTPUT); 
  pinMode(4, OUTPUT); 
  pinMode(5, OUTPUT); 
  myservo.attach(9);
}
char a;
void loop()
{
  if (BT.available()) {
    a = (BT.read());
    if (a == '0') {
    BT.println("R2 is stopping!");
    digitalWrite(2, LOW); 
    digitalWrite(3, LOW); 
    digitalWrite(4, LOW); 
    digitalWrite(5, LOW); 
    }
    if (a == '1') {
    BT.println("R2 is forwarding!");
    digitalWrite(2, HIGH); 
    digitalWrite(3, LOW); 
    digitalWrite(4, HIGH); 
    digitalWrite(5, LOW); 
    }
    if (a == '2') {
    BT.println("R2 is backwarding!");
    digitalWrite(2, LOW); 
    digitalWrite(3, HIGH); 
    digitalWrite(4, LOW); 
    digitalWrite(5, HIGH); 
    }
    if (a == '3') {
    BT.println("R2 is turning left!");
    digitalWrite(2, HIGH); 
    digitalWrite(3, LOW);  
    digitalWrite(4, LOW); 
    digitalWrite(5, HIGH); 
    }    
    if (a == '4') {
    BT.println("R2 is turning right!");
    digitalWrite(2, LOW); 
    digitalWrite(3, HIGH);  
    digitalWrite(4, HIGH); 
    digitalWrite(5, LOW); 
    }   
        if (a == '5') {
	BT.println("R2 is rotating its head!");
 	myservo.write(180, 30, true); 
  	myservo.write(0, 30, true);  
    }
  }
}

 

Step 4: 만들기

이번 아두이노 프로젝트를 만드는 영상입니다. 참조하시고 재미있게 진행해 보세요. 

 

이상으로 프로젝트를 소개해 봤는데요. 본 프로젝트를 진행해 보고 싶은 단체나 문의하고 싶은 점 댓글로 연락을 부탁드립니다.