SkyNomad http://forum.skynomad.net/ |
|
Домашно Варио http://forum.skynomad.net/viewtopic.php?f=14&t=8333 |
Страница 2 от 3 |
Автор: | Lord Ruthven [ Чет Мар 03, 2016 8:40 am ] |
Заглавие: | Re: Домашно Варио |
Калмановия филтър си е съвсем уместен, защото именно предикативността дава бързодействие и добра филтрация едновременно. Има достатъчно сравнения, включително и с графично представяне на резултатите. |
Автор: | Вальо [ Пон Яну 30, 2017 10:28 am ] |
Заглавие: | Re: Домашно Варио |
За ентусиастите с поялници! Това може да е полезно на някого. Познавам хора летящи с такъв уред и е почти без недостатъци! Може би, тихия звук е един от тях. Kobo (Четец за книги) в комбинация с BlueFlyVario https://www.youtube.com/watch?v=0DPh_KYunbE https://www.blueflyvario.com/product/bl ... l_gps_v11/ |
Автор: | Buga [ Пон Яну 30, 2017 10:46 pm ] |
Заглавие: | Re: Домашно Варио |
Поръчал съм частите и ще постна резултата, когато съм готов. Всичко ми излезе около 220 лв - Кобо на старо, вариото с гпс, 3д принт на кутийката+разширител за батерия,допъпнителна батерия 3800mAh. http://www.dotmana.com/weblog/2014/05/k ... i-gps-mod/ А иначе това е първото ми домашно варио. Използвах инфо от нета + тази статия. Модифицирах леко кода, за да намяля чуствителността. Пиезо бъзерчето е отвън с цел пестене на място, а също така кутийката не събра модула за зареждане, затова направих нещо като докинг станция - двете метални пинчета са съответно + и - и се свързват с дока. Доста е компактно и удобно за ползване. Ето това са специвичните материали, които пасват в кутийката. Другото го има вече описано. https://www.aliexpress.com/item/New-10P ... 0.0.4KLp2x https://www.aliexpress.com/item/2pcs-lo ... 0.0.4KLp2x https://www.aliexpress.com/item/Bluelan ... 0.0.4KLp2x |
Автор: | Buga [ Нед Мар 19, 2017 8:25 pm ] |
Заглавие: | Re: Домашно Варио |
Вариото + Кобо е готово. Ето го резултатът - разширител , 4МАН батерия, XC Soar. Тествано е само в асансьор, но резултатите са доста добри. Вариото няма почти никакъв шум, но е много чуствително, ГПС-ът работи перфектно. Ако някой иска да си прави да пише на лични. Мога да дам малко съвети относно запояването, защото доста се поизмъчих. https://drive.google.com/open?id=0B7B_7 ... JCZld4S1p3 https://drive.google.com/open?id=0B7B_7 ... hYcnk3Zy00 https://drive.google.com/open?id=0B7B_7 ... R3aHZFazNJ |
Автор: | andrew [ Чет Мар 30, 2017 10:38 am ] |
Заглавие: | Re: Домашно Варио |
Много се радвам че статията е свършила работа на нкои от колегите. Оправих снимките |
Автор: | Вальо [ Нед Май 14, 2017 8:12 pm ] |
Заглавие: | Re: Домашно Варио |
http://www.ebay.com/itm/Kobo-GPS-vario- ... 2410255574 Ако на някой не му се занимава да майстори! Kobo с варио за 175 $ с доставката! |
Автор: | Милен [ Пон Май 15, 2017 9:42 am ] |
Заглавие: | Re: Домашно Варио |
Вальо написа: http://www.ebay.com/itm/Kobo-GPS-vario-with-XCSoar-or-LK8000-for-paragliding-gliding-hang-gliding/222410255574?_trksid=p2045573.c100033.m2042&_trkparms=aid%3D111001%26algo%3DREC.SEED%26ao%3D1%26asc%3D41376%26meid%3D011e319964154e419d450ffda6a6bc9a%26pid%3D100033%26rk%3D1%26rkt%3D2%26sd%3D222410255574 Ако на някой не му се занимава да майстори! Kobo с варио за 175 $ с доставката! 245 $ e с варио и доставката, ще трябва и ДДС да се плати, около 300$ , ще прибавим и таксата на пощата или митническа агенция /може да се избере един от двата варианта/, кой ще те представи пред митницата да освободи пратката, цената ще е над 300....... |
Автор: | Вальо [ Сря Май 17, 2017 8:31 pm ] |
Заглавие: | Re: Домашно Варио |
Oooo ако е така значи не е оферта! Благодаря за пояснението! Не знаех че е така! Просто видях 160$ +15$ транспорт и идва от Украйна! Мислех че това е всичко, а и защо митници когато стоката не е в търговски количества, а единична бройка! Не знаех че е толкова сложно! Още веднъж благодаря! |
Автор: | Милен [ Чет Май 18, 2017 10:19 am ] |
Заглавие: | Re: Домашно Варио |
Щото е най-бедната територия, не само в EU.... ,до 30 лв. е без митнически такси....... скоро пращах едно крило в Индия, там границата беше няколкостотин долара за безмитен внос........ |
Автор: | Росен [ Чет Авг 10, 2017 2:51 pm ] |
Заглавие: | Re: Домашно Варио |
Вчера пристигна от братчеда Али датчика ми GY BMP280 и с копи/пейст скалъпих следния код: #include <Wire.h> #include <SPI.h> #include <Adafruit_Sensor.h> #include <Adafruit_BMP280.h> #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11 #define BMP_CS 10 float toneFreq, toneFreqLowpass, flpressure, lowpassFast, lowpassSlow ; int temperature, altitude, ddsAcc; long pressure; unsigned long time = 0; Adafruit_BMP280 bmp; // I2C //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); void setup() { Serial.begin(9600); Serial.println(F("BMP280 test")); if (!bmp.begin()) { Serial.println(F("Could not find a valid BMP280 sensor, check wiring!")); while (1); } } void loop() { flpressure=bmp.readPressure(); altitude=bmp.readAltitude(1013.25); lowpassFast = lowpassFast + (flpressure - lowpassFast) * 0.3; // Andrew mod better values for bmp180 boards lowpassSlow = lowpassSlow + (flpressure - lowpassSlow) * 0.15; // Andrew mod better values for bmp180 boards toneFreq = (lowpassSlow - lowpassFast) * 50; toneFreqLowpass = toneFreqLowpass + (toneFreq - toneFreqLowpass) * 0.1; toneFreq = constrain(toneFreqLowpass, -500, 500); // Andrew mod better values for bmp180 boards and my speaker ddsAcc += toneFreq * 50 + 3000; // better values for bmp180 //andrew mod // if (toneFreq < 0 || ddsAcc > 0) Serial.print("toneFreq="); Serial.println(toneFreq); if ((toneFreq > 5 && ddsAcc > 0) ) // only sound on positive climb #andrew mod { tone(9, toneFreq + 700); } else { noTone(9); } while (millis() < time); //loop frequency timer time += 20; } /*И заработи Незнам как .*/ |
Автор: | Viper_Weasel [ Чет Авг 10, 2017 6:21 pm ] |
Заглавие: | Re: Домашно Варио |
От един руски форум намерих един код който е сдота подобра филтрация - в момента не ми е под ръка но щом се прибера на Сопот ще го пусна - шумовите случайни препищявания са почти 0-леви с другата филтрация. В момент а правя опит да си сглобя нещо подобно на БЛУ-флай и почти съм успял - щом го подкарам финално ще кача документацията. |
Автор: | Ivko [ Вто Авг 22, 2017 12:48 am ] |
Заглавие: | Re: Домашно Варио |
Здравейте, и аз си направих такава джаджа около 2014, до сега съм добавил и малко екстри BT с "PLXVS - NMEA SENTENCE" за да мога да си използвам барометъра и на телефона където съм инсталирал "XCТrack" и "XCSoar". Надявам се да е от полза на някой. Схема: https://drive.google.com/open?id=0BzGomicB3bezWmhrd0dEU0wtc28 кодът: Код: / /**************************************************** Mini Vario mit Bluetooth * Bluetooth Modul ist H-06 * Barometer Modul ist MS5611 * Mini PRO 3.3V 8 MHz Auf der Misst von Ivaylo gewachsen. 2017-03-15 n ****************************************************/ #include <Wire.h> #include <MS5611.h> MS5611 bpm; ///////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////// Variablen die man aendern kann! ///////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// float min_steigen = 0.20; //Minimale Steigen (Standart Wert ist 0.4m/s). float max_sinken = -3.50; //Maximales Sinken (Standart Wert ist - 1.1m/s). int leseZeit = 200; // Interval zum lesen vom Baro, Standart(min) ist 150. unsigned int konst_frqz = 150; //Minimale Audio Frequez. unsigned int max_frqz = 1900; //Maximale Audio Frequenz. short a_pin1 = 6; //Lautsprecher Pin definieren! //short a_pin1 = 5; //Lautsprecher Pin definieren! <<= fuer Micro Vario ///////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// double Hoehe, Temp, Temp0, HoeheB, TempB; long Druck, Druck0, DruckB; short startCH = 0; int PinBT, XOR, c; float FehlerV = 1.200 * min_steigen; //Fehler fuer Vario Filter berechnen. float ZeitS = millis(); float kal[6], Vario, VarioR, dZeit, ZeitA, ZeitE, ZeitPipA, ZeitPipE; void setup() { leseZeit = leseZeit -33; Serial.begin(9600); pinMode(2, INPUT); // Definiert den Pin für der BT Schalter. PinBT = digitalRead(2); // Definiere Schalter Zustand fuer BT. //PinBT = 0; // Wenn keine BT-Modul eingebaut ist. pinMode(7, OUTPUT); // Pin zum BT Versorgung. pinMode(8, OUTPUT); // Pin zum BT Versorgung. // Initialize the sensor (it is important to get calibration values stored on the device). // Initialize MS5611 sensor // Ultra high resolution: MS5611_ULTRA_HIGH_RES // (default) High resolution: MS5611_HIGH_RES // Standard: MS5611_STANDARD // Low power: MS5611_LOW_POWER // Ultra low power: MS5611_ULTRA_LOW_POWER while(!bpm.begin(MS5611_ULTRA_HIGH_RES)) { delay(750); } //BT umbenenen START if (PinBT == 1) { digitalWrite(7, HIGH); // BT Versorgung einschalten. digitalWrite(8, HIGH); // BT Versorgung einschalten. delay(1000); Serial.begin(9600); /*Serial.println("AT"); delay(1500); Serial.println("AT+NAMEivkos_miniVARIO"); delay(500);*/ // PIN ist 1234 <= ############################################################################## } else { digitalWrite(7, LOW); // BT Versorgung einschalten. digitalWrite(8, LOW); // BT Versorgung einschalten. } //BT umbenenen ENDE */ //welcome_beep(); // Spielt den Start Tonfolge. tone(a_pin1 , 300, 150); delay(175); tone(a_pin1 , 200, 150); delay(175); tone(a_pin1 , 100, 150); delay(250); // */ } void loop() { dZeit=(ZeitE-ZeitS); if (dZeit >= leseZeit ) { if(PinBT==0) { SteigenBerechnen(); } else { Bloetooth(); } } else { PipserX(); ZeitE = millis(); } } ///////////////////////////////////////////////////////////////////////////////////////////////////// // Unterfunktionen und Programme ////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// // Luftdrucksensor auslesen ######################################################################### // ################################################################################################## void BaroAuslesen() { Temp = bpm.readTemperature(); Druck = bpm.readPressure(); Hoehe = bpm.getAltitude(Druck); } // ################################################################################################## // ################################################################################################## // Steigen berechnen ################################################################################ // ################################################################################################## void SteigenBerechnen() { // Barometrischehoehe - Vario(Steigen) berechnungen - START ======================================== BaroAuslesen(); ZeitE = millis(); dZeit=(ZeitE-ZeitS); if(startCH==0) { kal[0] = Hoehe; kal[1] = 0.00; startCH=1; } //* Steigwerte berechnen. Vario=((Hoehe - kal[0]) / (dZeit/1000)); //VarioR=Vario; kal[0]=Hoehe; if (FehlerV > 0.5) FehlerV = 0.5; // Filter fuer die Steugung anwenden. kal[1]=Vario; Vario = FehlerV*(kal[1] + kal[2] + kal[3])/3 + (1-FehlerV)*(kal[5] + kal[4])/2; kal[4] = kal[5]; kal[3] = kal[2]; kal[2] = kal[1]; kal[5] = Vario; // */ /*/ Zum Testen ueber Serial-Port //Temperatur in °C Serial.print(Temp, 2); Serial.print("; "); Serial.print(Druck); Serial.print("; "); Serial.print(Hoehe, 2); Serial.print("; "); Serial.print(dZeit); Serial.print("; "); Serial.print(Vario, 2); Serial.print("; "); Serial.print(VarioR, 2); Serial.print("; "); Serial.print(PinBT); Serial.println(); //*/ ZeitS = ZeitE; // Barometrischehöhe - Vario(Steigen) berechnungen - ENDE ========================================== } // ################################################################################################## // ################################################################################################## // Bloetooth ######################################################################################## // ################################################################################################## void Bloetooth() { BaroAuslesen(); // Ausgabe im BlueFlyVario Format. // The standard BlueFlyVario outp ut mode. This sends raw pressure measurements in the form: // "PRS XXXXX\n" // : XXXXX is the raw (unfiltered) pressure measurement in hexadecimal pascals. Serial.print("PRS "); //Ausgabe an der Serial.println( Druck, HEX); //BT-Serial schnitstelle ungefiltert. */ /* Send LXWP0 output mode for use with a range of apps: //"$LXWP0,loger_stored (Y/N), IAS (kph), baroaltitude (m), vario (m/s),,,,,,heading of plane,windcourse (deg),windspeed (kph)*checksum \r\n" String s = "LXWP0,N,,"; s = String(s+ String(Hoehe,2) + ",,,,,,,," ); // Checksum berechnen und als int ausgeben // wird als HEX benötigt im NMEA Datensatz // zwischen $ und * rechnen int i, XOR, c; XOR = 0; for (i = 0; i < s.length(); i++) { c = (unsigned char)s.charAt(i); if (c == '*') break; if (c!='$') XOR ^= c; } // Checksum berechnen Serial.print("$"); Serial.print(s); Serial.print("*"); Serial.println(XOR,HEX); // */ delay(175); } // ################################################################################################## // ################################################################################################## // Pipser ########################################################################################### // ################################################################################################## void PipserX() { double frequency = max_frqz / (1.00 + pow((Vario - 11.30) / -6.80, 5.10)); double duration = (-60.00*Vario + 500)*0.75; // Variable Pause frequency = int(frequency); duration = int(duration); // Wenn Steigen groesser als min_steigen if ( Vario >= min_steigen) { if ( Vario <= 7 ) { if ( (ZeitPipE - ZeitPipA) >= (2*duration) || 2*duration <= leseZeit-35 ) { ZeitPipA = millis(); tone(a_pin1 , frequency, duration); } else { ZeitPipE = millis(); } if ( Vario > 7) { if ( Vario > 9) noTone(a_pin1); else tone(a_pin1 , max_frqz/2); delay(0); } } } // Wenn Sinken kleiner als max_sinken if ( Vario < max_sinken) { tone(a_pin1 , 300, 150); delay(125); tone(a_pin1 , 200, 150); delay(150); tone(a_pin1 , 100, 150); delay(175); } } // ################################################################################################## // ################################################################################################## П.С.: Коментарите са на немски за съжаление. Но не би трябвало да е трудно да се преведат с Google. Говорителчето или пищялката са на пин 6. 2017-08-22 - 15:45 : Промяна на протокола за изпращане на данните. Мерси Viper_Weasel # Сега изпраща вър формата на "BlueFlyVario" само необработеното атмосферно налягане в Pa ("PRS XXXXX\n" - XXXXX is the raw (unfiltered) pressure measurement in hexadecimal pascals.) Така с този протокол съм го използвал повече от година и работеше супер. # Но съм програмирал и LXWP0 протокола, който иска да използва него трябва само да го от коментира и да коментира другият. За съжаление не съм го тествал още не остана време в обедната почивка. 2017-08-23 - 12:45 : Използваната библиотека е от тук: https://github.com/jarzebski/Arduino-MS5611 |
Автор: | Viper_Weasel [ Вто Авг 22, 2017 10:10 am ] |
Заглавие: | Re: Домашно Варио |
Само една корекция LX8EX1 вече не се поддържа от XC soar - просто заради вътрешната вражда между LK и XCSOAR. Аз смених моя протокол на LXNAV който е по универсален. |
Автор: | Ivko [ Вто Авг 22, 2017 10:31 am ] |
Заглавие: | Re: Домашно Варио |
@Viper_Weasel Благодаря за информацията. Би ли пуснал един примерен текст за синтаксиса на LXNAV, или линк към страница където е разяснен. Подмяната не би трябвало да е трудна. Мерси. |
Автор: | Viper_Weasel [ Сря Авг 23, 2017 1:27 am ] |
Заглавие: | Re: Домашно Варио |
$LXWP0,Y,222.3,1665.5,1.71,,,,,,239,174,10.1 0 loger_stored (Y/N) 1 IAS (kph) 2 baroaltitude (m) 3 vario (m/s) 4-8 unknown 9 heading of plane 10 windcourse (deg) 11 windspeed (kph) |
Страница 2 от 3 | Часовете са според зоната UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |