前言
在现代社会,随着生活水平的提升和健康意识的增强,人们对健康与舒适生活的追求愈发强烈。肌肉疲劳、身体僵硬、工作压力,这些问题困扰着许多人。为了解决这些困扰,深圳京鸿通信科技有限公司自豪地推出了一款全新设计的筋膜枪,为您的健康生活带来全新的体验。
本款筋膜枪采用了nrf52832研发,整机耗电只有22UA,多档位调节,蓝牙远程连接控制,远程更新驱动程序,智能充电和灯光提示,持久压力和高强度振动,自动补正振动强度,更是为不同人群提供不同的感受。
以下是内容大纲
- HVP3与传统筋膜枪比较
- 整机测试以及多数功能调试经验分享
- 一站式嵌入式开发方案
整机测试以及多数功能调试经验分享
筋膜枪持有不同档位,以及不同情况下的压力反馈,用户可以通过设备上的触摸屏或手机APP进行模式选择和力度调节。多档位力度选择确保每个用户都能找到适合自己的舒适强度。
本设备采用高效无刷电机技术,运作时噪音极低(低于40分贝)。
输出压力和灯光控制
void vendor_fg_led_update(void)
{
uint8 is_falsh = 0;
uint8 brake_gear = Vendor_general_calc_brake_gear(mVendor_run_info.power_level, mVendor_run_info.work_mode, mVendor_run_info.fg_freq, &is_falsh);
if(1 == mVendor_run_info.gear_change_climbing)
{
return ;
}
//LOGD("[MAIN] FG %d ms, %d HZ bake, brake_gear_level=%d %d\n", mVendor_run_info.fg_timems, mVendor_run_info.fg_freq, brake_gear, mVendor_run_info.brake_gear_level);
if(is_falsh == 1)
{
if(brake_gear > 0)
{
Vendor_Main_gear_output(mVendor_run_info.power_level, mVendor_run_info.work_mode, 0);
}
if(brake_gear != mVendor_run_info.brake_gear_level)
{
mVendor_run_info.brake_gear_level = 0;
//LOGD("brake_planel_led set %d\r\n", mVendor_run_info.brake_gear_level);
Vendor_Main_brake_planel_led(mVendor_run_info.brake_gear_level, mVendor_run_info.work_mode);
}
}
else
{
if(brake_gear > 0)
{
if(VENDOR_WORK_MODE_PROFESSIONAL == mVendor_run_info.work_mode)
{
Vendor_Main_gear_output(mVendor_run_info.power_level, mVendor_run_info.work_mode, brake_gear);
}
}
if(brake_gear != mVendor_run_info.brake_gear_level)
{
mVendor_run_info.brake_gear_level = brake_gear;
//LOGD("brake_planel_led set %d\r\n", mVendor_run_info.brake_gear_level);
Vendor_Main_brake_planel_led(mVendor_run_info.brake_gear_level, mVendor_run_info.work_mode);
}
}
}
m_seq_values = duty_cycle;
nrf_drv_pwm_simple_playback(&m_pwm0, &m_seq, 1, 0);
旋钮设有多个档位,从低到高依次递增,用户可以根据具体需求进行选择。每个档位对应不同的电压输出,确保从轻量级使用到重度使用都能获得最佳体验。
采用高精度传感器和控制芯片,确保旋钮在不同档位下的电压输出稳定可靠。这样不仅提高了设备的性能,也延长了设备的使用寿命。
搭配蓝牙功能通过APP链接进行远程开启关闭,使设备更智能便捷,用户可以随心所欲通过移动设备对设备进行控制。
蓝牙广播数据包配置
// 定义一个制造商自定义数据的结构体变量,配置广播数据时将该变量的地址赋值给广播数据包中
ble_advdata_manuf_data_t manuf_specific_data;
// 0x0059是Nordic的制造商ID
manuf_specific_data.company_identifier = 0x08ba;
// 指向自定义数据
manuf_specific_data.data.p_data = my_adv_manuf_data;
// 自定义数据的大小
manuf_specific_data.data.size = sizeof(my_adv_manuf_data);
// 定义自定义数据到广播包中
//init.advdata.p_manuf_specific_data = &manuf_specific_data;
init.advdata.name_type = BLE_ADVDATA_FULL_NAME;
init.advdata.short_name_len = strlen(DEVICE_NAME);
init.advdata.include_appearance = true;
init.advdata.flags = BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE;
init.advdata.uuids_complete.uuid_cnt = sizeof(m_adv_uuids) / sizeof(m_adv_uuids[0]);
init.advdata.uuids_complete.p_uuids = m_adv_uuids;
init.config.ble_adv_fast_enabled = true;
init.config.ble_adv_fast_interval = APP_ADV_INTERVAL;
init.config.ble_adv_fast_timeout = APP_ADV_DURATION;
读取主从通信![](https://i-blog.csdnimg.cn/direct/a16c13c7d7634e6ab3a34c54b31f8100.png)
收包流程
memset(mVendor_run_info.uart_recv, 0, sizeof(mVendor_run_info.uart_recv));
memcpy(mVendor_run_info.uart_recv, data_buff, data_cout);
mVendor_run_info.uart_recv_len = data_cout;
memset(data_buff, 0, sizeof(data_buff));
//NRF_LOG_INFO("data_cout = %d",data_cout);
data_cout = 0;
分析接收数据
if(len == 0)//未收到
{
// NRF_LOG_INFO("ck err-1 \r\n");
// printf("ck err-1 \r\n");
return -1;
}
if(ptr[0] != 0xA5)//包头错误
{
// NRF_LOG_INFO("ck err-2 \r\n");
// printf("ck err-2 \r\n");
return -1;
}
if(len >= 2)//未收完
{
data_len = ptr[1];
}
else
{
// LOG("ck err+1 %d\r\n", len);
return 1;
}
if(len > data_len)//超出
{
// NRF_LOG_INFO("ck err-3 \r\n");
// printf("ck err-3 \r\n");
return -1;
}
if(len < data_len)//过少
{
//LOG("ck err+2 %d,need %d\r\n", len, data_len);
return 2;
}
if(ptr[len - 1] != 0x5A)//收错
{
// NRF_LOG_INFO("ck err-4 %02X\r\n", ptr[len - 1] );
// printf("ck err-4 %02X\r\n", ptr[len - 1] );
return -1;
}
for(i = 1; i < len - 2; i++)//
{
crc ^= ptr[i];
}
if(crc != ptr[len - 2])
{
// NRF_LOG_INFO("ck err-5 [%02X-%02X] \r\n", crc, ptr[len - 2]);
// printf("ck err-5 [%02X-%02X] \r\n", crc, ptr[len - 2]);
return -1;
}
return 0;
内置大容量锂电池,整机休眠功耗实测22UA,一次充电可持续使用5-6小时,满足日常及长时间外出使用需求。设备充电时间短,方便用户快速充电后继续使用。
充电时,电池电量小于25%时显示红灯呼吸灯,电量25%-50%显示黄色呼吸灯,电量50%-75%显示黄红色呼吸灯,大于75%显示绿色呼吸灯,充满后绿色灯常亮。
/**@brief Function for putting the chip into sleep mode.
*
* @note This function will not return.
*/
static void sleep_mode_enter(void)
{
ret_code_t err_code;
err_code = bsp_indication_set(BSP_INDICATE_IDLE);
APP_ERROR_CHECK(err_code);
// Prepare wakeup buttons.
err_code = bsp_btn_ble_sleep_mode_prepare();
APP_ERROR_CHECK(err_code);
// Go to system-off mode (this function will not return; wakeup will cause a reset).
// app_uart_close();
// sd_power_dcdc_mode_set(1);
err_code = sd_power_system_off();
// APP_ERROR_CHECK(err_code);
}
总结
本款筋膜枪在研发时就有一些见解和对芯片的研究之处,接下来鄙人会慢慢将其分享出来,以帮助各位在开发路上少踩坑。
研发类型的需求和讨论,如有需要请联系鄙人。京鸿科技有限公司邮箱:zhongweixiong@kyohoon.com,联系电话:15507589165 钟先生