본문 바로가기

메이커 자료

아두이노 레오나르도로 만드는 메이커메이키

이번 프로젝트는 처음 메이커를 접하는 분들이나, 어린 친구들이 상당히 좋아하고,

유명한 메이키 메이키를 만들어 보도록 하겠습니다.

사실 메이키 메이키의 경우 구성품이 아래와 같지만!!

저는 이번에 아두이노 레오나르도를 가지고 메이키 메이키를 만들어 보도록 하겠습니다.

왜냐구요??!

아두이노 레오나르도는 그 활용도가 너무도 많기 때문에 ~!

아마 향후에 계속적으로 메이커 활동을 하실 예정이신 분들에게는 아주 유용한 자료가 될 것 같기 때문입니다!

구성품 준비하기

구성품은 상당히 간단하고, 그 원리도 상당히 단순하죠!!

메이키 메이키의 원리는 아마 다들 아시겠죠?~

회로가 연결된 물체에 우리 몸이 전기가 흐르는 성질을 이용해서 만든 원리인데요~! 직접 체험해보시면 이해가 될 것 같습니다.

아두이노 레오나르도의 경우 아날로그 핀을 가지고 코드를 작성하였기 때문에, 저항의 크기가 꾀 중요합니다.

저의 경우 1㏁ 저항을 사용하였습니다.

◎ 회로 연결하기

회로는 아래 회로도를 기준으로 만들어 주세요~!

 

각 점퍼선 마지막 부분에 악어 클립을 연결해주시면 됩니다.

 

피아노 보드판에 구리테이프를 붙여 줍니다.

그리고, 앞서 연결한 악어클립 (검정을 제외하고) 각각 원하는 피아노 건반에 연결해주시면 됩니다.



★★ 피아노 치러가기 ★★

https://real-royal.com/


★★마리오 게임하러 가기 ★★

https://kgu0724.tistory.com/68

회로 연결 및 코드 작성

회로가 간단해서 별로 어려울 것이 없을 것 같아요 !!

아두이노 레오나르도의 특징은 키보드로 인식이 가능하게끔 할 수 있는 장점이 있습니다.

따라서, Keyboard.h 라이브러리를 활용하시면, 키보드키를 쓸 수 있는 거죠!!!

아래 KeyCodes[PinCount]내에 값들을 조정하면서 여러분이 원하는 코드를 작성해보세요!

#include <Keyboard.h>
#include <movingAvg.h>
 
// Original values were 200 and then 600
const int PressedMaxThreshold = 600;
const int ReleasedMinThreshold = 600;
const byte PinCount = 6;
 
const byte InputPins[PinCount] = {A0, A1, A2, A3, A4, A5};
const char KeyCodes[PinCount] = {
KEY_UP_ARROW, // 키보드 상, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_DOWN_ARROW, // 키보드 하, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_LEFT_ARROW, // 키보드 좌, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_RIGHT_ARROW, // 키보드 우, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
' ',  // 스페이스
'y'  // 키보드 y 누르는 것
};
 
/*
*   
// 메이키메이키 정면 위쪽 키 변경 (키보드 상,하,좌,우, 스페이스바, 마우스 왼쪽버튼)
KEY_UP_ARROW,      // 키보드 상, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_DOWN_ARROW,    // 키보드 하, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_LEFT_ARROW,    // 키보드 좌, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
KEY_RIGHT_ARROW,   // 키보드 우, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
' ',               // 스페이스바, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_LEFT,        // 마우스 왼쪽 버튼, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
 
// 메이키메이키 정면 왼쪽 키 변경(W, A, S, D, F, G)
'w',                // w버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
'a',                // a버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
's',                // s버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
'd',                // d버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
'f',                // f버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
'g',                // g버튼, 키를 변경하려면 좌측의 단축키를 변경할 단축키로 설정하십시오.
 
// 메이키메이키 정면 오른쪽 키 버튼 변경(마우스 이동, 클릭)
MOUSE_MOVE_UP,      // 마우스 위로, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_MOVE_DOWN,    // 마우스 아래로, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_MOVE_LEFT,    // 마우스 왼쪽으로, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_MOVE_RIGHT,   // 마우스 오른쪽으로, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_LEFT,         // 마우스 왼쪽 클릭, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
MOUSE_RIGHT         // 마우스 오른쪽 클릭, 키를 변경하려면 좌측의 문구를 변경할 단축키로 설정하십시오.
*/
 
 
struct TouchInput
{
byte analogPin;
char keycode;
movingAvg filter = movingAvg(20);
boolean wasPressed = false;
};
 
 
TouchInput Pins[PinCount];
 
void setup()
{
Serial.begin(115200);
 
for (int i = 0; i < PinCount; i++)
{
Pins[i].analogPin = InputPins[i];
Pins[i].keycode = KeyCodes[i];
Pins[i].filter.begin();
}
}
 
 
void loop()
{
for (int i = 0; i < PinCount; i++)
{
float currentAverage = Pins[i].filter.reading(analogRead(Pins[i].analogPin));
boolean previousState = Pins[i].wasPressed;
boolean currentState = previousState; // Default if in the dead zone
Serial.println(currentAverage);
 
if (currentAverage < PressedMaxThreshold)
{
currentState = true;      // Pressed
}
else if  (currentAverage > ReleasedMinThreshold)
{
currentState = false;      // Released
}
 
if (currentState != previousState)
{
if (currentState)
Keyboard.press(Pins[i].keycode);
else
Keyboard.release(Pins[i].keycode);
}
Pins[i].wasPressed = currentState;
}
}

 

제품이 필요하신 분들은 아래 스토어에서 구매하실 수 있습니다.

 

https://smartstore.naver.com/makeitnow/products/4323228391

 

아두이노 레오나르도를 활용하여 DIY 메이키메이키 만들기 : Make it Now

[Make it Now] 메이커 제품을 만날 수 있는 마켓입니다.

smartstore.naver.com

 

 

사업자 정보 표시
메이크잇나우 | 김건욱 | (우 : 13487) 경기도 성남시 분당구 대왕판교로645번길 12 (경기창조경제혁신센터) 9층 | 사업자 등록번호 : 646-35-00394 | TEL : 070-8887-0703 | Mail : kgu0724@makeitnow.kr | 통신판매신고번호 : 2018-성남분당-0517호 | 사이버몰의 이용약관 바로가기