Miten langaton tiedonsiirto toteutetaan luotettavasti?
Minulla on kaksi arduinoa ja tällaiset radiolähittimet: http://www.ebay.com/itm/281678049962
Data siirtyy luotettavasti esimerkkikoodilla, kun viestit lähetetään ja luetaan puolen sekunnin välein. Mutta mitä jos data pitäisi lähettää esim kerran 10 minuutissa tai jopa tunnissa?
Jo 5 sekunnin välisissä lähetyksissä tuli katkoksia ja kaikki viesti eivät tulleet perille, kun arduino teki siillä hetkellä jotain muuta, esim päivitti näytön, eikä odottanut viestiä.
Minulla on kaksi arduinoa ja tällaiset radiolähittimet: http://www.ebay.com/itm/281678049962
Data siirtyy luotettavasti esimerkkikoodilla, kun viestit lähetetään ja luetaan puolen sekunnin välein. Mutta mitä jos data pitäisi lähettää esim kerran 10 minuutissa tai jopa tunnissa?
Jo 5 sekunnin välisissä lähetyksissä tuli katkoksia ja kaikki viesti eivät tulleet perille, kun arduino teki siillä hetkellä jotain muuta, esim päivitti näytön, eikä odottanut viestiä.
Vastaukset 6
Vanhimmat
Käytätkö tämän tyyppistä perus ohjelmaa arduinossa.
http://arduinobasics.blogspot.fi/2014/06/433-mhz-rf-module-with-arduino-tutorial.html
Pitäisi käyttää keskeytystä.
Luotettavin varmaa käyttämällä hardware sarjaporttia.
http://www.glacialwanderer.com/hobbyrobotics/?p=291
Se on softaamis homma. Yleensä ensin tunnistaudutaan ja sen jälkeen vasta liikennöidään. Vastaanottimet kuulee samoilla taajuuksilla olevaa liikennettä ja muita "pöröjä" joista ei tahdo millään saada selvää. Minkälaisella "pillillä" lähettävä pää herättää vastaanottavan painumaan keskeytykseen ja aloittamaan tunnistautumisen onkin sitten softaajan murheita kun samoilla taajuuksilla löytyy muita käyttäjiä. Niitä ei kumminkaa tarttis häiritä.
Yksi tapa lähetellä ja vastaanottaa sujuvasti on käyttää ajastettuja lähetyksiä. Voi periaatteessa ajastaa lähetyksen vaikkapa kerran tunnissa 0,1s tarkkuudella, jolloin vastaanottaja tietää kuunnella oikeaan aikaan keskeytysrutiinissa. Kannattaa huomata, että jos haluaa tarkkuutta, tarvitsee käytännössä kiteen tahdittamaan cpu:ta.
Vanha kunnon radio kättely "kuuntelen" on myös poikaa, kunhan sen toteuttaa softalla. :) Viestin koodausta joutuu varmaan kanssa miettimään, mutta esim. toisto kelpaa: Jos saa saman viestin 2x, se on varmaankin oikein - tai sitten laskee jonkinlaisen crc-summan viestin perään.
>>Jos saa saman viestin 2x, se on varmaankin oikein
Ihan varmasti on oikein, joo.
"Yksi tapa lähetellä ja vastaanottaa sujuv"
"Yksi tapa lähetellä ja vastaanottaa sujuv"
Oikein on !
Minkälaista koodia käytät. Tuolla radiopiirillä ei oikein 2400 baud nopeempaa kannata yrittää.