SILICON LABS 21Q2 Bluetooth Feartan Lab
Leabhar-làimhe lab feartan Bluetooth 21Q2
Bidh an leabhar-làimhe obair-lann seo gad choiseachd tro chuid de na feartan ùra Bluetooth SDK a chaidh a thoirt a-steach eadar an sgaoileadh 20Q4 agus 21Q2. Anns an obair-lann seo cruthaichidh sinn NCP example agus sgrìobh bathar-bog aoigheachd ann an cànan Python. A’ cleachdadh am feart ùr GATT fiùghantach togaidh sinn cuideachd stòr-dàta GATT bhon bhathar-bog aoigheachd an àite a bhith a’ cleachdadh an GATT Configurator. Mu dheireadh tha feart LE Power Control air a thaisbeanadh le bhith a’ leudachadh am bathar-bog aoigheachd.
Ro-ghoireasan
Gus an obair-lann seo a chrìochnachadh, bidh feum agad air na leanas:
- Dà Thunderboard BG22n no dà WSTK le bòrd rèidio EFR32BG/EFR32MG sam bith no am measgachadh dhiubh sin
- Simplicity Studio 5 air a chuir a-steach, le Gecko SDK v3.2 a’ toirt a-steach Bluetooth SDKv3.2
- PC air a bheil Python v3.6 no nas fhaide air adhart air a chuir a-steach
A 'frasadh nan innealan targaid airson gnìomhachd NCP
- Ceangail an dà bhòrd rèidio agad agus fosgail Simplicity Studio 5
- Tagh aon de na bùird rèidio air an tab Debug Adapters
- Suidhich an SDK as fheàrr leat gu v3.2.0 air an Overview tab an Launcher view
- Fosgail an Example tab Projects & Demos
- Lorg an demo ùr Bluetooth - NCP.
- Cliog air Run gus ìomhaigh targaid NCP a chuir chun bhòrd.
(Thoir an aire: an taca ri Bluetooth - NCP Falamh, chan eil am pròiseact seo a’ toirt a-steach stòr-dàta GATT ro-thogte, ach tha an API GATT fiùghantach air a chomasachadh, rud a tha riatanach airson na h-ath earrannan)
- Dèan na h-aon cheumannan a-rithist airson a’ bhòrd rèidio eile.
A’ cruthachadh tagradh frithealaiche Bluetooth ann am Python
Toiseach tòiseachaidh
- Tha am pasgan pybgapi a’ toirt cothrom òrdughan BGAPI a chuir a-mach chun inneal targaid bhon PC a’ cleachdadh cànan prògramadh Python. Gus am pasgan seo a stàladh, dèan na leanas san loidhne-àithne: pip install pybgapi Airson tuilleadh fiosrachaidh mun phasgan tadhal air https://pypi.org/project/pybgapi/
- Lorg am mìneachadh BGAPI as ùire file fo
- C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi agus dèan lethbhreac dheth dhan phasgan obrach agad.
- Fosgail am python bash (seòrsa python anns an CLI)
- Cuir a-steach leabharlann bgapi leis an àithne a leanas: >>> import bgapi
- Lorg àireamh port COM (me COM49) aig fear dhe na bùird rèidio agad. Bu chòir dhut coimhead airson an “JLink CDC UART Port” anns a ’Mhanaidsear Innealan no anns an aplacaid crìche as fheàrr leat.
- Ceangail ris a’ bhòrd rèidio agad:
- >>> ceangal = bgapi.SerialConnector('COM49')
- Tòisich an leabharlann pybgapi airson an nód seo:
- >>> nód = bgapi.BGLib(ceangal, 'sl_bt.xapi')
- Fosgail conaltradh BGAPI a dh’ ionnsaigh an nód seo:
- >>> nód.open()
- Dèan cinnteach an urrainn dhut conaltradh leis a’ bhòrd, a’ cleachdadh an àithne system_hello(). Bu chòir dhut freagairt system_hello fhaighinn:
- >>> nód.bt.system.hello()
- bt_rsp_system_hello(toradh=0)
- >>> nód.bt.system.hello()
- Ath-shuidhich do nód leis an òrdugh a leanas:
- nód.bt.system.reset(0)
- A-nis bu chòir dhut tachartas system_boot fhaighinn. Gus an tachartas as ùire fhaighinn, cleachd an òrdugh a leanas:
- evt = nód.get_events(max_events=1)
- clò-bhualadh (evt)
- [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]
A’ togail stòr-dàta GATT
- Chan eil an app targaid Bluetooth - NCP a’ toirt a-steach stòr-dàta GATT ro-thogte. An seo togaidh sinn suas an stòr-dàta bho chòd. Tòisich an toiseach seisean airson togail stòr-dàta:
- >>> seisean = node.bt.gattdb.new_session().session
- Cuir seirbheis ùr ris an stòr-dàta GATT. An seo cuiridh sinn ris an t-seirbheis Generic Access a ghabh an Bluetooth SIG ris. Is e prìomh sheirbheis a tha seo (0x0) gun bhrataichean suidhichte (0x0) agus le UUID 16bit (0x1800).
- service = nód.bt.gattdb.add_service(seisean, 0, 0, bytes.fromex(“0018”)).
- Cuir feart ùr ris an t-seirbheis. An seo cuiridh sinn feart Ainm an inneal ris an t-seirbheis Ruigsinneachd Coitcheann le seilbh READ (0x2), gun riatanasan tèarainteachd (0x0), gun bhrataichean (0x0), 16bit UUID (0x2a00), fad caochlaideach (0x2), fad as àirde de 20 agus le luach tùsail “PyBGAPI
Example":
- >>> char = node.bt.gattdb.add_uuid16_characteristic(seisean, seirbheis, 2, 0, 0, bytes.fromex('002a'), 2,
- 20, bytes ('PyBGAPI Example','utf-8′)).
- 3.15 Cuir an gnìomh an t-seirbheis ùr:
- >>> node.bt.gattdb.start_service(seisean, seirbheis)
- bt_rsp_gattdb_start_service(toradh=0)
- Cuir an gnìomh am feart ùr:
- >>> node.bt.gattdb.start_characteristic(seisean, char)
- bt_rsp_gattdb_start_characteristic(toradh=0)
- >>> node.bt.gattdb.start_characteristic(seisean, char)
- Sàbhail atharrachaidhean agus dùin seisean deasachaidh an stòr-dàta:
- >>> nód.bt.gattdb.commit(seisean)
- bt_rsp_gattdb_commit(toradh=0)
A 'ceangal ris an fhrithealaiche
- 3.18 A-nis gu bheil ainm inneal againn ann an stòr-dàta GATT, is urrainn dhuinn tòiseachadh air sanasachd. Bidh an stac gu fèin-obrachail a’ sanasachadh an inneal leis an ainm a tha air a mhìneachadh san stòr-dàta GATT aige:
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(toradh=0)
- Tòisich EFR Connect air an fhòn agad, agus lorg sanasachd air an inneal agad mar “PyBGAPI Example ”
- Faodaidh tu ceangal ris an inneal agus lorg a stòr-dàta GATT aig a bheil feart Ainm an inneal a-nis
Nota: ma tha thu ag iarraidh ex gu math sgiobaltaample gun a bhith a’ cur dragh air stòr-dàta GATT, faodaidh tu fhathast am Bluetooth a lasadh - NCP Empty example do bhòrd, aig a bheil stòr-dàta bunaiteach GATT ro-thogte. Anns a 'chùis seo, chan eil agad ach a dhèanamh air taobh an aoigheachd:
- >>> cuir a-steach bgapi
- >>> ceangal = bgapi.SerialConnector('COM49')
- >>> nód = bgapi.BGLib(ceangal, 'sl_bt.xapi')
- >>> nód.open()
- >>> advertiser_set = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(toradh=0)
A 'cruthachadh tagradh cleachdaiche Bluetooth ann am Python
- Tha cruthachadh neach-dèiligidh nas toinnte na bhith a’ buileachadh frithealaiche. Mar sin sgrìobhaidh sinn sgriobt python. Fosgail an deasaiche teacsa as fheàrr leat agus cruthaich fear ùr file, canaidh sinn client.py ris
- Cuir a-steach na leanas:
- Dìreach mar ann an cùis an fhrithealaiche, nì sinn ceangal ris an nód tro UART. Cleachd àireamh port COM an dàrna bòrd agad an seo:
- Às an seo, bidh an tagradh againn air a stiùireadh le tachartas. Aon uair ‘s gu bheil tachartas Bluetooth air a chruthachadh leis a’ chruach, làimhsichidh sinn an tachartas agus bheir sinn air adhart an tagradh:
- Mìnichidh sinn gnìomh làimhseachadh an tachartais agus cuir sinn inneal-làimhseachaidh airson an tachartas system_boot, far an tòisich sinn a’ sganadh airson innealan iomaill. Thoir an aire, gum bu chòir an gnìomh seo a bhith air a mhìneachadh ron lùb fhad (agus às deidh mìneachadh an caochladair nód).
- Aon uair ‘s gu bheil an sganair air tòiseachadh, bidh an nód a’ faighinn aithisgean scan. Nach cuir sinn inneal-làimhseachaidh tachartais ris airson aithisgean scan taobh a-staigh gnìomh sl_bt_on_event(). Ma lorgar aithisg scan leis an ainm inneal a chaidh a shanasachadh “PyBGAPI Example”, fosglaidh an neach-dèiligidh ceangal ris an inneal sin:
- Aon uair ‘s gun ruig thu a’ phuing seo is fhiach dèanamh cinnteach an lorg an neach-dèiligidh agad am frithealaiche. Dèan cinnteach, gu bheil thu air an sanas a thòiseachadh air an inneal eile, an uairsin sàbhail client.py, agus tòisich bhon loidhne-àithne. Bu chòir dhut rudeigin mar seo fhaicinn:
- Feumaidh an neach-dèiligidh seirbheisean agus feartan a lorg air an fhrithealaiche. An seo gheibh sinn a-mach an t-seirbheis Ruigsinneachd Coitcheann agus feart Ainm an inneal, agus mu dheireadh leugh sinn a-mach luach feart Ainm an inneal. Cuir an còd a leanas an àite an gnìomh sl_bt_on_event() gnàthach agad:
- Sàbhail client.py agus tòisich e bhon loidhne-àithne. Bu chòir dhut rudeigin mar seo fhaicinn:
A’ cur feart smachd cumhachd LE ris
A 'frasadh nan innealan targaid
Chan eil LE Power Control air a chomasachadh anns an Bluetooth example pròiseactan gu bunaiteach. Gus am feart seo a chuir ris, feumar am pàirt bathar-bog Bluetooth> Feature> PowerControl a chuir a-steach.
- Fosgail an launcher view Air sgàth simplicity studio 5.
- Tagh aon de na h-innealan agad anns an tab Debug Adapters. Dèan cinnteach gu bheil an SDK as fheàrr leat v3.2.
- Fosgail an Example tab Projects & Demos agus lorg am Bluetooth - NCP Empty example. Brùth [Cruthaich] gus am pròiseact a chruthachadh. (An turas seo chan eil sinn airson stòr-dàta GATT a thogail, agus mar sin bidh sinn a’ cleachdadh NCP Falamh, aig a bheil fear àbhaisteach.)
- Fosgail an taba GATT Configurator, tagh feart Ainm an inneal, agus sgrìobh thairis air an “Silabs Example” luach tùsail le “PyBGAPI Example” (gus an aithnich an neach-dèiligidh am frithealaiche). Cuideachd sgrìobh thairis air an fhad luach le 15.
- Brùth ctrl-s gus an stòr-dàta a shàbhaladh.
- Ann an Configurator a’ Phròiseict fosgail an taba Co-phàirtean Bathar-bog.
- Lorg am pàirt bathar-bog Bluetooth> Feature> PowerControl, agus cliog air [Stàlaich]
- Cliog air an cogwheel ri taobh a’ phàirt PowerControlsoftware gus sùil a thoirt air crìochan àrd is ìosal an raoin òir. Suidhich an ìre as ìsle airson 1M
- PHY gu -45 (an àite -60). Ged nach eil an luach seo ann an cleachdadh as fheàrr, thig e gu barrachd atharrachaidhean cumhachd Tx, a tha math airson adhbharan taisbeanaidh.
- Ann an dreach SDK 3.2.0, feumar beagan obrach a chuir an sàs gus an raon òir a shuidheachadh ceart: fosgail an sl_bluetooth.c file lorgar ann am pasgan / autogen a’ phròiseict agad agus gluais an sl_bt_init_power_control (); gairm gnìomh BEFORE sl_bt_init_stack (&config);
- Tog am pròiseact agus flash e chun bhòrd agad.
- Ma tha an dà bhòrd agad den aon sheòrsa, flash an aon ìomhaigh chun bhòrd eile cuideachd. Ma tha an dàrna bòrd agad na bhòrd eadar-dhealaichte, cuir a-rithist na ceumannan gu h-àrd airson an dàrna bòrd.
A 'tòiseachadh air an fhrithealaiche agus an neach-dèiligidh
- A-nis a-rithist, fosgail am Python bash, ceangail ris a 'chiad bhòrd agad, agus tòisich air sanasachd
- Atharraich an tagradh teachdaiche agad gus nach falbh e às deidh dha ainm an inneil a leughadh a-mach. Lorg na loidhnichean a leanas, agus cuir ann am beachd iad:
- Sàbhail agus ruith an tagradh teachdaiche agad
- py .\client.py
- Cuir do dhà bhòrd fada air falbh, agus an uairsin gluais iad gu slaodach nas fhaisge air a chèile. A-nis bu chòir dhut faicinn gu bheil an stac a’ tòiseachadh a’ lughdachadh na h-ìre cumhachd aige bhon 8dBm àbhaisteach sìos gu -3dBm (is e sin an cumhachd Tx as ìsle gu bunaiteach):
Sgrìobhainnean/Goireasan
![]() |
SILICON LABS 21Q2 Bluetooth Feartan Lab [pdfLeabhar-stiùiridh 21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Feartan Lab, Lab |