Përmbajtje:

UChip - Serial mbi IR!: 4 hapa
UChip - Serial mbi IR!: 4 hapa

Video: UChip - Serial mbi IR!: 4 hapa

Video: UChip - Serial mbi IR!: 4 hapa
Video: Ужасная история серийного убийцы из Тампа-Бэй 2024, Nëntor
Anonim
UChip - Serial mbi IR!
UChip - Serial mbi IR!
UChip - Serial mbi IR!
UChip - Serial mbi IR!

Komunikimi pa tel është bërë një tipar kryesor në projektet tona në ditët e sotme dhe duke folur për wireless, gjëja e parë që më vjen në mendje është Wi-Fi ose BT, por trajtimi i protokolleve të komunikimit Wi-Fi ose BT nuk është një detyrë e lehtë dhe konsumon shumë të burimeve MCU, duke lënë hapësirë të vogël për kodimin e aplikacionit tim. Prandaj, unë zakonisht zgjedh një modul të jashtëm Wi-Fi/BT të lidhur në mënyrë serike me mikrokontrolluesin në mënyrë që të ndajë rolet dhe të fitojë liri më të lartë.

Sidoqoftë, ndonjëherë Wi-Fi dhe BT janë "të tepërta" për disa aplikacione që kërkojnë bitrate të ulët dhe distancë të shkurtër komunikimi. Për më tepër, përdorimi i Wi-Fi ose BT nënkupton domosdoshmërinë e lidhjes së Smartphone ose pajisjes tuaj me vërtetimin e duhur.

Imagjinoni që thjesht duhet të ndizni/fikni një dritë të jashtme, ose të ndryshoni intensitetin e llambës, ose të hapni një portë elektrike. A ja vlen të përdorni Wi-Fi ose BT?

Në varësi të mjedisit dhe aplikacioneve, komunikimi pa tel mbi gjatësinë e valës IR (Infrared) mund të jetë i dobishëm. Një Serial mbi IR, i zbatuar me pak komponentë të jashtëm (3 komponentë të veçantë!), Dhe uChip (një bord shumë i vogël i pajtueshëm me Arduino) mund të jetë zgjidhja që po kërkoni!

Fatura e materialeve (për një pajisje Tx-Rx):

1 x uChip

1 x IR LED: që ka kulmin e emetimit në 950nm

1 x TSOP-38238 (ekuivalent)

1 x Rezistencë 1KOhm

Hardware

1 x panxhar/tabelë proto

1 x Tub plastik i zi: diametri i brendshëm i të njëjtës madhësi me IR LED, tubi është i nevojshëm për të parandaluar bisedën kryq me marrësin TSOP.

1 x fletë alumini (3cm x 3 cm)

1 x Shirit

K TSHILL: Mund të bëni një pajisje vetëm-TX ose vetëm-RX në rast se keni nevojë për një komunikim me një drejtim duke hequr harduerin e panevojshëm RX/TX nga qarku ose aktivizoni/çaktivizoni kodin përkatës në skicë.

Hapi 1: Instalimet elektrike

Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike
Instalime elektrike

Lidhni përbërësit së bashku në përputhje me skemën.

Disa shënime mbi skemën e thjeshtë. Meqenëse TSOP-38238 lejon një furnizim me energji elektrike nga 2.5V në 5V dhe thith 0.45mA më së shumti (ju e gjeni fletën e të dhënave KETU), unë do të fuqizoj marrësin duke përdorur dy kunja, të cilat do të sigurojnë përkatësisht furnizimin me tokë dhe energji elektrike. Kjo lejon ndezjen/fikjen e marrësit sipas kërkesës dhe një konfigurim shumë të thjeshtë të instalimeve elektrike të harduerit. Për më tepër, në rast se keni nevojë për një komunikim me një drejtim, ju mund të zgjidhni nëse do të bëni një pajisje (Tx/Rx) vetëm duke çaktivizuar/aktivizuar TSOP-38238.

Si funksionon qarku?

Quiteshtë fare e thjeshtë. Kunja e daljes TSOP tërhiqet poshtë kur sensori zbulon një tren prej 6 pulse ose më shumë në 38KHz, nga ana tjetër tërhiqet lart kur nuk ka një sinjal të tillë. Prandaj, për të transmetuar të dhënat serike përmes IR, ajo që bën qarku është fuqizimi i anodës LED me një PWM 38KHz të moduluar me sinjalin serik TX i cili tërheq poshtë katodën LED.

Rrjedhimisht, në një nivel të lartë të serisë TX0, LED nuk është i njëanshëm ose i njëanshëm në të kundërt (pa impulse) dhe kunja e daljes TSOP është tërhequr lart. Duke transmetuar një nivel të ulët në serial, LED ndizet dhe gjeneron impulse IR në përputhje me sinjalin e aplikuar PWM; prandaj, prodhimi i TSOP është tërhequr ulët.

Meqenëse transmetimi është i drejtpërdrejtë (0-> 0 dhe 1-> 1) nuk ka nevojë për inverter ose logjikë tjetër në anën e marrësit.

Unë rregulloj fuqinë dalëse optike LED duke zgjedhur ciklin e punës PWM në përputhje me kërkesën. Sa më i lartë të jetë cikli i punës, aq më i lartë është fuqia dalëse optike dhe për këtë arsye, aq më tej do të transmetoni mesazhin tuaj.

Mbani në mend se ne ende kemi nevojë për të gjeneruar impulse! Kështu, nuk duhet të kaloni ciklin e punës 90%, përndryshe TSOP nuk do të zbulojë sinjalin si impulse.

Keni nevojë për më shumë fuqi?

Për të rritur rrymën, a mund ta zvogëlojmë vlerën e rezistencës 1kOhm?

Ndoshta, thjesht mos jini shumë kërkues! Rryma maksimale që merrni nga një kunj i MCU është e kufizuar në 7mA kur drejtoni pinin e portës më të fortë se normalja (PINCFG. DRVSTR = 1 dhe VDD> 3V) siç thuhet në fletën e të dhënave SAMD21.

Sidoqoftë, konfigurimi standard (i cili është miratuar nga bibliotekat Arduino IDE si parazgjedhje) kufizon rrymën në 2mA. Prandaj, përdorimi i 1kOhm jep tashmë kufirin aktual me cilësimet e paracaktuara!

Rritja e rrymës nuk është vetëm çështje e përbërësve elektrikë. Shkurtimisht:

  • Ndryshoni rezistencën (vlera minimale e së cilës është e kufizuar në afërsisht 470Ohm -> VDD/470 ~ 7mA);
  • Vendosni përkatësisht PORT-> PINCFG-> DRVSTR në 1;

Unë do të siguroj kodin duke përfshirë këtë veçori në një azhurnim të ardhshëm.

Por mbani mend, fundosja dhe kullimi i rrymës nga kunjat MCU afër kufijve të saj nuk është një qasje aq e mirë. Në të vërtetë, ajo ul jetën dhe besueshmërinë e MCU. Prandaj, unë sugjeroj të mbani forcën normale të makinës për përdorim afatgjatë.

Hapi 2: Programimi

Ngarko skicën "IRSerial.ino" në uChip (ose bordin e pajtueshëm me Arduino që po përdorni).

Në rast se keni nevojë të ndryshoni kunjin që gjeneron PWM, sigurohuni që jeni duke përdorur një kunj të lidhur me një kohëmatës TCC, pasi ky version i kodit funksionon vetëm me kohëmatësit TCC (kontrolloni "variant.c" të bordit tuaj për këtë informacion) Unë do të shtoj kodin për të përdorur edhe kohëmatësit TC në azhurnimet e ardhshme.

Kodi është mjaft i thjeshtë. Pas vendosjes së PIN_5 të ulët (siguron TSOP GND) dhe PIN_6 të lartë (fuqizimin e TSOP), MCU fillon PWM në PIN_1, duke vendosur periudhën e kohëmatësit dhe kapjen në krahasim me modulimin e nevojshëm të frekuencës (në rastin tim është 38KHz) dhe detyra ciklit (12.5% si parazgjedhje). Kjo është bërë duke shfrytëzuar funksionin standard analogWrite () në kunjat PWM dhe duke ndryshuar vetëm regjistrin PER_REG (regjistri i periudhës) dhe regjistrin CC (kapni krahasimin) (kodi i shkruar është thjesht një prerje-ngjitje nga biblioteka e wiring_analog). Në përputhje me rrethanat, mund të vendosni frekuencën e nevojshme që sensori TSOP të ndryshojë PER_REG (i cili është kufiri i sipërm i rivendosjes së numëruesit të kohëmatësit), ndërsa të vendosni CC proporcionalisht me vlerën e periudhës në përqindjen e dëshiruar të ciklit të punës.

Tjetra, kodi vendos portën Seriale duke përdorur shpejtësinë e duhur të baudit që është 2400bps. Pse një normë kaq e ulët baud ?! Përgjigja është në fletën e të dhënave TSOP që mund ta gjeni KERTU. Meqenëse TSOP përmban filtra të lartë të refuzimit të zhurmës për të parandaluar ndërrimin e padëshiruar, është e nevojshme të dërgoni një tren me impulse të shumta në mënyrë që të tërhiqni pinin e daljes TSOP (numri i impulseve varet nga versioni i TSOP, 6 është vlera tipike). Në mënyrë të ngjashme, prodhimi i TSOP tërhiqet lartë pas një sasie minimale të kohës ekuivalente me 10 impulse ose më shumë. Rrjedhimisht, për të vendosur daljen TSOP si sinjal modulues TX0, është e nevojshme të vendosni normën e baudit duke marrë parasysh ekuacionin e mëposhtëm:

Baud Serial <PWM_frekuenca/10

Duke përdorur 38KHz kjo rezulton në një baudrate më të ulët se 3800bps, që do të thotë se norma më e lartë e lejuar e baudit është 2400pbs, siç ishte parashikuar më parë.

Dëshironi të rrisni normën e baudit? Ka dy opsione.

Opsioni më i lehtë është ndryshimi i TSOP në një version me frekuencë më të lartë (si TSOP38256), i cili do t'ju lejojë të dyfishoni shpejtësinë e baudit (4800bps)

Jo mjaftueshem?! Atëherë ju duhet të krijoni lidhjen tuaj optike duke përdorur një qark të thjeshtë IR LED+fotodiodë dhe qark përforcimi. Sidoqoftë, kjo zgjidhje kërkon shumë ekspertizë të kodimit dhe elektronikës për të parandaluar që zhurma të ndikojë në të dhënat e transmetuara dhe për këtë arsye zbatimi i saj nuk është aspak i lehtë! Sidoqoftë, nëse ndiheni mjaft të sigurt, jeni më se të mirëpritur të provoni të bëni sistemin tuaj TSOP!:)

Më në fund, vendosa portën SerialUSB (2400bps) të cilën e përdor për të dërguar dhe marrë të dhëna në monitorin serik.

Funksioni loop () përfshin kodin e nevojshëm për të kaluar të dhënat mbi dy serialet dhe kopjohet drejtpërdrejt nga shembulli i skicës SerialPassthrough duke ndryshuar vetëm emrat e serialeve.

Hapi 3: Mbrojtja e LED LED

IR LED mbrojtës
IR LED mbrojtës
IR LED mbrojtës
IR LED mbrojtës

Nëse aktivizoni qarkun e mësipërm pasi të keni ngarkuar kodin "IRSerial.ino", kontrolloni Monitorin Serial në Arduino IDE dhe përpiquni të dërgoni një varg. Me siguri do të shihni që uChip po merr pikërisht atë që po transmeton! Ekziston një bisedë e kryqëzuar në qark për shkak të komunikimit optik midis IR LED dhe TSOP të së njëjtës pajisje!

Këtu vjen pjesa e vështirë e këtij projekti, duke parandaluar bisedat e tërthorta! Lakri duhet të prishet për të bërë komunikim serial dypalësh mbi IR.

Si ta thyejmë lakun?

Opsioni i parë, ju ulni ciklin e punës PWM, duke ulur kështu daljen e fuqisë optike të LED. Sidoqoftë, kjo qasje gjithashtu zvogëlon distancën mbi të cilën ju merrni një kanal IR të besueshëm serik. Opsioni i dytë është mbrojtja e LED LED, duke bërë kështu një "rreze" IR të drejtuar. Shtë një çështje përpjekjeje dhe gabimi; më në fund, duke përdorur një copë zorrë të zezë pneumatike të ajrit të mbështjellë me fletë alumini dhe shirit (duke siguruar izolim elektrik) arrita të thyej bisedën kryq. Vendosja e LED LED transmetues brenda tubit parandalon komunikimin midis TX dhe RX të së njëjtës pajisje.

Shikoni foton për të parë zgjidhjen time, por mos ngurroni të provoni metoda të tjera dhe/ose të sugjeroni tuajin! Nuk ka zgjidhje absolute për këtë çështje (nëse nuk keni nevojë për një kanal të thjeshtë me një drejtim) dhe ndoshta ju duhet të rregulloni paraqitjen e qarkut, ciklin e punës PWM dhe mburojën IR sipas nevojave tuaja.

Pasi të keni thyer fjalimin kryq, mund të verifikoni që pajisja juaj është ende duke punuar duke krijuar një lak në pajisjen Tx-Rx duke shfrytëzuar reflektimin e gjatësisë së valës IR në sipërfaqet reflektuese IR.

Hapi 4: Komunikoni

Komunikoni!
Komunikoni!
Komunikoni!
Komunikoni!

Kjo është e gjitha

Seriali juaj mbi pajisjen IR është gati për të komunikuar, përdorni ato për të dërguar të dhëna përmes IR, aktivizoni/fikni çdo gjë që ju pëlqen ose kontrolloni statusin e një sensori që fshehni fshehurazi!

Distanca në të cilën komunikimi është i besueshëm nuk është aq sa për një pajisje WiFi ose BT. Sidoqoftë, është i drejtuar (në varësi të hapjes LED dhe sistemit të zbatuar të mbrojtjes IR), i cili mund të jetë shumë i dobishëm në disa aplikacione!

Së shpejti do të ngarkoj një video ku mund të shihni disa shembuj të aplikacioneve që kam bërë. Shijoni!

Recommended: