SILICON LABS LOGOA

SILICON LABS 21Q2 Bluetooth Features Lab

SILICON LABS 21Q2 Bluetooth Features Lab

Bluetooth 21Q2 Ezaugarrien Lab eskuliburua

Laborategiko eskuliburu honek 20Q4 eta 21Q2 bertsioen artean sartu ziren Bluetooth SDK eginbide berrien berri ematen dizu. Laborategi honetan NCP bat sortuko duguample eta ostalari software bat idatzi Python hizkuntzan. GATT funtzio dinamiko berria erabiliz GATT datu-basea ostalari softwaretik ere eraikiko dugu GATT konfiguratzailea erabili beharrean. Azkenik LE Power Control funtzioa ostalari softwarea zabalduz aurkezten da.SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 1

Aurrebaldintzak

Laborategi hau burutzeko, honako hauek beharko dituzu:

  • Bi Thunderboard BG22 edo bi WSTK edozein EFR32BG/EFR32MG irrati-plaka edo hauen nahasketarekin
  • Simplicity Studio 5 instalatuta, Gecko SDK v3.2 Bluetooth SDKv3.2 barne
  • Python v3.6 edo berriagoa instalatuta dagoen ordenagailu bat

NCP funtzionalitaterako helburuko gailuak keinuka

  • Lotu zure bi irrati-plakak eta ireki Simplicity Studio 5
  • Hautatu irrati-plaketako bat Araztu egokitzaileak fitxan
  • Ezarri Preferred SDK v3.2.0-n Over-enview Abiarazlearen fitxa view
  • Ireki Example Proiektuak eta Demos fitxa
  • Aurkitu Bluetooth - NCP demo berria.
  • Egin klik Exekutatu NCP helburuko irudia arbelean bistaratzeko.SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 2

(Oharra: Bluetooth - NCP Hutsa, proiektu honek ez du aurrez eraikitako GATT datu-baserik, baina GATT API dinamikoa gaituta dauka, hurrengo ataletarako ezinbesteko baldintza da)

  • Errepikatu urrats berdinak beste irrati-taularekin.

Python-en Bluetooth zerbitzariaren aplikazio bat sortzea

Hasteko

  • Pybgapi paketeak helburuko gailura BGAPI komandoak igortzeko aukera ematen du PCtik Python programazio-lengoaia erabiliz. Pakete hau instalatzeko, idatzi honako hau komando lerroan: pip install pybgapi Paketeari buruzko informazio gehiago lortzeko, bisitatu https://pypi.org/project/pybgapi/
  • Bilatu azken BGAPI definizioa file azpian
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi eta kopiatu zure laneko karpetan.
  • Ireki python bash (idatzi python CLI-n)
  • Inportatu bgapi liburutegia komando honekin: >>> inportatu bgapi
  • Bilatu zure irrati-plaketako baten COM atakaren zenbakia (adibidez, COM49). "JLink CDC UART Port" bilatu beharko zenuke Gailu-kudeatzailean edo zure terminal gogokoen aplikazioan.SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 3
  • Konektatu zure irrati-plakara:
    • >>> konexioa = bgapi.SerialConnector('COM49')
  • Hasieratu pybgapi liburutegia nodo honetarako:
    • >>> nodoa = bgapi.BGLib (konexioa,'sl_bt.xapi')
  • Ireki BGAPI komunikazioa nodo honetara:
    • >>> node.open()
  • Egiaztatu arbelarekin komunikatzeko gai zaren, system_hello() komandoa erabiliz. system_hello erantzuna jaso beharko zenuke:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello (emaitza=0)
  • Berrezarri zure nodoa komando honekin:
    • node.bt.system.reset(0)
  • Orain system_boot gertaera bat lortu beharko zenuke. Azken gertaera eskuratzeko, erabili komando hau:
    • evt = node.get_events(max_events=1)
    • inprimatu (evt)
      • [bt_evt_system_boot(major=3, minor=2, adabaki=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

GATT datu-basea eraikitzea

  • Bluetooth - NCP xede aplikazioak ez du aurrez eraikitako GATT datu-baserik. Hemen datu-basea kodetik sortuko dugu. Lehenik eta behin, hasi datu-basea eraikitzeko saio bat:
    • >>> saioa = node.bt.gattdb.new_session().session
  • Gehitu zerbitzu berri bat GATT datu-basean. Hemen Bluetooth SIG-ek hartutako Sarbide Orokorra zerbitzua gehituko dugu. Hau zerbitzu nagusi bat da (0x0), bandera ezarri gabe (0x0) eta 16 biteko UUID (0x1800) duena.
    • zerbitzua = node.bt.gattdb.add_service(saioa, 0, 0, bytes.fromhex(“0018”)).zerbitzua
  • Gehitu ezaugarri berri bat zerbitzuari. Hemen Gailuaren Izenaren ezaugarria gehituko dugu Sarbide Orokorraren zerbitzura, IRAKURTZEKO propietatearekin (0x2), segurtasun-baldintzarik gabe (0x0), banderarik gabe (0x0), 16bit UUID (0x2a00), luzera aldakorra (0x2), gehienezko 20 luzera eta hasierako balioarekin “PyBGAPI

Example”:

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(saioa, zerbitzua, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, bytes('PyBGAPI Adibample','utf-8′)).ezaugarri
    • 3.15 Aktibatu zerbitzu berria:
  • >>> node.bt.gattdb.start_service(saioa,zerbitzua)
    • bt_rsp_gattdb_start_service (emaitza=0)
  • Aktibatu ezaugarri berria:
    • >>> node.bt.gattdb.start_characteristic(saioa, karaktere)
      • bt_rsp_gattdb_start_characteristic (emaitza=0)
  • Gorde aldaketak eta itxi datu-basea editatzeko saioa:
    • >>> node.bt.gattdb.commit(saioa)
    • bt_rsp_gattdb_commit(emaitza=0)

Zerbitzariarekin konektatzen

  • 3.18 Orain, GATT datu-basean gailuaren izena daukagunez, iragarkiak egiten has gaitezke. Pilak automatikoki iragarriko du gailua bere GATT datu-basean zehaztutako izenarekin:
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(iragarle_multzoa, 2, 2)
      • bt_rsp_advertiser_start(emaitza=0)
  • Hasi EFR Connect zure telefonoan eta aurkitu zure gailuaren publizitatea "PyBGAPI Example ”
  • Gailura konekta zaitezke eta orain Gailuaren Izenaren ezaugarria duen GATT datu-basea aurki dezakezu

Oharra: oso azkar bat nahi baduzuample GATT datu-basearekin kezkatu gabe, oraindik Bluetooth-a flash dezakezu - NCP Hutsa adibidezample zure taulara, aurrez eraikitako oinarrizko GATT datu-base bat duena. Kasu honetan ostalariaren aldetik egin behar duzun guztia hau da:

  • >>> inportatu bgapi
  • >>> konexioa = bgapi.SerialConnector('COM49')
  • >>> nodoa = bgapi.BGLib (konexioa,'sl_bt.xapi')
  • >>> node.open()
  • >>> advertiser_set = node.bt.advertiser.create_set().handle
  • >>> node.bt.advertiser.start(iragarle_multzoa, 2, 2)
    • bt_rsp_advertiser_start(emaitza=0)

Python-en Bluetooth Bezeroaren Aplikazio bat sortzea

  • Bezero bat sortzea zerbitzari bat ezartzea baino zailagoa da. Horregatik, python script bat idatziko dugu. Ireki zure gogoko testu-editorea eta sortu berri bat file, deitu dezagun client.py
  • Inportatu hauek:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 4
  • Zerbitzariaren kasuan bezala, UART bidez nodora konektatuko gara. Erabili zure bigarren plakaren COM atakaren zenbakia hemen:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 5
  • Hemendik aurrera, gure aplikazioa gertakarien araberakoa izango da. Pilak Bluetooth gertaera bat sortzen duen bakoitzean, gertaera kudeatuko dugu eta aplikazioa aurrera eramango dugu:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 6
  • Definitu dezagun gertaeren kudeatzailea funtzioa eta gehi dezagun kudeatzaile bat system_boot gertaerarako, non gailu periferikoak bilatzen hasiko garen. Kontuan izan, funtzio hau while begiztaren aurretik (eta nodoaren aldagaiaren definizioaren ondoren) definitu behar dela.SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 7.
  • Eskanerra abiarazitakoan, nodoak eskaneatu txostenak jasoko ditu. Gehitu dezagun gertaeren kudeatzaile bat eskaneatzeko txostenetarako sl_bt_on_event() funtzioaren barruan. Iragarritako gailuaren izena duen eskaneatu txosten bat aurkitzen bada "PyBGAPI Example", bezeroak konexio bat irekiko du gailu horrekin: SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 7
  • Puntu honetara iritsitakoan, zure bezeroak zerbitzaria aurkitzen duen egiaztatzea merezi du. Ziurtatu iragarkia beste gailu batean hasi duzula, gero gorde client.py eta abiarazi komando-lerrotik. Horrelako zerbait ikusi beharko zenuke: SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 8
  • Bezeroak zerbitzarian zerbitzuak eta ezaugarriak aurkitu behar ditu. Hemen Sarbide Orokorra zerbitzua eta Gailuaren Izenaren ezaugarria ezagutuko ditugu eta, azkenik, Gailuaren Izenaren ezaugarriaren balioa irakurriko dugu. Ordeztu zure uneko sl_bt_on_event() funtzioa kode honekin:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 9 SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 10
  • Gorde client.py eta hasi komando-lerrotik. Horrelako zerbait ikusi beharko zenuke:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 11

LE Power Control Ezaugarri gehitzea

Helburuko gailuak keinuka

LE Power Control ez dago gaituta Bluetooth-en adibidezample proiektuak lehenespenez. Eginbide hau gehitzeko, Bluetooth > Eginbidea > PowerControl software osagaia instalatu behar da.

  • Ireki abiarazlea view Simplicity Studio 5-en.
  • Hautatu zure gailuetako bat Araztu egokitzaileak fitxan. Ziurtatu hobetsitako SDK v3.2 dela.
  • Ireki Example Projects & Demos fitxa eta aurkitu Bluetooth - NCP Hutsik adibidezample. Sakatu [Sortu] proiektua sortzeko. (Oraingoan ez dugu GATT datu-basea eraiki nahi, beraz, NCP Empty erabiltzen dugu, lehenetsitakoa duena).
  • Ireki GATT Konfiguratzailea fitxa, hautatu Gailuaren izenaren ezaugarria eta gainidatzi "Silabs Example" hasierako balioa "PyBGAPI Example” (bezeroak zerbitzaria ezagutu dezan). Gainera, gainidatzi balioaren luzera 15-rekin.
  • Sakatu ctrl-s datu-basea gordetzeko.
  • Proiektuaren konfiguratzailean ireki Software osagaiak fitxa.
  • Bilatu Bluetooth > Eginbidea > PowerControl software-osagaia eta egin klik [Instalatu]SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 12
  • Egin klik PowerControlsoftware osagaiaren ondoan dagoen gurpilean urrezko barrutiaren goiko eta beheko mugak egiaztatzeko. Ezarri beheko muga 1M-rako
    • PHY -45era (-60 ordez). Praktikan balio hori optimoa ez den arren, Tx potentzia doikuntza gehiago eragingo ditu, eta hori ona da erakustaldietarako.
  • SDK 3.2.0 bertsioan, konponbide txiki bat aplikatu behar da urrezko barrutia behar bezala ezartzeko: ireki sl_bluetooth.c. file zure proiektuko /autogen karpetan aurkitu eta mugitu sl_bt_init_power_control(); funtzio-deia BEFORE sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 13
  • Eraiki proiektua eta flash ezazu zure arbelean.
  • Zure bi taulak mota berekoak badira, flash irudi bera beste taulan ere. Zure bigarren taula beste taula bat bada, errepikatu goiko urratsak bigarren taularako.

Zerbitzaria eta Bezeroa abiaraztea

  • Orain berriro, ireki Python bash, konektatu zure lehen taulara eta hasi iragarkiak egitenSILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 14
  • Aldatu zure bezeroaren aplikazioa gailuaren izena irakurri ondoren irten ez dadin. Bilatu lerro hauek, eta jarri iruzkin batean:SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 15
  • Gorde eta exekutatu zure bezeroaren aplikazioa
    • py .\client.py
  • Jarri zure bi oholak urrun, eta gero, poliki-poliki, hurbil itzazu elkarrengana. Orain ikusi beharko zenuke pila bere potentzia maila jaisten hasten dela 8dBm lehenetsitik -3dBm-ra (hau da lehenespenez Tx potentzia minimoa):SILICON LABS 21Q2 Bluetooth Ezaugarriak Lab 16

Dokumentuak / Baliabideak

SILICON LABS 21Q2 Bluetooth Features Lab [pdf] Argibideen eskuliburua
21Q2, Bluetooth Ezaugarrien Laborategia, 21Q2 Bluetooth Ezaugarrien Laborategia, Ezaugarrien Laborategia, Laborategia

Erreferentziak

Utzi iruzkin bat

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *