LOGO មន្ទីរពិសោធន៍ស៊ីលីកុន

SILICON LABS 21Q2 Bluetooth Features Lab

SILICON LABS 21Q2 Bluetooth Features Lab

សៀវភៅណែនាំអំពីមុខងារ Bluetooth 21Q2

សៀវភៅណែនាំមន្ទីរពិសោធន៍នេះណែនាំអ្នកតាមរយៈមុខងារ Bluetooth SDK ថ្មីមួយចំនួនដែលត្រូវបានណែនាំរវាងការចេញផ្សាយ 20Q4 និង 21Q2 ។ នៅក្នុងមន្ទីរពិសោធន៍នេះ យើងនឹងបង្កើតអតីត NCPample និងសរសេរកម្មវិធីម៉ាស៊ីនជាភាសា Python ។ ដោយប្រើមុខងារ GATT ថាមវន្តថ្មី យើងក៏នឹងបង្កើតមូលដ្ឋានទិន្នន័យ GATT ពីកម្មវិធីម៉ាស៊ីនជំនួសឱ្យការប្រើប្រាស់ GATT Configurator ។ ទីបំផុតមុខងារ LE Power Control ត្រូវបានបង្ហាញដោយការពង្រីកកម្មវិធីម៉ាស៊ីន។SILICON LABS 21Q2 Bluetooth Features Lab 1

តម្រូវការជាមុន

ដើម្បីបញ្ចប់មន្ទីរពិសោធន៍នេះ អ្នកនឹងត្រូវការដូចខាងក្រោម៖

  • Thunderboard BG22s ពីរឬ WSTKs ពីរជាមួយនឹងបន្ទះវិទ្យុ EFR32BG/EFR32MG ឬការលាយបញ្ចូលគ្នានៃទាំងនេះ
  • បានដំឡើង Simplicity Studio 5 ជាមួយនឹង Gecko SDK v3.2 រួមទាំង Bluetooth SDKv3.2
  • កុំព្យូទ័រដែល Python v3.6 ឬថ្មីជាងនេះត្រូវបានដំឡើង

ការបំភ្លឺឧបករណ៍គោលដៅសម្រាប់មុខងារ NCP

  • ភ្ជាប់បន្ទះវិទ្យុទាំងពីររបស់អ្នក ហើយបើក Simplicity Studio 5
  • ជ្រើសរើសបន្ទះវិទ្យុមួយនៅលើផ្ទាំង Debug Adapters
  • កំណត់ SDK ដែលពេញចិត្តទៅ v3.2.0 នៅលើ Overview ផ្ទាំងនៃ Launcher view
  • បើក Exampផ្ទាំង គម្រោង និងការបង្ហាញ
  • ស្វែងរកប៊្លូធូសថ្មី - ការបង្ហាញ NCP ។
  • ចុច រត់ ដើម្បីបញ្ចេញរូបភាពគោលដៅ NCP ទៅកាន់ក្តារ។SILICON LABS 21Q2 Bluetooth Features Lab 2

(ចំណាំ៖ ផ្ទុយពីប៊្លូធូស - NCP ទទេ គម្រោងនេះមិនរួមបញ្ចូលមូលដ្ឋានទិន្នន័យ GATT ដែលបានសាងសង់ជាមុនទេ ប៉ុន្តែវាមានដំណើរការ GATT API ថាមវន្ត ដែលជាតម្រូវការជាមុនសម្រាប់ផ្នែកបន្ទាប់)

  • ធ្វើជំហានដូចគ្នាម្តងទៀតសម្រាប់បន្ទះវិទ្យុផ្សេងទៀត។

បង្កើតកម្មវិធី Bluetooth Server នៅក្នុង Python

ការចាប់ផ្តើម

  • កញ្ចប់ pybgapi ផ្តល់នូវលទ្ធភាពក្នុងការចេញពាក្យបញ្ជា BGAPI ទៅកាន់ឧបករណ៍គោលដៅពីកុំព្យូទ័រដោយប្រើភាសាសរសេរកម្មវិធី Python ។ ដើម្បីដំឡើងកញ្ចប់នេះ សូមវាយបញ្ចូលដូចខាងក្រោមក្នុងបន្ទាត់ពាក្យបញ្ជា៖ pip ដំឡើង pybgapi សម្រាប់ព័ត៌មានបន្ថែមអំពីការចូលមើលកញ្ចប់ https://pypi.org/project/pybgapi/
  • ស្វែងរកនិយមន័យ BGAPI ចុងក្រោយបង្អស់ file ក្រោម
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ហើយចម្លងវាទៅក្នុងថតឯកសារការងាររបស់អ្នក។
  • បើក python bash (វាយ python ក្នុង CLI)
  • នាំចូលបណ្ណាល័យ bgapi ដោយប្រើពាក្យបញ្ជាខាងក្រោម៖ >>> នាំចូល bgapi
  • ស្វែងរកលេខច្រក COM (ឧទាហរណ៍ COM49) នៃបន្ទះវិទ្យុរបស់អ្នក។ អ្នកគួរតែរកមើល “ច្រក JLink CDC UART” នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍ ឬនៅក្នុងកម្មវិធីស្ថានីយដែលអ្នកចូលចិត្ត។SILICON LABS 21Q2 Bluetooth Features Lab 3
  • ភ្ជាប់ទៅបន្ទះវិទ្យុរបស់អ្នក៖
    • >>> ការតភ្ជាប់ = bgapi.SerialConnector('COM49')
  • ចាប់ផ្តើមបណ្ណាល័យ pybgapi សម្រាប់ថ្នាំងនេះ៖
    • >>> node = bgapi.BGLib(connection,'sl_bt.xapi')
  • បើកការទំនាក់ទំនង BGAPI ឆ្ពោះទៅរកថ្នាំងនេះ៖
    • >>> node.open()
  • ពិនិត្យមើលថាតើអ្នកអាចទំនាក់ទំនងជាមួយក្រុមប្រឹក្សាភិបាលដោយប្រើពាក្យបញ្ជា system_hello() ។ អ្នកគួរតែទទួលបានការឆ្លើយតប system_hello៖
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(លទ្ធផល=0)
  • កំណត់ថ្នាំងរបស់អ្នកឡើងវិញដោយប្រើពាក្យបញ្ជាខាងក្រោម៖
    • node.bt.system.reset(0)
  • ឥឡូវនេះអ្នកគួរតែទទួលបានព្រឹត្តិការណ៍ system_boot ។ ដើម្បីទៅយកព្រឹត្តិការណ៍ចុងក្រោយ សូមប្រើពាក្យបញ្ជាខាងក្រោម៖
    • evt = node.get_events(max_events=1)
    • បោះពុម្ព(evt)
      • [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

ការកសាងមូលដ្ឋានទិន្នន័យ GATT

  • ប៊្លូធូស - កម្មវិធីគោលដៅ NCP មិនរួមបញ្ចូលមូលដ្ឋានទិន្នន័យ GATT ដែលបានសាងសង់ជាមុនទេ។ នៅទីនេះយើងនឹងបង្កើតមូលដ្ឋានទិន្នន័យពីកូដ។ ជាដំបូងចាប់ផ្តើមវគ្គសម្រាប់ការកសាងមូលដ្ឋានទិន្នន័យ៖
    • >>> session = node.bt.gattdb.new_session().session
  • បន្ថែមសេវាកម្មថ្មីទៅមូលដ្ឋានទិន្នន័យ GATT ។ នៅទីនេះយើងនឹងបន្ថែមសេវាចូលប្រើទូទៅដែលបានអនុម័តដោយប៊្លូធូស SIG ។ នេះគឺជាសេវាកម្មចម្បង (0x0) ដែលមិនកំណត់ទង់ជាតិ (0x0) និងជាមួយ 16bit UUID (0x1800)។
    • សេវា = node.bt.gattdb.add_service(វគ្គ, 0, 0, bytes.fromhex(“0018”)).សេវាកម្ម
  • បន្ថែមលក្ខណៈថ្មីទៅសេវាកម្ម។ នៅទីនេះយើងនឹងបន្ថែមលក្ខណៈឈ្មោះឧបករណ៍ទៅសេវាកម្មចូលប្រើទូទៅជាមួយនឹងលក្ខណៈសម្បត្តិ READ (0x2) គ្មានតម្រូវការសុវត្ថិភាព (0x0) គ្មានទង់ (0x0) 16bit UUID (0x2a00) ប្រវែងអថេរ (0x2) ប្រវែងអតិបរមា 20 និង ជាមួយនឹងតម្លៃដំបូងនៃ “PyBGAPI

Exampឡេ”៖

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(វគ្គ សេវាកម្ម 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, បៃ('PyBGAPI Example','utf-8'))) លក្ខណៈ
    • 3.15 បើកដំណើរការសេវាកម្មថ្មី៖
  • >>> node.bt.gattdb.start_service (វគ្គ សេវាកម្ម)
    • bt_rsp_gattdb_start_service(លទ្ធផល=0)
  • ធ្វើឱ្យមុខងារថ្មីសកម្ម៖
    • >>> node.bt.gattdb.start_characteristic(វគ្គ, តួអក្សរ)
      • bt_rsp_gattdb_start_characteristic(លទ្ធផល=0)
  • រក្សាទុកការផ្លាស់ប្តូរ និងបិទវគ្គកែសម្រួលមូលដ្ឋានទិន្នន័យ៖
    • >>> node.bt.gattdb.commit(វគ្គ)
    • bt_rsp_gattdb_commit(លទ្ធផល=0)

ការភ្ជាប់ទៅម៉ាស៊ីនមេ

  • 3.18 ឥឡូវនេះយើងមានឈ្មោះឧបករណ៍នៅក្នុងមូលដ្ឋានទិន្នន័យ GATT យើងអាចចាប់ផ្តើមការផ្សាយពាណិជ្ជកម្ម។ ជង់នឹងផ្សព្វផ្សាយឧបករណ៍ដោយស្វ័យប្រវត្តិជាមួយនឹងឈ្មោះដែលបានកំណត់នៅក្នុងមូលដ្ឋានទិន្នន័យ GATT របស់វា៖
    • >>> advertiser_set = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(លទ្ធផល=0)
  • ចាប់ផ្តើម EFR Connect នៅលើទូរសព្ទរបស់អ្នក ហើយស្វែងរកការផ្សាយពាណិជ្ជកម្មឧបករណ៍របស់អ្នកជា “PyBGAPI Exampលេ”
  • អ្នកអាចភ្ជាប់ទៅឧបករណ៍ និងស្វែងរកមូលដ្ឋានទិន្នន័យ GATT របស់វា ដែលឥឡូវនេះមានលក្ខណៈឈ្មោះឧបករណ៍

ចំណាំ៖ ប្រសិនបើអ្នកចង់បានអតីតរហ័សample ដោយមិនរំខានជាមួយមូលដ្ឋានទិន្នន័យ GATT អ្នកនៅតែអាចបញ្ចេញប៊្លូធូស - NCP Empty exampទៅកាន់ក្រុមប្រឹក្សាភិបាលរបស់អ្នក ដែលមានមូលដ្ឋានទិន្នន័យ GATT ដែលបានសាងសង់រួចជាស្រេច។ ក្នុងករណីនេះអ្វីដែលអ្នកត្រូវធ្វើនៅខាងម្ចាស់ផ្ទះគឺ:

  • >>> នាំចូល bgapi
  • >>> ការតភ្ជាប់ = bgapi.SerialConnector('COM49')
  • >>> node = bgapi.BGLib(connection,'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(លទ្ធផល=0)

ការបង្កើតកម្មវិធីអតិថិជនប៊្លូធូសនៅក្នុង Python

  • ការបង្កើតម៉ាស៊ីនភ្ញៀវគឺស្មុគស្មាញជាងការអនុវត្តម៉ាស៊ីនមេ។ ដូច្នេះយើងនឹងសរសេរអក្សរ python ។ បើកកម្មវិធីនិពន្ធអត្ថបទដែលអ្នកចូលចិត្ត ហើយបង្កើតថ្មី។ fileចូរហៅវាថា client.py
  • នាំចូលដូចខាងក្រោមៈSILICON LABS 21Q2 Bluetooth Features Lab 4
  • ដូចនៅក្នុងករណីនៃម៉ាស៊ីនមេ យើងនឹងភ្ជាប់ទៅថ្នាំងតាមរយៈ UART ។ ប្រើលេខច្រក COM នៃបន្ទះទីពីររបស់អ្នកនៅទីនេះ៖SILICON LABS 21Q2 Bluetooth Features Lab 5
  • ពីទីនេះ កម្មវិធីរបស់យើងនឹងត្រូវបានជំរុញព្រឹត្តិការណ៍។ នៅពេលណាដែលព្រឹត្តិការណ៍ប៊្លូធូសត្រូវបានបង្កើតដោយជង់ យើងនឹងដោះស្រាយព្រឹត្តិការណ៍នោះ ហើយជំរុញកម្មវិធីទៅមុខ៖SILICON LABS 21Q2 Bluetooth Features Lab 6
  • ចូរកំណត់មុខងារដោះស្រាយព្រឹត្តិការណ៍ និងបន្ថែមកម្មវិធីដោះស្រាយសម្រាប់ព្រឹត្តិការណ៍ system_boot ដែលយើងនឹងចាប់ផ្តើមស្កេនរកឧបករណ៍គ្រឿងកុំព្យូទ័រ។ ចំណាំថា មុខងារនេះគួរតែត្រូវបានកំណត់មុន while loop (ហើយបន្ទាប់ពីនិយមន័យនៃ node variable)។SILICON LABS 21Q2 Bluetooth Features Lab 7.
  • នៅពេលដែលម៉ាស៊ីនស្កេនត្រូវបានចាប់ផ្តើម ថ្នាំងនឹងទទួលរបាយការណ៍ស្កេន។ តោះបន្ថែមកម្មវិធីដោះស្រាយព្រឹត្តិការណ៍សម្រាប់របាយការណ៍ស្កេនក្នុងមុខងារ sl_bt_on_event()។ ប្រសិនបើរបាយការណ៍ស្កេនត្រូវបានរកឃើញជាមួយឈ្មោះឧបករណ៍ដែលបានផ្សាយថា “PyBGAPI Example” អតិថិជននឹងបើកការតភ្ជាប់ទៅកាន់ឧបករណ៍នោះ៖ SILICON LABS 21Q2 Bluetooth Features Lab 7
  • នៅពេលដែលអ្នកឈានដល់ចំណុចនេះ វាមានតម្លៃពិនិត្យមើលថាតើអតិថិជនរបស់អ្នករកឃើញម៉ាស៊ីនមេឬអត់។ សូមប្រាកដថា អ្នកបានចាប់ផ្តើមការផ្សាយពាណិជ្ជកម្មនៅលើឧបករណ៍ផ្សេងទៀត បន្ទាប់មករក្សាទុក client.py ហើយចាប់ផ្តើមវាពីបន្ទាត់ពាក្យបញ្ជា។ អ្នកគួរតែឃើញអ្វីមួយដូចនេះ៖ SILICON LABS 21Q2 Bluetooth Features Lab 8
  • អតិថិជនត្រូវតែស្វែងរកសេវាកម្ម និងលក្ខណៈនៅលើម៉ាស៊ីនមេ។ នៅទីនេះ យើងនឹងរកឃើញសេវាកម្មចូលប្រើទូទៅ និងលក្ខណៈឈ្មោះឧបករណ៍ ហើយចុងក្រោយអានតម្លៃនៃលក្ខណៈឈ្មោះឧបករណ៍។ ជំនួសមុខងារ sl_bt_on_event() បច្ចុប្បន្នរបស់អ្នកជាមួយនឹងកូដខាងក្រោម៖SILICON LABS 21Q2 Bluetooth Features Lab 9 SILICON LABS 21Q2 Bluetooth Features Lab 10
  • រក្សាទុក client.py ហើយចាប់ផ្តើមវាពីបន្ទាត់ពាក្យបញ្ជា។ អ្នកគួរតែឃើញអ្វីមួយដូចនេះ៖SILICON LABS 21Q2 Bluetooth Features Lab 11

ការបន្ថែមមុខងារគ្រប់គ្រងថាមពល LE

ការបំភ្លឺឧបករណ៍គោលដៅ

LE Power Control មិនត្រូវបានបើកនៅក្នុង Bluetooth example គម្រោងតាមលំនាំដើម។ ដើម្បីបន្ថែមលក្ខណៈពិសេសនេះ ប៊្លូធូស > លក្ខណៈពិសេស > សមាសភាគកម្មវិធី PowerControl ត្រូវតែត្រូវបានដំឡើង។

  • បើកកម្មវិធីបើកដំណើរការ view នៃ Simplicity Studio 5 ។
  • ជ្រើសរើសឧបករណ៍មួយរបស់អ្នកនៅក្នុងផ្ទាំង Debug Adapters។ សូមប្រាកដថា SDK ដែលពេញចិត្តគឺ v3.2.
  • បើក Exampផ្ទាំង Projects & Demos ហើយស្វែងរក Bluetooth – NCP Empty exampលេ ចុច [Create] ដើម្បីបង្កើតគម្រោង។ (លើកនេះយើងមិនចង់បង្កើតមូលដ្ឋានទិន្នន័យ GATT ទេ ដូច្នេះយើងប្រើ NCP Empty ដែលមានលំនាំដើម។)
  • បើកផ្ទាំង GATT Configurator ជ្រើសរើសលក្ខណៈឈ្មោះឧបករណ៍ ហើយសរសេរជាន់លើ “Slabs Example” តម្លៃដំបូងជាមួយ “PyBGAPI Example” (ដូច្នេះអតិថិជននឹងស្គាល់ម៉ាស៊ីនមេ)។ សរសេរជាន់លើប្រវែងតម្លៃជាមួយ 15 ។
  • ចុច ctrl-s ដើម្បីរក្សាទុកមូលដ្ឋានទិន្នន័យ។
  • នៅក្នុង Project Configurator បើកផ្ទាំង Software Components ។
  • ស្វែងរកប៊្លូធូស > លក្ខណៈពិសេស > សមាសភាគកម្មវិធី PowerControl ហើយចុច [ដំឡើង]SILICON LABS 21Q2 Bluetooth Features Lab 12
  • ចុចលើកង់កង់នៅជាប់នឹងសមាសភាគ PowerControlsoftware ដើម្បីពិនិត្យមើលដែនកំណត់ខាងលើ និងខាងក្រោមនៃជួរពណ៌មាស។ កំណត់ដែនកំណត់ទាបសម្រាប់ 1M
    • PHY ទៅ -45 (ជំនួសឱ្យ -60) ។ ទោះបីជានៅក្នុងការអនុវត្តតម្លៃនេះមិនល្អបំផុតក៏ដោយ វានឹងនាំឱ្យមានការកែតម្រូវថាមពល Tx បន្ថែមទៀត ដែលល្អសម្រាប់គោលបំណងបង្ហាញ។
  • នៅក្នុង SDK កំណែ 3.2.0 ដំណោះស្រាយតូចមួយត្រូវអនុវត្តដើម្បីកំណត់ជួរពណ៌មាសឱ្យបានត្រឹមត្រូវ៖ បើក sl_bluetooth.c file បានរកឃើញនៅក្នុងថត /autogen នៃគម្រោងរបស់អ្នក ហើយផ្លាស់ទី sl_bt_init_power_control(); ការហៅមុខងារមុន sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetooth Features Lab 13
  • បង្កើតគម្រោងហើយបញ្ចេញវាទៅក្តាររបស់អ្នក។
  • ប្រសិនបើក្តារទាំងពីររបស់អ្នកមានប្រភេទដូចគ្នា សូមបញ្ចេញរូបភាពដូចគ្នាទៅក្តារផ្សេងទៀតផងដែរ។ ប្រសិនបើក្តារទីពីររបស់អ្នកជាក្តារផ្សេងនោះ សូមធ្វើជំហានខាងលើម្តងទៀតសម្រាប់ក្តារទីពីរ។

ចាប់ផ្តើមម៉ាស៊ីនមេ និងម៉ាស៊ីនភ្ញៀវ

  • ឥឡូវនេះម្តងទៀត បើក Python bash ភ្ជាប់ទៅក្តារដំបូងរបស់អ្នក ហើយចាប់ផ្តើមការផ្សាយពាណិជ្ជកម្មSILICON LABS 21Q2 Bluetooth Features Lab 14
  • កែប្រែកម្មវិធីអតិថិជនរបស់អ្នក ដើម្បីកុំឱ្យវាចេញបន្ទាប់ពីអានឈ្មោះឧបករណ៍។ ស្វែងរកបន្ទាត់ខាងក្រោម ហើយដាក់វាចូលទៅក្នុងមតិយោបល់៖SILICON LABS 21Q2 Bluetooth Features Lab 15
  • រក្សាទុក និងដំណើរការកម្មវិធីអតិថិជនរបស់អ្នក។
    • py .\client.py
  • ដាក់ក្តារទាំងពីររបស់អ្នកឱ្យឆ្ងាយពីគ្នា បន្ទាប់មករំកិលវាឱ្យជិតគ្នាបន្តិចម្តងៗ។ ឥឡូវនេះអ្នកគួរតែឃើញថាជង់ចាប់ផ្តើមបន្ថយកម្រិតថាមពលរបស់វាពីលំនាំដើម 8dBm ចុះទៅ -3dBm (ដែលជាថាមពល Tx តិចតួចបំផុតតាមលំនាំដើម):SILICON LABS 21Q2 Bluetooth Features Lab 16

ឯកសារ/ធនធាន

SILICON LABS 21Q2 Bluetooth Features Lab [pdf] សៀវភៅណែនាំ
21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Features Lab, Lab

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *