Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • shtëpi
  • Këshilla
  • Arduino: telekomandë dhe marrës infra të kuqe. Kontrollimi i arduino me telekomandë IR

Arduino: telekomandë dhe marrës infra të kuqe. Kontrollimi i arduino me telekomandë IR

Ka shumë artikuj në internet se si të krijoni telekomandën tuaj duke përdorur Arduino, por më duhej një telekomandë universale për të kontrolluar televizorin tim dhe luajtësin e mediave. Avantazhi kryesor i im telekomandë universale Problemi është se butonat në aplikacionin e telefonit Android janë me qëllime të dyfishta, por shikoni videon.



Telekomanda është shumë e përshtatshme në atë që pothuajse të njëjtat butona në ekran përdoren për të kontrolluar televizorin dhe luajtësin. Një ndryshim është se " AV"në modalitetin e kontrollit të televizorit ndryshon në një buton" " (ndaloni) kur kaloni në modalitetin e kontrollit të luajtësit. Fotografitë tregojnë dy mënyra, në të majtë është modaliteti i kontrollit të televizorit, në të djathtë është modaliteti i kontrollit të luajtësit.

Epo, tani do t'ju tregoj pak për krijimin e një telekomande të tillë. Për pajisjen përdora telekomandën për televizorin ERGO dhe telekomandën për media playerin DUNE HD TV101W.

Për të marrë të dhëna nga telekomanda që përdora sensor infra të kuqe TSOP1138 (analoge me TSOP4838) ndezur frekuenca e funksionimit 38 kHz dhe e lidhi atë me tabelën Arduino sipas diagramit:

Kjo skicë nuk do të nevojitet për të përcaktuar kodimin e transmetimit të të dhënave dhe për të lexuar kodin e butonave të telekomandës.

Në skicën në rreshtin int RECV_PIN = 11; tregoni numrin tonë të pinit 4

Pas ngarkimit të skicës, hapni "monitorin e portit" dhe, duke shtypur butonat e telekomandës, shikoni të dhënat e marra.

Figura tregon një shembull të skanimit të butonit të ndezjes nga telekomanda e televizorit dhe telekomanda e luajtësit. Tani krijojmë një tabelë për kodet e butonave.

E mora si në foton e mësipërme. Nën mbishkrimin TV Kodet e butonave të telekomandës së televizorit; nën mbishkrim Lojtar- kodet nga telekomanda e luajtësit të mediave.

Tani ne shkëputim marrësin tonë të sinjalit infra të kuqe nga bordi Arduino dhe e lidhim atë me të Moduli Bluetooth HC-05 dhe LED infra të kuqe sipas diagramit në foto.

Pas kësaj, ne kalojmë drejtpërdrejt në skicë.

Skicë

#përfshi IRsend irsend; int y = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) nëse (x == 50) ( y = 2; ) nëse (y == 1) ( // kodet e butonave për telekomandën e televizorit nëse (x == 97) ( irsend.sendNEC(0x807F08F7, 32); vonesë(40 ) nëse (x == 98) (irsend.sendNEC (0x807FA857, 32); vonesë (40); ) nëse (x == 99) (irsend.sendNEC (0x807F708F, 32); vonesë (40); ) nëse (x == 100) ( irsend.sendNEC(0x807FF00F, 32); vonesë(40); ) nëse (x == 101) (irsend.sendNEC(0x807F30CF, 32); vonesë(40); ) nëse (x == 102) ( irsend.sendNEC(0x807FB04F, 32); vonesë (40); ) nëse (x == 103) (irsend.sendNEC(0x807F9867, 32); vonesë (40); ) nëse (x == 104) (irsend .sendNEC(0x807F58A7, 32) if (x == 105) (irsend.sendNEC(0x807F38C7); vonese(40); ) ( irsend.sendNEC(0x807F48B7, 32); vonesë (40); ) nëse (x == 108) (irsend.sendNEC(0x807FB847, 32); vonesë (40); nëse (x == 109) (irsend.sendNEC (0x807F6897, 32); vonesa (40); ) ) nëse (y == 2) ( //kodet e butonave të telekomandës së luajtësit të mediave nëse (x == 97) (irsend.sendNEC(0xFDC23D, 32); vonesë(40); ) nëse (x == 98) ( irsend. sendNEC(0xFDE01F, 32); vonesë (40); nëse (x == 99) (irsend.sendNEC(0xFD18E7, 32); vonesë (40); ) nëse (x == 100) (irsend.sendNEC( 0xFDE817, 32, vonesë (40) nëse (x == 101) (irsend.sendNEC (0xFDA857, 32); vonesë (40); ) nëse (x == 102) (irsend.sendNEC (0xFD6897, 32) vonesë (40) nëse (x == 103) (irsend.sendNEC (0xFDA857, 32); vonesë (40); ) nëse (x == 105) (irsend.sendNEC (0xFDE817, 32); vonesë (40); ) nëse (x == 106) (irsend.sendNEC (0xFD18E7, 32); vonesë (40); ) nëse (x == 107) ( irsend.sendNEC(0xFD9867, 32); vonesë (40); ) nëse (x == 108) (irsend.sendNEC(0xFD28D7, 32); vonesë (40); ) nëse (x == 109) ( irsend.sendNEC(0xFD20DF, 32); vonesë (40); ) ) )


Në skicë do t'ju duhet të redaktoni kodet e butonave, përkatësisht në rreshtat:

Nëse (x == 97) (irsend.sendNEC(0x807F08F7, 32); vonesë (40);
Ndrysho vlerën 807F08F7 në:

Nëse (y == 1) ( //kodet e butonave për telekomandën e televizorit nëse (x == 97) (irsend.sendNEC(0x12345678, 32); vonesë (40); )
Ku 12345678 është kodi për butonin tuaj.

Pas redaktimit të skicës duke përdorur kodet tuaja të butonave, ngarkoni skicën në Pllaka Arduino dhe vazhdoni me instalimin e aplikacionit në telefonin tuaj.

Ne aktivizojmë Bluetooth-in në telefon, kërkojmë pajisjen tonë, krijojmë një çift dhe më pas hapim aplikacionin Pult në telefon.

Në fillim do të kemi një ekran me të kuqe ikonë bluetooth në këndin e poshtëm djathtas, që tregon se nuk jemi të lidhur me pajisjen tonë.

Pas kësaj, klikoni në këtë ikonë. Ne duhet të shohim një dritare me një listë të të gjitha të disponueshme pajisje bluetooth, ku zgjedhim pajisjen tonë për t'u lidhur.

Tani jemi kthyer sërish ekrani kryesor dhe ne tashmë mund të kontrollojmë televizorin:

Për të kaluar në modalitetin e kontrollit, duhet të shtypim butonin e etiketuar "Lojtar". Siç thashë më herët, butoni ynë i emërtuar "AV" do të ndryshojë në një buton " ":

Për t'u shkëputur nga pajisja jonë, thjesht mbani të shtypur butonin "Power" për disa sekonda.

Epo, disa foto të pajisjes sime të përfunduar.

Doli mjaft mirë, me sa duket. Pres komente për artikullin.

Në këtë mësim do të shikojmë lidhjen e një marrësi IR me Arduino. Ne do t'ju tregojmë se cila bibliotekë duhet të përdoret për marrësin IR dhe do të demonstrojmë një skicë për testimin e funksionimit të marrësit infra të kuqe nga telekomanda telekomandë dhe analizoni komandat në C++ për të marrë sinjalin. Le të vërejmë menjëherë se sensori IR Arduino nuk është i përshtatshëm për çdo telekomandë, frekuenca e sinjalit mund të ndryshojë.

Pajisja e marrësit IR. Parimi i funksionimit

Marrësit e rrezatimit infra të kuqe tani përdoren gjerësisht në Pajisje shtëpiake, falë çmim i përballueshëm, thjeshtësia dhe lehtësia e përdorimit. Këto pajisje ju lejojnë të kontrolloni pajisjet duke përdorur një telekomandë dhe mund të gjenden në pothuajse çdo lloj pajisjeje. Por pavarësisht kësaj, moduli Bluetooth gradualisht po fiton gjithnjë e më shumë popullaritet.

Parimi i funksionimit të një marrësi IR. Përpunimi i sinjalit nga telekomanda

Marrësi IR në Arduino është i aftë të marrë dhe përpunojë një sinjal infra të kuqe në formën e pulseve të një kohëzgjatjeje dhe frekuence të caktuar. Përdoret në prodhimin e sensorit të pengesave dhe gjetësit të rrezes për Arduino. Zakonisht marrësi IR ka tre këmbë dhe përbëhet nga elementet e mëposhtëm: Fotodiodë PIN, përforcues, filtër brez-pass, detektor amplitudë, filtër integrues dhe transistor dalës.

Nën ndikimin e rrezatimit infra të kuqe në një fotodiodë, e cila ka ndërmjet fq Dhe n rajonet krijuan një rajon shtesë të gjysmëpërçuesit ( i-rajon), rryma fillon të rrjedhë. Sinjali shkon në një përforcues dhe më pas në një filtër brezpass, i cili është i akorduar në një frekuencë fikse: 30; 33; 36; 38; 40 dhe 56 kilohertz dhe mbron marrësin nga ndërhyrjet. Ndërhyrjet mund të shkaktohen nga çdo pajisje shtëpiake.

Në mënyrë që sinjali nga telekomanda të merret nga marrësi IR Arduino, telekomanda duhet të jetë në të njëjtën frekuencë siç është vendosur filtri në marrësin IR. Prandaj, jo çdo telekomandë do të funksionojë. Ju duhet të zgjidhni një marrës IR dhe një transmetues IR me të njëjtën frekuencë. Pas filtrit, sinjali shkon në një detektor amplitudë që integron filtrin dhe transistorin e daljes.

Si të lidhni një marrës IR me Arduino

Kutitë e marrësve infra të kuqe përmbajnë një filtër optik për të mbrojtur pajisjen nga fushat e jashtme elektromagnetike ato janë bërë në një formë të veçantë për të fokusuar rrezatimin e marrë në një fotodiodë. Për të lidhur marrësin IR me Arduino UNO, përdoren tre këmbë, të cilat janë të lidhura me - GND, 5V dhe A0. Ne rekomandojmë fillimin e përdorimit të 3,3 volt, në mënyrë që të mos digjet sensori IR gjatë konfigurimit.

Për këtë mësim do të na duhen detajet e mëposhtme:

  • Pllaka Arduino Uno / Arduino Nano / Arduino Mega;
  • dërrasë për bukë;
  • marrës IR;
  • telekomandë;
  • 1 LED dhe rezistencë 220 Ohm;
  • telat mashkull-mashkull dhe mashkull-femër.

Diagrami i lidhjes së marrësit IR me portën analoge Arduino

Lidhni marrësin IR sipas diagramit të paraqitur më sipër dhe lidhni LED-të me kunjat 12 dhe 13. Përpara se të shkarkoni programin, do t'ju duhet të instaloni bibliotekën IRremote.h, nëse nuk është instaluar tashmë. Kjo bibliotekë nuk zbatohet për bibliotekat standarde mjedise programuese Arduino IDE. Ju mund të shkarkoni bibliotekën IRremote.h dhe skicën e përfunduar në një arkiv nga Google Drive lidhje .

Skicë për marrësin IR Arduino:

#përfshi // lidhni bibliotekën për marrësin IR IRrecv irrecv(A0); // tregoni pinin me të cilin është lidhur marrësi IR rezultatet e deshifrimit të rezultateve; konfigurimi i pavlefshëm () // konfigurimi i procedurës (irrecv.enableIRIn (); // filloni të merrni një sinjal infra të kuqe pinMode (13, OUTPUT); // pin 13 do të jetë dalja pinMode (12, OUTPUT); // pin 12 do të jetë dalja pinMode (A0, INPUT); // pin A0 do të jetë hyrja (eng. "input") Seriali.fillim(9600); // lidhni monitorin e portit) void loop () // cikli i procedurës ( if (irrecv.deshifroj (&rezultatet)) // nëse të dhënat kanë mbërritur, ekzekutoni komandat( Serial.println (rezultatet.vlera); // dërgoni të dhënat e marra në port // ndezni dhe fikni LED-të, në varësi të sinjalit të marrë if (results.value == 16754775) ( digitalWrite (13, LARTË); ) if (results.value == 16769055) ( digitalWrite (13, LOW); ) if (results.value == 16718055) ( digitalWrite (12, I LARTË ) nëse (rezultatet.vlera == 16724175) (Dixhital Shkruani (12, ULËT); ) irrecv.rinisë (); // pranoj sinjali i radhës në marrësin IR } }

Shpjegime për kodin:

  1. Biblioteka IRremote.h përmban një grup komandash dhe ju lejon të thjeshtoni skicën;
  2. Deklarata decode_results i cakton rezultatet e emrit të ndryshores sinjaleve të marra nga telekomanda.

Sensori IR mund të përdoret në shumë pajisje në mikrokontrolluesin Arduino, duke përfshirë telekomandimin e një servo drive në Arduino nga një marrës IR. Kur konfiguroni, duhet të ndizni monitorin Porti Arduino IDE dhe zbuloni se çfarë sinjali dërgohet nga ky apo ai buton në telekomandë. Kodet që rezultojnë duhet të përdoren në skicë pas shenjës së barazimit të dyfishtë në kushtet if().

Gjithashtu lexoni shpesh:

Marrës IR dhe telekomandë infra të kuqe - mënyra më e zakonshme dhe më e lehtë për të kontrolluar pajisje elektronike. Spektri i rrezatimit infra të kuq nuk është i dukshëm për syrin e njeriut, por ai merret në mënyrë të përsosur nga marrës IR që janë të integruar në pajisjet elektronike. Modulet e largëta Arduino ir përdoren për kontroll teknika të ndryshme në vijën e shikimit.

Përdorimi i gjerë i emetuesve IR është bërë i mundur për shkak të kostos së tyre të ulët, thjeshtësisë dhe lehtësisë së përdorimit. Rrezatimi IR shtrihet në rangun nga 750 në 1000 mikron - kjo është pjesa më e afërt e spektrit me dritën e dukshme. Në rajonin e rrezatimit infra të kuq, vetitë optike mund të ndryshojnë materiale të ndryshme. Disa gota, për shembull, bëhen të errët ndaj rrezeve IR, ndërsa parafina, përkundrazi, është transparente në spektrin IR.

Rrezatimi regjistrohet duke përdorur materiale të veçanta fotografike, në bazë të të cilave bëhen marrës. Përveç trupave të nxehtë (Dielli, llambat inkandeshente ose qirinjtë), burimi i rrezatimit infra të kuqe mund të jenë pajisjet e gjendjes së ngurtë - LED IR, lazer. Rrezatimi në rrezen infra të kuqe ka një sërë veçorish që i bëjnë ato të përshtatshme për t'u përdorur në telekomandat:

  • Emituesit e gjendjes së ngurtë (IR LED) janë të lirë dhe kompakt.
  • Rrezet infra të kuqe nuk perceptohen ose zbulohen nga syri i njeriut.
  • Marrësit IR janë gjithashtu të lirë dhe të vegjël në madhësi.
  • Ndërhyrje e ulët pasi transmetuesi dhe marrësi janë të sintonizuar në të njëjtën frekuencë.
  • Në mungesë Ndikim negativ mbi shëndetin e njeriut.
  • Reflektim i lartë nga shumica e materialeve.
  • Emituesit IR nuk ndikojnë në funksionimin e pajisjeve të tjera.

Telekomanda funksionon si më poshtë. Kur shtypni butonin, sinjali kodohet në dritën infra të kuqe, marrësi e merr atë dhe kryen veprimin e kërkuar. Informacioni është i koduar si një sekuencë logjike e paketave të pulsit me një frekuencë të caktuar. Marrësi merr këtë sekuencë dhe demodulon të dhënat. Për të marrë një sinjal, përdoret një mikroqark që përmban një fotodetektor (fotodiodë), amplifikues, një filtër brezi, një demodulator (një detektor që ju lejon të izoloni zarfin e sinjalit) dhe një tranzistor dalës. Gjithashtu ka filtra - elektrikë dhe optikë. Pajisjet e tilla funksionojnë në një distancë deri në 40 metra. Metoda IR e transmetimit të të dhënave ekziston në shumë pajisje: Pajisje shtëpiake, në pajisje industriale, kompjuterë, linja me fibra optike.

Marrës IR Arduino

Për të lexuar sinjalin IR, do t'ju duhet vetë bordi Arduino, një tabelë, një marrës sinjali IR dhe kërcyes. Ka një numër të madh marrësish të ndryshëm, por është më mirë të përdorni TSOP312 ose të tjerë të përshtatshëm për Arduino. Të dhënat nga telekomanda te marrësi mund të transmetohen nëpërmjet protokollit RC5 ose NEC.

Për të përcaktuar se cila këmbë i përket, duhet të shikoni sensorin nga ana e marrësit. Pastaj në marrës kontakti qendror është i tokëzuar, në të majtë është dalja në mikrokontrollues, në të djathtë është fuqia.

Për lehtësi, mund të përdorni module të gatshme marrës IR.

Lidhja e marrësit IR me Arduino

Daljet e marrësit IR janë të lidhura me Arduino me GND, 5V dhe hyrje dixhitale. Diagrami për lidhjen e sensorit me pinin e 11-të dixhital është paraqitur më poshtë.

Kështu duket qarku me modulin e marrësit infra të kuqe:


Bibliotekat për të punuar me IR

Për të punuar me pajisjet IR, mund të përdorni bibliotekën IRremote, e cila thjeshton ndërtimin e sistemeve të kontrollit. Ju mund ta shkarkoni bibliotekën. Pas shkarkimit, kopjoni skedarët në dosjen \arduino\libraries. Për t'u lidhur me skicën tuaj, duhet të shtoni biblioteka skedari i kokës#përfshi .

Për të lexuar informacionin, përdorni shembullin IRrecvDumpV2 nga biblioteka. Nëse telekomanda ekziston tashmë në listën e atyre të njohura, atëherë skanimi nuk kërkohet. Për të lexuar kodet, duhet të hapni ARduino IDE dhe të hapni shembullin IRrecvDemo nga IRremote.

Ekziston një bibliotekë e dytë për të punuar me sinjale IR - kjo është IRlib. Në funksionalitet është i ngjashëm me atë të mëparshëm. Krahasuar me IRremote, IRLib ka një shembull për përcaktimin e frekuencës së një sensori IR. Por biblioteka e parë është më e thjeshtë dhe më e përshtatshme për t'u përdorur.

Pas ngarkimit të bibliotekës, mund të filloni të lexoni sinjalet e marra. Për këtë përdoret kodi i mëposhtëm.

Operatori decode_results nevojitet për të caktuar rezultatet e emrit të ndryshores në sinjalin e marrë.

Në kod ju duhet të rishkruani "HEX" në "DEC".

Pastaj, pasi të keni ngarkuar programin, duhet të hapni monitorin serial dhe të shtypni butonat në telekomandë. do të shfaqet në ekran kode të ndryshme. Ju duhet të bëni një shënim që tregon se me cilin buton korrespondon kodi i marrë. Është më i përshtatshëm për të regjistruar të dhënat e marra në një tabelë. Ky kod më pas mund të shkruhet në program në mënyrë që pajisja të mund të kontrollohet. Kodet shkruhen në kujtesën e vetë bordit Arduino EEPROM, gjë që është shumë e përshtatshme, pasi nuk keni nevojë të programoni butonat sa herë që ndizni telekomandën.

Ndodh që kur ngarkoni një program, shfaqet gabimi "TDK2 nuk u deklarua në fushën e tij". Për ta rregulluar atë, duhet të shkoni te Explorer, të shkoni te dosja në të cilën është instaluar aplikacioni Arduino IDE dhe të fshini skedarët IRremoteTools.cpp dhe IRremoteTools.h. Pas kësaj, duhet të ringarkoni programin në mikrokontrollues.

konkluzioni

Përdorimi i telekomandës Arduino ir e bën jetën më të lehtë për përdoruesin. Mund të veprojë si telekomandë celular, tabletë ose kompjuter - gjithçka që ju nevojitet është softuer special. Duke përdorur Arduino, ju mund të centralizoni të gjithë kontrollin. Me një buton në telekomandë mund të kryeni disa veprime njëherësh - për shembull, ndizni televizorin dhe Blu-Ray në të njëjtën kohë.

Çdo shtëpi ka një telekomandë televizori ose një telekomandë tjetër. Kjo pajisje ju lejon të kontrolloni çdo pajisje nga një distancë, gjë që është shumë e përshtatshme. Nuk ka nevojë të humbni kalori të çmuara dhe të bëni lëvizje të panevojshme. Nëse keni ndonjë pajisje dhe dëshironi ta kontrolloni atë nga distanca, atëherë mund ta kontrolloni këtë pajisje në distancë. Nëse dëshironi, mund të bëni një telekomandë me duart tuaja, por nuk ka nevojë për këtë dhe kjo është një histori tjetër. Pse mund të keni nevojë për telekomandë?! - është e thjeshtë:

Përtacia është një cilësi që na detyron të bëjmë përpjekje të mëdha për të ulur kostot e përgjithshme të energjisë.

Për herë të parë, telekomanda në veprim iu shfaq botës nga shpikësi Nikola Tesla në 1898, në një ekspozitë në Madison Square Garden, ai prezantoi një varkë të kontrolluar me radio të quajtur "teleautomatike". Sot, kjo teknologji është bërë e përhapur, vetëm më shumë menyra te ndryshme transmetimi i komandave (kanali i komunikimit).

Kanalet kryesore të komunikimit përfshijnë:

  • Kanali radiofonik
  • Tejzanor
  • Infra të kuqe

Në këtë artikull do të flasim për kontrollin e pajisjes me një telekomandë infra të kuqe. Rrezatimi infra i kuq - rrezatimi elektromagnetik, duke zënë rajonin spektral midis skajit të kuq të dritës së dukshme dhe rrezatimi me mikrovalë. Rrezatimi infra i kuq nuk është i dukshëm për syrin e njeriut, por mund të shihet me një aparat fotografik ose videokamerë. Kështu kontrollojnë shpesh funksionalitetin e telekomandës së televizorit në shtëpi.

Sa kohë më parë punë e vjetër Mora telekomandën dhe “peephole” (marrësin IR) nga sistemi i sigurisë që po hiqej, ai qëndroi boshe për një kohë të gjatë dhe më në fund arrita ta kontrolloj atë në funksion.

Pasi e çmontova këtë marrës, pashë një truk në këtë "sy" 4 marrës IR ishin ngjitur së bashku. Kjo është bërë për të marrë valë IR nga katër anët. Dhe është e përshtatshme, nuk keni nevojë të kufizoni veten në një kënd të caktuar pritjeje.

Unë gjithashtu skicova një qark të ngjashëm me katër marrës, në rast se më nevojitet. Kam përdorur marrës TSOP1836 IR, por ju mund të përdorni të tjerë. Për të siguruar marrjen 360 gradë, duhet të zgjidhni marrës të përshtatshëm IR (me kënd të gjerë marrjeje) dhe t'i vendosni sa më afër njëri-tjetrit. Nuk vura re ndonjë problem me pritjen me marrësit e mi. E shtova edhe në bashkëngjitje bordi i qarkut të printuar dhe renditja e elementeve.

Për të përpunuar komandat do të përdor natyrshëm arduino uno, mund të përdoret si marrës IR
TSOP34836 (ka një gamë të lartë pritjeje, por është më e shtrenjtë) ose TL1838. Mund të marrësh çdo telekomandë IR, madje edhe nga një televizor. Epo, nëse keni nevojë për telekomandën tuaj, mund të blini një çantë për arduino.

Parimi i funksionimit:
Kur shtypni një buton në telekomandë, ai dërgon kodin e butonit në dritën infra të kuqe, pas së cilës marrësi merr këtë kod butonin dhe e dërgon atë tek aktivizuesi, i cili, në varësi të butonit, do të kryejë një veprim të caktuar.

Ju gjithashtu mund të përdorni valët IR për të transmetuar informacion në distancë e shkurtër. Për të transmetuar komandat ose informacionin tuaj, mund të përdorni një arduino të dytë me një transmetues IR. Por shpejtësia e një transmetimi të tillë është shumë e ngadaltë. Përparësitë e kanalit infra të kuqe përfshijnë pandjeshmërinë ndaj ndërhyrjeve elektromagnetike.

Për të marrë sinjale arduino IR, ne do të lidhim marrësin IR si më poshtë:

Ju lutemi vini re se vendndodhja e këmbëve të marrësit mund të ndryshojë.


Marrësi ka 3 këmbë, furnizimin me energji "+" dhe "-" (kryesisht tension 3.3-5V) dhe pjesa e të dhënave është ajo që transmeton informacionin në pajisje (në rastin tonë, arduino). Tensioni i furnizimit për TSOP34836 është 2.7-5.5 volt. Unë do të përdor 5 volt nga dalja standarde e arduino.

Epo, sigurisht që keni nevojë për firmware për arduino. Algoritmi i funksionimit do të jetë si më poshtë: kur klikoni mbi butoni i sipërm Telekomanda arduino ndez stafetën dhe kur shtypet përsëri, e fiket atë. Duke përdorur këtë stafetë, mund të ndizni, për shembull, dritën e prapme, por nuk është e nevojshme të programoni një shtypje butoni në stafetë, mund të nxirrni një komandë në kompjuter ose të kryeni një operacion të caktuar në arduino, etj.
Për të thjeshtuar punën, ne do të përdorim një bibliotekë të gatshme. Kodi i firmuerit:

#përfshi int RECEIVE_PIN = 11;//kontakti i marrësit int RELAY_PIN = 3;//kontakti rele IRrecv irrecv(RECEIVE_PIN);//cakto rezultatet e dekodimit të rezultateve të pinit të marrësit;//të dhënat e marra

konfigurimi i zbrazët () (
Seriali.fillim(9600);
irrecv.enableIRIn(); // ndez marrësin
pinMode (RELAY_PIN, OUTPUT); // konfiguroni rele për dalje
DigitalWrite(RELAY_PIN,HIGH); //cakto vlerën e lartë
}

void loop() (
nëse (irrecv.dekodoni(&rezultatet)) (//nëse merren të dhënat
Serial.print ("0x");
Serial.println(results.value, HEX);// nxjerr mesazhin e marrë në terminal
nëse ((results.value == 0x8FF40BF) ||(results.value == 0xD72040BF)) digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));//nëse kodi i butonit është i kundërt 0x8FF40BF ose 0xB0F jepni për të ndryshuar përsëritjen
vonesë (200) // vonesë nga aktivizimi i dyfishtë
irrecv.resume();// Merrni vlerën tjetër
}
}

Më lejoni të shpjegoj pak me skicën:



nëse ((rezultatet.vlera == 0x8FF40BF) ||(rezultatet.vlera == 0xD72040BF))

Vlera që rezulton krahasohet me "0x8FF40BF" dhe "0xD72040BF" - këto janë kodet e butonave në sistemi heksadecimal llogaritje. Dy kuptime vetëm sepse përdor dy telekomandë me kode unike.



digitalWrite(RELAY_PIN, !DixhitalLeximi(RELAY_PIN));

Procedura standarde regjistrim dixhital pin përveç "!digitalRead(RELAY_PIN)". Shenjë "!" tregon përmbysjen, në rastin tonë përmbysja e gjendjes së daljes dixhitale "RELAY_PIN".



Serial.print ("0x");
Serial.println(results.value, HEX);// nxjerr mesazhin e marrë në terminal

Këto linja nxjerrin të gjitha kodet e marra në terminal. NË programi i punës kjo është e panevojshme, por duhet ta zbuloni kodi i kërkuar një buton ose një tjetër. Kjo do të thotë, së pari ngarkojmë skicën në Arduino, shkojmë në terminal dhe duke klikuar në butonin do të marrim kodin e dëshiruar.


Gjithashtu në bibliotekën IRremote ka disa shembuj të ndryshëm, të cilat mund të jenë të dobishme.


Në bashkëngjitjen e artikullit:


  • skicë për arduino

  • PCB për 4 sensorë

Në mënyrë tipike, telekomandat për një televizor, kuti kabllore, Blu-ray player dhe sistemet stereo jo vetëm që zënë hapësirë, por edhe e bëjnë të vështirë menaxhimin e të gjitha atyre pajisjeve. Ju mund të konsideroni blerjen e një telekomandë universale, por ato zakonisht janë të shtrenjta dhe ndonjëherë nuk ofrojnë nivelin e kontrollit ose ndërfaqen që ju nevojitet. Ky projekt krijon një pajisje që mund të dërgojë dhe të marrë kode të telekomandës nga një faqe standarde në internet. Ju mund të programoni funksionalitetin e kërkuar nga çdo smartphone ose kompjuter!

Ky projekt përdor Moduli Arduino Yún, i cili është krijuar posaçërisht për të menaxhuar pajisjet që mbështesin lidhje rrjeti. Yún ka dy procesorë, i pari prej të cilëve drejton sistemin operativ Sistemi Linux dhe mund të lidhet me kabllo ose rrjeti pa tel. Procesori i dytë kryen të njëjtat funksione si procesori në modulin Arduino Leonardo. Prandaj, siguron përputhshmëri të mirë me bibliotekat dhe harduerin Arduino.

Ky projekt përdor një LED infra të kuqe dhe një marrës për të dërguar dhe marrë sinjale të telekomandës. Drita infra e kuqe është e padukshme për syrin e njeriut, por zbulohet lehtësisht nga sensorët elektronikë. Për transmetim më të besueshëm të sinjalit, pajisjet përdorin dritë të moduluar infra të kuqe, e cila eliminon mundësinë e marrjes së sinjaleve false. Marrës infra të kuqe- Kjo pajisje e vogël, e cila merr sinjale infra të kuqe, i moduluar në një frekuencë specifike, zakonisht 38 kHz. Duke përdorur këtë marrës, moduli Arduino përcakton pjesët e informacionit që dërgohen nga paneli i kontrollit.

Dërgimi i komandave tek ju qendër multimediale do të kryhet duke përdorur ndërfaqe e thjeshtë në internet, i cili funksionon në nivel lokal në modulin Yún dhe është i disponueshëm për shumicën e shfletuesve modernë të internetit. Faqja e internetit e bën më të lehtë punën e menaxhimit pajisje infra të kuqe dhe ju lejon të përpunoni edhe disa komanda në të njëjtën kohë. Për shembull, shtypja e butonit "Shiko filmin" mund të dërgojë një sinjal për të ndezur televizorin, luajtësin Blu-ray dhe për ta lidhur atë me hyrjen e televizorit.

Ky projekt kërkon disa përvojë në drejtimin e skicave Arduino dhe përdorimin e mjeteve të linjës së komandës. Komponentët elektronikë projekti mund të instalohet në një tabelë.

Hapi # 1: Lidhja e komponentëve

  • Lidheni LED-in infra të kuqe me modulin Yún duke drejtuar një tel nga anoda LED (prijës së gjatë) në dalje dixhitale 13 module Yun.
  • Duke përdorur një rezistencë 100 ohm, lidhni katodën LED (plumbi më i shkurtër) me kutinë e tokëzimit të sensorit IR (kalimi i mesit të sensorit).
  • Lidhni pinin e zbulimit të sensorit infra të kuqe (spina më e majtë kur shikohet nga pjesa e përparme e sensorit) me pinin dixhital 11 të modulit Yún.
  • Lidhni kunjin e tokëzimit të sensorit infra të kuqe (gjilpërën e mesme) me kutinë e tokëzimit të modulit Yún.
  • Së fundi, lidhni prizën e fuqisë së sensorit (gjilpërën e djathtë kur shihet nga pjesa e përparme e sensorit) me kutinë 5 volt të modulit Yún.

Hapi # 2: Instaloni varësitë e softuerit

  • Kur futet Kartë MicroSD në modulin Yún, aktivizoni Yún duke u lidhur USB Micro Kabllo B në modulin Yún dhe Përshtatës USB të ushqyerit.
  • Sigurohuni që Yún të jetë konfiguruar dhe lidhur me rrjetin tuaj me valë. Konfigurimi i modulit Yún tregohet në këtë faqe.
  • Lidhu me linja e komandës Ju duke përdorur SSH. Ky proces përshkruar në këtë faqe.
  • Pasi të lidheni me vijën e komandës, do të shihni versionin e kodit të firmuerit. Ky projekt testuar me versionin BusyBox v1.19.4 nga 2014-04-10 dhe më lart. Nëse përdorni më shumë version i vjeter, më pas ndiqni udhëzimet e mëposhtme.
  • Në vijën e komandës, ekzekutoni komandat e mëposhtme për të përditësuar menaxherin e paketave:
përditësim opkg
  • Më pas, instaloni PIP, menaxherin e paketave Python:
opkg instaloni shpërndani && opkg instaloni python-openssl && opkg instaloni python-expat && easy_install pip

Ky proces zgjat disa minuta. Mund të shihni disa mesazhe paralajmëruese, por mund t'i shpërfillni ato.

  • Krijoni një direktori në kartën tuaj SD për të ruajtur paketat Python:
mkdir /mnt/sda1/python-packages
  • Instaloni kornizën Flask Python:
pip install --target /mnt/sda1/python-packages flask

Mund të shihni disa mesazhe paralajmëruese, por mund t'i shpërfillni ato.

  • Përditësoni shtegun e kërkimit për skedarët e paketës Python:
echo "eksporto PYTHONPATH=/mnt/sda1/python-packages" >> /etc/profile
  • Krijoni drejtori ku Arduino IDE do të ngarkojë skedarët e serverit në internet:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Rinisni Arduino Yún tuaj për të përditësuar rrugën e kërkimit të skedarëve Python.

  • Shkarkoni bibliotekën IR. (Arduino IRremote, bibliotekë e krijuar nga Ken Shirriff.)
    Hapni arkivin, riemërtoni dosjen me Arduino_ IRremote- mjeshtërArduino_ IRremote, dhe importoni dosjen Arduino_IRremote si bibliotekë në mjedis Zhvillimi i Arduino IDE. informacion i detajuar treguar
  • Ngarkoni skicën tuaj Telekomanda inteligjente Kontrolloni Arduino nga arkivi zip nga këtu.
    Hapni arkivin dhe tërhiqni dosjen SmartRemoteControl në dosjen me Skicë Arduino. Hapni skicën në Arduino IDE.
  • Përpiloni skicën dhe ngarkoni atë në modulin Yún përmes WiFi duke zgjedhur opsionin e duhur në listën e porteve Arduino Yún. Sigurohuni që të ngarkoni skicën përmes WiFi në mënyrë që skriptet e kërkuara të python të kopjohen në modulin Yún! Pasi të keni shkarkuar skicën, hapni Monitorin Serial në Mjedisi Arduino IDE (kjo mund të zgjasë disa minuta).
  • Drejtojeni telekomandën drejt sensorit infra të kuqe dhe shtypni disa butona në telekomandë. Ju duhet të shihni kodin në Monitorin Serial. Nëse kodi nuk shfaqet, atëherë kontrolloni lidhjet e qarkut të sensorit.

Hapi # 4: Konfiguro kodet e telekomandës

  • Tani mund të konfiguroni aktivitetet dhe kodet e telekomandës duke i lidhur me to skedar XML konfigurimet. Duke përdorur redaktori i tekstit, hapni skedarin aktivitetet. xml në një nëndrejtori www skico dosjet në kompjuterin tuaj. (Nga Arduino IDE, klikoni në menunë Sketch dhe zgjidhni "Trego dosjen e skicave").
  • Merrni parasysh formatin e operacioneve shembull në skedar. Çdo bllok operimi përcakton një emër atributi që do të shfaqet si një buton në faqen e internetit të telekomandës. Brenda çdo operacioni, blloku i kodeve përmban një sekuencë kodesh infra të kuqe që duhet të ekzekutohen. Në shembull, komanda Sony A90 (ndezja/fikja e energjisë) së pari ekzekutohet për të ndezur televizorin, më pas komanda Panasonic (ndezja/fikja) për të ndezur luajtësin Blu-ray. Çdo kod ka një parametër të vargut, i cili është dalja e drejtpërdrejtë e të dhënave të kodit të zbuluar në distancë nga skica e Arduino.
  • Shtoni komandat tuaja në skedar duke kopjuar shembullin dhe duke ndryshuar emrat dhe kodet. Kur telekomanda drejtohet nga sensori infra të kuqe, shtypni butonat dhe shkruani me kujdes sekuencën specifike të kodit infra të kuqe. Kopjoni sekuencën në konfigurimin e kodit optik.
  • Sapo të merrni skedari i kërkuar konfiguroni, ruani skedarin dhe ngarkoni sërish skicën në modulin Yún nëpërmjet WiFi. Për të përditësuar skedarin e konfigurimit, modifikoni skedarin dhe ngarkoni skicën përmes WiFi duke përdorur Arduino IDE.

Hapi # 5: Nisja e serverit me një ndërfaqe në internet

  • Për të nisur serverin, lidhni modulin Yún nëpërmjet SSH. Për të nisur serverin, ekzekutoni komandën e mëposhtme:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Kur serveri të fillojë me sukses, do të shihni mesazhin:
* Po funksionon në http://0.0.0.0:5000/ * Rinisja me ringarkuesin
  • Nëse shihni një gabim, atëherë kontrolloni të gjitha varësitë e instaluara në hapat e mëparshëm.
  • Në shfletuesin tuaj të internetit, shkruani http://arduino.local:5000/. Nëse shfletuesi nuk e mbështet URL-në mDNS (si Windows, Android dhe disa Shpërndarjet Linux) shkruani http:// arduino_ ip_ adresë:5000/, ku arduino_ ip_ adresëështë adresa IP e Arduino Yún tuaj. Adresa IP ndodhet në fund të Arduino IDE kur lidhni Yún (Figura 2).
  • Pasi të ngarkohet faqja, do të shihni një listë të veprimeve të konfiguruara të butonit. Nëse shihni një gabim, atëherë kontrolloni që varësitë të jenë instaluar saktë, skica të jetë ngarkuar dhe që serveri të funksionojë pa gabime.
  • Për të ndaluar serverin, klikoni kombinim Ctrl-C në dritaren komanduese në të cilën është nisur serveri.

Hapi # 6: Përdorimi i ndërfaqes në internet

  • Per perdorim telekomandë inteligjente drejtoni LED-in pajisjet elektronike dhe klikoni një nga butonat aktivë. Nëse pajisja e kërkuar nuk ndizet, provoni ta zhvendosni LED-in më pranë pajisjeve të kërkuara. Gama LED është e vogël, rreth 6 metra. Është e nevojshme të shtoni një transistor për të rritur gamën e LED. Ofrohet informacion i detajuar Këtu.
  • Ju gjithashtu mund të testoni kodet infra të kuqe duke hapur Yún Serial Monitor në Arduino IDE dhe duke dërguar kodin infra të kuqe si komandë. Për shembull, dërgimi i kodit "SONY: C A90" (pa thonjëza) do të bëjë që hardueri të dërgojë një komandë te duke ndezur Sony A90. ("C" përfaqëson bitin e gjatësisë së komandës, 12, të konvertuar në heksadecimal).
  • Për nisje automatike server kur ngarkoni, modifikoni skedarin / etj/ rc. lokal në modulin Yún (duke përdorur redaktuesin nano ose vi) dhe shtoni rreshti tjetër para me rreshtin "dalje 0" në fund:
PYTHONPATH=/mnt/sda1/python-packages python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Për njohjen e të folurit, vraponi Shfletuesi i Google krom. Klikoni butonin "Fol" dhe Shfletuesi Chrome do të kërkojë leje për të përdorur mikrofonin. Më pas thoni emrin e operacionit aktiv dhe prisni derisa të njihet. Për shembull, për të kryer operacionin "Filma", shtypni butonin "Fol" dhe thoni fjalën "Filma" në mikrofon. Fraza të tilla si "Play Movies" ose "Run Movies" nuk mbështeten - njihet vetëm emri i qartë i operacionit aktiv.

Artikujt më të mirë mbi këtë temë