Fórum témák
» Több friss téma |
SZia!
Az adatfolyam itt is a normál uart, tehát start bit, stop bit, adat bitek? Pontosabban amit a transmitter data lábán "küldök" azoknak a biteknek kellene megjelenni a receiver en is, jól gondolom? Vagy mire gondoltál ezzel: Idézet: „A rádiós összeköttetés egyenszintet nem tud átvinni, csak inpulzus sorozatokat.” Zoltán Idézet: „még ha a transmitter egység data lábára +5V-t kötök is.” Hiába kötsz az adó lábára +5V -ot, attól nem fog semmi történni. Igen, pl. lehet egy UART is akár. De az átküldendő adatfolyamot kell védeni.
Szia!
Ha az adó adat lábára 5V van kötve akkor elvileg a vevőnél is 5V nek kellene hogy megjelenjen, nem igaz? (Az UARnál a +5V akkor van az adat lábon, ha az adott bit értéke=1, vagy ha "adásszünet van"). Zoltán
Nem. A vevő bemenetén FSK jel változásnak kell lennie. Ha ez nincs, a vevő egy idő után leáll, mivel nem érzékel jelváltozást. Az UART kimenetén egy jelsorozat jelenik meg, a beírt adatnak megfelelően, a beállított start, és stop bitekkel kiegészítve. Még ez sem biztos, hogy hiba nélkül átmegy, ezért kell az átviendő adatfolyamot Manchester kódolással kódolni, a vevő oldalon dekódolni.
Ezért érdemes olyan RF modult használni, mely már a Manchester kódolást megoldja. Nagyon jó kis modul az Aurel RTX-MID-3V. Közvetlenül az UART-ra köthető.
Tehát akkor nekem kell egy manchester kódoló az adó oldalra(az uartot manchester kódolásra átalakítandó), majd a vevő oldalon egy dekóder(ami manchesterből visszaalakít uart-ra)?
Avr re tud valaki egy jó példaprogramot erre a kódolásra? Zoltán
Megtaláltam Topi cikkét, ami ezzel foglalkozik... Bár Ő PIC re írta, amihez sajnos nem értek...
Bővebben: Link
Hogyan írja ki a vezérlő adott lábára a kiküldendő kódot? És miért nem kell valamilyen késleltető eljárás? és miért integert fogad az encoder eljárás, nem csak 0-255 értékű lehet 1 karakter, é lehetne unsigned char is int helyett:
állományok(főprogram + manchester kódoló)
Arra sikerült rájönnöm, hogy végül a put_c() fügvénnyel küldi az adó lábára a kódot. De ez a put_c hol van elrejtve? nem találtam sehol ez lenne a megoldás, az adat kiküldésére.
AZ adat fogadása pedig egy végtelen ciklusban futtatott m_get lenne? De megint feltűnik egy ismeretlen, a getc(); függvény és radio változó... Ezel az LCD.c ben lennének definiálva? Ezt az állományt a szerző sajnos nem mellékelte...
Szerintem ne add fel ilyen gyorsan.
Énis szívok ugyanezzel az adó-vevő párral. Nekem már működik a kommunikáció, de valami még hibádzik. Átküldök egy stringet, odaát a karakterek száma megegyezik, de a betűk nem azok amiket én elküldök. Na a lényeg, hogy egyszer kell megtanulni...
Egyébként a putc(); alapfüggvény!
Szóval azt ne keresd a forrásban. A putc() küldi magát a kódolt adatot azaz ez küldi ki a Tx lábra az adatot. Ez pedig be van építve a CCS-be. Ennek a párja a getc() ami meg fogadja az Rx lábra érkező jelet. A függvény amit linkeltél az meg elvégzi a kódolást és a dekódolást ill. a dekódolásnál a hibaellenőrzést. Azért kell az ellenőrzés hogy ne "egyen" meg minden zavarjelet a PIC. Hanem a fogadott jelekből csak a hasznosat írja ki pl: az LCD-re.
Na meg ugye minek a kódolás?
Az adó nem tud folyamatosan magas jelet küldeni. Tehát ha mondjuk ezt küldenéd hogy 11111111, akkor ez nem menne át, ugyanis az adó csak pár ms-ig képes magas jelet küldeni. De ugye ez a jel manchester kód szerint 1010101010101010. Hátránya hogy fele olyan gyors vele a kommunikáció. De végülis nem kell Mbit/s-os sebesség nekünk. Vizsont így egy magas jel egy alacsonnyal párosul. Amit lehet vezeték nélkül közvetíteni a PIC-ek között. Amiket leírtam egy-két helyen biztos sántítanak. Én sem foglalkozom túlságosan rég vele. De majd a többi kolega kijavít Mindenestre szerintem még "szenvedj vele" kicsit. Utána nagy élmény lesz ha működik "A tanulás gyökere keserű, de gyümölcse édes"
Rendben, lehet ez lesz a legjobb, a működési elvét már kezdem érteni, csak az a gond, hogy csak az avr-t ismerem, és ott nem találtam putc() alapfüggvényt... Ha ezt át tudnám valahogy kódolni AVRre, akkor működne a kicsike...
Az m_ send függvényben azért van 2 putc() egymás után, mert először kiküldi az első 8 bináris "számjegyet", utána a másodikat? De az m_get függvénynél csak 1 getc() van... de utána van egy timed_getc(), ez lenne a második getc(), ami fogadja a második putc() vel kiküldött adatokat? Ha jól látom, a fogadásnál hn-t "eltoljuk" balra 8 bittel, majd vagy hozzáadjuk az i hez az első beérkezett adatokat, és visszakódoljuk? Az int16 milyen változó típus? Ha igen, akkor meg tudnám csinálni az átfordítást...
Azért van két putc, mert a manchester kódoló a nyolc bitedből csinál 16-ot, és ezt a 16 bitet küldöd ki kétszer 8 biten.
A vevő oldalon kétszer veszel 8 bitet (ami összesen 16), és a dekódoló ebből csinál 8-at, ami az eredeti átküldött adatod. A timed_getc elvileg olyan mint a sima, de van neki "time-out"-ja, magyarán nem ragad be ha nem jön neki semmi. De ezt csak a google mondta, ehhez nem értek (én is avr-es vagyok).
Jah értem.
Milyen programmal írsz AVR-re programot? Biztos abban is van putc()-nek megfelelő függvény. A soros vonalon küldünk adatot a putc() függvénnyel. Tehát ilyen téren kell keresgélni
Nézd csak mim van neked!
rs232.h
rs232.c
Ez a motyó pár parancs segítségével kezeli neked a hardveres soros portot. Beállítod a sebességet, inicializálsz, és már mehet is! Copyright tőlem!
Szeretnék építeni egy egyszerű rádiós távirányítót. Főleg akásban használnám pár méter - pár 10 méter távolságig. Vigyen át egy falon keresztül is. Ha lenyomom a gombot az adón, akkor kapcsoljon a relé, amíg le van nyomva a gomb.
Biztonsági szempontok nincsenek, nem kell attól félni, hogy más meg akarja hackelni, vagy ilyesmi, esetleg az okozhat problémát, ha más hasonló frekvenciájú adó is van a közelben, de egyelőre ez sem fontos. Az adó lehetne valamilyen oszcillátor, aminek a kimenetét egy antennára vezetném. Kérdés: Milyen frekvenciát és milyen oszcilátort érdemes választani. Én egy egyszerű oszcillátorra gondoltam, amit úgy valósítanék meg, hogy invertert kristállyal visszacsatolok, mint ahogy Topi cikkében is van. 1 Mhz körüli frekvencára gondoltam, hogy a megvalósítással még ne legyenek problémák. (Szórt reaktanciák, parazita reaktanciák.) Milyen antennát ajánlanátok? Hallottam, hogy egy ferritmagos tekercs is jó. Ez igaz? Vevő: Antenna--sávszűrő--erősítő--AM-demodulátor--tranzisztor, aminek a kollektorkörében van a relé. Az AM-demodulátornál egy sima diódás burkolódemodulátorra gondoltam. Erősítőnek elég egy jól beállított tranzisztor, esetleg legyen egy műveleti erősítős kapcsolás? Sávszűrőnek jó egy -az antennával sorosan kapcsolt- párhuzamos LC kör, vagy az antennával párhuzamosan kapcsolt soros LC kör? Vagy itt is legyen ferritmagos tekercs a vevő egy párhuzamos kondival hangolva? Ha mégis védeni kell (véletlen(nem rossz szándékú)) külső behatások ellen, akkor jó-e az ötlet, hogy az adást is szaggatom alacsonyabb frekvencián és a vevő áramkörben teszek egy szűrőt erre a frekvenciára is az AM-demodulátor után? Köszi a segítséget!
A tudást/tapasztalatot (szívást).
Mellesleg az én ötletem sokkal olcsóbban kivitelezhető, mint ha egy kész modult veszek. (Amin van védelem, nagyobb a hatótávolsága, stb... Nekem ezek most nem kellenek.) Szerintem pár száz forintból össze lehet hozni az enyémet. Csak pár apró tanács, válasz kéne, mielőtt belevágok.
Adónak vezeték nélküli mikrofon,vevő valami rádió.Ezeket kiegészíted egy 555 hanggenerátorral a vevő oldalon egy 567 PLL -lel.Elméletileg működik játékra valószínű elég.
Esetleg építesz egy rádióvevőt valami üres csatornára ,meg egy adót ,és a zaj a jeled.Ha nincs zaj -nyomod a gombot . A kínai vezeték nélküli csengők az egyszerűség tárházát tartalmazzák..
Nincs vezeték nélküli mikrofonom. Egy ilyen beszerzése nagyon drága lenne. Persze, építhetnék is, de nekem csak egy oszcillátor kell egyetlen viszonylag pontos frekvencián. Erre szerintem a legjobb megoldás a kvarccal visszacsatolt inverter.
Későbbi fejlesztésnek majd jó ötlet lehet, az 567-es áramkör, de egyelőre az eredeti célomat sikerüljön megvalósítani. Erre várnék ötleteket, főleg az antennával, a frekvenciával és a vevővel kapcsolatban.
Tudna valaki segíteni RFM01, RFM02 modulok párosításában?
Már néhány napja szívat az adatátvitel, mert semmi nem megy át vagy nem jön. A vételi oldalon nem generál megszakítást és akármit állítok be a konfigban nem hajlandó megszaítást generálni. A kapcsolás a HOPE-RF mintában megadott és a program is. Az adó és vevő modulokon a konfig megy, mert szkóppal ellenőrizve a CLK lábakon a beállított frekvencia jelenik meg. Van esetleg valakinek működő kódja, amit megosztana?
ez sokat segíthet megérteni hogy mi hogy van, és működik is: Bővebben: Link
Köszi az infót, de ezt is átolvastam, a kódolás-dekódolás megy. Az a baj, hogy soha nem megy alacsonyba az nIRQ, tehát mintha nem venne adatot. Rengeteg helyen olvastam, hogy a beállítása macerás. A Silabs oldalán is olvastam a doksit ami ebben a vevőben lévő áramkör (valószínűleg) leírása. Ez sem segített.
Írtam a gyártónak is elküldve a kódokat és a kapcs. rajzokat, de még várok a válaszra.
Próbáld meg simán, hogy az adó vevő külön tápon van, majd az adó oldalt data lábára VCC-t kötsz, majd testet, a vevő oldalra meg egy nagy ellenállással bekötsz egy ledet a data lábra, nézd meg, hogy viselkedik(lehet hogy hibás a modulod, bár kicsi az esélye)
Sajnos nem megy. FIFO-t kilőttem és akkor sem billeg a vevő data lába. Te ezzel a párossal játszottál vagy más fajtával?
Amivel Te játszol sokkal egyszerűbb. Sajna nekem ebből van most itthon 2-2 db, ezeket kell elhasználnom.
Szia mzozo95,
Ugyanezekkel a típusokkal próbálkozok, hasonló problémám van, mint amit a korábbiakban írtál. Ha az adó data bementére pozitív tápfeszt adok, igazából semmi nem történik a vevő oldalon, ahol egy darlington párral vezérelt LED mutatná, hogy van vevő oldali jel vagy nincs. Folyamatosan vibrál a LED, nem tudom az adó bemenetével vezérelni a vevő kimenetét. Sikerült a HM adó-vevő párost életre keltened, hogy kommunikáljanak? A többiek kódolásról írnak, de nekem csak egy on-off állapotot kellene átvinnem a rádióval (ki-bekapcsolás távvezérlése). Várnám válaszod és tapasztalatod.
Szerintem moduláció nélkül nem igazán alkalmasak kapcsoló jelének átvitelére.Vezeték nélküli csengőből szedd ki a modulátor demodulátor párost használd azokkal.
|
Bejelentkezés
Hirdetés |