SILICON LABS LOGO

SILICON LABS 21Q2 Bluetooth Feature Lab

SILICON LABS 21Q2 Bluetooth Feature Lab

Bluetooth 21Q2 eiginleikar rannsóknarstofuhandbók

Þessi rannsóknarstofuhandbók leiðir þig í gegnum nokkra af nýju Bluetooth SDK eiginleikum sem voru kynntir á milli 20Q4 og 21Q2 útgáfunnar. Í þessari rannsóknarstofu munum við búa til NCP fyrrverandiample og skrifaðu gestgjafahugbúnað á Python tungumáli. Með því að nota nýja kraftmikla GATT eiginleikann munum við einnig byggja upp GATT gagnagrunninn úr hýsingarhugbúnaðinum í stað þess að nota GATT Configurator. Að lokum er LE Power Control eiginleiki kynntur með því að stækka hýsilhugbúnaðinn.SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 1

Forkröfur

Til að ljúka þessari tilraunastofu þarftu eftirfarandi:

  • Tvær Thunderboard BG22 eða tvær WSTK með hvaða EFR32BG/EFR32MG útvarpsborði sem er eða blanda af þessum
  • Simplicity Studio 5 uppsett, með Gecko SDK v3.2 þar á meðal Bluetooth SDKv3.2
  • Tölva sem Python v3.6 eða nýrri er uppsett á

Blikkandi marktæki fyrir NCP virkni

  • Festu tvö útvarpsspjöld og opnaðu Simplicity Studio 5
  • Veldu eitt af útvarpstöflunum á kembiforritum flipanum
  • Stilltu Preferred SDK á v3.2.0 á Overview flipanum í ræsiforritinu view
  • Opnaðu Exampflipann Verkefni og kynningar
  • Finndu nýja Bluetooth – NCP kynninguna.
  • Smelltu á Hlaupa til að flakka NCP-markmyndinni á borðið.SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 2

(Athugið: öfugt við Bluetooth - NCP Empty inniheldur þetta verkefni ekki forsmíðaðan GATT gagnagrunn, en það hefur kraftmikið GATT API virkt, sem er forsenda næstu hluta)

  • Endurtaktu sömu skref fyrir hitt útvarpsborðið.

Að búa til Bluetooth netþjónaforrit í Python

Að byrja

  • Pybgapi pakkinn veitir möguleika á að gefa út BGAPI skipanir í átt að marktækinu frá tölvunni með Python forritunarmáli. Til að setja upp þennan pakka skaltu slá inn eftirfarandi í skipanalínuna: pip install pybgapi Fyrir frekari upplýsingar um pakkann heimsókn https://pypi.org/project/pybgapi/
  • Finndu nýjustu BGAPI skilgreininguna file undir
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi og afritaðu það í vinnumöppuna þína.
  • Opnaðu python bash (sláðu inn python í CLI)
  • Flyttu inn bgapi bókasafnið með eftirfarandi skipun: >>> import bgapi
  • Finndu COM gáttarnúmerið (td COM49) á einu af útvarpsborðunum þínum. Þú ættir að leita að „JLink CDC UART Port“ í tækjastjóranum eða í uppáhalds flugstöðvarforritinu þínu.SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 3
  • Tengstu við útvarpsspjaldið þitt:
    • >>> tenging = bgapi.SerialConnector('COM49')
  • Frumstilla pybgapi bókasafnið fyrir þennan hnút:
    • >>> hnútur = bgapi.BGLib(tenging,'sl_bt.xapi')
  • Opnaðu BGAPI samskipti í átt að þessum hnút:
    • >>> node.open()
  • Athugaðu hvort þú getir átt samskipti við stjórnina með því að nota system_hello() skipunina. Þú ættir að fá system_hello svar:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello (niðurstaða=0)
  • Endurstilltu hnútinn þinn með eftirfarandi skipun:
    • node.bt.system.reset(0)
  • Nú ættir þú að fá system_boot atburð. Til að sækja nýjasta atburðinn skaltu nota eftirfarandi skipun:
    • evt = node.get_events(max_events=1)
    • prenta (evt)
      • [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

Að byggja upp GATT gagnagrunninn

  • Bluetooth - NCP markforritið inniheldur ekki forsmíðaðan GATT gagnagrunn. Hér munum við byggja upp gagnagrunninn úr kóða. Byrjaðu fyrst lotu til að byggja upp gagnagrunn:
    • >>> session = node.bt.gattdb.new_session().session
  • Bættu nýrri þjónustu við GATT gagnagrunninn. Hér munum við bæta við almennu aðgangsþjónustunni sem Bluetooth SIG hefur samþykkt. Þetta er aðalþjónusta (0x0) án fána stillt (0x0) og með 16bita UUID (0x1800).
    • þjónusta = node.bt.gattdb.add_service(session, 0, 0, bytes.fromhex(“0018”)).þjónusta
  • Bættu nýjum eiginleikum við þjónustuna. Hér munum við bæta Device Name eiginleikanum við Generic Access þjónustuna með READ eiginleikanum (0x2), engar öryggiskröfur (0x0), engar fánar (0x0), 16bit UUID (0x2a00), breytileg lengd (0x2), hámarkslengd 20 og með upphafsgildi „PyBGAPI

Example“:

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(lota, þjónusta, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, bæti('PyBGAPI Example','utf-8′)).einkenni
    • 3.15 Virkjaðu nýju þjónustuna:
  • >>> node.bt.gattdb.start_service(session, service)
    • bt_rsp_gattdb_start_service(niðurstaða=0)
  • Virkjaðu nýja eiginleikann:
    • >>> node.bt.gattdb.start_characteristic(session, char)
      • bt_rsp_gattdb_start_characteristic(niðurstaða=0)
  • Vistaðu breytingar og lokaðu gagnagrunnsbreytingarlotunni:
    • >>> node.bt.gattdb.commit(fundur)
    • bt_rsp_gattdb_commit (niðurstaða=0)

Tengist við netþjóninn

  • 3.18 Nú þegar við höfum tækisheiti í GATT gagnagrunninum getum við byrjað að auglýsa. Staflan mun sjálfkrafa auglýsa tækið með nafninu sem er skilgreint í GATT gagnagrunninum:
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(niðurstaða=0)
  • Ræstu EFR Connect í símanum þínum og finndu tækisauglýsingar þínar sem „PyBGAPI Example”
  • Þú getur tengst tækinu og uppgötvað GATT gagnagrunn þess sem hefur nú eiginleikann Device Name

Athugið: ef þú vilt mjög fljótlegt fyrrverandiampLe án þess að skipta sér af GATT gagnagrunninum geturðu samt flassað Bluetooth – NCP Empty tdample til borðs þíns, sem er með grunnforsmíðaðan GATT gagnagrunn. Í þessu tilviki er allt sem þú þarft að gera á gestgjafanum:

  • >>> flytja inn bgapi
  • >>> tenging = bgapi.SerialConnector('COM49')
  • >>> hnútur = bgapi.BGLib(tenging,'sl_bt.xapi')
  • >>> node.open()
  • >>> advertiser_set = node.bt.advertiser.create_set().handle
  • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
    • bt_rsp_advertiser_start(niðurstaða=0)

Að búa til Bluetooth viðskiptavinaforrit í Python

  • Það er flóknara að búa til viðskiptavin en að útfæra netþjón. Þess vegna munum við skrifa python handrit. Opnaðu uppáhalds textaritilinn þinn og búðu til nýjan file, við skulum kalla það client.py
  • Flyttu inn eftirfarandi:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 4
  • Rétt eins og þegar um netþjóninn er að ræða, munum við tengjast hnútnum í gegnum UART. Notaðu COM gáttarnúmerið á öðru borðinu þínu hér:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 5
  • Héðan verður umsókn okkar viðburðadrifin. Alltaf þegar Bluetooth atburður er myndaður af staflanum munum við sjá um atburðinn og keyra forritið áfram:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 6
  • Við skulum skilgreina atburðastjórnunaraðgerðina og bæta við stjórnanda fyrir system_boot atburðinn, þar sem við byrjum að leita að jaðartækjum. Athugaðu að þetta fall ætti að vera skilgreint á undan while lykkjunni (og eftir skilgreiningu hnútbreytunnar).SILICON LABS 21Q2 Bluetooth Feature Lab 7.
  • Þegar skanninn er ræstur mun hnúturinn fá skannaskýrslur. Við skulum bæta við atburðastjórnun fyrir skannaskýrslur innan sl_bt_on_event() fallsins. Ef skannaskýrsla finnst með auglýstu tækisheiti „PyBGAPI Example", mun viðskiptavinurinn opna tengingu í átt að því tæki: SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 7
  • Þegar þú hefur náð þessum tímapunkti er þess virði að athuga hvort viðskiptavinurinn þinn finnur netþjóninn. Gakktu úr skugga um að þú hafir ræst auglýsinguna á hinu tækinu, vistaðu síðan client.py og ræstu hana frá skipanalínunni. Þú ættir að sjá eitthvað á þessa leið: SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 8
  • Viðskiptavinurinn verður að uppgötva þjónustu og eiginleika á þjóninum. Hér munum við uppgötva almenna aðgangsþjónustuna og eiginleika tækjaheitisins og að lokum lesum við upp gildi eiginleikans tækjaheiti. Skiptu út núverandi sl_bt_on_event() aðgerð með eftirfarandi kóða:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 9 SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 10
  • Vistaðu client.py og ræstu það frá skipanalínunni. Þú ættir að sjá eitthvað á þessa leið:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 11

Bætir við LE Power Control eiginleika

Blikkandi marktækin

LE Power Control er ekki virkt í Bluetooth tdample verkefni sjálfgefið. Til að bæta þessum eiginleika við verður að setja upp Bluetooth > Eiginleika > PowerControl hugbúnaðarhlutann.

  • Opnaðu ræsiforritið view frá Simplicity Studio 5.
  • Veldu eitt af tækjunum þínum á kembiforritum flipanum. Gakktu úr skugga um að valinn SDK sé v3.2.
  • Opnaðu Exampí Verkefni og kynningar flipann og finndu Bluetooth – NCP Empty tdample. Ýttu á [Create] til að búa til verkefnið. (Í þetta sinn viljum við ekki byggja GATT gagnagrunninn, svo við notum NCP Empty, sem er sjálfgefið.)
  • Opnaðu GATT Configurator flipann, veldu Device Name eiginleikann og skrifaðu yfir „Silabs Example" upphafsgildi með "PyBGAPI Example" (svo að viðskiptavinurinn muni þekkja þjóninn). Skrifaðu einnig yfir gildislengdina með 15.
  • Ýttu á ctrl-s til að vista gagnagrunninn.
  • Í Project Configurator opnaðu flipann Software Components.
  • Finndu Bluetooth > Eiginleika > PowerControl hugbúnaðaríhlutinn og smelltu á [Setja upp]SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 12
  • Smelltu á tannhjólið við hliðina á PowerControl hugbúnaðarhlutanum til að athuga efri og neðri mörk gullna sviðsins. Stilltu neðri mörkin fyrir 1M
    • PHY í -45 (í stað -60). Þrátt fyrir að í reynd sé þetta gildi ekki ákjósanlegt, mun það leiða til fleiri Tx aflstillinga, sem er gott fyrir sýnikennslu.
  • Í SDK útgáfu 3.2.0 þarf að beita smá lausn til að stilla gullna svið rétt: opnaðu sl_bluetooth.c file fannst í /autogen möppunni verkefnisins þíns og færðu sl_bt_init_power_control(); fallkall ÁÐUR sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 13
  • Byggðu verkefnið og settu það á borðið þitt.
  • Ef töflurnar tvær þínar eru af sömu gerð, flasaðu sömu mynd á hitt borðið líka. Ef annað borð þitt er annað borð, endurtaktu þá skrefin hér að ofan fyrir annað borð.

Ræsir netþjóninn og biðlarann

  • Nú aftur, opnaðu Python bash, tengdu við fyrsta borðið þitt og byrjaðu að auglýsaSILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 14
  • Breyttu biðlaraforritinu þínu þannig að það hætti ekki eftir að hafa lesið upp nafn tækisins. Finndu eftirfarandi línur og settu þær í athugasemd:SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 15
  • Vistaðu og keyrðu viðskiptavinaforritið þitt
    • py .\client.py
  • Settu tvö brettin þín langt í burtu og færðu þau síðan hægt nær hvort öðru. Nú ættir þú að sjá að staflinn byrjar að minnka aflmagn sitt úr sjálfgefna 8dBm niður í -3dBm (sem er sjálfgefið lágmarks Tx-afl):SILICON LABS 21Q2 Bluetooth eiginleikar rannsóknarstofa 16

Skjöl / auðlindir

SILICON LABS 21Q2 Bluetooth Feature Lab [pdfLeiðbeiningarhandbók
21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Features Lab, Lab

Heimildir

Skildu eftir athugasemd

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *