정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

블루투스 통신 문의
안석현 | 2017-08-31

현재 나노, 우노, 메가를 사용중에 있고 HM-10을 사용중이며

프로젝트와 유사하게 일단 나노에 근전도 센서와 LED를 달았고 메가에는 압력센서와 LED를 달아 나노의 근전도센서의 크기를 측정해 메가의 LED의 밝기를 제어하고 메가의 압력센서의 크기를 측정해 나노의 LED의 밝기를 제어하고자 하였습니다.

메가와 나노 통신 시 튐 현상이 발생하여 LED의 밝기가 깜박깜박 잡음처럼 생깁니다. 메가와 메가간 통신시 아무 문제 없었고 우노와 나노 통신시 잡음이 생겼고, 우노 끼리의 통신간에도 잡음이 생겼습니다. 이 문제를 해결하고 싶습니다.




현재 메가에 업로드 되어 있는 소스 입니다.  


#define LED 9

char BluetoothData;
void setup() {
    Serial.begin(9600);
    Serial1.begin(9600)/;
    pinMode(LED, OUTPUT);
}
void loop() {
  char x;
  x = map(analogRead(A0), 0, 1023, 0, 255);
  Serial1.write(x);
    if (Serial1.available()){                                 
        BluetoothData = Serial1.read();                      
        analogWrite(LED, BluetoothData));  
    }
 
  delay(10);
}




현재 나노에 업로드 되어 있는 소스 입니다.

#include 
#define LED 9
#define ANALOG A0

int TX = 2, RX = 3;

SoftwareSerial BTSerial(TX,RX);
char BluetoothData;

void setup() {
    BTSerial.begin(9600);
    pinMode(LED, OUTPUT);
   pinMode(ANALOG, INPUT);
}
void loop() {
   char x;
   x = map(analogRead(ANALOG), 0, 1023, 0, 255);
   BTSerial.write(x);
    if (BTSerial.available()){                                 
        BluetoothData = BTSerial.read();
        analogWrite(LED, BluetoothData));  
    }
   delay(10);
}

--------------------------------------------------------------------------------------

그래서 해결해보고자 칼만 필터?를 적용해 보았는데 이렇게 적용하는게 맞는지 모르겠지만

#include 

#define LED 9
#define DATA A0
int TX = 2, RX = 3;
double P=0, Kal=0, K=0;
double varP = 0.01;
double varM = 0.25;
SoftwareSerial BTSerial(TX,RX);
double BluetoothData;

void setup() {
    Serial.begin(9600);
    BTSerial.begin(9600);
    pinMode(LED, OUTPUT);
    pinMode(DATA, INPUT);
}

void loop() {
   P = P + varP;
   K = P/(P+varM);
   double x;
   x = map(analogRead(DATA), 0, 1023, 0, 255);
   Kal = K*x + (1-K)*Kal;
   P = (1-K)*P;
   BTSerial.write(Kal);
   if (BTSerial.available()){                                
        BluetoothData = BTSerial.read();
        analogWrite(LED, BluetoothData)); 
    }
   delay(10);
}




해결되지 않았습니다.

 

이전글   |    아두이노 + 충격센서 도와주세요 2017-08-30
다음글   |    sd카드 관련하여 부탁드립니다. 2017-09-03