스마트폰의 가속도센서의 수치를 블루투스를 통해 아두이노로 전송하고, 아두이노에서 받아 서보모터를 제어할려고 앱을 만들었어여 .
그런데 가속도센서 수치가 너무 자주바뀌다보니 서보모터가 1초에도 여러번 움직일정도로 민감하게 반응해버리는데요 ㅠㅠ void loop에 딜레이를 넣어도 마찬가지에여 ㅠㅠ
혹시 아시는분 있으면 답변 꼭 부탁드립니다 행님들 이렇게 싺싹빕니다
아래는 아두이노에 코딩한 코드입니다
#include <Servo.h>
#include <SoftwareSerial.h>
#define BLUE_TX 2
#define BLUE_RX 3
SoftwareSerial mySerial(BLUE_TX, BLUE_RX);
Servo servo;
int accelero;
void setup()
{
BTSerial.begin(9600);
Serial.begin(9600);
Serial.setTimeout(5);
servo.attach(9);
}
void loop()
{
if (BTSerial.available()>0)
{
accelero = BTSerial.parseInt();
if (accelero >-95 && accelero <95)
{
accelero = map (accelero, -95, 95, 0, 180);
servo.write(accelero);
}
}
}
앱인벤터 극혐
노이즈 프로파일을 구하고 필터링해야합니다.
코드세이퍼행님 구글링 해봣는데 고딩 빡통머가리로는 확실히 이해를 못하겠숩니다. 조금만 자세히 설명 가능하겠습니까 행님
칼만필터와 상보필터를 이용하라고 했는데 고딩수준이 아닌거같습니다 행님...
ㅋㅋㅋㅋㅋㅋ 칼만필터 예제 써서 입히면 될텐데.
노이즈 프로파일을 구하란건, 노이즈가 어느정도 세기로 어떤 패턴으로 들어오는지 알아내란거고,
그 노이즈가 가우시안 형태인지, 단순 랜덤인지, pepper & salt 처럼 툭툭 튀어 오르고 푹푹 꺼지는 노이즈인지 분석해서, 평균을 내든 중앙값을 구하든, 가우시안 필터를 쓰든, 칼만을 쓰든, 푸리에 변환을해서 특정 주파수대역을 잘라내든, 밴드 패스 필터를 쓰든, weighted blur 계열을 쓰든
해서 잡음을 눌러야지. 기본적으로 평균의 개념에서 노이즈는 샘플갯수의 제곱근 에 반비례 하니까, 많이 얻어 평균내면 노이즈가 줄긴 함.
대신 그렇게 하면 응답속도가 떨어지니까, 좀 더 노이즈 패턴에 맞는 처방이 필요한 것.
이거 설명해줘도 모르겠지? 걍 소스 긁어서 갖다 붙여 쓰든지, 아니면 신호처리를 제대로 공부해보든지.
한번해보겟숩니다 행님 성공한다면 삼보하러 다시 오겠습니다
codesafer//갯수->개수 (개수 (個數)[명사] : 한 개씩 낱으로 셀 수 있는 물건의 수효.) [리듬 맞춤법 봇♬]