Tartalomjegyzék:

UChip - Serial Over IR !: 4 lépés
UChip - Serial Over IR !: 4 lépés

Videó: UChip - Serial Over IR !: 4 lépés

Videó: UChip - Serial Over IR !: 4 lépés
Videó: Новая мелодрама, фильм который поразит, На краю любви 2024, November
Anonim
UChip - Serial Over IR!
UChip - Serial Over IR!
UChip - Serial Over IR!
UChip - Serial Over IR!

A vezeték nélküli kommunikáció napjaink projektjeinek kulcsfontosságú jellemzőjévé vált, és a vezeték nélküli hálózatról beszélve az első dolog, ami eszembe jut, a Wi-Fi vagy a BT, de a Wi-Fi vagy a BT kommunikációs protokollok kezelése nem könnyű feladat, és sokat emészt fel. MCU -erőforrásokból, kis helyet hagyva az alkalmazásom kódolásához. Ezért általában egy külső Wi-Fi/BT modult választok, amely sorozatosan csatlakozik a mikrokontrollerhez a szerepek megosztása és a nagyobb szabadság érdekében.

Néha azonban a Wi-Fi és a BT „túlzásba esnek” bizonyos alkalmazásoknál, amelyek alacsony bitsebességet és rövid kommunikációs távolságot igényelnek. Ezenkívül a Wi-Fi vagy a BT használata azt jelenti, hogy az okostelefont vagy eszközt megfelelő hitelesítéssel kell csatlakoztatni.

Képzelje el, hogy egyszerűen be kell kapcsolnia/ki kell kapcsolnia egy külső fényt, vagy meg kell változtatnia a lámpa intenzitását, vagy ki kell nyitnia egy elektromos kaput. Érdemes Wi-Fi-t vagy BT-t használni?

A környezettől és az alkalmazásoktól függően hasznos lehet az infravörös (infravörös) hullámhosszon keresztüli vezeték nélküli kommunikáció. Egy soros infravörös kapcsolat, kevés külső komponenssel (3 különálló komponens!) És az uChip (egy nagyon kicsi Arduino -kompatibilis kártya), amely a keresett megoldás lehet!

Anyagjegyzék (egy Tx-Rx eszközhöz):

1 x uChip

1 x IR LED: a kibocsátási csúcs 950 nm -en van

1 x TSOP-38238 (egyenértékű)

1 x 1Kohm ellenállás

Hardver

1 x kenyérlap/proto tábla

1 x fekete műanyag cső: belső átmérője megegyezik az IR LED méretével, a cső szükséges ahhoz, hogy megakadályozza a keresztbeszélgetést a TSOP vevővel.

1 x alumínium fólia (3 cm x 3 cm)

1 x szalag

TIPP: Csak egy vagy csak RX eszközt készíthet, ha egyirányú kommunikációra van szüksége, ha eltávolítja a felesleges RX/TX hardvert az áramkörből, vagy engedélyezi/letiltja a kapcsolódó kódot a vázlatban.

1. lépés: Kábelezés

Vezeték
Vezeték
Vezeték
Vezeték
Vezeték
Vezeték

Kösse össze az alkatrészeket a vázlat szerint.

Néhány megjegyzés az egyszerű rajzhoz. Mivel a TSOP-38238 lehetővé teszi a tápellátást 2,5 V és 5 V között, és legfeljebb 0,45 mA-t vesz fel (az adatlapot ITT találja), a vevőt két tűvel fogom táplálni, amelyek földelést és tápellátást biztosítanak. Ez lehetővé teszi a vevő igény szerinti be- és kikapcsolását, valamint egy nagyon egyszerű hardver huzalozást. Továbbá, ha egyirányú kommunikációra van szüksége, akkor a TSOP-38238 letiltásával/engedélyezésével eldöntheti, hogy csak (Tx/Rx) eszközt készít-e.

Hogyan működik az áramkör?

Elég egyszerű. A TSOP kimeneti tüske alacsonyra húzódik, ha az érzékelő 6 vagy annál több impulzussorozatot észlel 38KHz -en, másrészt magasra húzza, ha nincs ilyen jel. Ezért a soros adatok infravörös kapcsolaton keresztüli továbbítása érdekében az áramkör a LED -anódot táplálja egy 38 kHz -es PWM modulációval, amelyet a TX soros jel modulál, ami lecsökkenti a LED katódját.

Következésképpen a soros TX0 magas szintjén a LED nem torzított vagy torzított (nincs impulzus), és a TSOP kimeneti csap magasra van húzva. Alacsony sugárzási szintet sugároz a LED -en, és az alkalmazott PWM jelnek megfelelően infravörös impulzusokat generál; ezért a TSOP kimenet alacsonyra húzódik.

Mivel az átvitel közvetlen (0-> 0 és 1-> 1), nincs szükség inverterekre vagy más logikára a vevő oldalon.

A LED optikai kimeneti teljesítményét úgy szabályozom, hogy az alkalmazásnak megfelelően választom ki a PWM üzemi ciklust. Minél nagyobb a működési ciklus, annál nagyobb az optikai kimeneti teljesítmény, és ezért tovább továbbítja az üzenetet.

Ne feledje, hogy impulzusokat kell generálnunk! Így ne lépje túl a 90% -os működési ciklust, különben a TSOP nem érzékeli a jelet impulzusként.

Több erőre van szüksége?

Az áram növelése érdekében egyszerűen csökkenthetjük az 1 kOhm -os ellenállás értékét?

Lehet, csak ne legyen túl igényes! Az MCU csapjából származó maximális áram 7 mA -ra korlátozódik, amikor a normálnál erősebben hajtja a portcsapot (PINCFG. DRVSTR = 1 és VDD> 3V), amint azt a SAMD21 adatlap is tartalmazza.

Azonban a szabványos konfiguráció (amelyet az Arduino IDE könyvtárak alapértelmezés szerint elfogadnak) korlátozza az áramot 2 mA -re. Ezért az 1kOhm használata már megadja az aktuális korlátot az alapértelmezett beállításokkal!

Az áram növelése nem csak az elektromos alkatrészek kérdése. Röviden:

  • Cserélje ki az ellenállást (amelynek minimális értéke körülbelül 470 Ohm -> VDD/470 ~ 7mA);
  • Állítsa a megfelelő PORT-> PINCFG-> DRVSTR értéket 1-re;

Ezt a funkciót tartalmazó kódot egy későbbi frissítésben megadom.

De ne feledje, hogy az áram elmerítése és elvezetése az MCU csapokból a határai közelében nem olyan jó megközelítés. Valójában csökkenti az MCU élettartamát és megbízhatóságát. Ezért azt javaslom, hogy hosszú távú használat esetén tartsa meg a normál meghajtóerőt.

2. lépés: Programozás

Töltse be az „IRSerial.ino” vázlatot az uChip -be (vagy az Ön által használt Arduino -kompatibilis kártyára).

Abban az esetben, ha a PWM -et előállító csap cseréjére van szükség, győződjön meg arról, hogy TCC időzítőhöz csatlakoztatott tűt használ, mivel a kódnak ez a verziója csak a TCC időzítőkkel működik (ezeket az információkat a tábla „variant.c” oldalán találja)). Hozzáadom a kódot a TC időzítők használatához a későbbi frissítések során.

A kód meglehetősen egyszerű. A PIN_5 alacsony (a TSOP GND -t biztosítja) és a PIN_6 magas (a TSOP -t tápláló) beállítása után az MCU elindítja a PWM -et a PIN_1 -en, beállítva az időzítési periódust és a rögzítést a szükséges frekvenciamodulációhoz (esetemben 38KHz) és a teljesítményhez képest ciklus (alapértelmezés szerint 12,5%). Ez a szabványos analogWrite () függvény kihasználásával történik a PWM csapokon, és csak a PER_REG (periódusregiszter) és a CC (rögzítés összehasonlítása) regiszter módosítása (az írott kód egyszerűen kivágás és beillesztés a wiring_analog könyvtárból). Beállíthatja a szükséges frekvenciát annak megfelelően, hogy a TSOP érzékelő PER_REG értéket változtasson (ez az időzítő számláló nullázásának felső határa), míg a CC a periódus értékével arányosan a kívánt ciklus százalékára állítható be.

Ezután a kód beállítja a soros portot a megfelelő 2400 bps sebességű adatátviteli sebesség használatával. Miért ilyen alacsony átviteli sebesség ?! A válasz a TSOP adatlapjában található, amelyet ITT talál. Mivel a TSOP nagy zajszintű elutasító szűrőkkel rendelkezik, hogy megakadályozza a nem kívánt kapcsolást, több impulzusból álló sorozatot kell küldeni a TSOP kimeneti csap lehúzásához (az impulzusok száma a TSOP verziójától függ, a 6 a tipikus érték). Hasonlóképpen, a TSOP kimenet magasra húzódik egy minimális idő után, amely legalább 10 impulzusnak felel meg. Következésképpen annak érdekében, hogy a TSOP kimenetet moduláló TX0 jelként állítsa be, az adatátviteli sebességet a következő egyenlet figyelembevételével kell beállítani:

Soros Baud <PWM_frequency/10

A 38KHz használata 3800bps -nál alacsonyabb adatátviteli sebességet eredményez, ami azt jelenti, hogy a magasabb „szabványos” megengedett adatátviteli sebesség 2400pbs, ahogy azt korábban várták.

Növelni szeretné az átviteli sebességet? Két lehetőség van.

A legegyszerűbb lehetőség a TSOP magasabb frekvenciájú változatra (TSOP38256) való cseréje, amely lehetővé teszi a baud kétszeresét (4800 bps)

Nem elég?! Ezután létre kell hoznia saját optikai kapcsolatát egy egyszerű IR LED+fotodióda és erősítő áramkör segítségével. Ez a megoldás azonban sok kódolási és elektronikai szakértelmet igényel ahhoz, hogy a zaj ne befolyásolja az átvitt adatokat, ezért a megvalósítása egyáltalán nem egyszerű! Ha azonban elég magabiztosnak érzi magát, szívesen kipróbálja saját TSOP rendszerét!:)

Végül beállítottam a SerialUSB portot (2400 bps), amelyet adatok küldésére és fogadására használok a soros monitoron.

A loop () függvény tartalmazza a kódot, amely szükséges az adatok átviteléhez a két sorozaton, és közvetlenül a SerialPassthrough példavázlatból másolódik át, csak a sorozatok nevét megváltoztatva.

3. lépés: Árnyékoló IR LED

Árnyékoló IR LED
Árnyékoló IR LED
Árnyékoló IR LED
Árnyékoló IR LED

Ha az „IRSerial.ino” kód betöltése után bekapcsolja a fenti áramkört, ellenőrizze a soros monitort az Arduino IDE -n, és próbáljon meg karakterláncot küldeni. Valószínűleg látni fogja, hogy az uChip pontosan azt kapja, amit küld! Cross-talk van az áramkörben az IR LED és ugyanazon eszköz TSOP közötti optikai kommunikáció miatt!

Itt jön ennek a projektnek a kemény része, a keresztbeszéd megakadályozása! A hurkot meg kell szakítani, hogy kétirányú soros kommunikációt lehessen végezni infravörös kapcsolaton keresztül.

Hogyan szakítsuk meg a hurkot?

Az első lehetőség, hogy csökkenti a PWM működési ciklust, így csökkenti a LED optikai teljesítményét. Ez a megközelítés azonban csökkenti azt a távolságot is, amelyen keresztül megbízható soros IR -csatornát kap. A második lehetőség az IR LED árnyékolása, így irányított IR „nyaláb”. Ez próbálkozás és hiba kérdése; végül egy alumínium fóliába és szalagba csomagolt fekete elektromos pneumatikus légtömlő segítségével (elektromos szigetelést biztosítva) sikerült megszakítanom a keresztrúdat. Ha az adó LED -et a cső belsejébe helyezi, megakadályozza az ugyanazon eszköz TX és RX közötti kommunikációt.

Nézze meg a képet, hogy lássa a megoldásomat, de bátran próbálkozzon más módszerekkel és/vagy javasoljon a tiéd! Nincs abszolút megoldás erre a problémára (hacsak nincs szüksége egy egyirányú csatornára), és valószínűleg az igényeinek megfelelően kell beállítania az áramkör elrendezését, a PWM működési ciklust és az infravörös pajzsot.

Miután megszakította a keresztbeszédet, ellenőrizheti, hogy készüléke továbbra is működik-e, ha hurkot hoz létre a Tx-Rx készüléken, amely kihasználja az IR hullámhossz visszaverődését az IR fényvisszaverő felületeken.

4. lépés: Kommunikálj

Kommunikálni!
Kommunikálni!
Kommunikálni!
Kommunikálni!

Ez minden

A soros infravörös eszköz készen áll a kommunikációra, használja őket adatátvitelhez infravörös kapcsolaton keresztül, kapcsolja be/ki a tetszését, vagy ellenőrizze a titokban elrejtett érzékelő állapotát!

A kommunikáció megbízhatósága nem olyan nagy, mint egy WiFi vagy BT eszköz. Ez azonban irányított (a LED rekesznyílástól és a megvalósított IR árnyékoló rendszertől függően), ami bizonyos alkalmazásokban nagyon hasznos lehet!

Hamarosan feltöltök egy videót, ahol néhány példát láthat az általam készített alkalmazásokról. Élvezd!

Ajánlott: