【DigiKey好物畅享】Nordic NRF5340-DK蓝牙键盘开发

【DigiKey好物畅享】Nordic NRF5340-DK蓝牙键盘开发

一、前言

很荣幸能入围【你晒单,我买单,DigiKey带您畅享好物】第三期活动,非常感谢Digikey和EEWORLD的大力支持。本人在这次活动中共选购一件物料,为必购物料——NRF5340-DK评估板。本文将围绕NRF5340-DK评估板的实战体验展开。

二、实战准备

nRF5340这款Soc为双核,内有两个独立的处理核心,分别为网络核心(Network Core)和应用核心(Application Core),其中网络核心主要负责蓝牙通信等无线功能,应用核心主要负责用户应用逻辑、传感器处理等,非常适合用来做蓝牙音箱、蓝牙键盘、蓝牙鼠标等。

本次实战打算制作蓝牙键盘,网络核心可以独立处理蓝牙通信协议栈,确保蓝牙连接的稳定性和低功耗,减少应用核心的负担。应用核心可以处理用户输入、键盘扫描等任务,不会被蓝牙通信影响,保证响应速度和稳定性。

制作蓝牙键盘可借助官方例程Bluetooth LE HIDS keyboard实现。官方例程中,利用板上三个按钮实现接受、拒绝蓝牙连接、NFC配对、大小写切换及hello发送。上电需要使用NFC进行配对,若想上电直接蓝牙广告,可在应用核的配置prj.conf中加上一句“CONFIG_NFC_OOB_PAIRING=n”。也可以在zephyr的.config中删去“CONFIG_NFC_OOB_PAIRING=y”。

三、实战测试

例程只使用了板上的三个按钮,其中button4还是用来NFC配对使用,本文无需使用,原本的例程中,仅利用两个按钮button1和button2来实现接受和拒绝蓝牙配对以及切换大小写和发送hello的功能,这样操作起来,需要切换层等复杂操作,有点废手,而板上还有一个button3未被使用,打算用button3来承担发送hello的功能,部分代码如下:

#define KEY_SEND_MASK DK_BTN3_MSK

.. .. ..

.. .. ..

if (has_changed & KEY_SEND_MASK) {

    button_text_changed((button_state & KEY_TEXT_MASK) != 0);

}

.. .. ..

.. .. ..

打开电脑上的蓝牙后,对NRF5430评估板进行编译烧录,可在蓝牙设备中发现Nordic_HIDS_keyboard设备,即NRF5340评估板被识别为了蓝牙键盘。点击添加设备,再点击连接,如图1所示,需要及时在板上按下button1对蓝牙连接请求进行同意应答。

图1 蓝牙键盘连接

连接成功后,即可打开键盘测试界面进行键盘功能测试了,连续按下button3,可发现hello按键被连续按下,具体如图2所示。

图2 蓝牙键盘测试

测试键盘功能正常。后续可扩展外围,再映射相关HID码,一个完整的蓝牙键盘功能就实现了!一个性能强大。但极易开发上手的键盘就这么出来了!本次实战体验结束。