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.
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ð.
(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.
- 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)
- >>> node.bt.system.hello()
- 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)
- >>> node.bt.gattdb.start_characteristic(session, char)
- 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:
- 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:
- 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:
- 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).
- Þ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:
- Þ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ð:
- 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:
- Vistaðu client.py og ræstu það frá skipanalínunni. Þú ættir að sjá eitthvað á þessa leið:
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]
- 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);
- 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ýsa
- 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:
- 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):
Skjöl / auðlindir
![]() |
SILICON LABS 21Q2 Bluetooth Feature Lab [pdfLeiðbeiningarhandbók 21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Features Lab, Lab |