Sisällysluettelo:

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

Video: UChip - Serial Over IR !: 4 vaihetta

Video: UChip - Serial Over IR !: 4 vaihetta
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Heinäkuu
Anonim
UChip - Serial Over IR!
UChip - Serial Over IR!
UChip - Serial Over IR!
UChip - Serial Over IR!

Langattomasta viestinnästä on tullut keskeinen piirre hankkeissamme nykyään ja langattomasta puhuminen, ensimmäinen asia, joka tulee mieleeni, on Wi-Fi tai BT, mutta Wi-Fi- tai BT-viestintäprotokollien käsittely ei ole helppo tehtävä ja kuluttaa paljon MCU -resursseista, jättäen pienen tilan sovellukseni koodaamiseen. Siksi valitsen yleensä ulkoisen Wi-Fi/BT-moduulin, joka on kytketty sarjaan mikrokontrolleriin roolien jakamiseksi ja suuremman vapauden saamiseksi.

Joskus Wi-Fi ja BT ovat kuitenkin "yliarvostettuja" joissakin sovelluksissa, jotka edellyttävät alhaista bittinopeutta ja lyhyttä tiedonsiirtoetäisyyttä. Lisäksi Wi-Fi- tai BT-yhteyden käyttäminen edellyttää älypuhelimen tai laitteen yhdistämistä asianmukaisella todennuksella.

Kuvittele, että sinun tarvitsee vain kytkeä päälle/pois päältä ulkoinen valo, muuttaa lampun voimakkuutta tai avata sähköportti. Kannattaako käyttää Wi-Fi: tä tai BT: tä?

Ympäristöstä ja sovelluksista riippuen langaton tiedonsiirto infrapuna -aallonpituudella voi olla kätevää. Sarja IR: n kautta, toteutettu muutamilla ulkoisilla komponenteilla (3 erillistä komponenttia!) Ja uChip (hyvin pieni Arduino -yhteensopiva levy) voivat olla etsimäsi ratkaisu!

Materiaaliluettelo (yhdelle Tx-Rx-laitteelle):

1 x uChip

1 x IR -LED: päästöhuippu 950 nm

1 x TSOP-38238 (vastaava)

1 x 1Kohhm vastus

Laitteisto

1 x leipälauta/proto -levy

1 x musta muoviputki: sisähalkaisija on sama kuin IR-LED, putki on tarpeen ristikytkentöjen estämiseksi TSOP-vastaanottimen kanssa.

1 x alumiinifolio (3 cm x 3 cm)

1 x nauha

VINKKI: Voit luoda vain lähetys- tai vain lähetyslaitteen, jos tarvitset yksisuuntaista tiedonsiirtoa poistamalla tarpeettomat RX/TX-laitteet piiristä tai ottamalla käyttöön/poistamalla käytöstä luonnoksessa olevan koodin.

Vaihe 1: Johdotus

Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus

Kytke komponentit yhteen kaavion mukaisesti.

Muutama huomautus yksinkertaisesta kaaviosta. Koska TSOP-38238 sallii virtalähteen 2,5 V-5 V ja imee korkeintaan 0,45 mA (löydät tietolomakkeen TÄSTÄ), käytän viritinvahvistinta kahdella nastalla, jotka tarjoavat vastaavasti maadoituksen ja virtalähteen. Tämä mahdollistaa vastaanottimen kytkemisen päälle/pois päältä tarpeen mukaan ja erittäin yksinkertaisen laitteiston johdotuksen. Lisäksi jos tarvitset yksisuuntaista kommunikaatiota, voit valita, haluatko tehdä (Tx/Rx) -laitteen vain poistamalla TSOP-38238-toiminnon käytöstä tai ottamalla sen käyttöön.

Kuinka piiri toimii?

Se on melko yksinkertainen. TSOP -lähtötappi vedetään matalalle, kun anturi havaitsee vähintään 6 pulssin taajuuden 38KHz: llä, toisaalta se vedetään korkealle, kun tällaista signaalia ei ole. Siksi sarjadatan lähettämiseksi infrapunayhteyden kautta piiri tekee LED -anodin virran 38KHz PWM -moduulilla, joka on moduloitu TX -sarjasignaalilla, joka vetää LED -katodin alhaiseksi.

Näin ollen sarjamuotoisen TX0: n korkealla tasolla LED ei ole esijännitetty tai esijännitetty taaksepäin (ei pulsseja) ja TSOP -lähtötappi vedetään korkealle. Lähettää matalaa tasoa sarjassa, LED saa virtaa ja tuottaa IR -pulsseja sovelletun PWM -signaalin mukaisesti; siksi TSOP -lähtö vedetään matalalle.

Koska lähetys on suora (0-> 0 ja 1-> 1), vastaanottimen puolella ei tarvita inverttereitä tai muuta logiikkaa.

Säätelen LED -optista lähtötehoa valitsemalla PWM -käyttöjakson sovelluksen mukaan. Mitä korkeampi käyttöjakso, sitä suurempi optinen lähtöteho ja siksi viestisi välitetään pidemmälle.

Muista, että meidän on vielä tuotettava pulsseja! Siksi sinun ei pitäisi ylittää 90%: n käyttöjaksoa, muuten TSOP ei havaitse signaalia pulsseina.

Tarvitsetko lisää voimaa?

Voimmeko yksinkertaisesti pienentää 1kOhm -vastuksen arvoa virran lisäämiseksi?

Ehkä, älä vain ole liian vaativa! Suurin virta, jonka saat MCU -nastasta, on rajoitettu 7 mA: iin, kun porttia käytetään tavallista voimakkaammin (PINCFG. DRVSTR = 1 ja VDD> 3 V), kuten on ilmoitettu SAMD21 -lomakkeessa.

Vakiokokoonpano (joka on Arduino IDE -kirjastojen omaksuma oletusarvo) rajoittaa virran 2 mA: iin. Siksi 1 kOhm: n käyttö antaa jo nykyisen rajan oletusasetuksilla!

Virran lisääminen ei ole vain sähkökomponenttien asia. Lyhyesti:

  • Vaihda vastus (jonka vähimmäisarvo on rajoitettu noin 470 Ohm -> VDD/470 ~ 7mA);
  • Aseta vastaavasti PORT-> PINCFG-> DRVSTR arvoksi 1;

Annan tämän ominaisuuden sisältävän koodin tulevassa päivityksessä.

Mutta muista, että virran upottaminen ja tyhjentäminen MCU -nastoista lähellä rajojaan ei ole niin hyvä lähestymistapa. Itse asiassa se vähentää MCU: n käyttöikää ja luotettavuutta. Siksi suosittelen pitämään normaalin käyttövoiman pitkäaikaisessa käytössä.

Vaihe 2: Ohjelmointi

Lataa luonnos “IRSerial.ino” uChipiin (tai käyttämääsi Arduino -yhteensopivaan korttiin).

Jos sinun on vaihdettava PWM: n tuottava tappi, varmista, että käytät TCC -ajastimeen kytkettyä nastaista, koska tämä koodiversio toimii vain TCC -ajastimien kanssa (tarkista nämä tiedot piirilevysi "variant.c"). Lisään koodin käytettäväksi myös TC -ajastimiin tulevissa päivityksissä.

Koodi on melko yksinkertainen. Kun olet asettanut PIN_5 -arvon matalaksi (tarjoaa TSOP GND: n) ja PIN_6: n korkean (virran TSOP: lle), MCU käynnistää PWM -toiminnon PIN_1 -asetuksella, asettaa ajastimen ajan ja kaappauksen vertaa tarvittavaan taajuusmodulaatioon (minun tapauksessani se on 38 KHz) ja tehtävään sykli (oletusarvo 12,5%). Tämä tehdään käyttämällä PWM-nastojen standardin analogWrite () -funktiota ja muuttamalla vain PER_REG- (jaksorekisteri) ja CC (kaappauksen vertailu) -rekisteriä (kirjoitettu koodi on yksinkertaisesti leikkaus ja liittäminen wiring_analog-kirjastosta). Voit asettaa tarvittavan taajuuden TSOP -anturin muuttuessa PER_REG (joka on ajastinlaskurin nollauksen yläraja), kun taas asetat CC: n suhteessa jakson arvoon halutun käyttöjakson prosenttiosuuden mukaan.

Seuraavaksi koodi asettaa sarjaportin käyttämällä oikeaa siirtonopeutta, joka on 2400 bps. Miksi niin alhainen siirtonopeus ?! Vastaus löytyy TSOP -tietolomakkeesta, jonka löydät TÄSTÄ. Koska TSOP: ssa on korkea melua hylkivät suodattimet, jotka estävät ei -toivotun kytkennän, on tarpeen lähettää usean pulssin sarja TSOP -lähtötapin vetämiseksi alas (pulssien määrä riippuu TSOP -versiosta, 6 on tyypillinen arvo). Samoin TSOP -lähtö vedetään korkealle vähintään 10 pulssia vastaavan vähimmäisajan jälkeen. Näin ollen TSOP -lähdön asettamiseksi moduloivaksi TX0 -signaaliksi on tarpeen asettaa baudinopeus seuraavan yhtälön mukaisesti:

Sarja Baud <PWM_frequency/10

38 KHz: n avulla tämä johtaa nopeuteen, joka on pienempi kuin 3800 bps, mikä tarkoittaa, että korkeampi sallittu siirtonopeus on 2400 pbs, kuten aiemmin odotettiin.

Haluatko lisätä baudinopeutta? Vaihtoehtoja on kaksi.

Helpoin vaihtoehto on muuttaa TSOP korkeamman taajuuden versioon (kuten TSOP38256), jolloin voit kaksinkertaistaa baudinopeuden (4800 bps)

Ei tarpeeksi?! Sitten sinun on tehtävä oma optinen linkkisi käyttämällä yksinkertaista IR LED+-valodiodia ja vahvistinpiiriä. Tämä ratkaisu vaatii kuitenkin paljon koodaus- ja elektroniikkaosaamista estääkseen kohinaa vaikuttamasta lähetettyihin tietoihin, joten sen toteuttaminen ei ole ollenkaan helppoa! Jos kuitenkin tunnet olosi tarpeeksi luottavaiseksi, olet enemmän kuin tervetullut kokeilemaan oman TSOP -järjestelmän luomista!:)

Lopuksi asetin SerialUSB -portin (2400 bps), jota käytän lähettämään ja vastaanottamaan tietoja sarjamonitorista.

Silmukka () -toiminto sisältää koodin, joka tarvitaan tietojen siirtämiseen kahden sarjan yli, ja se kopioidaan suoraan esimerkkiluonnoksesta SerialPassthrough muuttamalla vain sarjanumeroita.

Vaihe 3: Suojaa IR -LED

Suojaava IR -LED
Suojaava IR -LED
Suojaava IR -LED
Suojaava IR -LED

Jos käynnistät yllä olevan piirin, kun olet ladannut “IRSerial.ino” -koodin, tarkista Arduino IDE -sarjan monitori ja yritä lähettää merkkijono. Todennäköisesti huomaat, että uChip vastaanottaa juuri sen, mitä se lähettää! Piirissä on ristipuhelu, joka johtuu IR-LEDin ja saman laitteen TSOP: n välisestä optisesta tiedonsiirrosta!

Tässä tulee hankkeen vaikea osa, joka estää ristikeskustelun! Silmukka on katkaistava, jotta kaksisuuntainen sarjaliikenne voidaan suorittaa infrapunayhteyden kautta.

Kuinka katkaistaan silmukka?

Ensimmäinen vaihtoehto on PWM -käyttöjakson alentaminen, mikä pienentää LEDin optista tehoa. Tämä lähestymistapa kuitenkin lyhentää myös etäisyyttä, jonka yli saat luotettavan sarja -IR -kanavan. Toinen vaihtoehto on suojata IR -LED, jolloin saadaan suunnattu IR -säde. Kyse on yrittämisestä ja erehdyksestä; lopulta onnistuin katkaisemaan poikkipuun käyttämällä alumiinifolioon ja teippiä käärittyä mustaa pneumaattista ilmaletkua (joka tarjoaa sähköeristyksen). Lähettävän IR -LED -valon asettaminen putken sisään estää viestinnän saman laitteen TX: n ja RX: n välillä.

Katso kuvaa nähdäksesi ratkaisuni, mutta kokeile rohkeasti muita menetelmiä ja/tai ehdota omaasi! Tähän ongelmaan ei ole ehdotonta ratkaisua (ellet tarvitse yksinkertaista yksisuuntaista kanavaa), ja sinun on todennäköisesti viritettävä piirien asettelu, PWM-käyttöjakso ja infrapunasuoja tarpeidesi mukaan.

Kun olet katkaissut ristipuhelun, voit varmistaa, että laitteesi toimii edelleen luomalla silmukan laitteeseen Tx-Rx hyödyntämällä IR-aallonpituuden heijastumista IR-heijastavilla pinnoilla.

Vaihe 4: Kommunikoi

Kommunikoi!
Kommunikoi!
Kommunikoi!
Kommunikoi!

Siinä kaikki

Sarja -infrapunalaitteesi on valmis kommunikoimaan, käytä niitä tietojen lähettämiseen infrapunayhteyden kautta, kytke päälle/pois kaikki mitä haluat tai tarkista salaisesti piilottamasi anturin tila!

Etäisyys, jolla yhteys on luotettava, ei ole yhtä suuri kuin WiFi- tai BT -laitteella. Se on kuitenkin suuntaava (riippuen LED -aukosta ja toteutetusta IR -suojausjärjestelmästä), mikä voi olla erittäin hyödyllistä joissakin sovelluksissa!

Pian lähetän videon, jossa näet muutamia esimerkkejä tekemistäni sovelluksista. Nauttia!

Suositeltava: