AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

2024-11-24 0 971

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

智能轮椅项目汇聚了众多先进技术,其目的是为了解决传统轮椅使用上的不便问题。以往,传统轮椅的脚踏板和靠背固定不动,而现代科技的融入,无疑将带来一场革命性的变化。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

项目概述

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

智能轮椅项目旨在提升轮椅的使用性能。目前,在众多场所,包括医院、康复中心和老年社区,传统轮椅的使用范围受到限制。随着现代科技的进步,智能轮椅的研发显得尤为重要。在这个项目中,不同技术的协同合作至关重要。开发团队面临着重大的挑战,他们需要将tinyAIOT开发板、腾讯云平台以及腾讯连连小程序无缝结合。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

智能轮椅项目涵盖众多基础研究,这些研究既包括硬件又涉及软件。比如,AIOT开发板的恰当运用、腾讯云平台的高效连接以及小程序功能的精心设计,这些因素都将直接影响到智能轮椅的整体性能。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

主控层的重要性

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

在主控层,AIOT开发套件的作用不容小觑。在实验室里,它负责向LED灯珠和两个电机驱动板发送控制命令,并从传感器那里收集感知信息。这个过程表面上看很简单,但实际操作中却需要多种技术的结合与整合。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

这款开发板配备的WIFI模块,是专为连接腾讯云设计的。这种连接并非单纯的互联互通,它类似于AIOT开发板内置的E53接口,支持多种接口类型,包括IIC、SPI、串口以及常规的IO口等,使得连接外部传感器更加方便灵活。借助恩智浦的IDE工具,我们才能生成相应的驱动程序,以便进行后续的开发工作。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

多模感知的实现

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

这个项目的一大特色是多模感知技术。它不仅能感知轮椅自身的状态,还能对周围环境进行监测,极大地方便了使用者。以数据采集为例,E53配备的串口外接数据采集板,能够收集姿态角、定位、速度以及温湿度等多方面信息。这些信息的有效传递,对于AIOT开发板的运行至关重要。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

轮椅的状态信息,包括姿态角、定位和速度等,必须被精确地收集。特别是,在轮椅移动时,必须实时获取姿态角信息。这时,正点原子的ATK六轴传感器模块就派上了用场。该模块能精确地捕捉轮椅姿态角的变化。

/* GPIO configuration on GPIO_B1_15 (pin B14) */
 gpio_pin_config_t gpio2_pinB14_config = {
 .direction = kGPIO_DigitalOutput,
 .outputLogic = 0U,
 .interruptMode = kGPIO_NoIntmode
 };
 /* Initialize GPIO functionality on GPIO_B1_15 (pin B14) */
 GPIO_PinInit(GPIO2, 31U, &gpio2_pinB14_config);//GPIO2
 GPIO_PinInit(GPIO2, 30U, &gpio2_pinB14_config);//GPIO3
 GPIO_PinInit(GPIO3, 17U, &gpio2_pinB14_config);//GPIO1
 GPIO_PinInit(GPIO3, 4U, &gpio2_pinB14_config);//GPIO4
 IOMUXC_SetPinMux(IOMUXC_GPIO_B1_15_GPIO2_IO31, 0U);//GPIO2
 IOMUXC_SetPinMux(IOMUXC_GPIO_B1_14_GPIO2_IO30, 0U);//GPIO3
 IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B0_05_GPIO3_IO17, 0U);//GPIO1
IOMUXC_SetPinMux(IOMUXC_GPIO_SD_B0_05_GPIO3_IO4, 0U);//GPIO1

if(cjson_switch != NULL){ //靠背降下
     power_switch = cjson_switch->valueint;
     if (power_switch == 0) {
     GPIO_PinWrite(GPIO2, 31, 0);
     } else if (power_switch == 1) {
     GPIO_PinWrite(GPIO2, 31, 1);
     }
 }
else if(cjson_switch_jiao != NULL){ //脚踏板升起
     tuigan_jiao_switch = cjson_switch_jiao->valueint;
      if (tuigan_jiao_switch == 0) {
     GPIO_PinWrite(GPIO2, 30, 0);
     } else if (tuigan_jiao_switch == 1) {
     GPIO_PinWrite(GPIO2, 30, 1);
     }
}
else if(cjson_switch_jiao_down != NULL){ //脚踏板降下
     tuigan_jiao_down_switch = cjson_switch_jiao_down->valueint;
     if (tuigan_jiao_down_switch == 0) {
     GPIO_PinWrite(GPIO3, 17, 0);
     } else if (tuigan_jiao_down_switch == 1) {
     GPIO_PinWrite(GPIO3, 17, 1);
     }
}
else if(cjson_switch_bei != NULL){ //靠背升起
     tuigan_bei_switch = cjson_switch_bei->valueint;
     if (tuigan_bei_switch == 0) {
     GPIO_PinWrite(GPIO3, 4, 0);
     } else if (tuigan_bei_switch == 1) {
     GPIO_PinWrite(GPIO3, 4, 1);
     }
}

设备上云与腾讯云平台

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

腾讯云物联网开发平台为智能轮椅项目设备上云提供了巨大帮助。在试验阶段,开发人员依据项目需求,在平台上设计了设备模型,使得设备数据上传至云端以及云数据的读取变得十分便捷。同时,传输数据的安全性和效率也是必须考虑的重点。

设备与物联网开发平台的连接主要依赖板载的WIFI模块。乐鑫公司生产的这款物联网芯片因其价格低廉、性能稳定而广受欢迎。它具备多种工作模式,例如AP模式,且可通过常用的AT指令进行控制,从而满足各种使用场景的需求。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

电机控制的设计

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

电机控制环节同样至关重要。在本项目里,推杆电机与靠背电机的控制重任,落在了AIOT开发板的E53模块GPIO1至GPIO4上。这些端口负责电机方向的调节。控制逻辑用表格清晰列出。这种精确的控制手段,是确保轮椅各部件正常工作的关键所在。

//串口2发送1个字符 //c:要发送的字符
void usart2_send_char(u8 c)
{  
 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)==RESET); //循环发送,直到发送完毕 
 USART_SendData(USART2,c); 
} 
//fun:功能字. 0XA0~0XAF//data:数据缓存区//len:data区有效数据个数
void usart2_niming_report(u8 fun,u8*data,u8 len)
{
 u8 send_buf[64];
 u8 i;
 send_buf[len+3]=0; //校验数置零
 send_buf[0]=0X88; //帧头
 send_buf[1]=fun; //功能字
 send_buf[2]=len; //数据长度
 for(i=0;i<len;i++)send_buf[3+i]=data[i]; //复制数据
 for(i=0;i<len+3;i++)send_buf[len+3]+=send_buf[i]; //计算校验和 
 for(i=0;i<len+4;i++)usart2_send_char(send_buf[i]); //发送数据到串口1 
}

智能轮椅的性能优劣与电机的控制紧密相关。比如,在路况多变或使用者需求各异时,电机需迅速且精准地响应,以确保轮椅的安全与舒适。

void LPUART5_IRQHandler(void){
 /* If new data arrived. */
 int i=0;
 if ((kLPUART_RxDataRegFullFlag)&LPUART_GetStatusFlags(LPUART5)){
 data = LPUART_ReadByte(LPUART5);
 if(len=19)
  len=0;
 }
 SDK_ISR_EXIT_BARRIER;
}

项目收获与意义

参加这个项目,参与者能获得不少收获。若有人曾参加过飞思卡尔智能车竞赛,会发现它与本项目有不少相似之处,二者都采用恩智浦的芯片进行项目开发。在这个过程中,技术能力得到了提升。更重要的是,这种项目开发对个人能力的提升是全面的,涵盖了项目管理、团队协作以及学习新知识等多个方面。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

当前社会,此类项目具有深远影响。老龄化趋势日益明显,对残障人士的关怀需求也在不断上升。智能轮椅技术的进步,将显著提升众多人的生活品质。

//pitch:俯仰角 精度:0.1°   范围:-90.0°  +90.0°
//roll:横滚角  精度:0.1°   范围:-180.0° +180.0°
//yaw:航向角   精度:0.1°   范围:-180.0° +180.0°
u8 mpu_dmp_get_data(float *pitch,float *roll,float *yaw)
{
	float q0=1.0f,q1=0.0f,q2=0.0f,q3=0.0f;
	unsigned long sensor_timestamp;
	short gyro[3], accel[3], sensors;
	unsigned char more;
	long quat[4]; 
	if(dmp_read_fifo(gyro, accel, quat, &sensor_timestamp, &sensors,&more))return 1;	 
	if(sensors&INV_WXYZ_QUAT) 
	{
		q0 = quat[0] / q30;	//q30格式转换为浮点数
		q1 = quat[1] / q30;
		q2 = quat[2] / q30;
		q3 = quat[3] / q30; 
		//计算得到俯仰角/横滚角/航向角
		*pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;	// pitch
		*roll  = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3;	// roll
		*yaw   = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;	//yaw
	}else return 2;
	return 0;
}

智能轮椅项目融合了多种技术,进行着深入探索与研究。这样的项目为未来的康复辅助设备提供了宝贵的参考样本。有人或许会问,若在技术尚未完全成熟、大规模应用之前出现了一些问题,大家认为应该如何进行改进才更为妥当?期待大家的点赞与分享,听听您的宝贵意见。

AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

七爪网 行业资讯 AIoT应用创新大赛:TencentOS Tiny AIoT开发板于智能轮椅中的应用 https://www.7claw.com/2797285.html

七爪网源码交易平台

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务