在OSX上使用BLE400和nRF51822

最近,我对蓝牙应用程序开发非常感兴趣,甚至想开始编写自己的嵌入式应用程序。 经过相当广泛的研究,其中涉及:

  • 通读蓝牙规范的大部分内容。
  • 查看Microchip的整个蓝牙范围(并确定它们的功能和功能过于有限)。
  • 查看Adafruit的Bluefruit,并认为它太昂贵了(尽管模块不错)。

最终,我找到了Nordic Semiconductor的nRF5系列。 他们产生一个模块,该模块:

  • 内置蓝牙支持
    (更不用说其他无线协议了)
  • 买很便宜
    (每个模块约5澳元)
  • 具有非常非常低的功耗
    这意味着它可以持续很长的电池电量。
  • 用途极为广泛
    它可以充当中央或外围设备。 它可以实现任何蓝牙SIG协议(包括我特别感兴趣的HID)。 功能列表还在继续。
  • 伟大的生态系统
    拥有一个得到良好支持的生态系统,默认情况下,SDK提供了许多示例项目,还有一个活跃的论坛以及易于理解的教程和指南。

反过来,这又使我想购买其中一个模块并开始进行开发。

但是,购买模块不足以真正开始。 您确实想购买编程器/调试器,以及(理想情况下)购买开发板。 因此,我选择了这种成功的组合,即BLE400和AliExpress随附的ARM调试器/编程器。 这些都可以以40澳元左右的价格购买(和交付); 整个开发套件非常便宜。 令我印象深刻。

这就是连接了nRF51822模块的BLE400的样子:

在本指南中,我想记录一下您的工作方式:“我刚收到此软件包,不知道我在做什么”,再到“我已成功将nRF51822模块连接到我的手机,并且正在从我的手机向我发送消息电脑”。

设备刚到时,我对如何使用它(尤其是在OSX上)进行任何操作感到困惑。 我有很多问题。 Waveshare有一些现有的简要文档,介绍了如何将此设备连接到Windows计算机。 没有提及如何连接MAC。

在本指南中,我将解释:

  • 如何将BLE400模块连接到计算机。
  • 您需要安装哪些程序才能与nRF51822上的默认固件通信。
  • 如何使用nRF工具箱将消息从手机发送到计算机。 (以证明您的模块有效)
  • 如何将第一个软设备编程到nRF51822上。
  • 如何在SDK模板项目配置中设置BLE400定制板。
  • 如何在BLE400上通过UART配置NRF_LOG。

让我们开始吧!

将BLE400连接到计算机

将BLE400设备连接到计算机所需要做的就是获取USB Type-A到Mini-B电缆,将Type-B端连接到BLE400,然后将Type-A端插入计算机。 这样既可以通过USB连接为设备供电,也可以让我们使用USB设备通过UART从nRF51822发送和接收消息(图像)。

通过Homebrew将USB安装到UART串行库

注意:您需要 安装Homebrew 才能运行本节中的说明。

为了在BLE400和Mac之间发送数据,您需要安装一个驱动程序,该驱动程序允许通过USB进行串行UART通信。 要安装这样的驱动程序,请使用以下homebrew命令:

 酿造水龙头小酒馆/司机 
酿造桶安装Silicon-Labs-vcp-driver

这将安装Silicon Labs的VCP驱动程序,该驱动程序将允许USB与UART通信。 成功安装后,应使用USB电缆将BLE400插入计算机。 完成后,您应该可以在/dev看到一个新条目:

  $ ls -1 /dev/tty.* 

/dev/tty.SLAB_USBtoUART

$

这是用于连接到BLE400的串行映射。

安装和配置minicom

您可以在OSX上使用一整套程序进行串行(UART)通信,但是我们将用于示例的程序称为minicom。 您可以通过自制软件安装minicom:

  $ brew install minicom 

安装minicom后,我们希望首次进行配置:

 小型机-s BLE400 

-s将以“设置模式”启动minicom,“ BLE400”指定我们希望将要执行的minicom设置配置以该名称保存。 您应该会看到一个如下所示的屏幕:

您要转到的第一个菜单是“串行端口设置”​​,在该菜单中,我们将配置USB至UART串行端口的/dev映射。 您应该将Serial Device设置为/dev/tty.SLAB_USBtoUART并将Bps/Par/Bits设置为38400 8N1 。 您的配置应如下所示:

然后按Escape退出这些设置。 从那里,您应该选择Screen and keyboard菜单。 进入该菜单后,请确保将Local echoAdd carriage return都设置为Yes ,如下所示:

之后,只需单击“ Save setup as BLE400 ,一旦成功,则选择“ Exit 。 现在,您应获得一个连接到BLE400的串行终端。

现在,您已经通过USB至UART连接到BLE400,现在可以发送将激活蓝牙模块的命令。 在minicom串行终端窗口中,按y 。 该字符将被发送到正在监听的nRF51822模块并开始蓝牙广告。 您应该看到以下内容:

主板随附的Core51822模块上的默认固件将返回Start...响应。 该消息使您知道蓝牙广告已经开始。 如果您通过手机(或计算机)运行蓝牙扫描,则应该在该区域发现Nordic_UART蓝牙。 这是您的nRF5188模块。

通过蓝牙从手机发送消息

现在,Core51822上的默认固件已成功返回了“ Start...消息,我们想用手机连接到新的蓝牙模块,然后将消息从手机发送到nRF51822,然后将其回显到您的使用USB到UART桥的计算机。

注意:这意味着您应该从上一个示例中打开minicom。 如果已关闭它,则应该可以运行以下命令再次打开连接:

 小型机BLE400 

为了将消息从您的手机发送到nRF51822,我们将使用Nordic Semiconductor的nRF5工具箱应用程序。

请点击此链接立即在手机上安装nRF5工具箱应用。

完成后,您应该可以打开该应用程序,并受到以下屏幕的欢迎:

最后一个蓝色按钮是工具箱中的UART工具。 点击那个。 您将看到一个九按钮可配置的键盘。

首先,我们需要配置此设备的按钮。 幸运的是,我已经导出了按钮配置供您使用。

将此配置下载到您的手机。

将其下载到手机后,您可以单击顶部的标题下拉列表,选择“下载”图标,然后将配置导入到应用程序中:

最后也是最后一步是单击应用程序底部的“连接”按钮,找到Nordic_UART蓝牙设备并连接到它。

连接到它并选择导入的配置后,您应该能够单击屏幕上的任何按钮,并看到手机上这些按键的结果反映在计算机上的minicom中。

恭喜你! 现在,您已经使用nRF51822将手机连接到计算机,并在两者之间发送消息。 想象一下这里的可能性!

下一步

这就是本简短指南的全部内容。 在以下指南中,我将解释:

  • 如何为nRF5 SDK的v12.2.0随附的BLE模板应用程序创建custom_board.h文件,以便Button Support库功能对于所有SDK应用程序都能正常工作。
  • 如何将自定义SoftDevice闪存到新的BLE400上,然后将nRF5 SDK中的一个蓝牙示例程序放在上面。
  • 如何设置NRF_LOG_*命令以通过UART工作,以便您可以看到设备上正在发生的事情。

所有这些对协助您的nRF5开发都将非常有用。