Vzdálenost mezi vysílačem a příjmačem

SweetyX
Příspěvky: 6
Registrován: 27 bře 2018, 17:53
Reputation: 0

Vzdálenost mezi vysílačem a příjmačem

Příspěvek od SweetyX » 27 bře 2018, 17:57

Ahoj,
mám takový menší dotaz, nevím zda to tu už někdo neřešil, ale pokud ano tak mi prosím hodte aspon odkaz...

Chtěl bych vyřešit jak měřit vzdálenost mezi dvěma body..
Příklad.: budu mít krabičku, která bude vysílač a v pokoji budu mít 4 příjmače. Potřebuji měřit vzdálenost ke všem 4 příjmačům... Nevíte jak toto měřit a nebo vyřešit?

Předem díky za odpověd

Axamith
Příspěvky: 530
Registrován: 09 srp 2017, 08:17
Reputation: 0
Kontaktovat uživatele:

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od Axamith » 27 bře 2018, 18:06

Vysílač čeho?

SweetyX
Příspěvky: 6
Registrován: 27 bře 2018, 17:53
Reputation: 0

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od SweetyX » 27 bře 2018, 18:08

To je už prakticky jedno, nebráním se ničemu.. Jen je potřeba aby maximální dosah byl třeba v řádu 5-10m..

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

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od gilhad » 27 bře 2018, 23:01

Dobrá zpráva: Vzdálenost změříš tak, že vyšleš signál a změříš, za jak dlouho dojde. Tento rozdíl časů poděliš rychlostí signálu a máš vzdálenost.
Špatná zpráva: signály chodí dost rychle, takže musíš přesně změřit hodně krátké časy.

Buď musíš mít přesně synchronizovaný čas, což asi není jednoduše a levně realizovatelné, nebo se musí vysílač s přijímači dohodnout, kdy ten signál vyšle.

Máš dvě možnosti:
  • přijímač pošle žádost a vysílač s definovanou a zaručenou dobou odezvy odpoví
  • vysílač pošle upozornění jedním kanálem a signál druhým kanálem, přijímač změří rozdíl doby a vzdálenost dopočte - ty kanály musí mít různou rychlost, protože se to počítá z rozdílu těch rychlostí
Čím pomalejší signál, tím větší přesnost, protože stejná chyba v času znamená menší chybu ve vzdálenosti. Takže nejpomalejší rozumný signál je zvuk.

Druhý kanál (pokud je použit) zase je třeba co nejrychlejší, protože čím bude rychlejší, tím bude větší rozdíl doby přijetí a zase stejná chyba v čase znamená menší chybu ve vzdálenosti. Ideální je elektřina po drátě (rychlost světla a použití interruptu pro příjem), nebo světelný záblesk (kde musíš pořešit rušení), nebo wifi či jiné rádio, kde máš často netriviální dobu zpracování informace.

Takže pokud si to můžeš dovolit, tak drát a zvuk, pokud ne, tak světlo či radio a zvuk.

Drát a zvuk - kablík, ideálně známé a konstantní délky (např. těch max 10m) se dvěma vodiči - společná zem a signál, signál přivedeš na pin 2 (který umí generovat přerušení, nebo na jiný s touto schopností), u vysílače reproduktor/piezzo, u přijímače mikrofon.

Vysílač vyšle signál do drátu a s danou pauzou (aby to přijímač stíhal) signál do repráčku.
Přijímač dostane interrupt, v něm nastaví měření na pinu od mikrofonu a zapne čítač (to je ta doba, co mu vysílač musí poskytnout na "vzpamatování se") Jakmile zachytí signál, uloží si čas, odečte případnou konstantu, vydělí čas rychlostí a uloží do volatile proměnné. Nastaví do další volatile proměnné příznak, že bylo změřeno. Hlavní smyčka když uvidí příznak přečte ihned vzdálenost a příznak smaže. (ještě lepší varianta - interrupt místo dálky zapíše jen čas, hlavní smyčka bude plácat cykly na odčítání a dělení - nebude tak dlouho zablokovaný výpočet a ostatní interrupty).

Reverzní situace: přijímač nastaví měření, pošle signál po drátě, vysílač v interruptu jen pošle signál do reproduktoru a opustí interrupt, přijímač přečte odezvu, odečte od ní všechna konstantní zpoždění a vydělí rychlostí.

Problémy: Rozeznat zvuk - ideální je asi hlasité, krátké lupnutí následované ještě několika dalšíma s definovanými různými odstupy, po přijetí prvního signálu se počká ješte na druhý, třetí ... a poměří se odstupy, pokud přibližně sedí, byl signál zachycen, pokud nesedí, je v místnosti rušení (hluk, ozvěny, ..) a je potřeba nové měření. Mikrofon musí mít nastavené správné zesílení, aby signál slyšel, ale pokud možno neslyšel hluk.

Hyper vychytávka: navzorkovat údaje od mikrofonu, poté vzorek odečíst a hledat signál ve výsledku (sází se na to, že za tak krátkou dobu se hlasité jevy nezmění, 10m zvukem ~ 1/30 sec, většina tónů zní déle a netrefíš se do hrany.
Hyper vychytávka 2: Odeslat sérii lupnutí s danou frekvencí, číst se 4 násobkem té frekvence a odčítáním vyfiltrovat tento signál
http://petr-kubac.blog.cz/1212/sonary-1 ... ne-nedelat
http://petr-kubac.blog.cz/1212/sonary-2 ... le-spravne

U světla a rádia je potřeba nejdřív "navázat spojení", tedy ujistit se, že přijímač rozpoznal návěst od hluku a teprve pak poslat ten signál. Opět jde uplatnit Hyper vychytávka 2 a počítat čas od skončení návěsti (protože nevím, kolik té návěsti jsem promeškal, než jsem začal reagovat).

Konstanty pro zpoždění lze spočíst z taktů procesoru a počtu instrukcí (a získat přesné hodnoty), nebo prostě provést sérii měření na různě vzdálenosti, výsledky proložit přímku a z jejích hodnot zpětně ty konstanty pro zpoždění a rychlost dopočíst (čímž se kompenzuje špatná frekvence krystalu a podobné poruchy, výsledek je přibližný, ale postup je jednoduchý a rozumná přesnost se dosáhne snadno taky)


Pokud je přijímačů málo a měření není moc časté (vhledem k délce procesu) je lepší, když si přijímače říkají o vyslání signálu a v případě potřeby / kolize měření opakují. Interval s jakým to činí by měl být náhodný (aby se pořád nepotkávaly) a měly by být ošetřeny kolize (když si dva přijímače "řeknou" skoro naráz, tak ten druhý čte odezvu na toho prvního a je rázem "někde nedefinovatelně blíž zdroji" (neb ten začal odpovídat ještě před dotazem).

Takže ideálně udělat baterii třeba 6 měření s náhodnými odstupy (řádově (2..4)*(počet přijímačů)*(celková doba měření i s návestím a vším okolo)), vyřadit měření zjevně vybočující z řady a zbylá zprůměrovat, nebo vybrat z nich to s prostřední hodnotou.

Taky vyřadit zjevně nesmyslné hodnoty (záporné vzdálenosti a vzdálenosti větší než tělesová úhlopříčka pokoje).

Přeji spoustu zajímavé zábavy pro dlouhé zimní večery ...

K380
Příspěvky: 134
Registrován: 04 srp 2017, 12:43
Reputation: 0

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od K380 » 28 bře 2018, 11:13

Zdravím !
Pokud budeš mít přijímače v jedné místnosti, můžeš vzdálenost změřit čidlem HC-SR504 tak že na místa přijímačů dáš nějakou překážku a čidlo na ni namíříš. Pomocí Arduina zpracuješ jednoduchým programem a na seriál monitoru zjistíš vzdálenost. Takto změříš vzdálenosti ke všem Přijímačům postupně. Pokud budeš mít přijímače v různých místnostech tak tento postup nelze použít !!!

SweetyX
Příspěvky: 6
Registrován: 27 bře 2018, 17:53
Reputation: 0

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od SweetyX » 28 bře 2018, 12:14

Tak díky Gilhade, ale jelikož nejsem moc obeznámený v tomto oboru, tak se jen ujistím co jsi mi doporučoval...

Takže pokud jsem to pochopil správně, vysílač pošle v nějakou určitou dobu signál(zvukový) a příjmač ho příjme, poté spočítá jak dlouho k němu šel a z toho si vypočítám vzdálenost.. (problém je mít přesně synchronizovaný čas na Milisekundy nebo Mikrosekunda) ...

Po pravdě čím víc si to čtu, tím víc přemýšlím, že mi někdo doporučoval vzít GPS lokátor ze starých mobilů a udělat to přes to, ale to taky nevím jak bude přesné... A nebo jsem někde ještě zahlédl něco jako Ultrazvuk ale na RF konektor..

Ale díky moc za rady, snad to ted už nějak dám dohromady...

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

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od gilhad » 28 bře 2018, 12:52

K380: Pokud budou prijimace na pevnem miste, kam muzes dat prekazku a zamerit na ni cidlo, tak je mnohem jednodussi vzit proste metr a vzdalenost zmerit. Ja to zadani pochopil tak, ze se pozice prijimacu bude vice-mene nahodne menit a pak to metrem zmerit nejde a najit a zamerit to taky ne, takze je potreba aby si to prijimace merily samy nejak (napriklak prijimac v auticku, ovlkadaci na cosi, ci jinem bazmeku, co porad nekdo taha jak kocka kotata a nahodne nechava na ruznych mistech)

SweetyX: Bud muzes mit naprosto presne synchronizovany cas, pak staci vysilat v pravidelnou dobu a merit jak dlouho jde signal k prijimaci (ale musi ti jit hodiny natolik stejne, aby to mereni melo smysl, jedna milisekunda rozdilu v case je vzdalenost 1ms*330(m/s)=33 cm a jak dlouho dokazes udrzet (bez synchronizace rozdil pod 1ms?)

nebo si udelas synchronizaci sam (nejakym rychlym signalem, z normalnich je to stejne jen elektrina ci svetlo 330km/s) a pak posles ten pomaly zvuk (330ms/s) a pocitas jak dlouho to slo. (nebo si proste udelas tabulku pro par namerenych hodnot a dopoctes to z ni linearne, cimz celkem elegantne obejdes vsechny problemy se zpozdenim danym detekci a zpracovanim signalu - cili vis, ze pro 1m ti vyjde nejake cislo treba 245, pro 2m 345 a pro 3 metry 445, takze vzorecek je jasny (cislo - 145)/100 = vzdalenost v metrech) a kdyz nameris 523, tak (523-145)/100=3.78m - namerena cisla jsem si vymyslel)

GPS lokator ze starych mobilu mel (pokud se pamatuju) presnost na par metru, coz je pri mereni par metru docela problem (pomineme-li otazku, jak ho vlastne ovladat a napajet. GPS funguje tak, ze se pokusi zamerit par znamych druzic, co vysilaji casovy signal a z rozdilu tech signalu a polohy druzic na orbite pak vypocte vlastni polohu. Pod strechou funguje vyrazne hur nez venku kvuli stineni - me takhle v mobilu fungoval na ulici celkem dobre, v autobuse se uz trefil sice na spravnou krizovatku, ale blbou stranu silnice a pod strechou pouzil posledni znamou namerenou hodnotu, cili kdekoliv v dome to bylo pred vchodem, dokud clovek nevylezl na delsi dobu na balkon, kde se sesynchronizoval a pak uz jsem byl zase furt na balkone. Ona i ta synchronizace tomu trvala docela dlouho, kdyz ztratil na chvili spojeni... I kdyz nevylucuju, ze moderni stare telefony jsou na tom uz o neco lip, nez muj pred nekolka lety moderni telefon. A mozna maji i lepsi dokumentaci...

SweetyX
Příspěvky: 6
Registrován: 27 bře 2018, 17:53
Reputation: 0

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od SweetyX » 28 bře 2018, 12:58

Gilhad:
Můj plán je, že dám do 4 různých míst příjmače, které mohou být napájené z 220v a já u sebe budu nosit vysílač, který by měl být přenosný třeba do kapsy nebo lehce skladovatelný(nejlépe 5v)... A potřeboval bych aby to počítalo vzdálenosti ke všem 4 příjmačům... Protože pak se dá dopočítat kde přesně stojím a tak :)

Ale v Arduino se moc dlouho nepohybuju a fakt nevím jaké možnosti jsou... Teprve se učím a chci si udělat jeden menší projekt..

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

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od gilhad » 28 bře 2018, 13:38

Tak to je přesně to samé, jen naruby - místo aby se hýbaly přímače, hýbe se vysílač. Řešení se synchronizací po drátě nedává smysl, kabel ssebou tahat nebudeš, světlo není dobrý nápad, musely by ho vidět všechny přijímače, (ano IR o strop dokáže dost, ale ne z kapsy), takže prostě wifi, nebo nějaké to jiné rádio.

SweetyX
Příspěvky: 6
Registrován: 27 bře 2018, 17:53
Reputation: 0

Re: Vzdálenost mezi vysílačem a příjmačem

Příspěvek od SweetyX » 28 bře 2018, 13:54

V reálu prostě chci zkusit vymyslet nějaké ovládání pro sekačku.. Dáš příjmač na zem a nastavíš kolem něj v jakých zdáleností má jezdi sekačka a když to provede, dojede k dalšímu příjmači a to samé udělá kolem něj :) proto potřebuju jednoduchý vysílač a čím menší tím lepší... A u příjmačů je mi velikost a napájení celkem jedno :)
Ve výsledku ted jen potřebuju vymyslet, jak vyřešit tento problém.. Vysílač, který posílá signál do více příjmačů na jiných místech, tak aby mi to vypisovalo vzdálenost od nich :)

příklad co by to mělo dělat:
A -> x1 = 4,3m
A -> x2 = 3,3m
A -> x3 = 5,5m
A -> x4 = 4,4m
a update každou 1s

Líbí se mi tvé rady, ale furt pro mě jen jako programátora, který se v EL moc nevyzná je celkem obtížné vymyslet řešení.. Furt to co ty jsi mi popisoval nějak moc nechápu, ale jsou to jen vědomosti, které se budu muset doučit.. Zkusím ještě na internetu vyhledat nějaké řešení..

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů