Специальные цены   новые товары
+ Ответить в теме
Страница 69 из 226 ПерваяПервая ... 59 67 68 69 70 71 79 ... ПоследняяПоследняя
Показано с 2,721 по 2,760 из 9004

ArduCopter Mega: порт на обычную Arduino (тестим)

Тема раздела Коптеры. Комплектующие, сборка, настройка. в категории Квадрокоптеры и мультироторы; Кто может объяснить, зачем в sensors.pde идет корректировка по температуре? Код: static long read_barometer(void) { float x, scaling, temp; barometer.Read(); ...

  1. #2721

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Кто может объяснить, зачем в sensors.pde идет корректировка по температуре?
    Код:
    static long read_barometer(void)
    {
     	float x, scaling, temp;
    
    	barometer.Read();
    	abs_pressure = barometer.Press;	
    
    	scaling 				= (float)ground_pressure / (float)abs_pressure;
    	temp 					= ((float)ground_temperature / 10.0f) + 273.15f;
    	x 						= log(scaling) * temp * 29271.267f;
    		
    	return 	(x / 10);
    }
    Здесь меняется только abs_pressure в зависимости от высоты. После этой корректировки высота просаживается на метр.
    http://code.google.com/p/arducopter/.../detail?id=138 - тут пишет, что этот кусок кода- полная шляпа. Нужно сделать, как в даташите Бош. Сейчас попробую..

    Цитата Сообщение от tusik Посмотреть сообщение
    Подскажите какого цвета с какой стороны стоять должны по ГОСТу.
    Я запомнил так: слева сердце - там красные огни БАНО =)
    Последний раз редактировалось Musgravehill; 18.09.2011 в 00:52.

  2.  
  3. #2722

    Регистрация
    23.01.2011
    Адрес
    Минск
    Возраст
    46
    Сообщений
    1,345
    Цитата Сообщение от Musgravehill Посмотреть сообщение
    корректировка по температуре
    Типа барометр точнее показывает, нет дрейфа температурного

  4. #2723

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Цитата Сообщение от tusik Посмотреть сообщение
    барометр точнее показывает, нет дрейфа температурного
    Текущая температура не измеряется! Только давление. Правлю код и экспериментирую.

  5. #2724

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    Цитата Сообщение от Musgravehill Посмотреть сообщение
    Текущая температура не измеряется!
    охлаждение от винтов, нагревание от мозгов/регулей, ветер, солнце

  6.  
  7. #2725

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Цитата Сообщение от SovGVD Посмотреть сообщение
    охлаждение от винтов, нагревание от мозгов/регулей, ветер, солнце
    В коде baro.read присутствует только ground_temperature! А она измеряется один раз при инициализации.
    Тем более, если от платы нагрелся датчик - это не значит, что изменилось давление воздуха и высота.

  8. #2726

    Регистрация
    17.08.2011
    Адрес
    Ухта
    Возраст
    32
    Сообщений
    48
    http://code.google.com/p/megapirateng/wiki/confighw

    тут видимо ошибка, пины Trig и Echo для сонара перепутаны местами.

  9. #2727

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    Цитата Сообщение от Aven Посмотреть сообщение
    пины Trig и Echo для сонара перепутаны местами.
    почему?

  10.  
  11. #2728
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от tusik Посмотреть сообщение
    А планер-то только что до 70 обновился. Фишечки какие-то новые, но тормозит жутко даже без коптера.

    Решил я на свой коптер огоньки повесить. Деже ленту нашел пыле-водонепроницаемую. Подскажите какого цвета с какой стороны стоять должны по ГОСТу. Где-то писали, но не помню
    Справа зеленый, слева красный сзади белый. Или под брюхом белый, моргающий.

    У меня так сделано. С программой Олегова секвенсора.

  12. #2729

    Регистрация
    17.08.2011
    Адрес
    Ухта
    Возраст
    32
    Сообщений
    48
    Цитата Сообщение от SovGVD Посмотреть сообщение
    почему?
    Потому, что работает только если их перевернуть.
    у меня сонар HC-SR04 ($5.49)

  13. #2730

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    что-то проясняется..идем дальше
    Код:
    static long read_barometer(void)
    {
     	float x, tmp_float, altitude_cm;	
    	barometer.Read();	
    	//abs_pressure= ((float)abs_pressure * .85) + ((float)barometer.Press *.15);	
    	
    	tmp_float = (float)barometer.Press/(float)ground_pressure;
    	tmp_float = pow(tmp_float, 0.190295);	
    	altitude_cm = (44330.000000 * (1.000000 - tmp_float));	
            
    	Serial.print(altitude_cm);
    	Serial.println();
    	
    	x = altitude_cm;
    	
    	return 	(x);
    }

  14. #2731

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Итак, в sensors.pde
    Код:
    static void init_barometer(void)
    {
    	#if HIL_MODE == HIL_MODE_SENSORS
    		hil.update();					// look for inbound hil packets for initialization
    	#endif	
    	int i;
             
    	for(i = 0; i < 20; i++){
    		delay(50);		
    		barometer.Read(); //просто читаем	
    	}
    	
            ground_pressure = 0;
    	for(i = 0; i < 8; i++){
    		delay(50);
    
    		#if HIL_MODE == HIL_MODE_SENSORS
    			hil.update(); 				// look for inbound hil packets
    		#endif
    
    		// Get initial data from absolute pressure sensor
    		barometer.Read();
    		ground_pressure += barometer.Press;   //8 раз считаем давление у земли и сложим
    		
    		//Serial.printf("init %ld, %d, -, %ld, %ld, -, %d, %ld\n", barometer.RawTemp, barometer.Temp, barometer.RawPress,  barometer.Press, ground_temperature, ground_pressure);
    	}	
            ground_pressure   /=8;   //давление у земли
    	abs_pressure       = ground_pressure;  //потом пригодится, чтобы не 0
    	//Serial.printf("init %ld\n", abs_pressure);
    	//SendDebugln("barometer calibration complete.");
    }
    
    static long read_barometer(void)
    {
     	float x, tmp_float, altitude_cm;	
    	barometer.Read();	
    	abs_pressure = (float)abs_pressure * .85 + (float)barometer.Press *.15;  //фильтруем, не позволяем быстро изменяться	
    	
    	tmp_float = (float)abs_pressure /(float)ground_pressure;     //станд. формула рассчета высоты относительно исходного давления
    	tmp_float = pow(tmp_float, 0.190295);	
    	altitude_cm = 44330.0 * (1.0 - tmp_float);  //высота в сантиметрах относительно исходной точки старта	
    	
    	x = altitude_cm*100;  //так требует программа
    	//Serial.printf("%ld, %ld, %ld, %ld\n", barometer.Press, ground_pressure, altitude_cm, x); //Serial.print(altitude_cm); /Serial.println();
    	return 	(x);
    }
    В APM_BMP085.cpp
    Код:
    uint8_t APM_BMP085_Class::Read()   //сильно упростилась, но добавлены задержки по даташиту. А надо ли читать и считать потом температуру???
    {
    	uint8_t result = 0;
    	
    	Command_ReadTemp();delay(20);
                  ReadTemp(); delay(20);
    	Command_ReadPress();delay(20);
    	ReadPress();delay(20);
    	Calculate(); 
    	result = 1;	
    	return(result);
    }
    
    // Read Raw Pressure values
    void APM_BMP085_Class::ReadPress()
    {
    	byte msb;
    	byte lsb;
    	byte xlsb;
    
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.send(0xF6);
    	Wire.endTransmission();
    
    	Wire.requestFrom(BMP085_ADDRESS, 3); // read a byte
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	msb = Wire.receive();
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	lsb = Wire.receive();
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	xlsb = Wire.receive();
    	RawPress = (((long)msb << 16) | ((long)lsb << 8) | ((long)xlsb)) >> (8 - oss);        //фильтры и смещения выпилены
    }
    // Read Raw Temperature values
    void APM_BMP085_Class::ReadTemp()
    {
    	byte tmp;
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.send(0xF6);
    	Wire.endTransmission();
    
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.requestFrom(BMP085_ADDRESS,2);
    
    	while(!Wire.available());	// wait
    	RawTemp = Wire.receive();
    
    	while(!Wire.available());	// wait
    	tmp 	= Wire.receive();
    
    	RawTemp = RawTemp << 8 | tmp;
    }
    У меня работает все!

    Единственное, не понял: в тест8 у меня в Терминале понижение идет с "-", подъем коптера - с "+". При этом, на OSD все наоборот! Т.е. Я поднимаю коптер относительно нуля: в ОСД высота идет вниз (зеленая полоска вниз), в Терминале высота идет в плюс 0 -> +100cm.
    x = (плюс или минус тут?) altitude_cm*100;

  15. #2732

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    когда delay исполнится по время полета - будет полный писец в виде повисания пепелаца на 80 милисекунд

  16. #2733

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Цитата Сообщение от SovGVD Посмотреть сообщение
    в виде повисания пепелаца на 80 милисекунд
    даже больше - еще пока байты туда-сюда перешлются. В даташите на ВМР085 написано про задержки. Он отдает информацию с частотой 25 мс.

    Глеб, до этого как работала функция void APM_BMP085_Class::ReadPress() ? Если ее вызвать, то она может не вернуть давление и температуру if (BMP085_State == 1). Она за два раза высчитывала?

    Похоже, придется оставить APM_BMP085.cpp как раньше. Фильтр там хитрый, со смещениями. Он гасит высокую скорость нарастания значения.
    Последний раз редактировалось Musgravehill; 18.09.2011 в 12:35.

  17. #2734

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    понятия не имею как она работала - это библиотека ардукоптера, там только закоменчено слежение за каким то пином (может он и есть прерывание), т.е. практически "as is" - народ с этой библиотекой успешно летает уже много-много версий

  18. #2735

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Скачал и загрузил тест8. Планнер 66. Поднимаю коптер - зеленая полоска высоты справа падает вниз на OSD, а в Терминале - значения высоты ползут вверх, как и должно быть. У кого так??

  19. #2736

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    зелена полоска - это не высота, а земля

  20. #2737

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    Облетал тест8 Уряя, первый раз пришел домой с целым дроном, это знак
    Высоту держит, лойт держит, правда сегодня почти штиль, возможно причина в этом, но все равно уже радует
    Не очень понравилось как держит высоту, моторы всегда на подгазовке, не пытается найти оптимальный газ, а постоянно подгазовывает... Пиды крутил от 0.1 до 5, разницы не заметил... Случаем в нашей прошивке они вообще не отключены?
    Сразу скажу, сонара у меня нет, еще в пути, квадрик плавает от 4 метров до 1 метра, но держится, больше удручает эта перегазовка постоянная. Я понимаю резко газовать для удержания горизонта это одно, но для удержания высоты так дрючить реги...
    К стати кто может расписать по пидам по высоте, при каких условиях что надо крутить? Может я просто не то крутил...

    Значение тока в ручном режиме после взлета, и в режиме удержания высоты...
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: A.jpg‎
Просмотров: 14
Размер:	39.4 Кб
ID:	545453  
    Изображения  

  21. #2738

    Регистрация
    11.01.2011
    Адрес
    Ярославль
    Возраст
    29
    Сообщений
    1,392
    Цитата Сообщение от SovGVD Посмотреть сообщение
    зелена полоска - это не высота, а земля
    от -10 до +10 ? Когда летал с В8 и 2.0.38, то зеленая метка справа поднималась вверх до +5 +10 и выше. Это, я так понимаю, альтиметр. А в тест8 у меня при подъеме коптера зеленая метка ползет вниз к -5 и ниже.

  22. #2739

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    поиграйте в авиасимуляторы с самолетам типа F-16 (даже древняя досовая игра), чтобы поменять что и как должно отображаться (наклоны горизонта, высота и прочие вещи)

  23. #2740

    Регистрация
    17.08.2011
    Адрес
    Ухта
    Возраст
    32
    Сообщений
    48
    Ерунда какая-то с барометром

    Код:
    Baro: -26cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -44cm, Sonar: 6cm
    Baro: -44cm, Sonar: 6cm
    Baro: -52cm, Sonar: 6cm
    Baro: -44cm, Sonar: 6cm
    Baro: -44cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 7cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 17cm, Sonar: 7cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 44cm, Sonar: 6cm
    Baro: 44cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 61cm, Sonar: 6cm
    Baro: 52cm, Sonar: 7cm
    Baro: 52cm, Sonar: 6cm
    Baro: 61cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 7cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 44cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 44cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 52cm, Sonar: 6cm
    Baro: 61cm, Sonar: 6cm
    Baro: 61cm, Sonar: 6cm
    Baro: 35cm, Sonar: 6cm
    Baro: 35cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 26cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 17cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 8cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: 0cm, Sonar: 6cm
    Baro: -8cm, Sonar: 6cm
    Baro: -17cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 7cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -26cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 6cm
    Baro: -35cm, Sonar: 5cm
    Baro: -26cm, Sonar: 5cm
    Baro: -26cm, Sonar: 5cm
    Baro: -35cm, Sonar: 5cm

  24. #2741

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    Ауу, может кто расписать какая цифера в пидах за что отвечает?

  25. #2742

    Регистрация
    02.06.2011
    Адрес
    Москва
    Возраст
    31
    Сообщений
    353
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Ауу, может кто расписать какая цифера в пидах за что отвечает?
    http://code.google.com/p/arducopter/wiki/AC2_Tweaks

  26. #2743

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    Цитата Сообщение от Aven Посмотреть сообщение
    Ерунда какая-то с барометром
    барометр +-50см скакать может... уже 100500 раз обсуждалось

  27. #2744

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    Баро всегда будет плавать, любое дуновение ветерка его уже понесло, для этого и ставят сонар

  28. #2745

    Регистрация
    17.08.2011
    Адрес
    Ухта
    Возраст
    32
    Сообщений
    48
    SovGVD так он же должен показывать высоту над уровнем моря, разве не так?
    Высота над уровнем моря по GPS - 110м, над землей 20м.

    Баро всегда будет плавать, любое дуновение ветерка его уже понесло, для этого и ставят сонар
    В квартире?

  29. #2746
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от Musgravehill Посмотреть сообщение
    Итак, в sensors.pde
    Код:
    static void init_barometer(void)
    {
    	#if HIL_MODE == HIL_MODE_SENSORS
    		hil.update();					// look for inbound hil packets for initialization
    	#endif	
    	int i;
             
    	for(i = 0; i < 20; i++){
    		delay(50);		
    		barometer.Read(); //просто читаем	
    	}
    	
            ground_pressure = 0;
    	for(i = 0; i < 8; i++){
    		delay(50);
    
    		#if HIL_MODE == HIL_MODE_SENSORS
    			hil.update(); 				// look for inbound hil packets
    		#endif
    
    		// Get initial data from absolute pressure sensor
    		barometer.Read();
    		ground_pressure += barometer.Press;   //8 раз считаем давление у земли и сложим
    		
    		//Serial.printf("init %ld, %d, -, %ld, %ld, -, %d, %ld\n", barometer.RawTemp, barometer.Temp, barometer.RawPress,  barometer.Press, ground_temperature, ground_pressure);
    	}	
            ground_pressure   /=8;   //давление у земли
    	abs_pressure       = ground_pressure;  //потом пригодится, чтобы не 0
    	//Serial.printf("init %ld\n", abs_pressure);
    	//SendDebugln("barometer calibration complete.");
    }
    
    static long read_barometer(void)
    {
     	float x, tmp_float, altitude_cm;	
    	barometer.Read();	
    	abs_pressure = (float)abs_pressure * .85 + (float)barometer.Press *.15;  //фильтруем, не позволяем быстро изменяться	
    	
    	tmp_float = (float)abs_pressure /(float)ground_pressure;     //станд. формула рассчета высоты относительно исходного давления
    	tmp_float = pow(tmp_float, 0.190295);	
    	altitude_cm = 44330.0 * (1.0 - tmp_float);  //высота в сантиметрах относительно исходной точки старта	
    	
    	x = altitude_cm*100;  //так требует программа
    	//Serial.printf("%ld, %ld, %ld, %ld\n", barometer.Press, ground_pressure, altitude_cm, x); //Serial.print(altitude_cm); /Serial.println();
    	return 	(x);
    }
    В APM_BMP085.cpp
    Код:
    uint8_t APM_BMP085_Class::Read()   //сильно упростилась, но добавлены задержки по даташиту. А надо ли читать и считать потом температуру???
    {
    	uint8_t result = 0;
    	
    	Command_ReadTemp();delay(20);
                  ReadTemp(); delay(20);
    	Command_ReadPress();delay(20);
    	ReadPress();delay(20);
    	Calculate(); 
    	result = 1;	
    	return(result);
    }
    
    // Read Raw Pressure values
    void APM_BMP085_Class::ReadPress()
    {
    	byte msb;
    	byte lsb;
    	byte xlsb;
    
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.send(0xF6);
    	Wire.endTransmission();
    
    	Wire.requestFrom(BMP085_ADDRESS, 3); // read a byte
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	msb = Wire.receive();
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	lsb = Wire.receive();
    
    	while(!Wire.available()) {
        // waiting
    	}
    
    	xlsb = Wire.receive();
    	RawPress = (((long)msb << 16) | ((long)lsb << 8) | ((long)xlsb)) >> (8 - oss);        //фильтры и смещения выпилены
    }
    // Read Raw Temperature values
    void APM_BMP085_Class::ReadTemp()
    {
    	byte tmp;
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.send(0xF6);
    	Wire.endTransmission();
    
    	Wire.beginTransmission(BMP085_ADDRESS);
    	Wire.requestFrom(BMP085_ADDRESS,2);
    
    	while(!Wire.available());	// wait
    	RawTemp = Wire.receive();
    
    	while(!Wire.available());	// wait
    	tmp 	= Wire.receive();
    
    	RawTemp = RawTemp << 8 | tmp;
    }
    У меня работает все!

    Единственное, не понял: в тест8 у меня в Терминале понижение идет с "-", подъем коптера - с "+". При этом, на OSD все наоборот! Т.е. Я поднимаю коптер относительно нуля: в ОСД высота идет вниз (зеленая полоска вниз), в Терминале высота идет в плюс 0 -> +100cm.
    x = (плюс или минус тут?) altitude_cm*100;
    tmp_float = (float)abs_pressure /(float)ground_pressure; //станд. формула рассчета высоты относительно исходного давления

    Угую Только поясните,плз, почему нужно делить давление на высоте на давление у земли, в качестве стандартной формулы вычисления? Вроде логичнее вычитать? Или я чего то не врубаюсь?

  30. #2747

    Регистрация
    23.01.2011
    Адрес
    Минск
    Возраст
    46
    Сообщений
    1,345
    Цитата Сообщение от Aven Посмотреть сообщение
    разве не так
    Не так. Нулевую высоту он берет при включении

  31. #2748

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    Цитата Сообщение от Aven Посмотреть сообщение
    показывать высоту над уровнем моря, разве не так?
    зачем ему высота над уровнем моря... ему высота вообще не нужна по сути, нужно некое мифическое значение в попугаях, которое надо удерживать (но так как надо прировняться к сонару и к заданию высоты в AUTO режиме, то и попугаев переводят в сантиметры)

    забейте на барометр и сонар уже =) они работают (спасибо всем кто учавствовал), если у вас коптер держит высоту 2-4метра - это уже хорошо, если 1-2 метра то вам несказанно повезло
    сам бамеротр надо закрывать от внешних воздействий (накрыть колпако или закрыть ватой/паралоном... но тут тоже надо не перестараться, а то замуруете и будет всегда одно давление)

    аналогично с LOITER, точность GPS +-5метров (+-3 метра, смотря сколько спутников, какой приемник и какие условия), поэтому коптер НУ НИКАК четко не встанет как вкопаный в воздухе, а будет плавать в плоскости (паралельно земле) согласно показаниям неточного GPS и по высоте согласно показаниям неточного барометра

  32. #2749
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от Aven Посмотреть сообщение
    SovGVD так он же должен показывать высоту над уровнем моря, разве не так?
    Высота над уровнем моря по GPS - 110м, над землей 20м.


    В квартире?
    От винтов в квартире ветерок похлеще, чем на улице!

  33. #2750

    Регистрация
    17.08.2011
    Адрес
    Ухта
    Возраст
    32
    Сообщений
    48
    tusik, SovGVD, теперь все ясно! Такую вот информацию в вики надо писать!
    Alex_from_Israel, логично, только у меня кроме Ардуины, allinone2 и сонара пока ничего нет

  34. #2751
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от Aven Посмотреть сообщение
    tusik, SovGVD, теперь все ясно! Такую вот информацию в вики надо писать!
    Alex_from_Israel, логично, только у меня кроме Ардуины, allinone2 и сонара пока ничего нет
    Ну тогда вам еще предстоят незабываемые ощущения!

    Когда мое стращилище поднимается в комнате... К столу привязываю, так чуть стол, гад, не поднял!

  35. #2752

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    А можно поподробней для прапорщиков по пидам В энглише не очень силен, переводчик выдал ацкий перевод где вообще не хера не понятно
    В общем с P все ясно, это величина воздействия, чем больше тем сильней будет реагировать.
    Что есть I и IMAX?

  36. #2753

    Регистрация
    23.01.2011
    Адрес
    Минск
    Возраст
    46
    Сообщений
    1,345
    Цитата Сообщение от Alex_from_Israel Посмотреть сообщение
    так чуть стол, гад, не поднял!
    Так за пивом его, за пивом!

  37. #2754

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    У кого как себя коптер ведет на удержании высоты? Так же дергает газом?

  38. #2755
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Цитата Сообщение от tusik Посмотреть сообщение
    Так за пивом его, за пивом!
    А если кокнет по дороге!? Нет уж, я лучше по старинке... У меня в 100 метрах круглосуточный магазинчик есть. Там пиво прикупить в любое время можно. Но не торгуют, обормоты, Короной! Приходится, если в холодильнике Корона иссякла, Карлсбергом обходиться. Благо всегда свеженький, его у нас в городе по бутылкам разливают!

  39. #2756

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    My alt hold above 10 feet is only about 1-2m accurate: That's actually the best you can achieve. The baro sensor is sensitive to light and wind. Use a felt cover to protect it from wind and make sure you don't glue the hole and seal it up.
    My copter increasingly swings up and down in alt hold. It eventually get's down to the ground: Your THROTTLE_P is too high or low. You don't need a lot of P to do alt hold. Think of how much you move the throttle to hold alt perfectly. Not much! That's what you need P to do. I will ramp up as your battery goes lower to make up the difference.
    почти гуглопереводчик:
    Удержании высоты выше 10 футов составляет лишь около 1-2м: Это действительно лучшее, что можно достичь. Датчик баро чувствителен к свету(о_0 наверно имеется ввиду нагревание) и ветру. Залепите войлоком/фетром (ватой) барометр для защиты от ветра и убедитесь, что вы не звлеяли отверстие и не уплотнили его (не сильно напихали).
    Мой вертолет сильно колебается вверх и вниз в удержании высоты. В конечном итоге получить фигак об землю: Ваше значение THROTTLE_P слишком высоко или низко. Вам не нужно много P для удержания высоты. Подумайте, на сколько вы перемещаете стик газа чтобы удерживать высоту руками. Не так много! Это то, что вам нужно делат с P. (тут про то что при ослаблении батарейки значение будет наращиваться, но для нас не актуально).
    Цитата Сообщение от Alex_from_Israel Посмотреть сообщение
    Приходится, если в холодильнике Корона иссякла, Карлсбергом обходиться. Благо всегда свеженький, его у нас в городе по бутылкам разливают!
    везет же =) у нас всё пиво на вкус стало абсолютно одинаковым и похоже на газированную воду с красителем и спиртом =( последнее что более-менее пьется - нефилтрованное местое или оболонь (мутное, или белое, не помню)

  40. #2757
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Как то не заметил. Продают у нас тут Оболонь и Невское(кажется), так вполне ничего...

    Офф топ, конечно, но уж больно животрепещуще! Как там у вас в России с нефильтрованным бочковым? У нас за таким нужно на пляж в ночной бар ездить. Там Вайнштефан, чудо а не пиво! Но вот на обратном пути полиция засады устраивает. Тормозят и предлагают пройти тест на алкоголь. Так, что много не выпьешь...

  41. #2758

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    40
    Сообщений
    1,309
    Дык с Р разобрались, а что же означает I и IMAX???

  42. #2759
    Давно не был
    Регистрация
    01.10.2010
    Адрес
    Ashkelon israel
    Возраст
    63
    Сообщений
    1,131
    Записей в дневнике
    8
    Получил сегодня посылку с камерой. Вот такая 600TVL SONY SUPER HAD CCD D-WDR Board Camera With Wire-Control OSD DNR

    Прикрутил к коптеру, а испытать не успел, хотя руки и чесались! На работу ехать нужно. Вернусь ночью, так, что придется на завтра испытания переносить. Вроде должна компенсировать засветку боковым освещением. Кто нить юзал подобное? Как к вибрации относится?

  43. #2760

    Регистрация
    29.01.2011
    Адрес
    Дмитров
    Возраст
    29
    Сообщений
    4,601
    Записей в дневнике
    77
    оффтоп: хз как в России, но конкретно в Дубне разливное не фильтрованное в половине магазинов есть (в нонейм бутылку наливают и езжай домой), по вкусу вполне похоже на пиво, пенится и даже когда выдыхается (оно же бродить должно! какое нафиг выдыхается?) всеравно можно пить =) почти всё что в бутылках - производство одного завода в г.Клин, а отсюда и одинаковый вкус - разница только в ощущених от надписи на бутылке и того что купил дороже
    но это всё строго ИМХО, может другим больше везет =) последнее вкусное, приятное пиво пил года 3 назад в каком то клубе и было это разливной туборг
    уже думаю - а не попробовать ли сварить самому? но гемору =)

    любая CCD камера хорошо к вибрациям относится, в отличае от CMOS

+ Ответить в теме

Похожие темы

  1. mega 88 TQFP - проблемы сигатуры
    от Texnik в разделе Самодельная электроника, компьютерные программы
    Ответов: 11
    Последнее сообщение: 12.01.2012, 01:55
  2. Создание квадрокоптера на Arduino
    от Spin7ion в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 75
    Последнее сообщение: 15.11.2011, 19:10
  3. Продам Mega Power Infinity 960SR Digital Charger + Mega Power LCB-12S DeluxePro Balancer + БП MW S-350-15 (15V, 350W)
    от morro_lucky в разделе Барахолка. Аккумуляторы, зарядники
    Ответов: 3
    Последнее сообщение: 06.05.2011, 14:20
  4. Конфигурация Arducopter
    от Stulikov в разделе Коптеры. Комплектующие, сборка, настройка.
    Ответов: 28
    Последнее сообщение: 02.05.2011, 17:04
  5. Продам зарядное устройство mega power gemini-2014 duo 600w twins charger
    от kolobok в разделе Барахолка. Аккумуляторы, зарядники
    Ответов: 2
    Последнее сообщение: 27.01.2011, 16:45

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения