Помогите усмирить акселерометр MMA7361

Помогите усмирить акселерометр MMA7361

Сообщение vingor » 14 янв 2014, 19:50

Всем добрый вечер! Прошу помощи в усмирении акселерометра на Arduino. Есть маленькая проблема с полученными данными, координаты x, y и z сильно шумят. То есть даже в лежачем положении принятые данные скачут на +-10 единиц из за этого очень тяжело выставить нулевое положение, а также обработать эти данные на сервоприводах, из за чего они дергаются.
Код использую вот этот.

Код: Выделить всё
#include <Servo.h>
Servo myservo;
Servo myservo1;
int x, y, z;

// Калибровка датчика
int dx=390;
int dy=408;
int dz=396;
void setup()
{
   Serial.begin(9600);
   myservo.attach(11);
   myservo1.attach(12);

}
 
void loop()
{
 
  // Значения осей с датчика
  x = analogRead(A0) - dx;
  y = analogRead(A1) - dy;
  z = analogRead(A3) - dz;
 
  // Вывод в Serial monitor
  Serial.print("X: ");
  Serial.print(x/2);
  Serial.print("Y:");
  Serial.print(y/2);
  Serial.print("Z:");
  Serial.println(z/2);
 
  //Период опроса
  delay(100  );
    myservo.write(90-x/2);
    myservo1.write(90-y/2);
  }

В Википедии есть статья про программную фильтрация сигнала. Но в программировании я профан и не могу разобраться. http://en.wikipedia.org/wiki/Low-pass_filter
vingor
 
Сообщения: 2
Зарегистрирован: 14 янв 2014, 19:31
programming: C#

Re: Помогите усмирить акселерометр MMA7361

Сообщение vingor » 14 янв 2014, 23:59

Все спасибо Всем! Разобрался.
Кому интересно вот фильтр.
Код: Выделить всё
// фильтр
  x = ((STABILITY-1)* x + analogRead(A0)) / STABILITY;
  y = ((STABILITY-1)* y + analogRead(A1)) / STABILITY;
  z = ((STABILITY-1)* z + analogRead(A2)) / STABILITY;

где x, y, z показания гирокомпаса, а STABILITY переменная равная числу стабилизации в моем случаи = 10
vingor
 
Сообщения: 2
Зарегистрирован: 14 янв 2014, 19:31
programming: C#

Re: Помогите усмирить акселерометр MMA7361

Сообщение noonv » 15 янв 2014, 06:34

Фильтрация - это целое приключение :)
Спасибо, что не забыли поделиться своим решением ;)
Аватара пользователя
noonv
Администратор
 
Сообщения: 557
Зарегистрирован: 05 май 2011, 15:44
Откуда: Калининград
programming: С++


Вернуться в Программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron
© 2009-2019 |  О проекте  |  Политика Конфиденциальности  |