SILICON LABS LOGO

SILICON LABS 21Q2 Bluetooth funktsioonide labor

SILICON LABS 21Q2 Bluetooth funktsioonide labor

Bluetooth 21Q2 funktsioonide laborijuhend

See laborijuhend tutvustab teile mõningaid uusi Bluetoothi ​​SDK funktsioone, mis võeti kasutusele väljaannete 20Q4 ja 21Q2 vahel. Selles laboris loome NCP example ja kirjutage Pythoni keeles hostitarkvara. Kasutades uut dünaamilist GATT-i funktsiooni, loome GATT-i konfiguraatori kasutamise asemel hostitarkvarast ka GATT-i andmebaasi. Lõpuks esitatakse LE Power Control funktsiooni hostitarkvara laiendamise kaudu.SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 1

Eeldused

Selle labori lõpuleviimiseks vajate järgmist.

  • Kaks Thunderboard BG22 või kaks WSTK-d mis tahes EFR32BG/EFR32MG raadioplaadiga või nende kombinatsiooniga
  • Installitud Simplicity Studio 5 koos Gecko SDK v3.2-ga, sealhulgas Bluetoothi ​​SDKv3.2-ga
  • Arvuti, kuhu on installitud Python v3.6 või uuem

Sihtseadmete vilkumine NCP funktsionaalsuse jaoks

  • Ühendage kaks raadioplaati ja avage Simplicity Studio 5
  • Valige vahekaardil Silumisadapterid üks raadioplaatidest
  • Määrake Eelistatud SDK-ks versioonis 3.2.0view Käivitaja vahekaart view
  • Avage Exampvahekaart Projektid ja demod
  • Leidke uus Bluetooth – NCP demo.
  • NCP-sihtpildi tahvlile vilkumiseks klõpsake nuppu Käivita.SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 2

(Märkus: erinevalt Bluetoothist – NCP Empty ei sisalda see projekt eelehitatud GATT-i andmebaasi, kuid sellel on lubatud dünaamiline GATT API, mis on järgmiste jaotiste eeltingimus)

  • Korrake samu samme teise raadioplaadiga.

Bluetoothi ​​serverirakenduse loomine Pythonis

Alustamine

  • Pybgapi pakett annab võimaluse anda Pythoni programmeerimiskeelt kasutades arvutist sihtseadmele BGAPI-käske. Selle paketi installimiseks tippige käsureale järgmine tekst: pip install pybgapi Lisateabe saamiseks paketi kohta külastage https://pypi.org/project/pybgapi/
  • Leidke uusim BGAPI definitsioon file all
  • C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ja kopeerige see oma töökausta.
  • Avage python bash (tippige CLI-sse python)
  • Importige bgapi teek järgmise käsuga: >>> import bgapi
  • Leidke ühe oma raadioplaadi COM-pordi number (nt COM49). Peaksite seadmehaldurist või oma lemmikterminalirakendusest otsima „JLink CDC UART-porti”.SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 3
  • Ühendage raadioplaadiga:
    • >>> ühendus = bgapi.SerialConnector('COM49')
  • Initsialiseerige selle sõlme pybgapi teek:
    • >>> node = bgapi.BGLib(ühendus,'sl_bt.xapi')
  • Avage BGAPI side selle sõlme suunas:
    • >>> node.open()
  • Kontrollige, kas saate tahvliga suhelda, kasutades käsku system_hello(). Peaksite saama vastuse system_hello:
    • >>> node.bt.system.hello()
      • bt_rsp_system_hello(result=0)
  • Lähtestage oma sõlm järgmise käsuga:
    • node.bt.system.reset(0)
  • Nüüd peaksite saama sündmuse system_boot. Viimase sündmuse toomiseks kasutage järgmist käsku:
    • evt = node.get_events(max_events=1)
    • print (evt)
      • [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]

GATT-i andmebaasi loomine

  • Bluetooth – NCP sihtrakendus ei sisalda eelehitatud GATT-i andmebaasi. Siin loome andmebaasi koodist. Esmalt alustage andmebaasi loomise seanssi:
    • >>> seanss = node.bt.gattdb.new_session().session
  • Lisage GATT-i andmebaasi uus teenus. Siia lisame Bluetooth SIG-i poolt vastu võetud üldise juurdepääsu teenuse. See on esmane teenus (0x0), millel ei ole lippe (0x0) ja 16-bitine UUID (0x1800).
    • teenus = node.bt.gattdb.add_service(session, 0, 0, bytes.fromhex(“0018”)).teenus
  • Lisage teenusele uus omadus. Siin lisame üldise juurdepääsu teenusele seadme nime tunnuse, millel on atribuut READ (0x2), turvanõuded puuduvad (0x0), lipud puuduvad (0x0), 16-bitine UUID (0x2a00), muutuv pikkus (0x2), maksimaalne pikkus 20 ja algväärtusega "PyBGAPI

Example":

  • >>> char = node.bt.gattdb.add_uuid16_characteristic(session, service, 2, 0, 0, bytes.fromhex('002a'), 2,
    • 20, baiti ('PyBGAPI Example','utf-8')).iseloomulik
    • 3.15 Aktiveerige uus teenus:
  • >>> node.bt.gattdb.start_service(session,service)
    • bt_rsp_gattdb_start_service(result=0)
  • Aktiveerige uus omadus:
    • >>> node.bt.gattdb.start_characteristic(session, char)
      • bt_rsp_gattdb_start_characteristic(tulemus=0)
  • Salvestage muudatused ja sulgege andmebaasi redigeerimise seanss:
    • >>> node.bt.gattdb.commit(session)
    • bt_rsp_gattdb_commit(result=0)

Serveriga ühenduse loomine

  • 3.18 Nüüd, kui meil on GATT-i andmebaasis seadme nimi, saame hakata reklaamima. Virn reklaamib seadet automaatselt selle GATT-i andmebaasis määratletud nimega:
    • >>> reklaamija_komplekt = node.bt.advertiser.create_set().handle
    • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
      • bt_rsp_advertiser_start(result=0)
  • Käivitage oma telefonis EFR Connect ja leidke, et teie seade reklaamitakse kui „PyBGAPI Example "
  • Saate seadmega ühenduse luua ja avastada selle GATT-i andmebaasi, millel on nüüd seadme nimi

Märkus: kui soovite väga kiiret eksample ilma GATT-i andmebaasiga vaeva nägemata, saab ikka Bluetoothi ​​vilkuma – NCP Empty example oma tahvlile, millel on põhiline eelehitatud GATT-andmebaas. Sel juhul peate hosti poolel tegema ainult järgmist:

  • >>> importige bgapi
  • >>> ühendus = bgapi.SerialConnector('COM49')
  • >>> node = bgapi.BGLib(ühendus,'sl_bt.xapi')
  • >>> node.open()
  • >>> reklaamija_komplekt = node.bt.advertiser.create_set().handle
  • >>> node.bt.advertiser.start(advertiser_set, 2, 2)
    • bt_rsp_advertiser_start(result=0)

Bluetoothi ​​​​kliendirakenduse loomine Pythonis

  • Kliendi loomine on keerulisem kui serveri juurutamine. Seetõttu kirjutame pythoni skripti. Avage oma lemmiktekstiredaktor ja looge uus file, nimetagem seda kliendiks.py
  • Importige järgmised asjad:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 4
  • Nii nagu serveri puhul, loome sõlmega ühenduse UART-i kaudu. Kasutage oma teise tahvli COM-pordi numbrit siin:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 5
  • Siit edasi on meie rakendus sündmustepõhine. Kui virn genereerib Bluetoothi ​​sündmuse, käsitleme sündmust ja edastame rakenduse:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 6
  • Defineerime sündmuste käitleja funktsiooni ja lisame sündmusele system_boot käitleja, kus alustame välisseadmete otsimist. Pange tähele, et see funktsioon tuleks defineerida enne while-tsüklit (ja pärast sõlmemuutuja määratlust).SILICON LABS 21Q2 Bluetoothi ​​funktsioonid Lab 7.
  • Kui skanner on käivitatud, saab sõlm skannimisaruandeid. Lisame funktsiooni sl_bt_on_event() skannimisaruannete jaoks sündmuste käitleja. Kui leitakse skannimisaruanne reklaamitud seadmenimega „PyBGAPI Example”, avab klient ühenduse selle seadmega: SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 7
  • Kui olete sellesse punkti jõudnud, tasub kontrollida, kas teie klient leiab serveri. Veenduge, et olete teises seadmes reklaami käivitanud, seejärel salvestage client.py ja käivitage see käsurealt. Peaksite nägema midagi sellist: SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 8
  • Klient peab avastama serverist teenused ja omadused. Siin avastame üldise juurdepääsu teenuse ja tunnuse Seadme nimi ning lõpuks loeme välja tunnuse Seadme nimi väärtuse. Asendage oma praegune funktsioon sl_bt_on_event() järgmise koodiga:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 9 SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 10
  • Salvestage client.py ja käivitage see käsurealt. Peaksite nägema midagi sellist:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 11

LE Power Control funktsiooni lisamine

Sihtseadmete vilkumine

LE Power Control ei ole Bluetoothi ​​puhul lubatudample projektid vaikimisi. Selle funktsiooni lisamiseks peab olema installitud Bluetooth > Funktsioon > PowerControl tarkvarakomponent.

  • Avage käivitaja view Simplicity Studio 5-st.
  • Valige vahekaardil Silumisadapterid üks oma seadmetest. Veenduge, et eelistatud SDK oleks v3.2.
  • Avage Exampvahekaart Projektid ja demod ja leidke Bluetooth – NCP tühi example. Projekti loomiseks vajutage [Loo]. (Seekord me ei soovi GATT-i andmebaasi luua, seega kasutame NCP Empty'i, millel on vaikeseade.)
  • Avage vahekaart GATT Configurator, valige omadus Seadme nimi ja kirjutage üle "Silabs Example” algväärtus koos „PyBGAPI Example” (et klient tunneks serveri ära). Samuti kirjutage väärtuse pikkus üle 15-ga.
  • Andmebaasi salvestamiseks vajutage ctrl-s.
  • Avage projekti konfiguraatoris vahekaart Tarkvarakomponendid.
  • Otsige üles Bluetooth > Funktsioon > PowerControli tarkvarakomponent ja klõpsake [Install]SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 12
  • Kuldse vahemiku ülemise ja alumise piiri kontrollimiseks klõpsake PowerControl tarkvarakomponendi kõrval olevat hammasratast. Määrake 1M alampiir
    • PHY kuni -45 (-60 asemel). Kuigi praktikas pole see väärtus optimaalne, toob see kaasa rohkem Tx-i võimsuse reguleerimisi, mis on hea demonstratsiooni eesmärgil.
  • SDK versioonis 3.2.0 tuleb kuldse vahemiku õigeks seadistamiseks rakendada väikest lahendust: avage fail sl_bluetooth.c file leitud teie projekti kaustast /autogen ja teisaldage sl_bt_init_power_control(); funktsiooni väljakutse ENNE sl_bt_init_stack(&config);SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 13
  • Koostage projekt ja viige see oma tahvlile.
  • Kui teie kaks tahvlit on sama tüüpi, välgatage sama pilt ka teisele tahvlile. Kui teie teine ​​tahvel on erinev, korrake ülaltoodud samme teise tahvli jaoks.

Serveri ja kliendi käivitamine

  • Nüüd avage uuesti Pythoni bash, looge ühendus oma esimese tahvliga ja alustage reklaamimistSILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 14
  • Muutke oma klientrakendust nii, et see ei väljuks pärast seadme nime lugemist. Otsige üles järgmised read ja lisage need kommentaaridesse:SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 15
  • Salvestage ja käivitage oma kliendirakendus
    • py .\client.py
  • Place your two boards far away, then slowly move them closer to each other. Now you should see that the stack starts decreasing its power level from the default 8dBm down to -3dBm (which isthe minimal Tx power by default):SILICON LABS 21Q2 Bluetoothi ​​funktsioonide labor 16

Dokumendid / Ressursid

SILICON LABS 21Q2 Bluetooth funktsioonide labor [pdfKasutusjuhend
21Q2, Bluetoothi ​​funktsioonide labor, 21Q2 Bluetoothi ​​funktsioonide labor, funktsioonide labor, labor

Viited

Jäta kommentaar

Teie e-posti aadressi ei avaldata. Kohustuslikud väljad on märgitud *