3 акселерометра mma7660 на i2c

nikitka
Offline
Зарегистрирован: 14.10.2014

в состоянии покоя при подключении к 5 В вот такие результаты строк   Serial.print(gyroX); Serial.print("\t"); и   Serial.print(accX); Serial.print("\t");   без использования резистеров дополнительных

312.00 -182.00
292.00 -162.00
232.00 -153.00
316.00 -164.00
312.00 -156.00
196.00 -171.00
204.00 -173.00
404.00 -182.00
276.00 -168.00
244.00 -160.00
296.00 -169.00
184.00 -158.00
 
и вот с 3.3В
 
308.00 -176.00
308.00 -174.00
312.00 -150.00
344.00 -176.00
312.00 -158.00
244.00 -188.00
288.00 -168.00
228.00 -180.00
332.00 -171.00
268.00 -175.00
304.00 -167.00
 

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

так если плата рассчитана на питание 5В зачем на нее 3.3В подавать. после стабилизатора напряжение будет еще ниже, ниже номинального. а если так то чему удивлятся что значения разные. хотя очень похоже. может и не разные)) шума много. ты трясь или это шум в состоянии покоя?

nikitka
Offline
Зарегистрирован: 14.10.2014

это шум в состоянии покоя! придавил акселерометр к столу что б не дергался. 

вот результаты со скетча который на сайте arduino.cc называется MPU6050_DMP6

в начале, по 3-ем осям: 

areal 668 -926 133
aworld -448 -1058 -4
areal 666 -924 133
aworld -448 -1055 -3
 
и некоторое время спустя: 
aworld -48 -93 66
areal 66 -84 67
aworld -49 -94 67
areal 65 -80 59
aworld -46 -91 59
areal 63 -80 67
aworld -46 -89 67
areal 61 -81 63
 
и потом еще время спустя: такими и остались уже 
areal 1 -3 68
aworld -2 0 68
areal 4 -7 63
aworld -4 -5 63
areal 4 -7 62
aworld -4 -5 62
areal 3 -6 67
aworld -4 -3 67
 
 
nikitka
Offline
Зарегистрирован: 14.10.2014

и вот последний скетч оттуда же откуда и предидущий, но назван MPU6050_raw

a/g: 310 -154 16610
a/g: 318 -166 16544
a/g: 302 -158 16562
a/g: 310 -148 16516
a/g: 330 -162 16480
a/g: 330 -166 16514
a/g: 342 -234 16556
a/g: 308 -224 16568
a/g: 280 -160 16482
a/g: 276 -214 16528
a/g: 324 -202 16558
a/g: 336 -184 16602
a/g: 370 -214 16568
a/g: 328 -206 16590
a/g: 316 -212 16548
a/g: 318 -224 16504
a/g: 338 -188 16542
a/g: 306 -178 16492
a/g: 302 -158 16512
jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

как пересчитывать не нашел?

nikitka
Offline
Зарегистрирован: 14.10.2014

нет, просмотрел весь даташит но там не обнаружил и в нете на страницах с этими скетчами ничего такого не скакзано ( 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

должно быть. кому нужны эти непонятные цифры? посмотри проекты контроллеров для квадрокоптеров. там где используется такой чип. они должны по идее переводить в нормальные цифры

nikitka
Offline
Зарегистрирован: 14.10.2014

Я думаю что не легко найти перевод в g потому что сами знания не так важны, нужны которые значения с которыми можно работать. Сравнивать там . но сейчас поищу

nikitka
Offline
Зарегистрирован: 14.10.2014

В сообщении 88 есть код который ты помог на прерываниях сделать а получится ли такой же для новых акселерометров? И можно ли при крутить тот таймер который мы сделали для просчета времени?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а почему бы и нет. вроде ничего не противоречит. но лучше также сначала узнать сколько времени занимает 1 измерение

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Привет!!  Как вывести с гироскопа на шаговый мотор ?  При условии Х - в одну строну вращение  а Х + в другую. Когда гироскоп выдает сигнал -10 , к примеру ,а потом +10.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

данные с гироскопа по которым ты можешь делать вывод о положении научился получать?

шаговым мотором управлять уже умеешь?

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Данные толь на мониторе вижу как меняется , а как навыход вывести беспонятия.

 Как прописать , указать на вывод сигнал с гироскопа?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

определись сначала с числами при которых нужно поворачивать

а про мотор чего молчишь

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Шаговый пока в тишине , заканчиваю драйвера на него паять.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

самодельный? ну дело твое

SergeiNSK
Offline
Зарегистрирован: 11.03.2015
[code]
// Copyright (c) 2011, Markus Gritsch
// CC-BY-SA license

#include <util/delay.h>

#include "MMA7455L.h"

void setup()
{
    Serial.begin(115200);

    mma_init();
    _delay_ms( 1 ); // Wait Time for I2C/SPI ready after power on.
    _delay_ms( 20 ); // Turn On Response Time.

    uint8_t i2cad = mma_read( MMA_I2CAD );
    Serial.println( i2cad, HEX ); // should be 0x1D
    mma_write( MMA_I2CAD, i2cad |= MMA_I2CDIS_bit ); // disable I2C

    uint8_t ctl1 = mma_read( MMA_CTL1 );
    mma_write( MMA_CTL1, ctl1 |= MMA_DFBW_bit ); // high output data rate

    mma_write( MMA_MCTL, 0b00000101 ); // 2g range; measurement mode

    mma_calibrate_offset( -15, -23, 65 );
}

void loop()
{
    //mma_wait_until_ready();
    //
    //Serial.print( (int8_t)mma_read( MMA_XOUT8 ) ); Serial.print( "\t" );
    //Serial.print( (int8_t)mma_read( MMA_YOUT8 ) ); Serial.print( "\t" );
    //Serial.print( (int8_t)mma_read( MMA_ZOUT8 ) ); Serial.println();
    //
    //Serial.print( mma_read10( MMA_XOUT10 ) ); Serial.print( "\t" );
    //Serial.print( mma_read10( MMA_YOUT10 ) ); Serial.print( "\t" );
    //Serial.print( mma_read10( MMA_ZOUT10 ) ); Serial.println();

    long start = micros();
    int16_t x, y, z;
    mma_get_average( 4, &x, &y, &z );
    Serial.print( x ); Serial.print( "\t" );
    Serial.print( y ); Serial.print( "\t" );
    Serial.print( z ); Serial.print( "\t" );
    Serial.print( micros() - start ); Serial.println();
}

[/code]

 

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Вот этот код отлично работает, а дальше что и как ..............ну нуб я нуб...

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Нет не самодельный,  а вот этот http://amperka.ru/product/troyka-stepper-motor-driver но он слаб я ставить буду оптразвязку на 3120 http://www.chipdip.ru/product/hcpl-3120/ оптике и полевики с Н мостом. Если пробьет то спалит оптику 3120а ардуинка целая будет.

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

или сразу с ардуинки на оптику или на драйвер Тройку. Сейчас мненужно указать на выход на пин с гироскопа.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

слабоватый драйвер

а вообще ты не читаешь что я тебе пишу. опиши принцип как должно работать. с числами. без кода

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Постараюсь...  Значит так ,  Один гироскоп закреплен на раме в горизонтальном положении  и если он  наклонется в право  то сразу же шаговый мотор должен выровнять в вертикальное положение. Если наклоняется в лево то также но в другую сторону мотор вкл и выравниват опять в вертикальное положение.  Шаговый мотор с редуктором 1 : 60.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

уж не такой мотор? если да он не справится с тем что ты хочешь. так для макета  первоначального пойдет, но не для установки на велосипеде чтобы крутить твой огромный гироскоп

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

А потом с датчика скорости с направлением сниматься должен сигнал и изменять данные с датчика гироскопа. Ну это потом.

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Не нетакой, мой на видео побольше с червячным редуктором.

http://elcom-vostok.ru/3Dпринтеры-комплектующие/шаговые-двигатели/STP-42D2130.html

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну это другое дело. драйвер слабоват для такого мотора. купи лучше сразу нормальный. стоит 100р за шт

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

100 р русскими ?? Ссылку скинь.....

Да и спасибо .

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

русскими. но это в китае

121 если точнее. но там еще перемычки нужно допаивать для установки шага. хотя если не поставить вроде будет полный шаг. надо уточнять

http://ru.aliexpress.com/item/Free-shipping-3D-Printer-StepStick-DRV8825-Stepper-Motor-Drive-Carrier-Reprap-4-layer-PCB-RAMPS/32244234357.html

http://ru.aliexpress.com/item/A3967-EasyDriver-Stepper-Motor-Driver-Board-Pin-Header-For-Arduino-Hot-Sale/32299377547.html

http://ru.aliexpress.com/item/A4988-Stepper-Motor-Driver-Module-Reprap-Stepper-Driver-Board-High-Quality-Motor-Accessories/32296014196.html

выбери по току подходящий. первый самый мощный насколько помню

по названиям можешь искать поблизости

только сейчас увидел что ты такую фигню купил за 990 рублей)))

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

http://www.aliexpress.com/snapshot/6537835225.html?orderId=66255950762128

Я такой набор купил вот жду уже почти месяц. Там такие есть драйвера. 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

правильно сделал

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Как вывести сигнал с гиросокпа , к примеру на пины с светодиодами. 

Светодиоды я поставлю куда скажет на любой выход.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ты путаешь теплое с мягким. тебе нужно определится при каких углах на гироскопе нужно что то делать. а потом добавить условия если такой или такой угол то сделать то то, например включить светодиод или управлять мотором

откуда твой гироскоп может знать что ты хочешь зажечь светодиод. он только измеряет углы и отдает данные. а для чего они тебе и что ты с ними будешь дальше делать его мало колышет

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Значит гироскоп задает угол то мотор должен работать до тех пор пока гиросокп не станет вертикально. Или гореть светодиод до тех пор пока также не станет вертикально гироскоп.

 Я так думаю .......... или туплю

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

С тобой общаюсь быстрее учусь , чем по книжкам.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

гироскоп говорит в каком положении велосипед. и все. а ты говоришь ардуине крутить шаговик пока не станет такой то угол велосипеда

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Да верно. Я хочу не только скопировать чейто код но и понять его что да как уж шибко интересно.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да пожалуйста. бери железку. гугли разбирайся экспериментируй. тогда будешь разбираться. теория без практики/экспериментов бесполезна

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Там все коды уже законченные а мне б хотябы на выводы вывести сигнал.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

какой сигнал на выводы вывести? градусы чтоли?

давай по другому. преставь гироскоп это часы. а ты это ардуина. часы показывают время, и оно ничего не значит само по себе. оно имеет значение для тебя. и ты по ним например каждый час поливаешь цветы (бред но неважно)

с часами что то происходит в момент полива? они решаеют когда поливать? нет. они показывают сколько время. а то что нужно поливать каждый час, как поливать и сколько решаешь ты

у тебя есть условия если время равно час, два и далее то поливать, иначе (другое время) то не поливать

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Привет!! 

 При наклоне шаговый вкл и выравнивает до тех пор пока не станет на гиросокопе 0.  Если наклоняется и гироскоп паказывает минус 10 ил 20 невашно должен вкл шаговый и работать до тех пор пока не станет 0. А если +10ил 20 то также но в другую строну вращение мотора пока не станет на гироскопе 0 и  шаговик должен выкл. при 0. 

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

При малейшем наклоне чтобы шаоговик срабатывал. 

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Может перейдем на страничку с моим агрегатом?

nikitka
Offline
Зарегистрирован: 14.10.2014

я разобрался. при выставленном значении в 2G необходимо делить на 16384 согласно даташиту с.13 п. 6.2. 

так же необходимо калибровать когда поставим датчик на место. 

остлось теперь поменять в коде с прерываниями ардуин акселерометры. но пока что это сверхсложная задача. так как с тем то проще было: подклчил библиотеку и вывел значения а тут и фильтрация и еще гироскоп везде. 

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Никита выложи свой код.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

SergeiNSK помигай светодиодом, кнопочками побалуйся. потом шаговым мотором. то я объясняю, но какой смысл если ты программировать не умеешь. за тебя писать я не буду

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Спасибо добрый человек. 

Помигал , отдельно и шаговый включил. А как соеденить сигнал с гирокопа на шаговый тут я не знаю. 

Будем искать кто сможет обьяснить 0 проблем. 

Время потеряного жалко.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

я тебе объяснил и не раз. ты не понимаешь

SergeiNSK
Offline
Зарегистрирован: 11.03.2015

Забудь. Все отлично.

nikitka
Offline
Зарегистрирован: 14.10.2014

 я объединил старый код с миганием лампочками и фотостартом и таймером и фильтром калмана. в том ли месте я воткнул таймер ? так как это очень важно, что б синхронно и он верно отмерял время после каждого измерения.

#include <Wire.h>
#include "Kalman.h" // Source: https://github.com/TKJElectronics/KalmanFilter

#define RESTRICT_PITCH // Comment out to restrict roll to ±90deg instead - please read: http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf

Kalman kalmanX; // Create the Kalman instances
Kalman kalmanY;

/* IMU Data */
double accX, accY, accZ;
double gyroX, gyroY, gyroZ;
int16_t tempRaw;

/* данные для ведущей ардуино. начальное положение: маятник закрывает свет при
начале его движения свет попадает на ЧЭ и программа начинает счет */
  
int prer = 11;
int rec=0;
int led=12;
int disp=13;
int i=0;
unsigned long time;

double gyroXangle, gyroYangle; // Angle calculate using the gyro only
double compAngleX, compAngleY; // Calculated angle using a complementary filter
double kalAngleX, kalAngleY; // Calculated angle using a Kalman filter

uint32_t timer;
uint8_t i2cData[14]; // Buffer for I2C data

void setup() {
  Serial.begin(115200);
  Wire.begin();
  
 /* для прерываний от ведущей к ведомой */  
    pinMode(prer, OUTPUT);
    pinMode(led, OUTPUT);
    pinMode(disp, OUTPUT);
  /* до этого момента */   
  
  TWBR = ((F_CPU / 400000L) - 16) / 2; // Set I2C frequency to 400kHz

  i2cData[0] = 7; // Set the sample rate to 1000Hz - 8kHz/(7+1) = 1000Hz
  i2cData[1] = 0x00; // Disable FSYNC and set 260 Hz Acc filtering, 256 Hz Gyro filtering, 8 KHz sampling
  i2cData[2] = 0x00; // Set Gyro Full Scale Range to ±250deg/s
  i2cData[3] = 0x00; // Set Accelerometer Full Scale Range to ±2g
  while (i2cWrite(0x19, i2cData, 4, false)); // Write to all four registers at once
  while (i2cWrite(0x6B, 0x01, true)); // PLL with X axis gyroscope reference and disable sleep mode

  while (i2cRead(0x75, i2cData, 1));
  if (i2cData[0] != 0x68) { // Read "WHO_AM_I" register
    Serial.print(F("Error reading sensor"));
    while (1);
  }

  delay(100); // Wait for sensor to stabilize

  /* Set kalman and gyro starting angle */
  while (i2cRead(0x3B, i2cData, 6));
  accX = (i2cData[0] << 8) | i2cData[1];
  accY = (i2cData[2] << 8) | i2cData[3];
  accZ = (i2cData[4] << 8) | i2cData[5];

  // Source: http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf eq. 25 and eq. 26
  // atan2 outputs the value of -π to π (radians) - see http://en.wikipedia.org/wiki/Atan2
  // It is then converted from radians to degrees
#ifdef RESTRICT_PITCH // Eq. 25 and 26
  double roll  = atan2(accY, accZ) * RAD_TO_DEG;
  double pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) * RAD_TO_DEG;
#else // Eq. 28 and 29
  double roll  = atan(accY / sqrt(accX * accX + accZ * accZ)) * RAD_TO_DEG;
  double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif

  kalmanX.setAngle(roll); // Set starting angle
  kalmanY.setAngle(pitch);
  gyroXangle = roll;
  gyroYangle = pitch;
  compAngleX = roll;
  compAngleY = pitch;

  timer = micros();
}
void loop()
{
  time = micros();
digitalWrite(led,HIGH);
if (analogRead(rec)>800)
{
digitalWrite(disp,HIGH);
while(i<400)
{
//digitalWrite(prer, HIGH);
delay(5); 
//digitalWrite(prer, LOW); 
  /* Update all the values */
  while (i2cRead(0x3B, i2cData, 14));
  accX = ((i2cData[0] << 8) | i2cData[1]) + 2000.0; // You might need to adjust these zeroes values depending on your accelerometer
  accY = ((i2cData[2] << 8) | i2cData[3]) + 3319.84;
  accZ = ((i2cData[4] << 8) | i2cData[5]) + 664.48;
  tempRaw = (i2cData[6] << 8) | i2cData[7];
  gyroX = (i2cData[8] << 8) | i2cData[9];
  gyroY = (i2cData[10] << 8) | i2cData[11];
  gyroZ = (i2cData[12] << 8) | i2cData[13];

  double dt = (double)(micros() - timer) / 1000000; // Calculate delta time
  timer = micros();

  // Source: http://www.freescale.com/files/sensors/doc/app_note/AN3461.pdf eq. 25 and eq. 26
  // atan2 outputs the value of -π to π (radians) - see http://en.wikipedia.org/wiki/Atan2
  // It is then converted from radians to degrees
#ifdef RESTRICT_PITCH // Eq. 25 and 26
  double roll  = atan2(accY, accZ) * RAD_TO_DEG;
  double pitch = atan(-accX / sqrt(accY * accY + accZ * accZ)) * RAD_TO_DEG;
#else // Eq. 28 and 29
  double roll  = atan(accY / sqrt(accX * accX + accZ * accZ)) * RAD_TO_DEG;
  double pitch = atan2(-accX, accZ) * RAD_TO_DEG;
#endif

  double gyroXrate = gyroX / 131.0; // Convert to deg/s
  double gyroYrate = gyroY / 131.0; // Convert to deg/s

#ifdef RESTRICT_PITCH
  // This fixes the transition problem when the accelerometer angle jumps between -180 and 180 degrees
  if ((roll < -90 && kalAngleX > 90) || (roll > 90 && kalAngleX < -90)) {
    kalmanX.setAngle(roll);
    compAngleX = roll;
    kalAngleX = roll;
    gyroXangle = roll;
  } else
    kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt); // Calculate the angle using a Kalman filter

  if (abs(kalAngleX) > 90)
    gyroYrate = -gyroYrate; // Invert rate, so it fits the restriced accelerometer reading
  kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt);
#else
  // This fixes the transition problem when the accelerometer angle jumps between -180 and 180 degrees
  if ((pitch < -90 && kalAngleY > 90) || (pitch > 90 && kalAngleY < -90)) {
    kalmanY.setAngle(pitch);
    compAngleY = pitch;
    kalAngleY = pitch;
    gyroYangle = pitch;
  } else
    kalAngleY = kalmanY.getAngle(pitch, gyroYrate, dt); // Calculate the angle using a Kalman filter

  if (abs(kalAngleY) > 90)
    gyroXrate = -gyroXrate; // Invert rate, so it fits the restriced accelerometer reading
  kalAngleX = kalmanX.getAngle(roll, gyroXrate, dt); // Calculate the angle using a Kalman filter
#endif

  gyroXangle += gyroXrate * dt; // Calculate gyro angle without any filter
  gyroYangle += gyroYrate * dt;
  //gyroXangle += kalmanX.getRate() * dt; // Calculate gyro angle using the unbiased rate
  //gyroYangle += kalmanY.getRate() * dt;

  compAngleX = 0.93 * (compAngleX + gyroXrate * dt) + 0.07 * roll; // Calculate the angle using a Complimentary filter
  compAngleY = 0.93 * (compAngleY + gyroYrate * dt) + 0.07 * pitch;

  // Reset the gyro angle when it has drifted too much
  if (gyroXangle < -180 || gyroXangle > 180)
    gyroXangle = kalAngleX;
  if (gyroYangle < -180 || gyroYangle > 180)
    gyroYangle = kalAngleY;

  /* Print Data */
#if 1 // Set to 1 to activate
  Serial.print(accX); Serial.print("\t");
  Serial.println(micros()-time);
//  Serial.print(accY); Serial.print("\t");
//  Serial.print(accZ); Serial.print("\t");
//
//  Serial.print(gyroX); Serial.print("\t");
//  Serial.print(gyroY); Serial.print("\t");
//  Serial.print(gyroZ); Serial.print("\t");

  Serial.print("\t");
#endif

  Serial.print("\r\n");
//  delay(2);
//}


//delay(5);
i++;
 }}

//}
 else 
 {
digitalWrite(disp,LOW);
 }
}
//}

вот результаты с монитора:

3592.00	22792
	
3604.00	30508
	
3624.00	38248
	
3496.00	45972
	
3628.00	53700
	
3556.00	61432
	
3484.00	69172
	
3544.00	76932
	
3624.00	84672
	
3692.00	92424
	
3552.00	100168
	
3576.00	107968
	
3576.00	115756
	
3552.00	123548
	
3508.00	131348
	
3644.00	139140
	
3668.00	146924
	
3440.00	154732

первая цифра это ускорение из которого нужно вычесть 2000(приблизительно, надо калибровать) и поделить на 16384. датчик лежит на столе. а вторая это время правда не ясно какое именно =)

nikitka
Offline
Зарегистрирован: 14.10.2014

и так: я хотел бы подвести итог дня: 
1) ссылка на код для ардуины с фотостартомhttp://pastebin.com/bAGaNZvG 
2) для ведомой, на прерываниях http://pastebin.com/K0iMbki4 

результат 1: 
3632.00 7404

3656.00 15124

3728.00 22912

3640.00 30672

3660.00 38456

3632.00 46224

3644.00 54004

3672.00 61804

3768.00 69588

3668.00 77388

3696.00 85164

3740.00 92952

3664.00 100740

3756.00 108576

3624.00 116416

3616.00 124284

3672.00 132140

3656.00 139996

3692.00 147856

3616.00 155692

результат 2: 

18932.00 2360
18960.00 2484
19084.00 2504
19116.00 2496
18980.00 2500
19028.00 2492
19036.00 2504
19012.00 2500
18896.00 2512
19048.00 2500
19060.00 2500
18932.00 2512
19020.00 2508
18992.00 2500
19100.00 2504
19116.00 2496
19092.00 2512
18932.00 2504
19068.00 2524
18996.00 2516

то, что разные показания с акселерометров - это пока не страшно - я еще не калибровал. 

но вроде место размещения таймеров одно и тоже: сразу после лупа и вывод после вывода показания, но время различается кардинально, почему? может ли влиять тот факт, что второй процессор ровно в два раза слабее? 

а с синхронностью пока не ясно, работают ли они синхронно, как это определить наверняка?