LOGO TAL-LABOS SILIKU

SILICON LABS 21Q2 Bluetooth Features Lab

SILICON LABS 21Q2 Bluetooth Features Lab

Manwal tal-Lab tal-Karatteristiċi tal-Bluetooth 21Q2

Dan il-manwal tal-laboratorju jmexxik permezz ta' xi wħud mill-karatteristiċi ġodda tal-Bluetooth SDK li ġew introdotti bejn ir-rilaxx 20Q4 u 21Q2. F'dan il-laboratorju se noħolqu NCP example u ikteb softwer ospitanti bil-lingwa Python. Bl-użu tal-karatteristika dinamika ġdida tal-GATT aħna se nibnu wkoll id-database tal-GATT mis-software ospitanti minflok ma nużaw il-Konfiguratur GATT. Fl-aħħarnett LE Power Control karatteristika hija ppreżentata billi testendi s-softwer ospitanti.SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 1

Prerekwiżiti

Biex tlesti dan il-laboratorju, ser ikollok bżonn dan li ġej:

  • Żewġ Thunderboard BG22s jew żewġ WSTKs bi kwalunkwe bord tar-radju EFR32BG/EFR32MG jew it-taħlita ta’ dawn
  • Simplicity Studio 5 installat, b'Gecko SDK v3.2 inkluż Bluetooth SDKv3.2
  • PC li fuqu huwa installat Python v3.6 jew aktar tard

Li jteptep l-Apparat fil-mira għall-Funzjonalità NCP

  • Waħħal iż-żewġ bordijiet tar-radju tiegħek u iftaħ Simplicity Studio 5
  • Agħżel wieħed mill-bords tar-radju fuq it-tab Debug Adapters
  • Issettja l-SDK Preferut għal v3.2.0 fuq Overview tab tal-Launcher view
  • Iftaħ l-Eżample Proġetti & Demos tab
  • Sib il-ġdida Bluetooth – NCP demo.
  • Ikklikkja Run biex itteptep l-immaġni tal-mira NCP lill-bord.SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 2

(Nota: b'kuntrast ma' Bluetooth - NCP Vojt, dan il-proġett ma jinkludix database GATT mibnija minn qabel, iżda għandu l-API GATT dinamika attivata, li hija prerekwiżit għat-taqsimiet li jmiss)

  • Irrepeti l-istess passi għall-bord tar-radju l-ieħor.

Ħolqien ta 'Applikazzjoni għal Server Bluetooth f'Python

Nibdew

  • Il-pakkett pybgapi jipprovdi l-possibbiltà li joħorġu kmandi BGAPI lejn l-apparat fil-mira mill-PC bl-użu tal-lingwa ta 'programmar Python. Biex tinstalla dan il-pakkett ittajpja dan li ġej fil-linja tal-kmand: pip install pybgapi Għal aktar informazzjoni dwar il-pakkett żur https://pypi.org/project/pybgapi/
  • Sib l-aħħar definizzjoni BGAPI file taħt
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi u kkopjah fil-folder tax-xogħol tiegħek.
  • Iftaħ il-python bash (ittajpja python fis-CLI)
  • Importa l-librerija bgapi bil-kmand li ġej: >>> importazzjoni bgapi
  • Sib in-numru tal-port COM (eż. COM49) ta' wieħed mill-bords tar-radju tiegħek. Għandek tfittex il-"JLink CDC UART Port" fil-Maniġer tal-Apparat jew fl-app tat-terminal favorita tiegħek.SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 3
  • Qabbad mal-bord tar-radju tiegħek:
    • >>> konnessjoni = bgapi.SerialConnector('COM49')
  • Inizjalizza l-librerija pybgapi għal dan in-node:
    • >>> node = bgapi.BGLib (konnessjoni,'sl_bt.xapi')
  • Iftaħ il-komunikazzjoni BGAPI lejn dan in-node:
    • >>> node.open()
  • Iċċekkja jekk tistax tikkomunika mal-bord, billi tuża l-kmand system_hello(). Għandek tirċievi rispons system_hello:
    • >>> node.bt.system.hello ()
      • bt_rsp_system_hello (riżultat=0)
  • Irrisettja n-node tiegħek bil-kmand li ġej:
    • node.bt.system.reset(0)
  • Issa għandek tikseb avveniment system_boot. Biex iġġib l-aħħar avveniment, uża l-kmand li ġej:
    • evt = node.get_events(max_events=1)
    • stampa (evt)
      • [bt_evt_system_boot(maġġuri=3, minuri=2, garża=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

Bini tad-database tal-GATT

  • L-app fil-mira Bluetooth – NCP ma tinkludix database GATT mibnija minn qabel. Hawnhekk se nibnu d-database mill-kodiċi. L-ewwel ibda sessjoni għall-bini tad-database:
    • >>> sessjoni = node.bt.gattdb.new_session().sessjoni
  • Żid servizz ġdid fid-database tal-GATT. Hawnhekk se nżidu s-servizz ta 'Aċċess Ġeneriku adottat mill-Bluetooth SIG. Dan huwa servizz primarju (0x0) mingħajr bnadar stabbiliti (0x0) u b'UUID ta' 16-il bit (0x1800).
    • servizz = node.bt.gattdb.add_service(sessjoni, 0, 0, bytes.fromhex(“0018”)).service
  • Żid karatteristika ġdida lis-servizz. Hawnhekk se nżidu l-karatteristika tal-Isem tal-Apparat mas-servizz tal-Aċċess Ġeneriku bi proprjetà READ (0x2), l-ebda rekwiżiti tas-sigurtà (0x0), l-ebda bnadar (0x0), 16bit UUID (0x2a00), tul varjabbli (0x2), tul massimu ta '20 u b'valur inizjali ta' “PyBGAPI

Example”:

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(sessjoni, servizz, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, bytes('PyBGAPI Eżample','utf-8′)).karatteristika
    • 3.15 Attiva s-servizz il-ġdid:
  • >>> node.bt.gattdb.start_service(sessjoni,servizz)
    • bt_rsp_gattdb_start_service (riżultat=0)
  • Attiva l-karatteristika l-ġdida:
    • >>> node.bt.gattdb.start_characteristic(sessjoni, char)
      • bt_rsp_gattdb_start_characteristic (riżultat=0)
  • Issejvja l-bidliet u agħlaq is-sessjoni tal-editjar tad-database:
    • >>> node.bt.gattdb.commit(sessjoni)
    • bt_rsp_gattdb_commit (riżultat=0)

Konnessjoni mas-Server

  • 3.18 Issa li għandna isem tal-apparat fid-database tal-GATT, nistgħu nibdew nirriklamaw. Il-munzell awtomatikament jirreklama l-apparat bl-isem definit fid-database GATT tiegħu:
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(riżultat=0)
  • Ibda l-EFR Connect fuq it-telefon tiegħek, u sib ir-reklamar tat-tagħmir tiegħek bħala "PyBGAPI Example ”
  • Tista' tikkonnettja mal-apparat u tiskopri d-database GATT tagħha li issa għandha l-karatteristika tal-Isem tal-Apparat

Nota: jekk trid ex malajr ħafnaample mingħajr ma tiddejjaq bid-database tal-GATT, xorta tista' flash il-Bluetooth – NCP Empty example lill-bord tiegħek, li għandu database GATT bażika mibnija minn qabel. F'dan il-każ kull ma għandek tagħmel min-naħa tal-ospitanti huwa:

  • >>> importazzjoni bgapi
  • >>> konnessjoni = bgapi.SerialConnector('COM49')
  • >>> node = bgapi.BGLib (konnessjoni,'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(riżultat=0)

Ħolqien ta 'Applikazzjoni Klijent Bluetooth f'Python

  • Il-ħolqien ta' klijent huwa aktar ikkumplikat mill-implimentazzjoni ta' server. Għalhekk se niktbu script python. Iftaħ l-editur tat-test favorit tiegħek u oħloq ġdid file, ejja nsejħulha client.py
  • Importa dawn li ġejjin:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 4
  • Eżatt bħal fil-każ tas-server, aħna se nikkonnettjaw man-node permezz tal-UART. Uża n-numru tal-port COM tat-tieni bord tiegħek hawn:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 5
  • Minn hawn, l-applikazzjoni tagħna se tkun immexxija mill-avvenimenti. Kull meta avveniment Bluetooth jiġi ġġenerat mill-munzell, aħna se nittrattaw l-avveniment u nwasslu l-applikazzjoni:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 6
  • Ejja niddefinixxu l-funzjoni tal-immaniġġjar tal-avvenimenti u żid handler għall-avveniment system_boot, fejn nibdew niskennjaw għal apparati periferali. Innota, li din il-funzjoni għandha tkun definita qabel il-loop while (u wara d-definizzjoni tal-varjabbli tan-node).SILICON LABS 21Q2 Karatteristiċi Bluetooth Lab 7.
  • Ladarba l-iskaner jinbeda, in-nodu jkun qed jirċievi rapporti tal-iskannjar. Ejja nżidu handler tal-avvenimenti għar-rapporti tal-iskanjar fi ħdan il-funzjoni sl_bt_on_event(). Jekk jinstab rapport tal-iskan bl-isem tal-apparat reklamat “PyBGAPI Example”, il-klijent se jiftaħ konnessjoni lejn dak l-apparat: SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 7
  • Ladarba inti laħaq dan il-punt ta 'min iċċekkja jekk il-klijent tiegħek isib is-server. Kun żgur, li bdejt ir-reklam fuq l-apparat l-ieħor, imbagħad issalva client.py, u ibdah mil-linja tal-kmand. Għandek tara xi ħaġa bħal din: SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 8
  • Il-klijent irid jiskopri servizzi u karatteristiċi fuq is-server. Hawnhekk se niskopru s-servizz tal-Aċċess Ġeneriku u l-karatteristika tal-Isem tal-Apparat, u finalment naqraw il-valur tal-karatteristika tal-Isem tal-Apparat. Ibdel il-funzjoni attwali tiegħek sl_bt_on_event() bil-kodiċi li ġej:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 9 SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 10
  • Ħlief client.py u ibda mill-linja tal-kmand. Għandek tara xi ħaġa bħal din:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 11

Żieda LE Power Control Feature

Li jteptep l-Apparati fil-mira

LE Power Control mhuwiex attivat fil-Bluetooth example proġetti awtomatikament. Biex iżżid din il-karatteristika, irid jiġi installat il-komponent tas-software Bluetooth > Feature > PowerControl.

  • Iftaħ il-lanċjar view ta' Simplicity Studio 5.
  • Agħżel wieħed mill-apparati tiegħek fit-tab Debug Adapters. Kun żgur li l-SDK preferut huwa v3.2.
  • Iftaħ l-Eżample Proġetti & Demos tab u ssib il-Bluetooth – NCP Empty example. Agħfas [Oħloq] biex toħloq il-proġett. (Din id-darba ma rridux nibnu d-database tal-GATT, għalhekk nużaw NCP Empty, li għandha waħda default.)
  • Iftaħ it-tab tal-Konfiguratur GATT, agħżel il-karatteristika tal-Isem tal-Apparat, u ikteb fuq il-post "Silabs Example” valur inizjali b’“PyBGAPI Example” (sabiex il-klijent jagħraf is-server). Ikteb ukoll fuq it-tul tal-valur b'15.
  • Agħfas ctrl-s biex issalva d-database.
  • Fil-Konfiguratur tal-Proġett iftaħ it-tab tal-Komponenti tas-Software.
  • Sib il-Bluetooth > Karatteristika > komponent tas-softwer PowerControl, u kklikkja [Installa]SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 12
  • Ikklikkja fuq il-cogwheel ħdejn il-komponent tas-software PowerControl biex tiċċekkja l-limiti ta 'fuq u t'isfel tal-firxa tad-deheb. Issettja l-limitu aktar baxx għal 1M
    • PHY sa -45 (minflok -60). Għalkemm fil-prattika dan il-valur mhuwiex ottimali, se jirriżulta f'aktar aġġustamenti tal-qawwa Tx, li huwa tajjeb għal skopijiet ta 'dimostrazzjoni.
  • Fil-verżjoni SDK 3.2.0, jeħtieġ li tiġi applikata soluzzjoni żgħira biex tissettja l-firxa tad-deheb kif suppost: tiftaħ is-sl_bluetooth.c file misjuba fil-folder / autogen tal-proġett tiegħek u ċċaqlaq is-sl_bt_init_power_control(); sejħa tal-funzjoni QABEL sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 13
  • Ibni l-proġett u flash lill-bord tiegħek.
  • Jekk iż-żewġ bordijiet tiegħek huma tal-istess tip, flash l-istess immaġni lill-bord l-ieħor ukoll. Jekk it-tieni bord tiegħek huwa bord differenti, imbagħad irrepeti l-passi ta 'hawn fuq għat-tieni bord.

Jibda s-Server u l-Klijent

  • Issa għal darb'oħra, iftaħ il-bash Python, qabbad mal-ewwel bord tiegħek, u ibda r-reklamarSILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 14
  • Immodifika l-applikazzjoni tal-klijent tiegħek sabiex ma toħroġx wara li taqra l-isem tal-apparat. Sib il-linji li ġejjin, u poġġihom f'kumment:SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 15
  • Issejvja u mexxi l-applikazzjoni tal-klijent tiegħek
    • py .\client.py
  • Poġġi ż-żewġ bordijiet tiegħek 'il bogħod, imbagħad ċċaqlaqhom bil-mod eqreb lejn xulxin. Issa għandek tara li l-munzell jibda jnaqqas il-livell tal-qawwa tiegħu minn 8dBm default 'l isfel għal -3dBm (li hija l-qawwa Tx minima b'mod awtomatiku):SILICON LABS 21Q2 Bluetooth Karatteristiċi Lab 16

Dokumenti / Riżorsi

SILICON LABS 21Q2 Bluetooth Features Lab [pdfManwal tal-Istruzzjonijiet
21Q2, Laboratorju tal-Karatteristiċi tal-Bluetooth, Laboratorju tal-Karatteristiċi tal-Bluetooth 21Q2, Laboratorju tal-Karatteristiċi, Laboratorju

Referenzi

Ħalli kumment

L-indirizz elettroniku tiegħek mhux se jiġi ppubblikat. L-oqsma meħtieġa huma mmarkati *