Jau rašiau apie imtuvų ir siųstuvų, veikiančių 433 MHz diapazone, naudojimą, susijusį su mano amatais. Šį kartą norėčiau palyginti skirtingus jų variantus ir suprasti, ar jie skiriasi, ir kurie yra geresni. Po pjūviu yra bandymų stendo konstrukcija, pagrįsta arduino, nedideliu kodu, iš tikrųjų bandymais ir išvadomis. Elektroninių naminių gaminių mylėtojus kviečiu kat.
Turiu įvairių tokio diapazono imtuvų ir siųstuvų, todėl nusprendžiau apibendrinti ir suskirstyti šiuos įrenginius. Be to, gana sunku suprojektuoti įrenginius be radijo kanalo, ypač jei laivas neturėtų būti nejudančioje padėtyje. Kas nors gali ginčytis, kad wi-fi sprendimų dabar yra nemažai ir verta jais naudotis, tačiau pastebiu, kad ne visur patartina jais naudotis, be to, kartais nesinori trukdyti sau ir kaimynams toks vertingas dažnio šaltinis.
Apskritai, visa tai yra dainų tekstai, pereikime prie specifikos, galima palyginti šiuos įrenginius:
Labiausiai paplitęs ir pigiausias siųstuvo ir imtuvo rinkinys:
Galite nusipirkti, pavyzdžiui, imtuvas kartu su siųstuvu kainuoja 0,65 USD. Mano ankstesnėse apžvalgose tai buvo naudojama.
Šis rinkinys laikomas aukštesnės kokybės:
Parduodamas už 2,48 USD su šio diapazono antenomis ir spyruoklėmis.
Tikrasis šios apžvalgos objektas parduodamas atskirai kaip imtuvas:
Šis renginyje dalyvaujantis įrenginys yra siųstuvas:
Nepamenu, kur tiksliai pirkau, bet tai nėra taip svarbu.
Siekdami užtikrinti vienodas sąlygas visiems dalyviams, spiralės pavidalu lituojame vienodas:
Be to, litavau kaiščius, skirtus įkišti į duonos lentą.
Eksperimentams jums reikės dviejų arduino derinimo plokščių (aš paėmiau Nano), dviejų duonos lentų, laidų, LED ir ribojančio rezistoriaus. Gavau taip:
Testams nusprendžiau panaudoti biblioteką, ją reikia išpakuoti į įdiegto arduino IDE katalogą „bibliotekos“. Parašykime paprastą siųstuvo kodą, kuris bus nejudantis:
#įtraukti
Šių siųstuvų kaištį prijungsime prie 10 arduino išvesties. Siųstuvas transliuos numerį 5393 kas 5 sekundes.
Imtuvo kodas yra šiek tiek sudėtingesnis dėl išorinio diodo prijungimo per ribojantį rezistorių prie arduino 7 kaiščio:
#įtraukti
Imtuvas prijungtas prie arduino Nano 2 kaiščio (kodas naudoja mySwitch.enableReceive(0), nes 2 kaištis atitinka 0 pertraukimo tipą). Jei gautas išsiųstas numeris, sekundę mirksime išoriniu diodu.
Dėl to, kad visi siųstuvai turi tą patį kištuką, eksperimento metu juos galima tiesiog pakeisti:
Imtuvų situacija yra panaši:
Kad užtikrinčiau priimančios dalies mobilumą, panaudojau power banką. Visų pirma, surinkęs grandinę ant stalo, įsitikinau, kad imtuvai ir siųstuvai veikia bet kokiu deriniu. Bandomasis vaizdo įrašas:
Pirma, apie siųstuvus. Eksperimento metu paaiškėjo, kad tarp jų nėra jokio skirtumo, tik tiek, kad bevardis, mažas eksperimentinis veikė kiek prasčiau nei konkurentai, šis:
Jį naudojant patikimo priėmimo atstumas sumažėjo 1-2 metrais. Likę siųstuvai veikė lygiai taip pat.
Tačiau su imtuvais viskas pasirodė sudėtingiau. Garbingą 3 vietą užėmė šio rinkinio gavėjas:
Jis pradėjo prarasti ryšį jau 6 metrų atstumu nuo matomumo (5 metrų atstumu - kai tarp siųstuvų naudojamas pašalinis asmuo)
Antroji vieta atiteko dalyviui iš pigiausio rinkinio:
Užtikrintai gautas 8 metrų atstumu, bet nepavyko įvaldyti 9 metro.
Na, o rekordininkas buvo peržiūros objektas:
Turima matymo linija (12 metrų) jam buvo lengva užduotis. Ir perjungiau į priėmimą per sienas, iš viso 4 kietos betoninės sienos, maždaug 40 metrų atstumu - jau gavosi ant ribos (žingsnis į priekį priėmimas, vienas žingsnis atgal LED tyli). Taigi tikrai galiu rekomenduoti šios apžvalgos temą įsigyti ir naudoti amatuose. Jį naudodami galite sumažinti siųstuvo galią vienodais atstumais arba padidinti patikimo priėmimo atstumą esant vienodoms galioms.
Pagal rekomendacijas galite padidinti perdavimo galią (taigi ir priėmimo atstumą) padidindami siųstuvo maitinimo įtampą. 12 voltų leido padidinti pradinį atstumą 2-3 metrais matymo linijoje.
Baigiu čia, tikiuosi informacija kam nors bus naudinga.
Planuoju pirkti +125 Įtraukti į adresyną Man patiko apžvalga +121 +225Šioje pamokoje išspręsime radijo signalo perdavimo tarp dviejų Arduino valdiklių, naudojant populiarų 433 MHz siųstuvą-imtuvą, problemą. Tiesą sakant, duomenų perdavimo įrenginį sudaro du moduliai: imtuvas ir siųstuvas. Duomenys gali būti perduodami tik viena kryptimi. Tai svarbu suprasti naudojant šiuos modulius. Pavyzdžiui, nuotoliniu būdu galite valdyti bet kurį elektroninį įrenginį, nesvarbu, ar tai mobilusis robotas, ar, pavyzdžiui, televizorius. Tokiu atveju duomenys bus perkelti iš valdymo pulto į įrenginį. Kitas variantas – perduoti signalus iš belaidžių jutiklių į duomenų rinkimo sistemą. Čia maršrutas keičiasi, dabar siųstuvas yra jutiklio pusėje, o imtuvas - surinkimo sistemos pusėje. Moduliai gali turėti skirtingus pavadinimus: MX-05V, XD-RF-5V, XY-FST, XY-MK-5V ir kt., tačiau visi jie turi maždaug vienodą išvaizdą ir kaiščių numeraciją. Taip pat dažni du radijo modulių dažniai: 433 MHz ir 315 MHz.
Sveiki visi! Darbe turiu automobilių stovėjimo aikštelę. Žinoma, šio straipsnio tikslas nėra girtis, atsižvelgiant į sudėtingą situaciją keliuose su automobilių stovėjimo vietomis, o ne viešai skelbti mano vadovybę, kad jie rūpinasi savo darbuotojais (nepaminėsiu savo darbo vietos!) , tai ne esmė. Esmė ta, kas trukdo kitiems, nesusijusiems su mano darbo vieta, stovėti šioje aikštelėje? O tai užtvara, ribojanti įvažiavimą ir išvažiavimą iš šios aikštelės.
Ir, kaip ir daugelyje organizacijų, į mano įmonę įeinama naudojant įprastus leidimus, kad būtų galima kontroliuoti mane ir visus kitus. Na, jie taip pat įvažiavo į automobilių stovėjimo aikštelę naudodamiesi tais pačiais leidimais. Tai yra, privažiuoji iki stovėjimo aikštelės, pateiki savo leidimą skaitytojui, jis veikia, užtvaras atsidaro (užsidaro automatiškai), įvažiuoji ir viskas. Taip jie manė. Tačiau mano aistra elektronikai ir natūralus tinginystė (tai reiškia, kad kiekvieną kartą privažiuoju, atidarau langą, ištraukiu ranką, uždarau langą, o jei lyja, o jei šalta) – priešinosi sistemai.
Taigi, pereikime prie esmės. Visų pirma, sužinojau, kad barjeras pasirodė esąs gana populiari Nicos įmonė, ir pradėjau ieškoti informacijos apie ją. Tačiau, nepaisant gamintojo populiarumo, informacijos apie jo kodų formatus buvo labai mažai. Paaiškėjo, kad yra 12 bitų ir 24 bitų kodų formatai. 12 bitų yra senesnis, 24 bitų yra modernesnis. Kadangi žinau, kad barjeras darbe stovi jau seniai, nusprendžiau pradėti nuo 12 bitų kodų (vėliau susitvarkiau). Taigi duomenų paketas susideda iš 12 bitų. Prieš 12 bitų kodą yra vadinamasis „pilotinis laikotarpis“ ir „pradžios impulsas“. „Pilotinis periodas“ susideda iš 36 žemo lygio intervalų, „pradžios impulsas“ – iš 1 aukšto lygio intervalo. Vieną duomenų paketą sudaro „pilotinis laikotarpis“, po kurio seka „pradžios impulsas“, o po jo seka 12 bitų kodas (kiekvienai barjerui skirtingas). Užtvariniai nuotolinio valdymo pultai vienu metu perduoda 4 duomenų paketus, bet aš įdiegiau daugiau, nes daugelis įrenginių veikia tokiu dažniu (ypač automobilių signalizacija) ir galimi trukdžiai. Nicos barjerų impulsų trukmė:
Kaip apskritai visa tai galima realizuoti? Pastaruoju metu mano aistra Arduino platformoms neleido man ilgai galvoti apie šią problemą.
Komponentų sąrašas:
1. Arduino Uno,
2. 433 MHz radijo siųstuvas, savadarbė antena,
3. Baterija yra 9 voltų, populiariai „Krona“.
Šie radijo siųstuvai parduodami labai pigiai žinomose Kinijos parduotuvėse (apie 50 rublių), kartu su radijo imtuvais. Jie labai paprasti, trijų kontaktų: maitinimo, įžeminimo ir signalo kaiščio. Maitinimas nuo 5 iki 12 voltų, kuo didesnė maitinimo įtampa, tuo geresnis diapazonas. Iš tikrųjų todėl buvo pasirinkta 9 voltų baterija. Rekomenduojama „Arduino Uno“ maitinimo įtampa yra nuo 7 iki 12 voltų (Vin kaištis), todėl „Krona“ yra gana tinkama. Taip pat radijo siųstuvo diapazonas priklauso nuo antenos buvimo (be jos diapazonas bus apie 1 metrą). Visas komplektas kainavo apie 300 rublių.
Tiesą sakant, čia yra „Arduino Uno“ eskizas:
Int siuntimo_kodas_pin = 13; //int siuntimo_kodas = 3061; tai kodas, nustatytas brutalia jėga mano barjerui void setup() ( pinMode(send_code_pin, OUTPUT); ) void loop () ( for (int send_code = 0; send_code< 4096; send_code++) // этот цикл после того как код определен необходимо убрать
{
for (int j = 0; j <7; j++) // достаточно 4-х, но из-за помех поставил 7
{
digitalWrite(send_code_pin, HIGH); // стартовый импульс
delayMicroseconds(700);
digitalWrite(send_code_pin, LOW);
for (int i = 12; i >0; i--) ( loginis bito_kodas = bitRead(siųsti_kodas, i - 1); if (bit_code) ( digitalWrite(send_code_pin, LOW); // vieneto delsaMikrosekundės (1400); skaitmeninis rašymas (siųsti_kodas_pin, HIGH); delsa Mikrosekundės (700); ) else ( digitalWrite(send_code_pin, LOW); // nulis delsosMikrosekundės(700); digitalWrite(send_code_pin, HIGH); delayMicroseconds(1400); ) ) digitalWrite(send_code_pin, LOW); // bandomojo laikotarpio vėlavimasMicroseconds(25200); ) ) //delay(10000); apibrėžę kodą, nustatykite delsą)
Visų galimų variantų perėjimas užtruko apie 1 savaitę, atsižvelgiant į vieną išėjimą per dieną iki užtvaros. Greito teisingo kodo pasirinkimo technika buvo labai paprasta. Naudojant komandą mikros () nustatė vieno kodo perdavimo laiką. Tai buvo maždaug 0,25 sekundės. Visas laikas, per kurį reikia pereiti visas parinktis, yra apie 17 minučių. Priešais užtvarą paleidau Arduino ir pasižymėjau laiką. Maždaug 12,5 minutės barjeras atsidarė. Remdamasis tuo, iš karto atmečiau pirmuosius 2800 variantų. Ir taip toliau. Kai liko apie 30 variantų, po kiekvieno duomenų perdavimo nustatydavau 1 sekundės delsą. Kadangi duomenų perdavimo kontaktą įdiegiau kaip 13-ą (su LED lempute), buvo matomas kiekvienas perdavimo momentas, suskaičiavau ir nustačiau tikslų kodą.
Tai viskas! Kaip demonstracinis - skrodimo vaizdo įrašas.
Kartais reikia užmegzti belaidį ryšį tarp įrenginių. Pastaruoju metu šiam tikslui vis dažniau pradėti naudoti Bluetooth ir Wi-Fi moduliai. Tačiau vienas dalykas yra perkelti vaizdo įrašus ir didelius failus, o kitas dalykas yra valdyti mašiną ar robotą 10 komandų. Kita vertus, radijo mėgėjai dažnai kuria, koreguoja ir perdaro imtuvus ir siųstuvus, kad veiktų su jau paruoštais komandų kodavimo įrenginiais/dekoderiais. Abiem atvejais galite naudoti gana pigius RF modulius. Jų darbo ir naudojimo ypatybės po pjūviu.
Atlikime nedidelį eksperimentą: prijunkite maitinimą prie siųstuvo GND ir VCC kontaktų. DATA kaištis yra prijungtas prie VCC per mygtuką arba trumpiklį. Taip pat jungiame maitinimą prie imtuvo GND ir VCC kontaktų, jungiame ENABLE ir VCC tarpusavyje. Prie DATA išvesties (geriausia per rezistorių) prijungiame šviesos diodą. Kaip antenas naudojame bet kokį tinkamą 1/4 bangos ilgio laidą. Diagrama turėtų atrodyti taip:
Iš karto įjungus imtuvą ir (arba) įjungus įtampą, šviesos diodas turi užsidegti ir degti nuolat (gerai arba beveik nuolat). Paspaudus siųstuvo mygtuką, šviesos diodui nieko nenutinka – jis šviečia toliau. Kai atleisite mygtuką, šviesos diodas mirksės (užgęsta ir vėl užsidega) ir toliau švies. Dar kartą paspaudus ir atleidus mygtuką, viskas turėtų kartotis. Kas ten vyko? Kai imtuvas buvo įjungtas, siųstuvas buvo miego būsenoje, imtuvas nerado normalaus signalo ir pradėjo priimti visokį triukšmą, atitinkamai ir išėjime atsirado visokių triukšmų. Iš akies neįmanoma atskirti nuolatinio signalo nuo triukšmo ir atrodo, kad šviesos diodas šviečia nuolat. Paspaudus mygtuką, siųstuvas išeina iš užmigdymo režimo ir pradeda siuntimą, imtuvo išvestyje pasirodo logiškas „1“ ir šviesos diodas šviečia tikrai nenutrūkstamai. Atleidus mygtuką, siųstuvas perduoda loginį „0“, kurį gauna imtuvas, o jo išvestyje taip pat pasirodo „0“ - šviesos diodas galiausiai užgęsta. Tačiau po 70 ms siųstuvas pamato, kad jo įėjime vis dar yra tas pats „0“ ir užmigo, nešlio dažnio generatorius išsijungia ir imtuvas pradeda gauti visokį triukšmą, triukšmą išėjime - užsidega LED vėl.
Iš to, kas išdėstyta aukščiau, darytina išvada, kad jei signalo siųstuvo įėjime nėra mažiau nei 70 ms ir jis yra teisingame dažnių diapazone, moduliai elgsis kaip įprastas laidas (kol kas nekreipiame dėmesio į trikdžius ir kitus signalus ).
Radijo moduliai: siųstuvas (FS1000A) ir imtuvas (MX-RM-5V) - yra skirti duomenims perduoti radijo kanalu nelicencijuotu 433,920 MHz dažniu, kuris patenka į LPD433 (Low Power Device) diapazoną, skirtą mažos galios įrenginiams.
Jei norite lengvai prisijungti prie Arduino, naudokite arba .
Siųstuvas yra prijungtas prie bet kokių kontaktų, o imtuvo jungtis priklauso nuo naudojamos bibliotekos tipo:
Pirmasis bet kurio imtuvo stiprintuvas ir paskutinis bet kurio siųstuvo stiprintuvas yra antena. Paprasčiausia antena yra plakta antena (tam tikro ilgio vielos gabalas). Antenos (ir imtuvo, ir siųstuvo) ilgis turi būti kartotinis nešlio dažnio bangos ilgio ketvirtadaliu. Tai yra, plaktinės antenos gali būti ketvirčio bangos (L/4), pusės bangos (L/2) ir lygios bangos ilgiui (1L).