Eksperimentai su radijo ryšio moduliais 3

Skraidymo sezonas baigėsi, atsirado daugiau laiko užsiimti visokiais ne RC reikalais. Prisiminiau, kad esu kažkada nusipirkęs porą radijo ryšio modulių RFM12B. Esu jau anksčiau apie kitokius radijo ryšio modulius rašęs. Galima paskaityti čia ir čia.

Pirkau aš juos nesigilindamas geri jie ar blogi, pamačiau kažką kita pirkdamas, kaina buvo nedidelė tai ir nusipirkau. Dabar pradėjau domėtis ką su jais galima būtų nuveikt. Paskaitęs aprašymą nusprendžiau, kad jų valdymas nėra pats paprasčiausias. Tingėjau smulkiai aiškintis ką kiekvienas bitukas reiškia, nutariau paieškot, gal internete yra kokių jų naudojimo pavyzdžių. Radau labai daug visko, pasirodo populiarūs šie moduliukai.

Labiausiai patiko biblioteka, sukurta Arduino (www.arduino.cc) platformai. Galimybės ten neblogos, kiekvienas moduliukas turi savo numerį, galima perdavinėti konkrečiam moduliui arba visiems iš karto (broadcast). Skaičiuojamos kontrolinės sumos, gali siųsti atsakymus apie sėkmingą arba nesėkmingą priėmimą. Beveik wireless tinklas.

Kas yra Arduino aš žinojau, bet iki šiol nieko su juo nedariau. Beje, norint pamėginti, visai nereikia pirkti arba darytis kurią nors Arduino plokštę. Pats Arduino toks jau daiktas, kad ten be pačio mikrokontrolerio daugiau nieko ir nėra. Būna dar įdėtas USB-RS232 konverteris, kad būtų paprasta pasijungti prie kompiuterio. Programos į mikrokontrolerį įrašomos bootloaderio pagalba. Yra programavimo aplinka, kuri vadinasi taip pat – Arduino. Kas nori susipažinti su mikrokontrolerio programavimu verta pabandyt. Programavimo kalba labai panaši į C, bet skiriasi tuo, kad ten viskas maksimaliai pritaikyta mikrokontroleriams. Be to yra daugybė bibliotekų, kas programavimą daro labai paprastu.

Taigi, viena iš tų papildomų bibliotekų ir yra skirta RFM12 moduliams. Moduliai gaminami su jungtimi (tokie ir buvo pas mane) arba SMD. Pirkdamas galvojau, kad geriau su jungtimi, bet dabar taip nemanau. Bėda tame, kad jungtis labai maža, žingsnis tarp išvadų 2mm. Reiškia niekaip neina įdėt į montažinę plokštę. :) Gerai, kad nors jungtis pavyko nusipirkti Lietuvoje. Taigi teko pasidaryti porą plokščių, kuriose tebuvo prigręžiota skylių su 2,54 mm žingsniu, ir papildomai padaryta pora eilučių skylių su 2 mm žingsniu.

Surinkau du vienodus modulius, kuriuos galima būtų pavadinti Arduino. Bet lygiai taip pat gali neturėti nieko bendro su Arduino. Plokštėse yra tik keletas detalių: mikrokontroleris atmega328, pats RFM12B modulis, keletas jungčių, kad galima būtų panaudot ir kitokiems tikslams, kvarcas, ir 3,3V stabilizatorius. RFM12B veikia nuo 3,3V, o aš norėjau kad viskas veiktų nuo 5V, taigi teko suderinimui įdėti dar keletą varžų. Viskas sujunginėta laidais, kaip visada… :)

Kad visa tai pavirstų Arduino, reikia įrašyt bootloaderį. Atrodytų paprastas dalykas, tačiau aš neturėjau galimybių padaryti tai standartiniu būdu, iš pačios Arduino aplinkos. Neturėjau tinkamo programatoriaus. Todėl bandžiau tai padaryti su tuo pačiu, kurį naudojau iki šiol. Internete nesunku rasti kaip tai daroma, tačiau visur aprašyta kaip tai daroma su AVRDUDE programa. Labai jau jos nemėgstu (veikia iš komandinės eilutės) ir mano programatorius su ja neveikia. Teko pačiam aiškintis su atmegos fuses. Prasiknisau visą dieną, pasiekiau tiek, kad bootloaderis programą priimdavo vieną kartą ir ji veikdavo, bet daugiau įrašyti buvo neįmanoma. Suprantama, programa nutrindavo bootloaderį, bet vis tiek man niekaip nepavyko pasiekti, kad to nebūtų. Pagaliau nutariau padaryti kitaip. Susiradau seną kompą, kuris turi LPT, susilitavau tą paprastą laidą, ir pabandžiau įrašyti iš Arduino aplinkos. Įsirašė be problemų. Paskui aš, aišku, pasižiūrėjau kur apsižioplinau nustatinėdamas fuses. Viskas aišku, vienas buvo nustatytas ne taip… :) Dabar jau nereikėtų ieškoti kito kompo. :)

Taigi, bootloaderis yra, galima bandyti paleisti kokią nors programą. Viskas veikia. Pavyzdinės programos su RFM12B moduliais irgi puikiai veikia. Biblioteka tikrai nebloga, patiko. Bet pastebėjau vieną minusą. Neina nustatyti kokiu kanalu veikia moduliai. Tai nustatyta pačioje bibliotekoje, neaišku koks ten kanalas pasirinktas. Automobilio signalizacijos pultas labai trukdo ryšiui. Matomai dažnis 433,92 MHz arba labai artimas tam. Tiesa, nežinau net koks ten juostos plotis pasirinktas. Kol kas nebandžiau žiūrėt kaip ten padaryta. Visa tai keičiama, bet tiesioginių komandų nėra. Reiktų autoriui pasiūlyti jas padaryti. :)

Atstumo bandymas parodė, kad veikia maždaug 170-180 m atviroje vietoje. Antenos paprasčiausi vielos gabalai, tik ilgis parinktas pagal bangos ilgį.

Kur juos galima būtų panaudot? Pvz. quadrocopterio telemetrijos transliavimui tikrai tiktų.

Kam kils klausimas kokią biblioteką aš naudojau įveskit į google: „arduino rfm12“. Tai ir taip aišku, tačiau tokių klausimų vis atsiranda… :)

This entry was posted in Elektronika, Programavimas. Bookmark the permalink.

3 Responses to Eksperimentai su radijo ryšio moduliais 3

  1. gintaras says:

    Na taip, 433 MHz diapazone nieko rimto nenuveiksi – autosignalizacijos pulteliai tikrai bet kokį ryšį “užmušti” gali. Bet kokios nors ne kritinės informacijos siuntimui panaudoti – puiki mintis. O ryšio atstumą manau dar būtų galima padidinti, panaudojus rimtesnę anteną – dipolį. Savaitgalį paeksperimentavau su antenomis (artimiausiu metu rcforume “ataskaitą” apie tai žadu pateikti) 1,2GHz diapazonui – paprasčiausias dipolis (šarvas į kairę, centrinė gysla į dešinę) nepalyginamai geriau veikia už paprastą laido galą.

  2. ReM says:

    Su antenomis tai galima nemažai paeksperimentuot. Rezultatai turėtų tikrai būti geresni. Pabandysiu ir aš…

  3. ly1akm says:

    Sveiki, nors turiu viena liga (hamradio hobi)bet, jusiskia vakar susirgau. :) Kalbant apie apie modulius 2.4ghz nera pats geriausias atstumo atzvilgiu tai turetu buti aktualu tiems pilotams kurie megsta skraidinti kameras su siustuveliais.
    Vakar vienoje parduotuveje aptikau pigia valdymo konsole kuri naudoja 35mhz dazni nesu profanas dar tik mokausi bet, sitame daznyje veikianciai konsolei atlikus keleta pakeitimu, galima butu isgauti radiusa iki 5 km stabilaus valdymo, o gal net ir daugiau.
    P.S. Apie daznius nedaug ismanau, o apie modeliu konstravima isvis neturiu zalio supratimo bet, labai noreciau pameginti, todel jei turesite klaisimu apie radijo rysi galiu papasakoti ar fiziskai padeti, zinoma uz tai mainais prasysiu nuosirdzios pagalbos zengiant pirmuosius zingsnius jusu hobije.

Leave a Reply

Your email address will not be published. Required fields are marked *