Përmbajtje:
Video: UChip - Serial mbi IR!: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:18
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
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
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
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:
Kontrolloni Grbl CNC mbi Wifi: 5 hapa
Kontrolloni Grbl CNC mbi Wifi: Në këtë tutorial do t'ju tregoj se si të aktivizoni kontrollin GRBL mbi WIFI. Ju mund ta përdorni këtë metodë me çdo dërgues duke përfshirë lasergrbl dhe Universal Gcode Sender (UGS). Me pak fjalë, ne do të përdorim punën e arkypita dhe programe të tjera për të krijuar një vi
Tërhiqni dhe Afishoni të Dhënat nga Çdo Uebfaqe Mbi Wifi (Treguesi i Dritave Veriore) Me NodeMcu: 6 hapa
Tërhiqni dhe Afishoni të Dhënat nga Çdo Uebfaqe Mbi Wifi (Treguesi i Dritave të Veriut) Me NodeMcu: Motivimi im: Kam parë SHUMS udhëzime udhëzuese për ngritjen/ përdorimin e një NodeMCU (ndërtuar në modulin ESP8266) për të bërë projekte IoT (interneti i gjërave) Me Sidoqoftë, shumë pak nga këto mësime kishin të gjitha detajet/ kodin/ diagramet për një person shumë rishtar
Zgjohuni në LAN Çdo kompjuter mbi rrjetin pa tel: 3 hapa
Zgjohuni në LAN Çdo kompjuter mbi rrjetin pa tel: Ky tutorial nuk është më i përditësuar për shkak të ndryshimeve në imazhin Raspbpian. Ju lutemi ndiqni tutorialin e përditësuar këtu: https://www.instructables.com/id/Raspberry-Pi-As-Wake-on-LAN-ServerWOL është i pranishëm pothuajse në të gjitha portet Ethernet në ditët e sotme. Kjo nuk është
Mbrojtja e qarkut të shkurtër DIY (mbi rrymë): 4 hapa (me fotografi)
Mbrojtja e qarkut të shkurtër DIY (mbi -rrymës): Në këtë projekt do t'ju tregoj se si të krijoni një qark të thjeshtë që mund të ndërpresë rrjedhën aktuale në një ngarkesë kur të arrihet kufiri i rregulluar i rrymës. Kjo do të thotë se qarku mund të veprojë si një mbrojtje nga qarku i tepërt ose i shkurtër. Le të fillojmë
Webcam Mbi WiFi për OBS: 5 hapa
Webcam Over WiFi për OBS: Doja të kisha mundësi të përdorja kamerën time të internetit për transmetim pa u lidhur me kompjuterin tim. Për fat të mirë, Raspberry Pi ekziston dhe unë kam qenë në gjendje të përdor një për një rrjedhë gatimi! Ky Instructable qëndron pranë kësaj videoje të YouTube që kam bërë: Nëse keni nevojë për ndonjë shtesë