NEMBO YA SILICON LABS

SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth

SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth

Mwongozo wa Maabara ya Vipengele vya Bluetooth 21Q2

Mwongozo huu wa maabara hukupitia baadhi ya vipengele vipya vya Bluetooth SDK ambavyo vilianzishwa kati ya toleo la 20Q4 na 21Q2. Katika maabara hii tutaunda NCP example na uandike programu mwenyeji katika lugha ya Python. Kwa kutumia kipengele kipya kinachobadilika cha GATT, tutaunda pia hifadhidata ya GATT kutoka kwa programu mwenyeji badala ya kutumia Kisanidi cha GATT. Hatimaye kipengele cha Udhibiti wa Nguvu cha LE kinawasilishwa kwa kupanua programu ya mwenyeji.SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 1

Masharti

Ili kukamilisha maabara hii, utahitaji zifuatazo:

  • BG22 mbili za Thunderboard au WSTK mbili zilizo na ubao wowote wa redio wa EFR32BG/EFR32MG au mchanganyiko wa hizi
  • Rahisi Studio 5 imesakinishwa, na Gecko SDK v3.2 ikijumuisha Bluetooth SDKv3.2
  • Kompyuta ambayo Python v3.6 au baadaye imewekwa

Kumulika Vifaa Vinavyolengwa kwa Utendaji wa NCP

  • Ambatisha vibao vyako viwili vya redio na ufungue Studio ya Urahisi 5
  • Chagua moja ya vibao vya redio kwenye kichupo cha Adapta za Utatuzi
  • Weka SDK Inayopendekezwa kuwa v3.2.0 kwenye Overview kichupo cha Kizindua view
  • Fungua Exampkwenye kichupo cha Miradi na Maonyesho
  • Pata onyesho jipya la Bluetooth - NCP.
  • Bofya Run ili kuangaza picha lengwa ya NCP kwenye ubao.SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 2

(Kumbuka: tofauti na Bluetooth - NCP Tupu, mradi huu haujumuishi hifadhidata iliyojengwa awali ya GATT, lakini ina API ya GATT inayobadilika iliyowezeshwa, ambayo ni sharti la sehemu zinazofuata)

  • Rudia hatua sawa kwa ubao mwingine wa redio.

Kuunda Programu ya Seva ya Bluetooth katika Python

Kuanza

  • Kifurushi cha pybgapi hutoa uwezekano wa kutoa amri za BGAPI kuelekea kifaa lengwa kutoka kwa Kompyuta kwa kutumia lugha ya programu ya Python. Ili kusakinisha kifurushi hiki chapa ifuatayo kwenye mstari wa amri: pip install pybgapi Kwa habari zaidi kuhusu ziara ya kifurushi https://pypi.org/project/pybgapi/
  • Tafuta ufafanuzi wa hivi punde zaidi wa BGAPI file chini
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi na uinakili kwenye folda yako ya kufanya kazi.
  • Fungua python bash (aina chatu kwenye CLI)
  • Ingiza maktaba ya bgapi kwa amri ifuatayo: >>> agiza bgapi
  • Tafuta nambari ya bandari ya COM (km COM49) ya mojawapo ya vibao vyako vya redio. Unapaswa kutafuta "JLink CDC UART Port" kwenye Kidhibiti cha Kifaa au katika programu ya terminal unayoipenda.SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 3
  • Unganisha kwenye ubao wako wa redio:
    • >>> muunganisho = bgapi.SerialConnector('COM49')
  • Anzisha maktaba ya pybgapi ya nodi hii:
    • >>> nodi = bgapi.BGLib(muunganisho,'sl_bt.xapi')
  • Fungua mawasiliano ya BGAPI kuelekea nodi hii:
    • >>> nodi.open()
  • Angalia ikiwa unaweza kuwasiliana na bodi, kwa kutumia system_hello() amri. Unapaswa kupata jibu la system_hello:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(matokeo=0)
  • Weka upya nodi yako kwa amri ifuatayo:
    • nodi.bt.system.reset(0)
  • Sasa unapaswa kupata tukio la system_boot. Ili kuleta tukio la hivi punde, tumia amri ifuatayo:
    • evt = node.get_events(max_events=1)
    • chapa (evt)
      • [bt_evt_system_boot(kubwa=3, ndogo=2, kiraka=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

Kuunda hifadhidata ya GATT

  • Programu inayolengwa ya Bluetooth - NCP haijumuishi hifadhidata iliyojengwa awali ya GATT. Hapa tutaunda hifadhidata kutoka kwa nambari. Kwanza anza kikao cha ujenzi wa hifadhidata:
    • >>> kikao = node.bt.gattdb.new_session().session
  • Ongeza huduma mpya kwenye hifadhidata ya GATT. Hapa tutaongeza huduma ya Ufikiaji wa Jumla iliyopitishwa na Bluetooth SIG. Hii ni huduma ya msingi (0x0) isiyo na bendera iliyowekwa (0x0) na yenye 16bit UUID (0x1800).
    • service = node.bt.gattdb.add_service(kikao, 0, 0, bytes.fromhex(“0018”)).huduma
  • Ongeza sifa mpya kwenye huduma. Hapa tutaongeza sifa ya Jina la Kifaa kwenye huduma ya Ufikiaji wa Jumla yenye sifa ya READ (0x2), hakuna mahitaji ya usalama (0x0), hakuna bendera (0x0), 16bit UUID (0x2a00), urefu tofauti (0x2), urefu wa juu wa 20 na yenye thamani ya awali ya “PyBGAPI

Example”:

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(kikao, huduma, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, ka ('PyBGAPI Example','utf-8′)).tabia
    • 3.15 Washa huduma mpya:
  • >>> node.bt.gattdb.start_service(kikao,huduma)
    • bt_rsp_gattdb_start_service(matokeo=0)
  • Amilisha sifa mpya:
    • >>> node.bt.gattdb.start_characteristic(kipindi, char)
      • bt_rsp_gattdb_start_characteristic(matokeo=0)
  • Hifadhi mabadiliko na funga kipindi cha uhariri wa hifadhidata:
    • >>> node.bt.gattdb.commit(kikao)
    • bt_rsp_gattdb_commit(matokeo=0)

Kuunganisha kwa Seva

  • 3.18 Kwa kuwa sasa tuna jina la kifaa katika hifadhidata ya GATT, tunaweza kuanza kutangaza. Rafu itatangaza kifaa kiotomatiki kwa jina lililofafanuliwa katika hifadhidata yake ya GATT:
    • >>> mtangazaji_set = node.bt.advertiser.create_set().mshiko
    • >>> node.bt.advertiser.start(mtangazaji_set, 2, 2)
      • bt_rsp_advertiser_start(matokeo=0)
  • Anzisha EFR Connect kwenye simu yako, na utafute kifaa chako kikitangaza kama “PyBGAPI Example”
  • Unaweza kuunganisha kwenye kifaa na kugundua hifadhidata yake ya GATT ambayo sasa ina sifa ya Jina la Kifaa

Kumbuka: ikiwa unataka ex haraka sanaampbila kuhangaika na hifadhidata ya GATT, bado unaweza kuwaka Bluetooth - NCP Empty example kwa bodi yako, ambayo ina hifadhidata ya msingi iliyojengwa awali ya GATT. Katika kesi hii unachotakiwa kufanya kwa upande wa mwenyeji ni:

  • >>> kuagiza bgapi
  • >>> muunganisho = bgapi.SerialConnector('COM49')
  • >>> nodi = bgapi.BGLib(muunganisho,'sl_bt.xapi')
  • >>> nodi.open()
  • >>> mtangazaji_set = node.bt.advertiser.create_set().mshiko
  • >>> node.bt.advertiser.start(mtangazaji_set, 2, 2)
    • bt_rsp_advertiser_start(matokeo=0)

Kuunda Programu ya Mteja wa Bluetooth katika Python

  • Kuunda mteja ni ngumu zaidi kuliko kutekeleza seva. Kwa hivyo tutaandika hati ya python. Fungua kihariri chako cha maandishi unachopenda na uunde kipya file, tuiite client.py
  • Ingiza zifuatazo:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 4
  • Kama ilivyo kwa seva, tutaunganisha kwenye nodi kupitia UART. Tumia nambari ya bandari ya COM ya ubao wako wa pili hapa:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 5
  • Kuanzia hapa, maombi yetu yataendeshwa na tukio. Wakati wowote tukio la Bluetooth linapotolewa na rafu, tutashughulikia tukio hilo na kusukuma mbele programu:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 6
  • Hebu tufafanue utendaji wa kidhibiti cha tukio na tuongeze kidhibiti cha tukio la system_boot, ambapo tutaanza kuchanganua vifaa vya pembeni. Kumbuka, kwamba kazi hii inapaswa kufafanuliwa kabla ya kitanzi cha wakati (na baada ya ufafanuzi wa kutofautisha kwa nodi).SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 7.
  • Mara skana inapoanzishwa, nodi itakuwa ikipokea ripoti za skanisho. Hebu tuongeze kidhibiti cha tukio kwa ripoti za kuchanganua ndani ya sl_bt_on_event() chaguo la kukokotoa. Ikiwa ripoti ya skanisho itapatikana kwa jina la kifaa kilichotangazwa “PyBGAPI Example", mteja atafungua muunganisho kuelekea kifaa hicho: SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 7
  • Mara tu unapofikia hatua hii inafaa kuangalia ikiwa mteja wako atapata seva. Hakikisha, kuwa umeanzisha tangazo kwenye kifaa kingine, kisha uhifadhi mteja.py, na uanzishe kutoka kwa safu ya amri. Unapaswa kuona kitu kama hiki: SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 8
  • Mteja lazima agundue huduma na sifa kwenye seva. Hapa tutagundua huduma ya Ufikiaji wa Jumla na sifa ya Jina la Kifaa, na hatimaye kusoma thamani ya sifa ya Jina la Kifaa. Badilisha chaguo lako la sasa la sl_bt_on_event() na nambari ifuatayo:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 9 SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 10
  • Okoa client.py na uanze kutoka kwa safu ya amri. Unapaswa kuona kitu kama hiki:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 11

Kuongeza Kipengele cha Udhibiti wa Nguvu ya LE

Kumulika Vifaa Vinavyolengwa

Udhibiti wa Nguvu wa LE haujawezeshwa katika zamani ya Bluetoothample miradi kwa chaguo-msingi. Ili kuongeza kipengele hiki, Bluetooth > Kipengele > kipengele cha programu ya PowerControl lazima kisakinishwe.

  • Fungua kizindua view ya Urahisi Studio 5.
  • Chagua moja ya vifaa vyako kwenye kichupo cha Adapta za Utatuzi. Hakikisha SDK unayopendelea ni v3.2.
  • Fungua Exampkwenye kichupo cha Miradi na Maonyesho na upate Bluetooth - NCP Empty example. Bonyeza [Unda] ili kuunda mradi. (Wakati huu hatutaki kujenga hifadhidata ya GATT, kwa hivyo tunatumia NCP Empty, ambayo ina moja chaguomsingi.)
  • Fungua kichupo cha Kisanidi cha GATT, chagua sifa ya Jina la Kifaa, na ubadilishe "Silabs Ex.ample" thamani ya awali yenye "PyBGAPI Example" (ili mteja atambue seva). Pia futa urefu wa thamani na 15.
  • Bonyeza ctrl-s ili kuhifadhi hifadhidata.
  • Katika Kisanidi cha Mradi fungua kichupo cha Vipengele vya Programu.
  • Tafuta Bluetooth > Kipengele > kipengele cha programu ya PowerControl, na ubofye [Sakinisha]SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 12
  • Bofya kwenye cogwheel karibu na kipengele cha PowerControlsoftware ili kuangalia mipaka ya juu na ya chini ya safu ya dhahabu. Weka kikomo cha chini cha 1M
    • PHY hadi -45 (badala ya -60). Ingawa katika mazoezi thamani hii si bora, itasababisha marekebisho zaidi ya nguvu ya Tx, ambayo ni nzuri kwa madhumuni ya maonyesho.
  • Katika toleo la 3.2.0 la SDK, kisuluhisho kidogo kinahitaji kutumika ili kuweka safu ya dhahabu ipasavyo: fungua sl_bluetooth.c file kupatikana kwenye /autogen folda ya mradi wako na uhamishe sl_bt_init_power_control(); piga simu KABLA sl_bt_init_stack(&config);SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 13
  • Jenga mradi na uangaze kwenye ubao wako.
  • Ikiwa mbao zako mbili ni za aina moja, weka picha sawa kwenye ubao mwingine pia. Ikiwa ubao wako wa pili ni ubao tofauti, basi rudia hatua zilizo hapo juu kwa ubao wa pili.

Kuanzisha Seva na Mteja

  • Sasa tena, fungua Python bash, unganisha kwenye ubao wako wa kwanza, na uanze kutangazaSILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 14
  • Rekebisha programu ya mteja wako ili isitoke baada ya kusoma jina la kifaa. Tafuta mistari ifuatayo, na uziweke kwenye maoni:SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 15
  • Hifadhi na endesha programu ya mteja wako
    • py .\client.py
  • Weka mbao zako mbili mbali, kisha polepole usogeze karibu na kila mmoja. Sasa unapaswa kuona kwamba stack inaanza kupunguza kiwango chake cha nguvu kutoka 8dBm chaguo-msingi hadi -3dBm (ambayo ni nguvu ndogo ya Tx kwa chaguo-msingi):SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth 16

Nyaraka / Rasilimali

SILICON LABS 21Q2 Maabara ya Vipengele vya Bluetooth [pdf] Mwongozo wa Maelekezo
21Q2, Maabara ya Vipengele vya Bluetooth, Maabara ya Vipengele vya Bluetooth 21Q2, Maabara ya Vipengele, Maabara

Marejeleo

Acha maoni

Barua pepe yako haitachapishwa. Sehemu zinazohitajika zimetiwa alama *