본문 바로가기
프로젝트

아두이노 레이저 장난감 만들기 (with 조이스틱)

by 김비거 2022. 10. 18.

아두이노 관련한 프로젝트를 찾다가 다음 프로젝트가 눈에 띄었습니다.

 

 

프로젝트 - 움직이는 레이저 장난감 만들기

https://youtu.be/h6axIEVzUzY

 

아두이노와 프로세싱 코드를 이용해서 마우스의 움직임에 따라

레이저 장난감 즉, 서보모터와 레이저가 동작하도록 만든 프로젝트입니다.

 

위 프로젝트에서 마우스 대신 조이스틱 쉴드를 사용해보면 어떨까 생각해보았습니다.

과정은 다음과 같습니다.

 


준비물: 레이저 지지대, 서보모터 2개, 아두이노 UNO, 조이스틱 쉴드(조이스틱)

 

 

먼저 레이저 지지대(Laser gun bracket)을 3D 프린터로 출력합니다.

지지대는 3개로 구성되어 있습니다.

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

 

Laser gun bracket by mandle

This is an attachable laser gun bracket for Arduino project made by laser pointer, two servo motors. you need 2*sg90(servo), glue gun. YouTube : http://youtu.be/v3RiZMpX2NM

www.thingiverse.com

 

조립을 하면 다음과 같이 됩니다.

조립 방법은 위에 소개된 원저자 동영상 강의를 보시면 됩니다.

Laser gun bracket 조립

 

 

레이저와 조이스틱 쉴드는 모두 알리 익스프레스에서 샀습니다.

조이스틱 쉴드 대신 그냥 조이스틱을 쓰셔도 좋습니다.

 

레이저 구입처

조이스틱 쉴드(Funduino) 구입처

아두이노UNO에 꽂아주는 쉴드임을 고려하여 이에 맞는 핀을 찾아 점퍼선으로 연결합니다

 

조이스틱의 버튼 B를 레이저 ON/OFF 설정 역할로 하기 위해 3번 핀을 아두이노와 연결하였습니다.

X축과 Y축은 각각 A0, A1 핀입니다.

5V와 GND도 브레드 보드에 극성을 맞추어 연결합니다.

 

모터와 레이저를 아두이노와 연결

서보모터 두 개를 사용합니다.

레이저 지지대 아래쪽의 X축(좌우) 역할을 하는 서보모터는 9번 핀

레이저 지지대 위쪽의 Y축(상하) 역할을 하는 서보모터는 10번 핀으로 연결하였습니다.

 

레이저는 모듈 끝부분과 수수 점퍼선을 납땜하고 열수축 튜브로 감쌉니다.

빨간 선으로 11번 핀에 연결하고 검은색 선은 GND에 연결합니다.

 

 

코드는 다음과 같습니다.

 

#include <Servo.h>

const int Button_B = 3; // 버튼 B가 레이저의 ON/OFF 상태 설정 역할
int laser = 0; // 레이저 초기 상태

Servo xServo, yServo;

void setup() {
    xServo.attach(9); // X축 좌우 서보 모터
    yServo.attach(10); // Y축 상하 서보 모터
    pinMode(11, OUTPUT); // 레이저
    pinMode(Button_B, INPUT_PULLUP);
    Serial.begin(9600);
}

void loop() {
    int x_pos = analogRead(A0); // 조이스틱 X축 0~507~1023
    int y_pos = analogRead(A1); // 조이스틱 Y축 0~505~1023
    int b_state = digitalRead(Button_B); // 조이스틱 B 버튼 눌렀을 때 LOW
    
    if(b_state == LOW){
        laser = 1;
    }else{
        laser = 0;
    }
    
    int x = map(x_pos, 0, 1023, 120, 0); // 좌우
    int y = map(y_pos, 0, 1023, 0, 120); // 상하

    xServo.write(x);
    delay(1);
    yServo.write(y);
    delay(1);
    digitalWrite(11, laser);
}

 

 

 

조이스틱으로 움직이는 레이저 장난감

 


마치며..

 

아두이노 UNO에 케이블이 아닌 외부전원으로 동작하도록 하고

브레드보드를 작게 만들어서 조이스틱 컨트롤러로 만들면 휴대하면서 쓸 수도 있겠습니다.

 

레이저 포인터를 좋아하는 고양이랑 같이 놀면 재미있겠습니다 ㅋ.

제다이가 떠오르기도 하고 ㅎㅎ (제다이 1호)

 

끝.

댓글