Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATmega88][ATtiny2313] - moduły 433Mhz i zakłócenia

grysek 05 Lut 2010 18:07 4314 16
  • #1 05 Lut 2010 18:07
    grysek
    Poziom 19  

    Witam,

    Napisałem programy komunikujące miedzy sobą te procki przez UART i jesli podłacze je bezpośrednio ze soba to wszystko działa ok. Po podłączeniu odbiornika :arrow: http://www.designnotes.com/downloads/RX433_Datasheet.pdf i nadajnika :arrow: http://www.nzart.org.nz/waves/TX433%20data%20sheet.pdf 433Mhz firmy Velleman dane odbiera prawidłowo raz na jakiś czas a reszta so same śmieci, ponieważ odbiornik strasznie łapie zakłócenia. I tu moje pytanie. Czy może robił coś ktoś na takich układach i jak opanować ten problem? Schemat to coś w tym stylu:

    [ATmega88][ATtiny2313] - moduły 433Mhz i zakłócenia

    robiłem na szybkiego więc nie jest kopmletny jeśli chodzi o reszte elementów urządzenia, jest tylko to co ważne w tym temacie

    0 16
  • #2 05 Lut 2010 19:41
    mirekk36
    Poziom 42  

    poczytaj tutaj:

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1566129&highlight=

    to dowiesz się całej smutnej prawdy o tych kompletach Vellman'a. Potwierdzam, że są strasznie mega kiepskie i jak się patrzy na oscylu to nawet gdy nadajnik nadaje a odbiornik odbiera - to co chwilę wskakują dosyć spore szpilki zakłóceń. A to powoduje że strasznie "niszczy" się transmisja nie mówiąc o zasięgu :(

    0
  • #3 05 Lut 2010 23:46
    grysek
    Poziom 19  

    No niestety tak właśnie jest, lecz mi nie potrzeba wiele (jeśli chodzi o zasięg) wystarczy jeśli bedzie mi działało na odległości max 5m. Może jest jakiś sposób żeby odfiltrować te sygnały? Bo jak naraziie to mi nawet jak nadajnik i odbiornik są koło siebie to są śmieci.. :| i tak prawde mówiąc to wiecej łapie syfu niż danych :P

    0
  • #4 05 Lut 2010 23:54
    mirekk36
    Poziom 42  

    Ja nie znalazłem takiego sposobu - jedyne co to przesyłanie po kilka , kilkanaście ramek danych z których co najmniej jedna doleci w całości. A próbowałem jak pisałem w tamtym temacie z ładnym kodowaniem bifazowym, i dopiero podając bardzo na prawdę baaaardzo długie czasy jednego bitu , powodując maksymalne spowolnienie transmisji - udawało się osiągać minimalizację błędów. Ale jak pisałem i tak pozostawały.

    Najdziwniejsze jednak było to jak wyglądają te zakłócenia na oscylu. W zasadzie w innych kompletach gdy nadajnik nie nadaje to odbiornik odbiera co najwyżej szum. A przypadku tych kocich Vellmanów - odbiornik odbierał jakby jakieś trzaski - i to bardzo nieregularne - coś jakby ktoś co chwilkę włączał obok jakąś lutownicę transformatorową i wyłączał - tak szybko.

    Ok myślałem że to tak tylko gdy nadajnik nie nadaje - ale po włączeni nadajnika pojawiają się przebiegi nadawanego sygnału i ..... i niestety nadal "pocięte" tymi jakby "trzaskami" ;) . Myślałem że akurat mi trafił się taki koci komplet ale z twojego opisu wygląda, że ten typ tak ma :(

    0
  • #5 06 Lut 2010 00:22
    grysek
    Poziom 19  

    Niestety jako tako dane są jako tako odbierane dopiero przy 300 baud po UART :P Jutro (a właściwe dziś) spróbuję pokombinować nad sumą kontrolną i wysyłać takową wraz z danymi. Lecz niestety nie wiem czy to coś pomoże

    Jesli ktoś ma pomysły na zabezpieczenie danych przez zakłoceniami to proszę pisac

    0
  • #6 06 Lut 2010 00:24
    kondensator
    Poziom 36  

    grysek napisał:
    433Mhz firmy Velleman dane odbiera prawidłowo raz na jakiś czas a reszta so same śmieci, ponieważ odbiornik strasznie łapie zakłócenia.

    Problemy na własną prośbę: https://www.elektroda.pl/rtvforum/topic1274363.html i tam linki.
    Im szybciej zrezygnujesz z prób użycia 433MHz - tym lepiej dla Ciebie i innych.
    Wybierz moduły na 868MHz (jest ich coraz większy wybór i w coraz niższych cenach).

    0
  • #7 06 Lut 2010 00:38
    mirekk36
    Poziom 42  

    grysek napisał:
    Niestety jako tako dane są jako tako odbierane dopiero przy 300 baud po UART :P Jutro (a właściwe dziś) spróbuję pokombinować nad sumą kontrolną i wysyłać takową wraz z danymi. Lecz niestety nie wiem czy to coś pomoże


    No właśnie odbireać kilka takich samych ramek i jeśli w każdej zgadza się suma kontrolna to jest OK. Wtedy zamiast nadawać jedną ramkę po naciśnieciu jakiegoś klawisza nadasz ich kilka czy kilkanaście. Co jednak przy tak wolnej transmisji zaowocuje dość sporym opóźnieniem - no ale zależy co robisz i co potrzeba.

    0
  • #8 07 Lut 2010 16:09
    grysek
    Poziom 19  

    Rzeczywiście suma kontrolna po części rozwiązała problem. Dane miały być wysyłane 4 razy na sekunde bo dwa bajty lecz musiałem każdą daną wysłać dwa razy co daje 4 bajty, co znacznie zabierało mi czas procesora. Pomijam fakt że dane i tak nie zawsze dochodziły takie jak mają być. Przy transmisji 150 bodów udało mi sie wyciągnąć około 5m, miedzy pomieszczeniami. Zrezygnowałem z tych nadajników i użyłem tradycyjnie kabla :P ponieważ nie w każym pomieszczeniu chciało działać poprawnie w zależności od zakłóceń.

    Serdecznie nie polecam modułów tej firmy, chyba że do zastosowań gdzie jakość danych nie jest aż tak ważna :P

    0
  • #9 19 Lip 2010 18:19
    *zaba*
    Poziom 13  

    Kurde a kupiłem sobie nadajnik i odbiornik tx433 i rx433 i chciałem podłączyć klawiaturę pod atmege i wysyłać po UART do PC po kablu ekstra chodzi a radiowo to naprawde lipa i jak jedną literke odbierze to już można się z czego cieszyć.
    A chiałem tez kupić coś na 868 MHz ale w AVT akurat nie mieli.

    0
  • #10 19 Lip 2010 19:30
    mirekk36
    Poziom 42  

    *zaba* napisał:
    A chiałem tez kupić coś na 868 MHz ale w AVT akurat nie mieli.


    Dobrze, że nie kupiłeś bo miałbyś dokładnie takie same problemy i to wcale nie z winy tych kompletów tylko ze swojej winy, że źle się do tego zabierasz pomimo tylu postów napisanych na ten temat.

    *zaba* napisał:
    Kurde a kupiłem sobie nadajnik i odbiornik tx433 i rx433 i chciałem podłączyć klawiaturę pod atmege i wysyłać po UART do PC po kablu ekstra chodzi a radiowo to naprawde lipa i jak jedną literke odbierze to już można się z czego cieszyć.


    lipa to jest u ciebie , powód - jak wyżej.

    Jak się to dobrze oprogramuje to chula wszystko, że aż miło:

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1718375&highlight=

    albo tutaj sobie zajrzyj:

    https://www.elektroda.pl/rtvforum/viewtopic.php?t=1566129&highlight=

    zanim znowu będziesz pisał, że jakaś lipa

    0
  • #11 19 Lip 2010 20:08
    *zaba*
    Poziom 13  

    Jak bym robił sterowanie jakimś urządzeniem to bym zrobił ale mi chodzi i przesyłanie informacji czyli że to co by się pisało na klawiaturze At szło by drogą radiową do terminala w PC

    0
  • #12 19 Lip 2010 20:32
    mirekk36
    Poziom 42  

    *zaba* napisał:
    Jak bym robił sterowanie jakimś urządzeniem to bym zrobił ale mi chodzi i przesyłanie informacji czyli że to co by się pisało na klawiaturze At szło by drogą radiową do terminala w PC


    Pomijam już to, że i na takich kompletach 433MHz można spokojnie zrobić przesyłanie danych be żadnych problemów, tym bardziej jeśli chodzi o klawiaturę gdzie nie jest wymagana wielka prędkość. To jednak jeśli nie wiesz jak się za to zabrać w tej technologii (trzeba po prostu przesyłane dane kodować) to pomyśl np o Bluetooth - moduł np BTM-222 albo BTM-112. Wtedy będziesz miał ful-wypas UART'a w dwie strony drogą radiową.

    0
  • #13 20 Lip 2010 11:52
    *zaba*
    Poziom 13  

    moduły bluetooth są trochę za drogie szukałem coś taniego, tak na próbę pobawić się pierwszy raz komunikacją radiową.
    mirekk36 mógłbyś coś podpowiedzieć jak te dane można zakodować byłbym bardzo wdzięczny i szczęśliwy. :)

    0
  • #14 20 Lip 2010 12:15
    mirekk36
    Poziom 42  

    *zaba* --> zawsze polecam rozpocząć zabawę poprzez zastosowanie wprost kodowania, którego używa się do pilotów podczerwieni pracujących np w standardzie RC5 (popularny philips)

    Tyle, że warto pokusić się o budowę samemu takich funkcji nadawczych i odbiorczych zamiast liczyć np tylko na gotowce z Bascoma. O ile nawet na tych gotowcach praktycznie wprost można już uzyskać jakiś przesył to szybko się okaże, że jest on nieco mało praktyczny, żeby przesyłać normalnie jakieś dane bo jak wiesz adres ma 5bitów a commnad ma 6 bitów. Zatem żeby przesłać cały bajt to już trzba się nagimnastykować i składać kolejno przesyłane bajty a później je odbierać odpowiednio - no ale można. Kolejna wada gotowca to, to, że okaże się iż jest dosyć wolny przesył takich danych i do pewnych celów może nie wystarczyć. Oczywiście do pilotów, które mają włączyć/wyłączyć kanał wystarczy w zupełności ;) więc bez żadnych prawie przeróbek zamiast sterować diodą IR i używać odbiornika podczerwieni można - zastosować nadajnik 433MHz oraz odbiornik 433MHz i już do pierwszych prób i testów.

    Kodowanie nie ma znaczenia, że dane są jakoś szyfrowane itp. Chodzi tylko o to żeby wymyśleć albo użyć takiego sposobu konwersji stanu logicznego JEDEN oraz ZERO, żeby mógł być bez zakłóceń przesłany takimi rodzajami łączy. Standard RC5 korzysta właśnie z kodowania bifazowego inaczej zwane jest to popularnym kodem Manchester.

    Na początku może to wyglądać strasznie, ale tak nie jest warto się w to wgryźć bo jak widzisz można to stosować do wielu różnych rzeczy.

    Zatem jak już napiszesz własne procedury nadawania i odbierania w kodzie Manchester to spokojnie możesz sobie zrobić np żeby:

    1. czas trwania połowy pojedynczego bitu był o wiele krótszy niż w RC5
    2. czas trwania przerwy pomiędzy ramkami może być dużo dużo krótszy
    3. przesyłać w ramce co najmniej jeden cały bajt aby nie trzeba było go składać/rozkładać przy odbieraniu/wysyłaniu

    a przez to od razu uzyskujesz dużo większy transfer jeśli zechce się wysyłać strumieniowo że tak powiem własne dane.

    0
  • #15 20 Lip 2010 12:51
    *zaba*
    Poziom 13  

    No tak robiłem sterowanie IR ale tak jak napisałeś w bascomie gotową procedurą RC5 adress,command i tyle nie wgłębiałem się bardzie w to, chodź czytałem troche o tym kodzie Manchester i o Sony też.
    Więc mówisz że umiejętność kodowania sygnału daje dużo korzyści, to biore sie do roboty i cza poznać te kodowanie.
    Jeszcze jedno upewniające pytanie w Bascomie da rade napisać własne kodowanie ??

    0
  • #16 20 Lip 2010 14:19
    mirekk36
    Poziom 42  

    *zaba* napisał:
    Więc mówisz że umiejętność kodowania sygnału daje dużo korzyści,


    Naprawdę bardzo dużo.

    *zaba* napisał:
    Jeszcze jedno upewniające pytanie w Bascomie da rade napisać własne kodowanie ??


    No pisanie tego w Bascomie to dla mnie trochę już tak na "okrętkę" ale się da ;) na stronie producenta mcselec.com znajdziesz przykłady jak ludzie porobili w Bascomie obsługę dla innych standardów np Sony (bo odbioru sony nie ma tylko nadawanie nie wiedzieć czemu) ale też i zdaje się inne - trzeba poszukać.

    Tyle, że jak się przyjrzysz tym przykładowym rozwiązaniom to poczujesz się jakbyś mieszał asemblera z Bascomem bo po części tak jest. Dlatego lepiej powoli uczyć się C.

    1
  • #17 20 Lip 2010 15:58
    *zaba*
    Poziom 13  

    No tak w bascomie używa się gotowych procedur i tak jak mówisz nie ma też do wszystkiego np. do nadawania IR sony jest a już do odbioru ja wspomniałeś nie wiadomo czemu nie ma, a jeśli chciało by się jakąś procedurę sam napisać to już raczej trzeba korzystać z wstawek assemblera. Bascom ponoć jest dalej rozwijany i dobrze by było gdyby nowe procedurki doszły np. do obsługi takich nadajników radiowych wraz z zakodowanym sygnałem.
    Dzięki za wszelkie podpowiedzi i rady, jak narazie to zrobię ten inwentorek sygnału co pisałeś w innym temacie i zobaczę czy się coś poprawi.

    0