Advertisement

SBus-Arduino:适用于SBUS接收器及伺服器的Arduino库

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
SBus-Arduino是一款专为SBUS接收器和伺服器设计的Arduino库,简化了无人机遥控信号的处理与解析过程,支持开发者快速接入SBUS接口进行硬件开发。 斯伯-阿杜伊诺该库可与SBUS接收器和伺服电机进行通信,并且可以使用Arduino IDE编程环境。SBUS是一种总线协议,用于将来自接收器的命令传输到伺服电机。 不同于PWM(脉宽调制),SBUS利用了一种串行总线架构,这意味着一条数据线路能够连接多达16个伺服电机,每个电机接收一个独特的控制信号。SBUS通信采用反向逻辑,并且波特率为100,000 bps、8位数据长度以及偶数校验和2位停止的设置。 每条SBUS消息由25字节组成: - 字节[0]:SBUS头,值为 0x0F - 字节 [1 - 22]:包含来自16个伺服通道的数据,每个通道占用了11位的信息空间。 - 字节 [23]:包括以下信息的标志字节: - 第7位(0x80)代表第17号伺服电机 - 第6位(0x40)表示第18号伺服电机 - 第5位(0x20)用于标记丢失的数据帧 - 第4位(0x10)指示故障安全模式的激活状态 - 字节 [24]:SBUS尾部,完成数据包传输。 当接收器和发送设备之间发生一帧数据丢失时,该信息会被记录。通常情况下,连续几帧的数据缺失将触发接收端进入所谓的“故障安全”运行模式。这种情形大约每10毫秒或两次通信周期内可能发生一次。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • SBus-ArduinoSBUSArduino
    优质
    SBus-Arduino是一款专为SBUS接收器和伺服器设计的Arduino库,简化了无人机遥控信号的处理与解析过程,支持开发者快速接入SBUS接口进行硬件开发。 斯伯-阿杜伊诺该库可与SBUS接收器和伺服电机进行通信,并且可以使用Arduino IDE编程环境。SBUS是一种总线协议,用于将来自接收器的命令传输到伺服电机。 不同于PWM(脉宽调制),SBUS利用了一种串行总线架构,这意味着一条数据线路能够连接多达16个伺服电机,每个电机接收一个独特的控制信号。SBUS通信采用反向逻辑,并且波特率为100,000 bps、8位数据长度以及偶数校验和2位停止的设置。 每条SBUS消息由25字节组成: - 字节[0]:SBUS头,值为 0x0F - 字节 [1 - 22]:包含来自16个伺服通道的数据,每个通道占用了11位的信息空间。 - 字节 [23]:包括以下信息的标志字节: - 第7位(0x80)代表第17号伺服电机 - 第6位(0x40)表示第18号伺服电机 - 第5位(0x20)用于标记丢失的数据帧 - 第4位(0x10)指示故障安全模式的激活状态 - 字节 [24]:SBUS尾部,完成数据包传输。 当接收器和发送设备之间发生一帧数据丢失时,该信息会被记录。通常情况下,连续几帧的数据缺失将触发接收端进入所谓的“故障安全”运行模式。这种情形大约每10毫秒或两次通信周期内可能发生一次。
  • Arduino SBus信号解析
    优质
    Arduino SBus信号解析库提供了一套用于解析SBus协议数据的有效工具和示例代码,适用于无线电遥控设备与飞行控制器之间的通信。 由于SBUS信号采用负逻辑,因此在使用时需要在外围硬件上添加取反电路与单片机相连。
  • SBUS与解析遥控SBUS信号
    优质
    本文介绍如何接收和解析来自遥控设备的SBUS信号,旨在帮助电子爱好者及无人机玩家深入了解并应用SBUS协议进行硬件开发。 SBUSUART 用于接收和解析遥控器接收机的 SBUS 输出信号。 安装: ``` npm install sbusuart --save ``` 初始化: ```javascript const SerialPort = require(serialport); var sbus = new SBUSUART(); ``` 或自定义参数: ```javascript var sbus = new SBUSUART({ start_byte: 0xf, end_byte: 0x, sbus_frame_len: 25, sbus_num_channels: 18, baudRate: 100000, stopBits: 2, parity: even, dataBits: 8 }); ``` 数值归一化(将 SBUS 数值映射到 0~1): `min` 表示遥控器的最小值,`max` 表示遥控器的最大值。 ```javascript sbus.setupConvertParams(min, max); ```
  • STM32读取SBUS信号数据
    优质
    本项目介绍如何使用STM32微控制器读取并解析SBUS信号接收器的数据,适用于无人机、机器人等领域的开发者和爱好者。 STM32解析航模SBUS接收机程序包括两部分:一是STM32的解析程序;二是C#上位机显示程序。需要注意的是串口通信需要进行信号反向处理。
  • STM32读取SBUS信号
    优质
    本项目专注于开发基于STM32微控制器读取和解析SBUS协议数据的技术方案,适用于无人机及遥控模型设备中的信号接收模块。 STM32解析航模SBUS接收机程序包括两部分:STM32解析程序和C#上位机显示程序。串口通信需要进行信号反向处理。
  • Arduino-TLC5926: TLC5926移位寄存Arduino
    优质
    Arduino-TLC5926是一款专为TLC5926移位寄存器设计的Arduino库,简化了LED矩阵和复杂照明项目的编程工作。 适用于Arduino的TLC5926库支持与TLC5926 / TLC5927(16位移位寄存器)通信。“慢速”模式使用digitalWrite或shiftOut而非SPI,全局亮度功能通过PWM实现且无需阻塞。该库还考虑到/ OE引脚是反向的,并应该适用于TLC5916 / TLC5917:将“链接在一起的数字”分成两半。模式宽度为2个移位寄存器宽。 此库支持获取诊断信息(如短路、断开和过热情况),并且可以设置电流增益值。它兼容使用2到4条信号线,其中最小配置包括SDI与CLK,而最小控制线假设LE连接至CLK,并且/ OE接地。 该库提供了两种闪烁模式:容易可见的移动时数据闪烁以及无闪烁显示直到图案结束的数据,在后一种情况下需要额外的LE引脚和将/OE引脚接地。
  • STM32F767 HALUART解析乐迪SBUS信号
    优质
    本项目利用STM32F767微控制器及其HAL库,通过UART接口对接收的乐迪(Spektrum)接收机发出的SBUS信号进行解析和处理。 功能:STM32F767解析乐迪接收机SBUS信号并通过串口打印出通道数值。 说明: 1. 使用stm32F1/F4系列只需要在初始化函数中改变串口对应的引脚即可。 2. 本例程适用于各品牌使用SBUS协议的遥控器接收机。 3. 注意不同品牌的遥控器解析出来的SBUS信号通道值是不一样的,乐迪的是300-1700,另外一款为本人测试过的遥控器范围是341-1707。通过串口打印可以得知具体数值范围,并根据sbus的数值对应到PWM范围(如:1000-2000或500-2500)。
  • USARTSBus通信
    优质
    本通信库基于USART接口实现高效的SBus数据传输协议,适用于无人机和无线电遥控设备,提供稳定、快速的数据交换解决方案。 USART(通用同步异步收发传输器)是微控制器中的常见串行通信接口,在设备间的短距离通信中有广泛应用。SBUS是一种专为遥控系统设计的二进制数据协议,常用于无人机、遥控模型等领域,相比传统的PWM信号提供更稳定和可靠的传输。 在基于USART的SBUS通信库中涉及的关键知识点包括: 1. USART原理:允许微控制器以全双工模式发送与接收数据,并支持同步或异步通信。异步模式下,每个数据帧由起始位、数据位、奇偶校验位及停止位组成,确保了有效的数据传输。 2. SBUS协议:SBUS是一种串行双向连续的数据流,采用8位格式,包含一个开始和结束的标志以及无奇偶校验。可以同时传递16个通道值,并为每个通道提供9比特数据加一位标识符来指示有效状态。其可靠性体现在使用CRC(循环冗余检查)确保传输中的错误检测。 3. 数据解析:接收SBUS信号后,库需解码并提取各个通道的数值信息。这包括将连续8位字节流分组为10比特数据,并依据协议规则判断标识符来确认有效性。 4. USART配置:设置USART参数(如波特率、数据位数等)是实现有效SBUS通信的重要步骤,通常通过微控制器寄存器或HAL库函数完成这些设定。 5. 中断驱动:为了实时处理接收到的SBUS信息,使用USART中断机制。当新的字符到达时触发中断服务程序,在此上下文中执行相应的数据处理操作。 6. 错误检测与处理:CRC校验是保障SBUS协议准确性的重要环节,库中需要实现计算并对比接收的数据以确保无误传输;若发现错误,则需决定是否重传或忽略该帧。 7. 库的使用:开发者在利用此SBUS通信库时通常需要完成USART和SBUS初始化、设置接收到数据后的回调函数,并根据主循环或者回调中处理接收到的信息,将通道值解析并应用于相应控制逻辑之中。 8. 兼容性:考虑到不同微控制器平台(如STM32、AVR等)的差异性,该库可能需要实现针对各硬件环境的独特适配层以确保兼容性和性能表现。 9. 调试工具:开发过程中可以利用串口终端软件或示波器调试SBUS通信功能,检查发送与接收的数据准确性。 10. 示例代码:为了方便用户快速上手使用库的功能,通常会提供初始化USART、设置SBUS接收到数据后的回调函数以及解析和应用通道值的样例程序。 基于USART实现的SBUS通信涉及微控制器串行通讯技术、协议解析及实时中断处理机制等核心概念。开发者需要掌握这些知识并熟练运用相关库来构建高效可靠的遥控系统。
  • STM32F1读取SBUS机信号数据
    优质
    本项目介绍如何使用STM32F1微控制器读取SBUS协议的模型飞机遥控接收机信号,并解析关键飞行控制数据。 基于原子的HAL库串口例程进行了修改,在ZET6核心板上实现功能:通过串口3接收数据,并使用串口1连接USB线将数据发送到电脑;利用电脑上的串口助手读取各个通道的数据值。
  • STM32读取SBUSC#上位机应程序
    优质
    本项目介绍如何使用STM32微控制器读取SBUS协议的遥控接收信号,并通过串口将数据传输至基于C#开发的应用程序进行解析和显示,实现对飞行器或模型设备的有效控制。 STM32是一款基于ARM Cortex-M内核的微控制器,在嵌入式系统设计领域应用广泛,尤其在无人机、机器人及消费电子设备方面表现突出。本项目将探讨如何使用STM32读取SBUS信号,并通过C#编写上位机软件进行数据解析。 SBUS(S-FHSS Bus)是由FrSky公司开发的一种串行遥控协议,允许同时传输16个通道的数据,具有较高的抗干扰能力和稳定性。与传统的PPM协议相比,它提供了更可靠的连接和更高的精度,适合于需要多通道控制的复杂系统。 STM32读取SBUS信号的过程通常包括以下几个步骤: 1. **硬件接口**:将STM32连接到SBUS接收机输出端口。由于SBUS是差分信号,因此需使用UART或SPI等接口来接收该信号。STM32的UART可以配置为单端或差分模式以适应这种需求。 2. **串行通信设置**:在STM32固件中需要配置相应的UART接口,并设定适当的波特率(通常100Kbps)、数据位、停止位和校验位等参数。由于SBUS是串行流,所以还需开启中断或轮询模式来捕获数据。 3. **数据解码**:STM32接收到信号后需要将串行数据转换为并行格式,并根据SBUS协议进行解析。这包括去除起始和结束标志、解析每个通道的8位数据以及计算实际通道值等步骤。 4. **无线通信**:可能还需要通过蓝牙、Wi-Fi或NRF24L01等模块将解码后的通道值发送到上位机,以便进一步处理与显示。 C#部分主要负责: 1. **接收和解析数据**:利用.NET框架中的SerialPort类建立STM32连接,并设置相同参数以监听串口。接收到STM32的SBUS通道后进行相应解码并展示在用户界面上。 2. **数据显示**:将获取到的数据通过滑块、图表等可视化元素实时显示,反映遥控器各通道状态。 3. **高级功能**:上位机软件还可提供数据记录、故障检测、设置阈值报警及PID控制器等功能以提升系统智能化程度和用户体验。 4. **通信协议设计**:确保STM32与C#之间可靠的通信机制,可能涉及自定义的数据包格式包含校验和等措施防止错误或丢失信息。 5. **软件架构规划**:采用面向对象编程和事件驱动模型构建应用程序以保证代码清晰、易于维护及扩展。 在项目文件中包含了STM32的固件源码与C#上位机程序代码及相关文档,供开发者参考学习。通过深入理解这些资源可以了解如何实现STM32与SBUS接收器之间的交互以及怎样使用C#创建一个功能完善的上位机应用程序。