Satura rādītājs:

UChip - sērijas pār IR!: 4 soļi
UChip - sērijas pār IR!: 4 soļi

Video: UChip - sērijas pār IR!: 4 soļi

Video: UChip - sērijas pār IR!: 4 soļi
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Jūlijs
Anonim
UChip - sērijas pār IR!
UChip - sērijas pār IR!
UChip - sērijas pār IR!
UChip - sērijas pār IR!

Bezvadu komunikācija mūsdienās ir kļuvusi par mūsu projektu galveno iezīmi un runājot par bezvadu, pirmā lieta, kas man ienāk prātā, ir Wi-Fi vai BT, taču Wi-Fi vai BT sakaru protokolu apstrāde nav viegls uzdevums un patērē daudz. no MCU resursiem, atstājot nelielu vietu manas lietojumprogrammas kodēšanai. Tāpēc es parasti izvēlos ārēju Wi-Fi/BT moduli, kas ir sērijveidā pievienots mikrokontrolleram, lai sadalītu lomas un iegūtu lielāku brīvību.

Tomēr dažreiz Wi-Fi un BT dažām lietojumprogrammām, kurām nepieciešams zems bitu pārraides ātrums un neliels sakaru attālums, ir “pārspīlētas”. Turklāt, izmantojot Wi-Fi vai BT, ir nepieciešams savienot viedtālruni vai ierīci ar atbilstošu autentifikāciju.

Iedomājieties, ka jums vienkārši jāieslēdz/jāizslēdz ārējā gaisma, jāmaina lampas intensitāte vai jāatver elektriskie vārti. Vai būtu vērts izmantot Wi-Fi vai BT?

Atkarībā no vides un lietojumprogrammām var būt noderīga bezvadu komunikācija, izmantojot IR (infrasarkano) viļņu garumu. Serial over IR, kas ieviests ar dažiem ārējiem komponentiem (3 diskrēti komponenti!), Un uChip (ļoti maza ar Arduino saderīga tāfele) var būt jūsu meklētais risinājums!

Materiālu saraksts (vienai Tx-Rx ierīcei):

1 x uChip

1 x IR gaismas diode: ar emisijas maksimumu pie 950 nm

1 x TSOP-38238 (ekvivalents)

1 x 1KOhm rezistors

Aparatūra

1 x maizes dēlis/proto dēlis

1 x melna plastmasas caurule: iekšējais diametrs ir tāds pats kā IR LED, caurule ir nepieciešama, lai novērstu šķērsrunu ar TSOP uztvērēju.

1 x alumīnija folija (3 cm x 3 cm)

1 x lente

PADOMS. Ja jums nepieciešama vienvirziena komunikācija, varat izveidot tikai TX vai tikai RX ierīci, noņemot no ķēdes nevajadzīgo RX/TX aparatūru vai ieslēdzot/atspējojot saistīto kodu skicē.

1. solis: Elektroinstalācija

Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija

Pievienojiet komponentus atbilstoši shēmai.

Dažas piezīmes par vienkāršo shēmu. Tā kā TSOP-38238 nodrošina barošanu no 2,5 V līdz 5 V un absorbē ne vairāk kā 0,45 mA (datu lapu atradīsit ŠEIT), es barošu uztvērēju, izmantojot divas tapas, kas attiecīgi nodrošinās zemi un barošanu. Tas ļauj ieslēgt/izslēgt uztvērēju pēc pieprasījuma un ļoti vienkāršu aparatūras vadu uzstādīšanu. Turklāt, ja jums nepieciešama vienvirziena komunikācija, varat izvēlēties, vai izveidot tikai (Tx/Rx) ierīci, vienkārši atspējojot/iespējojot TSOP-38238.

Kā darbojas ķēde?

Tas ir pavisam vienkārši. TSOP izejas tapa tiek novilkta zemu, kad sensors 38 kHz frekvencē nosaka 6 vai vairāk impulsu vilcienu, savukārt, ja šāda signāla nav, tas tiek pacelts augstu. Tāpēc, lai sērijveida datus pārraidītu pa IS, ķēde veic LED anoda barošanu ar 38KHz PWM, kas modulēts ar TX sērijas signālu, kas samazina LED katodu.

Līdz ar to augstā sērijas TX0 līmenī gaismas diode nav neobjektīva vai neobjektīva pretējā virzienā (nav impulsu), un TSOP izejas tapa ir pavilkta augstu. Pārraida zemu sērijas līmeni, gaismas diode tiek darbināta un ģenerē IR impulsus atbilstoši izmantotajam PWM signālam; tāpēc TSOP izeja ir samazināta.

Tā kā pārraide ir tieša (0-> 0 un 1-> 1), uztvērēja pusē nav nepieciešami invertori vai cita loģika.

Es regulēju LED optisko izejas jaudu, izvēloties PWM darba ciklu atbilstoši lietojumam. Jo augstāks ir darba cikls, jo lielāka optiskā izejas jauda, un tāpēc jūs tālāk nosūtīsit savu ziņojumu.

Paturiet prātā, ka mums joprojām ir jāģenerē impulsi! Tādējādi nevajadzētu pārsniegt 90% darba ciklu, pretējā gadījumā TSOP neatpazīs signālu kā impulsus.

Vai jums ir nepieciešams vairāk spēka?

Lai palielinātu strāvu, vai mēs varam vienkārši samazināt 1 kOhm rezistora vērtību?

Varbūt, vienkārši neesiet pārāk prasīgs! Maksimālā strāva, ko iegūstat no MCU tapas, ir ierobežota līdz 7mA, kad piespraudiet porta tapu stiprāk nekā parasti (PINCFG. DRVSTR = 1 un VDD> 3V), kā norādīts SAMD21 datu lapā.

Tomēr standarta konfigurācija (kuru Arduino IDE bibliotēkas izmanto pēc noklusējuma) ierobežo strāvu līdz 2 mA. Tāpēc, izmantojot 1kOhm, jau tiek piešķirts pašreizējais ierobežojums ar noklusējuma iestatījumiem!

Strāvas palielināšana nav tikai elektrisko komponentu jautājums. Īsumā:

  • Nomainiet rezistoru (kura minimālā vērtība ir ierobežota līdz aptuveni 470Ohm -> VDD/470 ~ 7mA);
  • Iestatiet attiecīgi PORT-> PINCFG-> DRVSTR uz 1;

Nākamajā atjauninājumā es sniegšu kodu, ieskaitot šo funkciju.

Bet atcerieties, ka strāvas nogremdēšana un novadīšana no MCU tapām tuvu tās robežām nav tik laba pieeja. Patiešām, tas samazina MCU kalpošanas laiku un uzticamību. Tāpēc es iesaku ilgstoši izmantot normālu piedziņas spēku.

2. solis: programmēšana

Ievietojiet skici “IRSerial.ino” uChip (vai jūsu izmantotajā ar Arduino saderīgajā plāksnē).

Ja jums ir jāmaina PIN, kas ģenerē PWM, pārliecinieties, vai izmantojat tapu, kas savienota ar TCC taimeri, jo šī koda versija darbojas tikai ar TCC taimeriem (lai iegūtu informāciju, skatiet tāfeles “variant.c”). Es pievienošu kodu, lai turpmākajos atjauninājumos izmantotu arī TC taimerus.

Kods ir pavisam vienkāršs. Pēc tam, kad ir iestatīts zems PIN_5 (nodrošina TSOP GND) un augsts PIN_6 (baro TSOP), MCU sāk PWM uz PIN_1, iestatot taimera periodu un uztveršanu, salīdzinot ar nepieciešamo frekvences modulāciju (manā gadījumā tas ir 38KHz) un pienākumu cikls (12,5% pēc noklusējuma). Tas tiek darīts, izmantojot standarta analogWrite () funkciju PWM tapās un mainot tikai reģistru PER_REG (perioda reģistrs) un CC (uztveršanas salīdzinājums) (rakstītais kods ir vienkārši izgriezts un ielīmēts no bibliotēkas wiring_analog). Jūs varat iestatīt nepieciešamo frekvenci atbilstoši TSOP sensora maiņai PER_REG (kas ir taimera skaitītāja atiestatīšanas augšējā robeža), savukārt iestatīt CC proporcionāli perioda vērtībai līdz vēlamajam darba cikla procentam.

Tālāk kods nosaka seriālo portu, izmantojot pareizo datu pārraides ātrumu 2400 bps. Kāpēc tik zems pārraides ātrums ?! Atbilde ir TSOP datu lapā, kuru varat atrast ŠEIT. Tā kā TSOP ir augsta trokšņa noraidīšanas filtri, lai novērstu nevēlamu pārslēgšanos, ir jānosūta vairāku impulsu vilciens, lai izvilktu TSOP izejas tapu (impulsu skaits ir atkarīgs no TSOP versijas, tipiskā vērtība ir 6). Līdzīgi TSOP izeja tiek pacelta pēc minimāla laika, kas atbilst 10 vai vairāk impulsiem. Līdz ar to, lai TSOP izeju iestatītu kā modulējošu TX0 signālu, ir jāiestata bodu pārraides ātrums, ņemot vērā šādu vienādojumu:

Sērijas bārs <PWM_frekvence/10

Izmantojot 38KHz, tiek iegūts zemāks datu pārraides ātrums nekā 3800bps, kas nozīmē, ka augstāks “standarta” atļautais datu pārraides ātrums ir 2400pbs, kā paredzēts iepriekš.

Vai vēlaties palielināt datu pārraides ātrumu? Ir divas iespējas.

Vienkāršākais risinājums ir mainīt TSOP uz augstākas frekvences versiju (kā TSOP38256), kas ļautu dubultot datu pārraides ātrumu (4800 bps)

Nepietiekami?! Tad jums ir jāizveido sava optiskā saite, izmantojot vienkāršu IR LED+fotodiodi un pastiprināšanas shēmu. Tomēr šim risinājumam ir vajadzīgas lielas kodēšanas un elektronikas zināšanas, lai troksnis neietekmētu pārraidītos datus, un tāpēc tā ieviešana nemaz nav vienkārša! Tomēr, ja jūtaties pietiekami pārliecināts, esat laipni aicināti izveidot savu TSOP sistēmu!:)

Visbeidzot, es iestatīju SerialUSB portu (2400 bps), ko izmantoju, lai nosūtītu un saņemtu datus seriālajā monitorā.

Funkcija cilpa () ietver kodu, kas nepieciešams datu pārsūtīšanai divos seriālos, un tiek kopēts tieši no parauga skices SerialPassthrough, mainot tikai sērijas nosaukumu.

3. solis: IR LED ekranēšana

Aizsargājošs IR LED
Aizsargājošs IR LED
Aizsargājošs IR LED
Aizsargājošs IR LED

Ja ieslēdzat iepriekšminēto shēmu pēc koda “IRSerial.ino” ielādes, pārbaudiet Arduino IDE sērijas monitoru un mēģiniet nosūtīt virkni. Jūs droši vien redzēsit, ka uChip saņem tieši to, ko pārraida! Shēmā notiek savstarpēja saruna, pateicoties optiskajai saziņai starp IR LED un vienas ierīces TSOP!

Šeit nāk šī projekta grūtā daļa, novēršot savstarpēju sarunu! Lai izveidotu divvirzienu seriālo komunikāciju, izmantojot IS, cilpai jābūt pārtrauktai.

Kā mēs pārtraucam cilpu?

Pirmā iespēja ir samazināt PWM darba ciklu, tādējādi samazinot gaismas diodes optisko jaudu. Tomēr šī pieeja samazina arī attālumu, pa kuru iegūstat uzticamu sērijas IR kanālu. Otra iespēja ir infrasarkanās gaismas diodes ekranēšana, tādējādi veidojot virziena IR “staru kūli”. Tas ir mēģinājumu un kļūdu jautājums; beidzot, izmantojot melnas pneimatiskās gaisa šļūtenes gabalu, kas ietīts alumīnija folijā un lentē (nodrošinot elektrisko izolāciju), man izdevās pārraut šķērsrunu. Raidīšanas IR gaismas diodes ievietošana caurulē novērš saziņu starp vienas ierīces TX un RX.

Apskatiet attēlu, lai redzētu manu risinājumu, bet nekautrējieties izmēģināt citas metodes un/vai ieteikt savu! Šim jautājumam nav absolūta risinājuma (ja vien jums nav nepieciešams vienkāršs vienvirziena kanāls), un jums, iespējams, ir jāpielāgo shēmas izkārtojums, PWM darba cikls un IR vairogs atbilstoši jūsu vajadzībām.

Kad esat pārtraucis sarunu, varat pārbaudīt, vai jūsu ierīce joprojām darbojas, izveidojot cilpu ierīcē Tx-Rx, izmantojot IR viļņa garuma atspoguļojumu uz IR atstarojošām virsmām.

4. solis: sazinieties

Sazinieties!
Sazinieties!
Sazinieties!
Sazinieties!

Tas ir viss

Jūsu sērijveida IR ierīce ir gatava saziņai, izmantojiet tos, lai nosūtītu datus, izmantojot IS, ieslēdziet/izslēdziet visu, kas jums patīk, vai pārbaudiet sensora statusu, kuru slepeni slēpjat!

Attālums, pēc kura komunikācija ir uzticama, nav tik liels kā WiFi vai BT ierīcei. Tomēr tas ir virzošs (atkarībā no LED apertūras un ieviestās IR ekranēšanas sistēmas), kas dažos lietojumos var būt ļoti noderīgs!

Drīz es augšupielādēšu videoklipu, kurā varēsit redzēt dažus manu izveidoto lietojumprogrammu piemērus. Izbaudi!

Ieteicams: