코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-02-27 18:45:02
프로젝트 개요 |
저항막 터치스크린을 이용해서 구슬이 굴러 떨어지지 않도록 한 작품입니다.
최종 결과
만드는 방법 |
1. 무빙 프레임 만들기
상단의 나무판은 약간 덜렁거리도록 만들어야 합니다.
터치스크린은 저항막 방식 4단자 규격이면 어떤 것이든 사용 가능합니다. 여기서는 닌텐도3DS용 부품을 사용했습니다.
연결 방법 |
아두이노 보드 소스 (인용시 출처를 명시해 주세요.) |
#include <Servo.h>
Servo myservo[2];
int xStable = 90;
int yStable = 90;
int xPosition1 = 0;
int yPosition1 = 0;
float xVelocity = 0;
float yVelocity = 0;
int xPosition = 512;
int yPosition = 512;
void setup()
{
Serial.begin(9600);
myservo[0].attach(6);
myservo[1].attach(7);
myservo[0].write(xStable);
myservo[1].write(yStable);
}
void loop()
{
xPosition = 512;
yPosition = 512;
pinMode(A1, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A0, INPUT);
pinMode(A2, INPUT);
digitalWrite(A1, LOW);
digitalWrite(A3, HIGH);
int xPosition0 = xPosition1;
xPosition1 = (analogRead(A0) + analogRead(A2)) / 2;
int xAdj = 0;
if (xPosition0 < 1023 && xPosition1 < 1023)
{
xVelocity = xPosition1 - xPosition0;
xAdj = round((xPosition1 - xPosition) / 8.0 + xVelocity * 1.25);
}
pinMode(A0, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A1, INPUT);
pinMode(A3, INPUT);
digitalWrite(A0, LOW);
digitalWrite(A2, HIGH);
int yPosition0 = yPosition1;
yPosition1 = (analogRead(A1) + analogRead(A3)) / 2;
int yAdj = 0;
if (yPosition0 < 1023 && yPosition1 < 1023)
{
yVelocity = yPosition1 - yPosition0;
yAdj = round((yPosition1 - yPosition) / 8.0 + yVelocity * 1.25);
}
myservo[0].write(xStable + yAdj);
myservo[1].write(yStable + xAdj);
delay(20);
}
자바실험실