CC1101: RF transceiver para gamitin sa Arduino

cc1101

Tiyak na sa ilang mga proyekto kailangan mong magtrabaho gamit ang radio frequency sa iyong Arduino, o sa anumang iba pang development board o DIY circuit. Well, kung iyon ang iyong kaso, dapat mong malaman kung ano ang CC1101 radio frequency (RF) transceiver. At iyon ang susubukan naming ipaliwanag sa iyo sa artikulong ito.

At kasama nito ang isa pa electronic component na sumali sa aming listahan, maaari kang magtrabaho sa iba't ibang frequency ng signal...

Ano ang RF?

electromagnetic spectrum

may dalas ng radyo (RF) Tinutukoy namin ang isang bahagi ng electromagnetic spectrum na ginagamit upang magpadala ng impormasyon sa pamamagitan ng hangin. Ang mga RF wave ay isang uri ng electromagnetic radiation, at nagagawa tuwing ang enerhiyang elektrikal ay ipinapadala sa pamamagitan ng isang konduktor, tulad ng isang cable. Nalalapat ang terminong RF sa pinakamaliit na bahagi ng electromagnetic spectrum na ipinapakita ko sa iyo sa nakaraang larawan, at matatagpuan sa pagitan ng 3 hertz (Hz) at 300 gigahertz (GHz).

Bilis ng liwanag = Haba ng daluyong · dalas

Ang bilis ng liwanag (humigit-kumulang 3.000.000 m/s) ay hindi nagbabago, kaya habang tumataas ang wavelength ng signal ng RF, bumababa ang dalas nang proporsyonal at vice versa. Ang isang medyo mataas na frequency RF signal ay may maikling wavelength at isang mas mababang frequency RF signal ay may mas mahabang wavelength. Para sa parehong dahilan, ang mga signal ng mas mababang dalas ay mas tumatagos o maaaring sumasakop sa mas malawak na saklaw. Halimbawa, kung mayroon kang 2.4 Ghz WiFi, maaari itong umabot nang higit pa at mas mahusay na tumawid sa mga hadlang kumpara sa 5 Ghz WiFi, bagama't pinapayagan ng huli ang mas mataas na bilis ng paghahatid...

Ang hertz ay ang yunit ng pagsukat para sa dalas ng mga alon, at tumutugma sa isang cycle bawat segundo. Kung mas mataas ang frequency ng wave, mas maikli ang wavelength nito. Iyon ang dahilan kung bakit ang gamma radiation ay napakatagos, dahil ang wavelength ay napakaliit, at ang dalas nito ay napakataas, kaya ito ay lubos na masigla.

Ang mga electromagnetic wave mula sa rehiyong ito ng spectrum ay maaaring maipadala sa pamamagitan ng paglalapat ng alternating current na nagmumula sa isang generator patungo sa isang antenna. Ang mga alon ng dalas ng radyo, bilang mga electromagnetic wave, naglalakbay sa bilis ng liwanag. Sa pinakasimple nito, ang isang iba't ibang signal ng kuryente sa isang antenna ay maaaring makagawa ng mga electromagnetic oscillations (ibig sabihin, mga RF wave). Ang mga ito ay maaaring hindi sinasadya (posibleng magdulot ng interference sa iba pang mga device) o sinadya: maingat na binago ang mga signal na maaaring matanggap ng ibang mga antenna at mabibigyang-kahulugan bilang kapaki-pakinabang na impormasyon.

Sa loob ng saklaw ng RF na ito, maaari kaming magpadala ng data sa mataas na bilis, halimbawa, tulad ng ginawa sa Mga komunikasyon sa Wi-Fi at mga cell phone, pati na rin ang tradisyonal na AM at FM na radyo.

Ano ang isang transceiver?

RF transduser

Ang isang transceiver ay isang aparato na pinagsasama ang mga kakayahan ng isang transmitter at isang receiver sa mga shared circuit. Nangangahulugan ito na maaari itong magpadala at tumanggap ng mga signal, nang hindi kinakailangang magkaroon ng transmitter sa isang banda at isang receiver sa kabilang banda. Isang bagay na medyo praktikal para sa maraming mga proyekto sa DIY.

Ang mga transceiver ay maaaring dalawang pangkalahatang uri: full duplex at half duplex. Sa isang full duplex transceiver, maaaring magpadala at tumanggap ang device nang sabay. Ang isang karaniwang halimbawa ng isang full duplex transceiver ay isang mobile phone. Sa kabilang banda, ang isang half-duplex transceiver ay nagmu-mute sa isang partido habang ang isa ay nagpapadala.

Ang mga transceiver ay ang pundasyon ng wireless na komunikasyon at ginagamit sa iba't ibang mga aplikasyon, mula sa mga mobile phone hanggang sa mga satellite ng komunikasyon, sa pamamagitan ng maraming iba pang mga network at mga paraan ng pagpapadala ng impormasyon, tulad ng radyo, TV, atbp.

Mga aplikasyon ng isang transceiver

Ang radio frequency (RF) transceiver ay a multifunctional na aparato na maaaring magkaroon ng malaking bilang ng mga gamit. Halimbawa, tulad ng sinabi ko dati, ang presensya nito ay mahalaga sa iba't ibang mga application na nangangailangan ng wireless na komunikasyon. Sa larangan ng mobile telecommunications, ang mga transceiver ay ginagamit sa mga mobile phone para sa paghahatid at pagtanggap ng mga signal. Bilang karagdagan, mahalaga ang mga ito sa mga teknolohiya tulad ng WiFi at Bluetooth, na naka-deploy sa mga device gaya ng mga router, computer at Internet of Things (IoT) device, na nakadepende sa wireless na komunikasyon para sa kanilang operasyon.

Sa propesyonal na larangan, ang mga RF transceiver ay mahalaga sa mga sistema ng seguridad. two way na radyo, tulad ng mga two-way na radyo na ginagamit sa mga propesyonal na aplikasyon, seguridad at mga serbisyong pang-emergency. Ang mga device na ito ay nakakahanap din ng aplikasyon sa mga sistema ng pagtuklas, tulad ng mga radar na ginagamit para sa pagtuklas ng bagay, nabigasyon at kontrol sa trapiko sa himpapawid, pati na rin sa mga sonar system para sa mga aplikasyon sa ilalim ng tubig.

La pagsasahimpapawid, Para sa parehong radyo at telebisyon, nakadepende ito sa mga RF transceiver para sa pagpapadala ng mga signal sa pamamagitan ng iba't ibang media, terrestrial man o satellite. Higit pa rito, sa space domain, ang mga transceiver ay mahalaga para sa komunikasyon sa pagitan ng mga satellite at ground station sa mga satellite communications system.

En remote control at telemetry application, Ang mga RF transceiver ay ginagamit para sa paghahatid ng data mula sa mga electronic device, drone o unmanned aerial vehicle (UAV). Mahalaga rin ang mga ito sa mga navigation system, tulad ng mga GPS receiver, kung saan sila ay nag-aambag sa pagtukoy ng lokasyon at pag-navigate. Sa buod, ang versatility ng RF transceiver ay ginagawa silang mahahalagang bahagi sa iba't ibang modernong teknolohiya na umaasa sa wireless na komunikasyon at paghahatid ng data.

Malinaw, may ilan sa mga application na ito na hindi maabot ng CC1101, dahil mayroon itong mga limitasyon at gumagana sa ilang partikular na saklaw ng dalas. Gayunpaman, dapat mong malaman na mayroong higit pang mga device sa merkado tulad ng transceiver na ito upang gumana sa iba pang mga frequency, distansya, atbp.

Ano ang CC1101?

cc1101

El CC1101 ay isang radio frequency (RF) transceiver na idinisenyo upang gumana sa mga frequency na mas mababa sa 1 GHz. Maaaring gamitin ang device na ito kasabay ng isang processor gaya ng Arduino upang magpadala o tumanggap ng data sa pamamagitan ng radio frequency. Ang CC1101 ay maaaring gumana sa anumang dalas sa loob ng mga sumusunod na banda:

  • 300 isang 348 MHz
  • 387 isang 464 MHz
  • 779 isang 928 MHz

Ginagawa ng mga feature na ito na opsyon ang CC1101 Versatile para sa iba't ibang proyekto na nangangailangan ng wireless na komunikasyon, kabilang ang mga proyekto ng Arduino at ESP8266/ESP321, at iba pang mga proyekto sa electronics sa larangan ng malalayong komunikasyon.

Bilang karagdagan, ang CC1101 Binibigyang-daan kang ayusin ang bit rate para sa iba't ibang gamit, na nagbibigay-daan sa mas mataas na bilis ng transmission, mula 0.6 Kbps hanggang 600 Kbps. At sinusuportahan din nito ang 2-FSK, GFSK at MSK3 modulations.

Kung interesado ka, mahahanap mo ito sa mga dalubhasang tindahan ng electronics, o sa mga online na platform ng pagbebenta tulad ng Amazon, Aliexpress at eBay. Narito mayroon kang isa bumili ng rekomendasyon:

Programmable din ang output power, para sa lahat ng frequency na sumusuporta hanggang +10 dBm. Siya ang saklaw ay hanggang 100-150 metro, depende sa dalas. At para sa operasyon nito kailangan nito ng boltahe na 1.8 hanggang 3.6V. Ang komunikasyon ng data ay isinasagawa sa pamamagitan ng SPI bus, kaya madaling gamitin ito kasama ng isang MCU o mga board tulad ng Arduino...

Gamit ang CC1101 kasama ang Arduino

Arduino IDE, mga uri ng data, programming

Ngayon, kapag naunawaan mo na kung ano ang CC1101, kung gusto mong gamitin ito sa Arduino, madali itong gawin. Upang gawin ito, ang unang bagay ay kumonekta ng tama ang RF device o module sa iyong development board. Mag-ingat, dahil hindi pinahihintulutan ng CC1101 ang mga boltahe ng 5v at maaari mo itong masira, kaya hindi ito makakonekta sa 5v socket ng Arduino tulad ng ginawa namin sa maraming iba pang mga aparato. Ang koneksyon para gumana ito ng maayos ay ang mga sumusunod:

  • VDC: ito ay konektado sa Arduino 3v3 upang magkaroon ng socket na ito, kung wala ito at mayroon ka lamang 5v, pagkatapos ay kailangan mong ikonekta ito sa isang baterya o panlabas na mapagkukunan na maaaring magbigay ng boltahe na iyon o ang CC1101 ay masira.
  • SI: Ito ay konektado sa Arduino SCK, na maaaring magpalit ng pin depende sa modelo, ngunit sa pangkalahatan ay D13.
  • SO: Sa kasong ito ito ay konektado sa GO2, na karaniwang ang D12 pin ng Arduino.
  • Ang CSN: kailangan mong dalhin ito sa GO0 pin, na D9 ng Arduino.
  • GND: at sa wakas, ang GND ay ikokonekta sa GND ng Arduino o ang iyong power supply.

Kapag ito ay tapos na, oras na upang isulat ang code upang subukan ito sa Arduino IDE. Upang gawin ito, narito akong nagpapakita sa iyo ng isang napakapangunahing halimbawa, ngunit isa na maaari mong baguhin ayon sa gusto mo. Sa kasong ito ang CC1101 ay gagana bilang receptor RF signal:

Tandaan na kakailanganin mong mag-install ng library sa iyong Arduino IDE para gumana, ang library na iyon ay ang ELECHOUSE para sa CC1101 na maaari kang mag-download mula rito.
#include <ELECHOUSE_CC1101_SRC_DRV.h>

void setup(){

    Serial.begin(9600);

    if (ELECHOUSE_cc1101.getCC1101()){         // Comprobar la conexión SPI del CC1101.
    Serial.println("Connection OK");
    }else{
    Serial.println("Connection Error");
    }

    ELECHOUSE_cc1101.Init();              // Inicializa el CC1101
    ELECHOUSE_cc1101.setCCMode(1);       // Configuración del modo de transferencia interna.
    ELECHOUSE_cc1101.setModulation(0);  // Modulación: 0 = 2-FSK, 1 = GFSK, 2 = ASK/OOK, 3 = 4-FSK, 4 = MSK.
    ELECHOUSE_cc1101.setMHZ(300,15);   // Pon la frecuencia que quieras usar para la transmisión (por defecto es 433,92 Mhz)
    ELECHOUSE_cc1101.setSyncMode(2);  // Modo de sync: 0 = No preamble/sync. 1 = 16 sync word bits detected. 2 = 16/16 sync word bits detected. 3 = 30/32 sync word bits detected. 4 = No preamble/sync, carrier-sense above threshold. 5 = 15/16 + carrier-sense above threshold. 6 = 16/16 + carrier-sense above threshold. 7 = 30/32 + carrier-sense above threshold.
    ELECHOUSE_cc1101.setCrc(1);      // 1 = CRC calculado en TX y comprobación CRC en RX habilitada. 0 = CRC deshabilitado en TX y RX.
    
    Serial.println("Rx Mode");
}
byte buffer[61] = {0};

void loop(){

    //Comprueba si se ha recibido algo en un tiempo marcado por (time in millis)
    if (ELECHOUSE_cc1101.CheckRxFifo(100)){
    
    if (ELECHOUSE_cc1101.CheckCRC()){    //Prueba CRC. Si "setCrc(false)" CRC devuelve un OK siempre.
    Serial.print("Rssi: ");
    Serial.println(ELECHOUSE_cc1101.getRssi());
    Serial.print("LQI: ");
    Serial.println(ELECHOUSE_cc1101.getLqi());
    
    int len = ELECHOUSE_cc1101.ReceiveData(buffer);
    buffer[len] = '\0';
    Serial.println((char *) buffer);
    for (int i = 0; i < len; i++){
    Serial.print(buffer[i]);
    Serial.print(",");
    }
    Serial.println();
    }
    }
}

Ang CC1101 ay gumagana bilang transmiter Ang RF signal ay may code na katulad ng nauna.


Maging una sa komento

Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.