PG Variometr

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Jara25
Příspěvky: 4
Registrován: 12 lis 2021, 17:58
Reputation: 0

PG Variometr

Příspěvek od Jara25 » 12 lis 2021, 18:50

Ahoj chtěl bych touto cestou poprosit o pomoc s úpravou programu pro vario.
S arduinem moc neumím a potřeboval bych pomoc od někoho kdo se v tom vyzná, aktuálně mi vario při různých rychlostech stoupaní pípá stále stejně což bych potřeboval změnit tak aby se při růstu rychlosti stoupaní zvyšovala i frekvence zvuku vydávaného piezo měničem. Najde ze zde dobra duše která by mi s tím pomohla?
Pro nahlédnutí přidávám program.
FC76VYHJPSO1WUN.ino
(152.04 KiB) Staženo 72 x
Za ochotu předem dekuji.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PG Variometr

Příspěvek od AstroMiK » 12 lis 2021, 19:55

Koukal jsem do programu a myslím, že frekvence tónu by neměla být konstantní.
Jestli proměnná 'vario' obsahuje rychlost stoupání nebo klesání (tu matematiku moc nechápu), tak už teď by měla být výška tónu na této proměnné závislá.

Problém bude možná jen se správným nastavením parametrů toho tónu, aby byl znatelnější rozdíl ve frekvencích při změně proměnné 'vario'.

V komentářích autor píše, že ty parametry měnil. Původně bylo pro stoupání 1800 místo 2000 a pro klesání tam měl čísla 600, 70 a 340.

prg.gif

EDIT:

A máš tam vůbec správný piezoměnič?
Některé se vyrábí s vnitřním přerušovačem. U těch nejde řídit výška tónu. Poznají se tak, že po připojení na napájení samy pískají.

Jara25
Příspěvky: 4
Registrován: 12 lis 2021, 17:58
Reputation: 0

Re: PG Variometr

Příspěvek od Jara25 » 12 lis 2021, 20:41

Díky máš pravdu tóny pro stoupaní a klesáni jsou rozdílné, to mi funguje ale mě jde spis o to aby to nepípalo stejně při rychlosti stoupaní 0.5m/s jako při 2m/s proste aby frekvence zvuku cca lineárně narůstala s tou rychlostí stoupaní jestli mi rozumíš?

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PG Variometr

Příspěvek od AstroMiK » 12 lis 2021, 21:06

Ale to by právě tak mělo fungovat.
Při stoupání: vario = 0.5 je frekvence tónu 2125Hz.
Při stoupání: vario = 2 je frekvence tónu 2500Hz.

Převod by měl být takovýto.
pro stoupání:

Kód: Vybrat vše

vario: 0.30   frekvence: 2075
vario: 0.40   frekvence: 2100
vario: 0.50   frekvence: 2125
vario: 0.60   frekvence: 2150
vario: 0.70   frekvence: 2175
vario: 0.80   frekvence: 2200
vario: 0.90   frekvence: 2225
vario: 1.00   frekvence: 2250
vario: 1.10   frekvence: 2275
vario: 1.20   frekvence: 2300
vario: 1.30   frekvence: 2325
vario: 1.40   frekvence: 2350
vario: 1.50   frekvence: 2375
vario: 1.60   frekvence: 2400
vario: 1.70   frekvence: 2425
vario: 1.80   frekvence: 2450
vario: 1.90   frekvence: 2475
vario: 2.00   frekvence: 2500
vario: 2.10   frekvence: 2525
vario: 2.20   frekvence: 2550
vario: 2.30   frekvence: 2575
vario: 2.40   frekvence: 2600
vario: 2.50   frekvence: 2625
vario: 2.60   frekvence: 2650
vario: 2.70   frekvence: 2675
vario: 2.80   frekvence: 2700
vario: 2.90   frekvence: 2724
vario: 3.00   frekvence: 2749
vario: 3.10   frekvence: 2774
vario: 3.20   frekvence: 2799
vario: 3.30   frekvence: 2824
vario: 3.40   frekvence: 2849
vario: 3.50   frekvence: 2874
vario: 3.60   frekvence: 2899
vario: 3.70   frekvence: 2924
vario: 3.80   frekvence: 2949
vario: 3.90   frekvence: 2974
vario: 4.00   frekvence: 2999
vario: 4.10   frekvence: 3024
vario: 4.20   frekvence: 3049
vario: 4.30   frekvence: 3074
vario: 4.40   frekvence: 3099
vario: 4.50   frekvence: 3124
vario: 4.60   frekvence: 3149
vario: 4.70   frekvence: 3174
vario: 4.80   frekvence: 3199
vario: 4.90   frekvence: 3224
vario: 5.00   frekvence: 3249
Pro klesání:

Kód: Vybrat vše

vario: -1.10   frekvence: 812
vario: -1.20   frekvence: 800
vario: -1.30   frekvence: 787
vario: -1.40   frekvence: 775
vario: -1.50   frekvence: 762
vario: -1.60   frekvence: 750
vario: -1.70   frekvence: 737
vario: -1.80   frekvence: 724
vario: -1.90   frekvence: 712
vario: -2.00   frekvence: 700
vario: -2.10   frekvence: 687
vario: -2.20   frekvence: 675
vario: -2.30   frekvence: 662
vario: -2.40   frekvence: 650
vario: -2.50   frekvence: 637
vario: -2.60   frekvence: 625
vario: -2.70   frekvence: 612
vario: -2.80   frekvence: 600
vario: -2.90   frekvence: 587
vario: -3.00   frekvence: 575
Pro výraznější rozdíly ve frekvencích by se mělo změnit na řádce 1274 číslo (250*vario) na něco většího - třeba (300*vario)
A na řádce 1282 změnit (125*vario) třeba na (150*vario)

Jara25
Příspěvky: 4
Registrován: 12 lis 2021, 17:58
Reputation: 0

Re: PG Variometr

Příspěvek od Jara25 » 12 lis 2021, 21:23

Jo už rozumím mockrát ti dekuji, zítra to vyzkouším kdyby něco mohu se na tebe ještě obrátit?

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PG Variometr

Příspěvek od AstroMiK » 12 lis 2021, 21:38

Klidně se obrať. Pokud budu znát odpověď poradím.

Napsal jsem testovací program pro zadávání hodnoty proměnné 'vario'.
Tuhle hodnotu jsem pak poslal do části originálního programu.
Pípání normálně funguje. Při stoupání se dokonce mění i délka pípnutí.

Video je tady:
https://youtu.be/E-hjV1uFtl8


A program tady:

Kód: Vybrat vše


#define p  3

float vario_down = -1.1;            // Установка порогового значения СНИЖЕНИЯ для запуска пищалки         - МОЖНО МЕНЯТЬ только в паре с TrDNcount, значения брать из массива treshDN!!!
float vario_up = 0.3;               // Установка порогового значения ПОДЪЁМА для запуска пищалки          - МОЖНО МЕНЯТЬ только в паре с TrUPcount, значения брать из массива treshUP!!!
float Beep_period;                  // переменная для вывода звука при работе вариометра
float vario_fall = -3.0;            // Установка порогового значения сработки сигнализации при ПАДЕНИИ    - МОЖНО МЕНЯТЬ только в паре с TrFLcount, значения брать из массива treshFL!!!


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

    pinMode (p, OUTPUT);
    delay(1000);
 
  }

void loop(void)
  {
    if (Serial.available())
      {
        float vario = Serial.parseFloat();
        Serial.print("zadane vario: ");
        Serial.print(vario);

        // ----- puvodni program doplneny o vypis frekvence ----------------
        if (vario>vario_up && vario<15)                                       // звук на подъёме
        {                                                                     //
          Beep_period = 350-(vario*80);                                       //
      //    tone(p,(2000+(250*vario)),300-(vario*80));                        // выводим звук (было 1800)
          tone( p , (2000 + (250 * vario)), abs(Beep_period));
          Serial.print("    (STOUPANI) frekvence: ");
          Serial.println(2000 + (250 * vario));
      
        }                                                                     //
        else if ((vario<vario_down)&&(vario>vario_fall))                      // звук на сливе
        {                                                                     //
          Beep_period=200;                                                    //
          tone(p,(950+(125*vario)),125);                                      // выводим звук (было 600, 70, 340)
          Serial.print("    (KLESANI) frekvence: ");
          Serial.println(950+(125*vario));
        }  
        // --------- konec puvodniho programu --------------
        

      }
    
  }


Jara25
Příspěvky: 4
Registrován: 12 lis 2021, 17:58
Reputation: 0

Re: PG Variometr

Příspěvek od Jara25 » 12 lis 2021, 21:51

Tak mi to nedalo a ještě jsem zkusil změnit ty čísla jak jsi psal a vypadá to dobře zítra to testnu poradně zatím dekuji.

Uživatelský avatar
Caster
Příspěvky: 380
Registrován: 11 zář 2019, 09:02
Reputation: 0

Re: PG Variometr

Příspěvek od Caster » 13 lis 2021, 01:38

Jako paraglidista ti poradím, vykašli se na Arduino a kup si vário ;) .

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: PG Variometr

Příspěvek od AstroMiK » 13 lis 2021, 07:59

On tam bude možná jiný problém.

Ten lineární převod způsobuje, že při pozvolné změně proměnné 'vario' se i frekvence tónu mění po jednotkách Hz.
A lidské ucho není schopné rozeznat rozdíl frekvencí při přerušovaném pípání mezi 2000 a 2003 Hz.
A podobně to pak bude i s rozdílem mezi 2003 a 2005 Hz. Takže postupnými malými kroky se sice frekvence může změnit o desítky Hz, ale pořád se bude zdát, že je to ten samý tón.

Řešení by bylo, kdyby ten převod z proměnné 'vario' na frekvenci nebyl lineární, ale skokový.
Například pro 'vario' v rozmezí 0,3 až 0,99 by byla konstantní frekvence 2000 Hz.
Pro 1,00 až 1,99 by se frekvence změnila na 3000 Hz.
Pro 2,00 až 2,99 by byla frekvence 4000 Hz .... a tak dále.

Takovéto skokové změny mezi dvěma pípnutími by už byly bezpečně rozeznatelné.

Je otázka, v jakých stupních to nastavit, aby se pokrylo běžně používané pásmo proměnné 'vario' slyšitelnými (třeba pod 10kHz), ale dostatečně rozestoupenými hodnotami frekvencí.

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: PG Variometr

Příspěvek od gilhad » 13 lis 2021, 16:12

Jen nabízím k úvaze, zda by nebylo naopak lepší mít jeden tón pro stoupání a druhý, výrazně jiný pro klesání a dělat pulzy stejné krátké délky, ale s odstupy nepřímo úměrnými rychlosti změny vyšky - takový jakoby geiger

píp..........píp.........píp.....píp....píp...píp..píp.píp.píppíppíppíppíppíppíppíppípPRÁSK :lol:

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Bing [Bot] a 8 hostů