MultiWii
задача завести UART GPS на RX0 пин, а TX0 для OSD оставить, т.е. для меги или i2c GPS приемников проблем нет, а на обычной ардуинки уже косяк выходит
- в новом мультивие (а может и раньше, давно не следил) убрали стандартную либу работы с serial портом, поэтому попытки добавить софтверный порт приводят к ошибкам компиляции (ну или avr-gcc снова тупит)
реальная работа OSD с multiwii
нужна помощь кодеров
есть такой код
int tmp_alt=(EstAlt-AltGround)/100;
if(tmp_alt<0) tmp_alt=0;
serialize8((char)(tmp_alt>>8)); // altitude
serialize8((char)(tmp_alt&255)); // altitude
не работает
а вот так работает, т.е. где то косяк с типами данных, может кто подскажет как перевести нормально? =)
int tmp_alt=(EstAlt-AltGround)/100;
if(tmp_alt<0) tmp_alt=0;
tmp_alt=123;
serialize8((char)(tmp_alt>>8)); // altitude
serialize8((char)(tmp_alt&255)); // altitude
попробуй вот так
uint16_t tmp_alt=(max(EstAlt-AltGround,0))/100; serialize16(tmp_alt); // altitude
я правда не понял как не работает, вроде младший и старший байты попутаны.
хотя max давольно увесистый вызов
uint16_t tmp_alt;
if (EstAlt>AltGround)
tmp_alt=(EstAlt-AltGround)/100;
else
tmp_alt=0;
serialize16(tmp_alt);
я правда не понял как не работает, вроде младший и старший байты попутаны.
работает есть int tmp_alt=123; - т.е. выводит эти самые 123, а если int tmp_alt=(EstAlt-AltGround)/100; - то выводит ноль (аналогично если просто BaroAlt поставить или EstAlt)
cast к данным меньшей размерности берет правые байты (тобишь маленькие значения)
может разность меньше 100?
ура, нашел
int tmp_alt=(EstAlt-AltGround)*0.01f;
AltGround ставиться при арминге моторов и значение становить 0 и дальше повышается, но приемник отключен пока, поэтому цифры - высота над уровнем моря в метрах (теоретически)
а вот так работает
Юзай Serial.write(byte) , а для простоты вытащи ответную часть из самолетного пирата 2.24, файл называется eosd.pde.
Еще у тебя прыгает горизонт, не забыл синхрогруппу чередовать надо? 0xcb 0x34
Юзай Serial.write(byte)
в мультивие выпилили serial, там свой костыль теперь, но работает так же.
не забыл синхрогруппу чередовать надо? 0xcb 0x34
не знал, чето было написано про 0xcb 0x34, проигнорил 😉
upd хотя нет, вот в конце osd_sync^=255; - так что видимо меняю =)
Вернулся к вию после долгого перерыва, сделал очередную плату. Датчики L3G4200D, BMP085, LSM303DLHC и мега2560. Странно, но работает. Основное отличие от всего виденного мной - наличие 2-х слотов расширения. Сейчас занимаюсь ОСД. будет ставиться вторым этажом. ГПС тоже будет
Эх. Сюда бы еще поддержку немецких I2C контроллеров двигателей.
Вернулся к вию после долгого перерыва, сделал очередную плату. Датчики L3G4200D, BMP085, LSM303DLHC и мега2560. Странно, но работает. Основное отличие от всего виденного мной - наличие 2-х слотов расширения. Сейчас занимаюсь ОСД. будет ставиться вторым этажом. ГПС тоже будет
классная штуковина, можно плавно переходить на stm32 )))))
классная штуковина, можно плавно переходить на stm32 )))))
Хочу эксперимента ради перейти на xmega
можно плавно переходить на stm32 )))))
Дык девайсина от TimeCop (Naze 32) и есть Мультивий на stm32
Эх. Сюда бы еще поддержку немецких I2C контроллеров двигателей.
И2С выведен на разъем, только программно поддержать, если протокол есть проблем не вижу
Дык девайсина от TimeCop (Naze 32) и есть Мультивий на stm32
это мы уж в курсе) но там путей для усовершенствований полно)
И2С выведен на разъем, только программно поддержать, если протокол есть проблем не вижу
Поделитесь исходником?
Поделитесь исходником?
Исходником для чего? Протокол посмотреть можно например здесь Если в вие поддеражть то это не ко мне, мне это не интересно
Исходником для чего?
Исходником мультивии где задействованы Датчики L3G4200D, BMP085, LSM303DLHC и мега2560.
Исходником мультивии
Упс, запутался, извиняюсь.
Исходник для указанных датчиков и меги2560 можно взять на официальном сайте мультивия, как только допилю поддержку магнитометра она будет там же. Или я опять чего то не понял?
Мужики, у меня в голове идейка есть, но я в ней не сильно уверен. Прошу оценить.
Всем известно что сенсоры типа баро шумят (особенно дешевые 😃 ), а что если их две или три штуки прилепить вместо одной и их показания тупо складывать и делить. Получим “среднюю” в которой шум будет тупо сглаживаться аппаратно.
Уже предлагали такое )))
Изврат это… шум +шум = 2-й шум )))