Orodha ya maudhui:

UChip - Serial Over IR !: Hatua 4
UChip - Serial Over IR !: Hatua 4

Video: UChip - Serial Over IR !: Hatua 4

Video: UChip - Serial Over IR !: Hatua 4
Video: Гараж (4К, комедия, реж. Эльдар Рязанов, 1979 г.) 2024, Julai
Anonim
UChip - Serial Juu ya IR!
UChip - Serial Juu ya IR!
UChip - Serial Juu ya IR!
UChip - Serial Juu ya IR!

Mawasiliano ya wireless imekuwa jambo muhimu katika miradi yetu siku hizi na kuzungumza juu ya wireless, jambo la kwanza linalokuja akilini mwangu ni Wi-Fi au BT, lakini kushughulikia itifaki za mawasiliano za Wi-Fi au BT sio kazi rahisi na hutumia sana ya rasilimali za MCU, ikiacha nafasi ndogo ya kuweka alama kwenye programu yangu. Kwa hivyo, mimi huchagua moduli ya nje ya Wi-Fi / BT iliyounganishwa kwa mkondoni na microcontroller ili kugawanya majukumu na kupata uhuru wa juu.

Walakini, wakati mwingine Wi-Fi na BT "huzidi" kwa programu zingine zinazohitaji bitrate ya chini na umbali mfupi wa mawasiliano. Kwa kuongezea, kutumia Wi-Fi au BT inamaanisha umuhimu wa kuunganisha Smartphone yako au kifaa na uthibitishaji sahihi.

Fikiria kwamba unahitaji tu kuwasha / kuzima taa ya nje, au kubadilisha kiwango cha taa, au kufungua lango la umeme. Je! Itastahili kutumia Wi-Fi au BT?

Kulingana na mazingira na matumizi, mawasiliano ya wireless juu ya urefu wa IR (Infrared) inaweza kuwa karibu. Serial juu ya IR, iliyotekelezwa na vitu vichache vya nje (vifaa 3 vyenye tofauti!), Na uChip (bodi ndogo inayoweza kuendana na Arduino) inaweza kuwa suluhisho ambalo ulikuwa unatafuta!

Muswada wa Vifaa (kwa kifaa kimoja cha Tx-Rx):

1 x uChip

1 x IR LED: kuwa na kilele cha chafu katika 950nm

1 x TSOP-38238 (sawa)

1 x 1KOhm Mpingaji

Vifaa

1 x ubao wa mkate / bodi ya proto

1 x Tube Nyeusi ya Plastiki: kipenyo cha ndani saizi sawa na IR ya IR, bomba ni muhimu kuzuia mazungumzo ya kuvuka na mpokeaji wa TSOP.

1 x Alumini ya Foil (3cm x 3 cm)

1 x Tape

Kidokezo: Unaweza kutengeneza kifaa cha pekee-TX au cha-RX tu ikiwa unahitaji mawasiliano ya mwelekeo mmoja kwa kuondoa vifaa vya RX / TX visivyohitajika kutoka kwa mzunguko au kuwezesha / kulemaza nambari inayohusiana kwenye mchoro.

Hatua ya 1: Wiring

Wiring
Wiring
Wiring
Wiring
Wiring
Wiring

Waya vifaa pamoja kulingana na mpango.

Vidokezo vichache juu ya skimu rahisi. Kwa kuwa TSOP-38238 inaruhusu usambazaji wa umeme kutoka 2.5V hadi 5V na inachukua 0.45mA kabisa (utapata hati ya data hapa), nitakuwa nikimpa nguvu mpokeaji kwa kutumia pini mbili, ambazo zitatoa usambazaji wa ardhi na umeme mtawaliwa. Hii inaruhusu kuzima / kuzima mpokeaji kwa mahitaji na usanidi rahisi wa wiring wa vifaa. Kwa kuongezea, ikiwa unahitaji mawasiliano ya mwelekeo-mmoja unaweza kuchagua ikiwa utatengeneza kifaa cha (Tx / Rx) -kitu kwa kuzima / kuwezesha TSOP-38238.

Mzunguko hufanyaje kazi?

Ni rahisi sana. Pini ya pato ya TSOP imevutwa chini wakati sensorer inagundua treni ya kunde 6 au zaidi kwa 38KHz, kwa upande mwingine inavutwa juu wakati hakuna ishara kama hiyo. Kwa hivyo, ili kusambaza data ya serial juu ya IR, mzunguko hufanya nini kuwezesha anode ya LED na 38KHz PWM iliyosimamiwa na ishara ya serial ya TX ambayo inavuta chini cathode ya LED.

Kwa hivyo, kwa kiwango cha juu cha serial TX0, mwangaza haupendelei au upendeleo kwa nyuma (hakuna kunde) na pini ya pato la TSOP imevutwa juu. Kupeleka kiwango cha chini kwenye safu, LED inaendeshwa na hutoa kunde za IR ipasavyo na ishara ya PWM iliyotumiwa; kwa hivyo, pato la TSOP linavutwa chini.

Kwa kuwa usambazaji ni wa moja kwa moja (0-> 0 na 1-> 1) hakuna haja ya inverters au mantiki nyingine upande wa mpokeaji.

Ninasimamia nguvu ya pato la macho ya LED kwa kuchagua mzunguko wa ushuru wa PWM ipasavyo na programu tumizi. Kadiri mzunguko wa ushuru unavyoongezeka, nguvu ya pato la macho inaongezeka na kwa hivyo, zaidi utasambaza ujumbe wako.

Kumbuka kwamba bado tunahitaji kutoa kunde! Kwa hivyo, haupaswi kwenda juu ya mzunguko wa ushuru wa 90%, vinginevyo TSOP haitagundua ishara kama kunde.

Je! Unahitaji nguvu zaidi?

Ili kuongeza sasa, tunaweza kupunguza tu thamani ya kipinga 1kOhm?

Labda, usiwe unadai sana! Upeo wa sasa unaopata kutoka kwa pini ya MCU ni mdogo kwa 7mA wakati wa kuendesha pini ya bandari iliyo na nguvu kuliko kawaida (PINCFG. DRVSTR = 1 na VDD> 3V) kama ilivyoonyeshwa kwenye data ya SAMD21.

Walakini, usanidi wa kawaida (ambao ndio uliopitishwa na maktaba za Arduino IDE kama chaguo-msingi) hupunguza sasa hadi 2mA. Kwa hivyo, kutumia 1kOhm tayari inatoa kikomo cha sasa na mipangilio chaguomsingi!

Kuongeza sasa sio tu suala la vifaa vya umeme. Kwa ufupi:

  • Badilisha kontena (ambalo kiwango cha chini ni mdogo kwa takriban 470Ohm -> VDD / 470 ~ 7mA);
  • Weka PORT-> PINCFG-> DRVSTR kuwa 1;

Nitatoa nambari ikiwa ni pamoja na huduma hii katika sasisho la baadaye.

Lakini kumbuka, kuzama na kukimbia sasa kutoka kwa pini za MCU karibu na mipaka yake sio njia nzuri. Kwa kweli, hupunguza maisha ya MCU na kuegemea. Kwa hivyo, ninashauri kuweka nguvu ya kawaida ya gari kwa matumizi ya muda mrefu.

Hatua ya 2: Kupanga programu

Pakia mchoro "IRSerial.ino" kwenye uChip (au bodi inayotangamana na Arduino unayotumia).

Ikiwa unahitaji kubadilisha pini inayotengeneza PWM, hakikisha kuwa unatumia pini iliyounganishwa na kipima muda cha TCC, kwani toleo hili la nambari hufanya kazi tu na vipima muda vya TCC (angalia "variant.c" ya bodi yako kwa habari hii). Nitaongeza nambari kutumia pia vipima muda vya TC katika sasisho zijazo.

Nambari ni rahisi sana. Baada ya kuweka PIN_5 chini (hutoa TSOP GND) na PIN_6 juu (kuwezesha TSOP), MCU inaanzisha PWM kwenye PIN_1, ikiweka kipindi cha muda na kukamata kulinganisha ipasavyo na moduli ya mzunguko unaohitajika (kwa upande wangu ni 38KHz) na ushuru mzunguko (12.5% kama chaguo-msingi). Hii imefanywa kutumia kazi ya AnalogWrite () ya kawaida kwenye pini za PWM na kubadilisha tu PER_REG (rejista ya muda) na rejista ya CC (kukamata kulinganisha) (nambari iliyoandikwa ni maandishi tu ya kukatwa na kuweka kutoka maktaba ya wiring_analog). Unaweza kuweka mzunguko unaohitajika ipasavyo kwa sensorer ya TSOP inayobadilisha PER_REG (ambayo ni kikomo cha juu kuweka upya kaunta ya kipima muda), huku ikiweka CC sawia na thamani ya kipindi kwa asilimia inayotakiwa ya mzunguko wa ushuru.

Ifuatayo, nambari hiyo inaweka bandari ya Serial kutumia kiwango sahihi cha baud ambacho ni 2400bps. Kwa nini kiwango cha chini cha baud ?! Jibu liko kwenye jarida la TSOP ambalo unaweza kupata HAPA. Kwa kuwa TSOP ina vichungi vya juu vya kukataa kelele ili kuzuia ubadilishaji usiofaa, ni muhimu kutuma treni ya kunde nyingi ili kubomoa pini ya pato la TSOP (idadi ya kunde hutegemea toleo la TSOP, 6 ndio thamani ya kawaida). Vivyo hivyo, pato la TSOP linavutwa juu baada ya kiwango cha chini cha wakati sawa na kunde 10 au zaidi. Kwa hivyo, ili kuweka pato la TSOP kama ishara ya moduli ya TX0, inahitajika kuweka kiwango cha baud ukizingatia mlingano ufuatao:

Serial Baud <PWM_frequency / 10

Kutumia 38KHz hii inasababisha baudrate chini ya 3800bps, ambayo inamaanisha kuwa kiwango cha juu cha "kiwango" kinachoruhusiwa cha baud ni 2400pbs, kama ilivyotarajiwa hapo awali.

Je! Unataka kuongeza kiwango cha baud? Kuna chaguzi mbili.

Chaguo rahisi ni kubadilisha TSOP kuwa toleo la juu la masafa (kama TSOP38256), ambayo itakuruhusu kuzidisha kiwango cha baud (4800bps)

Haitoshi?! Kisha unahitaji kutengeneza kiunga chako cha macho kwa kutumia IR rahisi + photodiode na mzunguko wa kukuza. Walakini, suluhisho hili linahitaji utaalam mwingi wa usimbuaji na elektroniki kuzuia kelele kuathiri data iliyoambukizwa na kwa hivyo utekelezaji wake sio rahisi hata kidogo! Walakini, ikiwa unajiamini vya kutosha, unakaribishwa zaidi kujaribu kutengeneza mfumo wako wa TSOP!:)

Mwishowe, niliweka bandari ya SerialUSB (2400bps) ambayo ninatumia kutuma na kupokea data kwenye mfuatiliaji wa serial.

Kazi ya kitanzi () ni pamoja na nambari inayofaa kupitisha data juu ya safu mbili na inakiliwa moja kwa moja kutoka kwa mfano mchoro SerialPassthrough kubadilisha tu majina ya safu.

Hatua ya 3: Shielding IR LED

Kuhifadhi IR LED
Kuhifadhi IR LED
Kuhifadhi IR LED
Kuhifadhi IR LED

Ikiwa utaimarisha mzunguko hapo juu baada ya kupakia nambari ya "IRSerial.ino", angalia Serial Monitor kwenye Arduino IDE na ujaribu kutuma kamba. Labda utaona kuwa uChip inapokea haswa kile inachosambaza! Kuna mazungumzo ya msalaba kwenye mzunguko kwa sababu ya mawasiliano ya macho kati ya IR IR na TSOP ya kifaa hicho!

Hapa inakuja sehemu ngumu ya mradi huu, kuzuia mazungumzo-mseto! Kitanzi lazima kivunjwe ili kufanya mawasiliano ya pande mbili juu ya IR.

Je! Tunavunjaje kitanzi?

Chaguo la kwanza, unapunguza mzunguko wa ushuru wa PWM, na hivyo kupunguza nguvu ya macho ya LED. Walakini, njia hii pia hupunguza umbali ambao unapata kituo cha IR cha kuaminika cha kuaminika. Chaguo la pili ni kulinda IR LED, na hivyo kutengeneza "boriti" ya IR. Ni suala la kujaribu na makosa; mwishowe, nikitumia kipande cha bomba nyeusi la nyumatiki lililofungwa kwenye karatasi ya alumini na mkanda (kutoa insulation ya umeme) niliweza kuvunja mazungumzo ya msalaba. Kuweka IR inayopitisha IR ndani ya bomba huzuia mawasiliano kati ya TX na RX ya kifaa hicho.

Angalia picha ili uone suluhisho langu, lakini jisikie huru kujaribu njia zingine na / au kupendekeza yako! Hakuna suluhisho kamili kwa suala hili (isipokuwa unahitaji njia rahisi ya mwelekeo mmoja) na labda unahitaji kurekebisha mpangilio wa mzunguko, mzunguko wa ushuru wa PWM na ngao ya IR ipasavyo na mahitaji yako.

Mara tu utakapovunja mazungumzo ya msalaba, unaweza kuthibitisha kuwa kifaa chako bado kinafanya kazi kwa kuunda kitanzi kwenye kifaa Tx-Rx ikitumia mwangaza wa urefu wa urefu wa IR kwenye nyuso za kutafakari za IR.

Hatua ya 4: Wasiliana

Wasiliana!
Wasiliana!
Wasiliana!
Wasiliana!

Ni hayo tu

Serial yako juu ya kifaa cha IR iko tayari kuwasiliana, tumia kutuma data juu ya IR, kuwasha / kuzima chochote unachopenda au angalia hali ya sensa ambayo umejificha kwa siri!

Umbali ambao mawasiliano ni ya kuaminika sio kama kwa kifaa cha WiFi au BT. Walakini, ni ya mwelekeo (kulingana na kufungua kwa LED na mfumo wa kutekelezwa wa IR), ambayo inaweza kuwa muhimu sana katika programu zingine!

Hivi karibuni nitapakia video ambapo unaweza kuona mifano michache ya programu ambazo nilifanya. Furahiya!

Ilipendekeza: