제작 요약 - 이론 설명 없이 빠르게 제작하기


일단 만드는 것부터 하실 분들을 위한 총 요약 페이지입니다. 제작을 위한 순서는 다음과 같습니다.

  1. 재료 구매
  2. 아두이노에 프로그램 넣기
  3. 하드웨어 3d 프린터로 출력하기
  4. 조립

재료 구매


부품 총 정리

버스킹봇을 만들기 위한 하드웨어 부품 표입니다.

역할 모델명 수량 구매링크 비고
서보모터 MG90S 2 클릭
아두이노 본체 아두이노 나노 1 클릭
아두이노 확장보드 아두이노 나노 확장보드 1 클릭
USB mini 케이블 USB mini 케이블 1 클릭 아두이노 나노에 맞는 케이블 사용
블루투스 HC-05 1 클릭
dupont cable 100mm 점퍼 케이블 100mm (male to male) 4 클릭 블루투스 - 아두이노 연결용
배터리 USB보조배터리 1 클릭 USB 케이블이 꽂히는 모델 구매 요

도구 총정리

역할 모델명 수량 구매링크 비고
글루건, 글루심 글루건 1 클릭 기구 임시 고정용
십자 드라이버 3mm 십자드라이버 1 클릭 모터 - 막대 고정용
3d 프린터 저는 FDM 방식의 저가형 프린터를 사용했습니다. 1 클릭 팹랩, 메이커스페이스 등에서 출력 가능
필라멘트 PLA 원료 사용 1 roll 클릭 1.75mm 직경 사용(가장 대중적인 굵기: 프린터 노즐의 굵기따라 다를 수 있음)

아두이노에 프로그램 넣기


아두이노 프로그램 다운로드

링크 바로가기

버스킹봇 소스코드 다운로드하기

https://github.com/happythingsmaker/openBuskingBot/blob/master/arduino/openBuskingBot_Serial_BT_Servo.ino

/*********************************************************
    Open BuskingBot
    Written by Eunchan Park (박은찬)
    BSD license, all text above must be included in any redistribution
**********************************************************/
//서보모터 라이브러리 사용하겠음
#include <Servo.h>

//소프트웨어시리얼 라이브러리 사용하겠음
#include <SoftwareSerial.h>

// "PIN_NUMBER_SW_SERIAL_TX" 이란 단어를 "2"라고 사용하겠음
// "PIN_NUMBER_SW_SERIAL_RX" 이란 단어를 "3"라고 사용하겠음
#define PIN_NUMBER_SW_SERIAL_TX     (2)
#define PIN_NUMBER_SW_SERIAL_RX     (3)
#define PIN_NUMBER_LEFT_MOTOR   (9)
#define PIN_NUMBER_RIGHT_MOTOR  (10)

#define LEFT_HIT_POSITON    140
#define RIGHT_HIT_POSITON    40
#define CENTER 90

Servo myservo1; // 첫 번째 서보모터선언
Servo myservo2; // 두 번째 서보모터 선언

//소프트웨어시리얼 선언, TX핀은 2번, RX핀은 3번임
SoftwareSerial BTSerial(PIN_NUMBER_SW_SERIAL_RX, PIN_NUMBER_SW_SERIAL_TX);
long lastHitTime = 0;

//왼쪽 팔을 이용해서 드럼을 치는 함수
void LeftHit() {
    myservo1.attach(PIN_NUMBER_LEFT_MOTOR);//서보모터에 힘을 부여함
    myservo1.write(LEFT_HIT_POSITON); // 서보 1번에게 90도로 이동하라고 명령 (왼쪽 모터) (팔을 내린다)
    delay(200); // 200ms (0.2초 동안 여기서 대기)
    myservo1.write(CENTER); // 서보 1번에게 0도로 이동하라고 명령 (왼쪽 모터) (팔을 든다)
}

//오른쪽 팔을 이용해서 드럼을 치는 함수
void RightHit() {
    myservo2.attach(PIN_NUMBER_RIGHT_MOTOR);//서보모터에 힘을 부여함
    myservo2.write(RIGHT_HIT_POSITON); // 서보 2번에게 90도로 이동하라고 명령 (오른쪽 모터) (팔을 내린다)
    delay(200); // 200ms (0.2초 동안 여기서 대기)
    myservo2.write(CENTER); // 서보 2번에게 0도로 이동하라고 명령 (오른쪽 모터) (팔을 든다)
}

// 데이터에 따라서 왼손 또는 오른손으로 드럼을 치는 함수
void hitDrum(char data) {
    // 만약 데이터가 'b' 라면
    if (data == 'b') {
        //왼팔을 움직이세요
        LeftHit();
    } else if (data == 's') {
        // s 라면 오른팔을 치세요
        RightHit();
    }  else if (data == 'f') {
        // f 라면 드럼을 치는 위치로 가서 기다리세요.
        myservo1.attach(PIN_NUMBER_LEFT_MOTOR);//서보모터에 힘을 부여함
        myservo2.attach(PIN_NUMBER_RIGHT_MOTOR);//서보모터에 힘을 부여함
        myservo1.write(LEFT_HIT_POSITON);
        myservo2.write(RIGHT_HIT_POSITON);
        delay(60000);

    }
}

//아두이노 셋업 함수 (1회만 실행됨)
void setup() {
    myservo1.attach(PIN_NUMBER_LEFT_MOTOR); // 9번 핀을 서보1번이라는 이름으로 컨트롤 하겠음 (왼쪽 모터)
    myservo2.attach(PIN_NUMBER_RIGHT_MOTOR); // 9번 핀을 서보2번이라는 이름으로 컨트롤 하겠음 (오른쪽 모터)

    // 시리얼 통신을 시작하겠음. 38400 이라는 속도로 하겠음
    // 38400 이라는 숫자는 미리 정해진 여러가지 속도 중 하나임
    // 이번 강좌에서 사용된 블루투스는 38400 속도로 셋팅이 되어 있기 때문에 이 속도를 사용함
    long baudrate = 38400;
    Serial.begin(baudrate);
    BTSerial.begin(baudrate);
    LeftHit();
    RightHit();
}

// 임시로 데이터를 저장할 공간을 마련함
char tempData = 0;

//아두이노 루프 함수 (무제한 실행됨)
void loop() {
    // 통신을 통해 데이터를 받았다면 (컴퓨터로부터)
    if (Serial.available()) {
        // 임시 공간에 데이터 하나를 읽어서 저장하세요
        char tempData = Serial.read();
        hitDrum(tempData);
        lastHitTime = millis();
    }

    // 통신을 통해 데이터를 받았다면 (블루투스로부터)
    if (BTSerial.available()) {
        char tempData = BTSerial.read();
        hitDrum(tempData);
        lastHitTime = millis();
    }

    // 1000ms (1초) 이상 아무런 통신이 오지 않았다면 모터의 힘을 풀겠습니다.
    if (millis() > lastHitTime + 1000) {
        myservo1.detach();
        myservo2.detach();
    }
}

예제 소스를 보드에 업로드하기

[tools - Port]를 눌러서 현재 Port 상태를 확인

아두이노와 연결된 USB 를 꽂고 포트 확인/선택

보드 확인

Processor "ATmega328P"도 확인하세요

업로드 버튼 클릭

업로드 완료 (Done uploading)

하드웨어 3d 프린터로 출력하기


출력파일:

https://www.thingiverse.com/thing:2742894

위 링크에서 모든 파일을 다운받으신 후, 출력하시면 됩니다. (팔은 2세트 필요함)

3d 프린터는 따로 스터디가 필요합니다.

조립


다음 영상과 사진들을 참고하셔서 조립하세요

https://youtu.be/au7ZeFZ-lcw

3D 프린터를 이용해서 본 도면을 다운받고, 출력을 하시면 됩니다.

조립 방법

모든 부품들 준비합니다.

라이센스


이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스 에 따라 이용할 수 있습니다.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License

.

Copyright 2018. Eunchan Park all rights reserved.
http://happyThingsMaker.com
[email protected]
박은찬

results matching ""

    No results matching ""