前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AIoT应用创新大赛-TencentOS Tiny AIoT开发板在智能轮椅中的应用

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

原创
作者头像
LinwCui
修改2022-03-22 15:17:58
1.3K1
修改2022-03-22 15:17:58
举报
文章被收录于专栏:AIoT应用创新大赛
视频内容

本文报告PDF版:

引言

首先非常荣幸能够参与这次比赛,也非常感谢大赛组织者的辛苦工作。

腾讯物联网操作系统(TencentOS tiny)是腾讯面向物联网领域开发的实时操作系统,具有低功耗,低资源占用,模块化,可裁剪等特性。TencentOS tiny提供了最精简的 RTOS 内核,内核组件可裁剪可配置,可灵活移植到多种终端 MCU上;基于RTOS内核提供了COAP/MQTT/TLS/DTLS等常用物联网协议栈及组件,方便用户快速接入腾讯云物联网通信IoT Hub;同时,为物联网终端厂家提供一站式软件解决方案,方便各种物联网设备快速接入腾讯云,可支撑智慧城市、智能穿戴、车联网等多种行业应用。本次比赛采用的AIoT开发板是腾讯 TencentOS 团队联合恩智浦半导体、厚德物联网设计了一款高性能 AIoT 评估板,可用于 TencentOS tiny 基础内核和 AIoT 应用功能体验和评估。

物联网以及万物互联是智慧城市、智能家居的基础和发展方向,借助物联网、智能硬件和腾讯云对传统轮椅进行改造,能够进一步提升轮椅的智能性和人机交互性能,当前使用的传统轮椅主要存在以下不足

(1)轮椅需求量大,轮椅作为老年人、残障人士的重要出行工具,医院的轮椅需求量也比较大,但使用时往往需要他人协助来保证安全,在感知、远程控制、人机交互方面存在不足;

(2)电动轮椅正在成为主流,智能化趋势显现,目前轮椅的研发多集中在中低端市场,对于高端电动轮椅存在研发能力不足、产品缺乏科技含量的问题;

(3)智能轮椅依靠其在感知、控制和人机交互方面的优势,不仅可供老年人、残障人士使用,还可作为新的交通方式供各年龄段人士的日常出行(智能代步车)。

智能轮椅具有庞大的市场,市场潜力巨大,因此本项目基于TencentOS tiny AIOT开发板研究了一款智能轮椅,在比赛中主要完成了以下内容

(1)在比赛过程中,本着体验和学习的态度,完成了摄像头、LCD显示屏、TencentOS tiny内核移植和腾讯云IoT Explorer对接功能的测试;

(2)结合目前实验室的智能轮椅项目,基于TencentOS tiny AIOT开发板、腾讯云平台和腾讯连连小程序研究了智能轮椅的远程控制和多模感知功能:

1、通过将开发板与腾讯云对接,实现了轮椅上云,并设计腾讯连连微信小程序;

2、智能轮椅控制:开发了轮椅脚踏板、靠背的升降控制和灯光控制;

3、智能轮椅多模感知:感知自身状态(姿态、定位、速度信息)的和外部环境(温度、湿度、灯光亮度);

进而,用户可以手机控制轮椅脚踏板、座椅靠背的升降,同时也可在小程序上查看轮椅的姿态、定位、速度信息和温湿度信息。

本项目的开发进一步提升了传统轮椅的交互性能、感知性能和远程控制能力,相信随着研究的深入,会拥有广阔的市场前景,推动轮椅智能化研究的进程。

1、项目背景

1.1 TencentOS tiny AIOT开发板开发板

本次大赛使用的开发板为TencentOS Tiny AIoT开发套件,这款开发板性能强大,可应用于物联网、人工智能等多种领域的开发,同时内置TencentOS Tiny开源物联网操作系统,例程等学习资料众多,对于初学者非常友好。

开发板主要有以下特性:

1、核心板采用的RT1062处理器属于i.MX RT 系列 MCU,是由 NXP 推出的跨界处理器,跨界是指该系列MCU的定位既非传统的微控制器、也非传统的微处理器,i.MX RT 系列 MCU 则综合了两者的优势,既具备高频率(最高主频600M)、高处理性能,也具备中断响应迅速、实时性高的特点。

2、1M RAM 16M SDRAM 64MB qspi flash 128MB spi flash

3、板载Type-C接口CMSIS DAP仿真器。

4、板载PCIE接口,可扩展4G类物联网模组。

5、板载物联网俱乐部WAN Interface接口,可支持NB-IoT、WiFi、4G cat1、LoRa等模组。

6、板载物联网俱乐部E53 Interface接口,可扩展全系E53传感器。

7、板载标准24P DVP摄像头接口,可支持最高500万像素摄像头。

8、板载RGB显示接口,可转换HDMI输出。

9、板载高性能音频解码芯片,可做语音识别测试。

10、预留SD卡、用户按键、SPI Flash。

图1.1 开发板实物图
图1.1 开发板实物图

1.2 智能轮椅介绍

近几年来,智慧城市、物联网技术发展迅速,相关的感知硬件也得以快速发展,通过应用摄像头、毫米波雷达、超声波雷达、激光雷达等智能硬件,设备也变得更加智能,人机交互性能得到了进一步的提高。

图1.2 智能传感器及其应用
图1.2 智能传感器及其应用

当前人口老龄化问题日益严重,在全球人口中残疾人患者约占15%,其中约有2.85 亿例视力受损或失明患者,轮椅成为了满足其日常出行的必要工具,但传统轮椅不具备智能控制、物体感知、自主导航等功能,人机交互性能也不足。相比传统轮椅,智能轮椅上安装了测距、雷达、摄像头等传感器,感知性能更强;同时借助云技术,可以通过手机主动调整轮椅的姿态、运动状态等功能,是轮椅的未来发展方向。

如下图为传统轮椅和智能轮椅:

图1.3 传统轮椅和智能轮椅
图1.3 传统轮椅和智能轮椅

在参与比赛的过程中,基于实验室目前的轮椅项目进行了作品的开发。传统轮椅的脚踏板、靠背无法移动,存在使用不便的缺点,因此借助腾讯云、腾讯连连小程序和AIOT开发板完成了脚踏板、靠背的远程控制功能以及轮椅对自身状态和环境的感知功能。

2、项目设计

2.1 项目架构设计

项目开展了轮椅远程控制轮椅多模感知轮椅上云微信/APP小程序设计四个方面的研究,以实现以下功能:

1、通过将开发板与腾讯云对接,实现了轮椅上云,并设计腾讯连连微信/APP小程序;

2、智能轮椅控制:开发了轮椅脚踏板、靠背的升降控制和灯光控制;

3、智能轮椅多模感知:自身状态(姿态、定位、速度)的和外部环境(温度、湿度、灯光亮度);

为实现上述功能,项目设计了如图2.1所示的架构,主要包括以下几部分:

(1)远程端:包括腾讯云平台和腾讯连连微信小程序,在小程序上可以控制轮椅脚踏板、靠背的升降和灯光的开关,还可查看轮椅的姿态角、定位、速度信息,以及温度、湿度和光照强度信息;

(2)主控层,采用AIOT开发套件,用于向LED灯珠和2个电机驱动板发送控制指令、获取传感器采集的感知数据,另外板载了WIFI模块,用于对接腾讯云;

(3)收发层,搭建传感器与主控制板的通信链路;

(4)感知层,采集姿态角、定位、速度、温度、湿度和光照强度数据;

(5)驱动层:包括电机驱动模块和LED灯珠,用于驱动脚踏板和靠背上的四个电动推杆、控制LED灯珠的亮灭;

另外,系统还配备了电源模块,产生24V电源,为系统供电。

图2.1 智能轮椅架构
图2.1 智能轮椅架构

AIOT开发板上板载了E53接口,包括IIC、SPI、串口以及普通IO口等,可以外接自己的传感器,在使用时利用恩智浦的MCUXpresso IDE生成对应的驱动程序即可进行开发。轮椅的控制和感知采用了E53接口,结构如图2.2所示,其中E53引出的GPIO1-4用于控制驱动板和LED灯珠;E53的串口外接了数据采集板,数据采集板获取到姿态角、定位、速度和温湿度信息后通过串口发送到AIOT开发板;E53的IIC接口用于采集BH1750光照传感器的亮度信息。

图2.1 E53接口
图2.1 E53接口

2.2 轮椅实物及电路模块

如下图为轮椅实物图,分别为轮椅的侧视图、俯视图、AIOT开发板及外围电路、传感器模组和轮椅正视图。

图2.3 轮椅实物图
图2.3 轮椅实物图

2.3 作品创新点

本作品的研究主要有以下创新点

(1)本项目结合TencentOS tinyAIOT开发板、腾讯云平台和腾讯连连小程序,创新研究了轮椅的远程控制、多模感知和人机交互技术,实现了物联网轮椅的设计,是对传统轮椅的智能化提升;

(2)现有轮椅的脚踏板和靠背控制多采用遥控器,需要随身携带,通过本作品,仅需一个手机即可完成控制和轮椅状态监控工作。

2.4 作品商业价值分析

(1)研发角度:

从传统轮椅企业发展的情况来看,当前轮椅的研究多数聚焦于中低端轮椅市场,在高端电动轮椅、运动轮椅以及智能轮椅上的研发能力不足,产品缺乏科技含量

另外本项目来源于国家重点研发计划项目,相关研究是对中高端轮椅市场的补充,有助于推动智能轮椅的发展。

(2)老年人、残障使用者角度:

轮椅可作为老年人、残障人士日常生活的重要工具,但轮椅市场的需求还远远未得到满足。根据国家辅具研究中心的数据显示,我国轮椅的实际适配比例仅为10%左右。

另外,老人的需求也在加快升级,传统轮椅在功能和设计上也存在许多痛点,难以跟上用户日渐升级的需求,伴随着新一代智能代步车的出现,传统轮椅将迎来一场巨大的变局。轮椅市场面临重塑,技术的升级则打开了轮椅的想象空间。

图2.4 轮椅需求量(资料来源:中国老龄协会IBISWord前瞻产业研究院)
图2.4 轮椅需求量(资料来源:中国老龄协会IBISWord前瞻产业研究院)

(3)医院轮椅需求大:

医院对智能轮椅的需求,随着人口老龄化程度的加深以及我国康复医学的发展,结合中国医疗卫生机构康复医学科门急诊人次10.2%的复合增长速度,预计医院对轮椅的需求也将保持10%的复合增长速度。预计到2026年,我国医院对轮椅的需求量将达到136.4万辆左右。

图2.4 医院轮椅需求量(资料来源:中国老龄协会IBISWord前瞻产业研究院)
图2.4 医院轮椅需求量(资料来源:中国老龄协会IBISWord前瞻产业研究院)

3、智能轮椅控制

3.1 控制方案设计

轮椅控制部分包括轮椅脚踏板、靠背和LED的控制,采用AIOT开发板的E53接口引出的GPIO1-GPIO4发出控制信号,结构如图3.1所示,具体包括以下:

(1)开发板的GPIO2输出高、低电平控制LED灯珠的亮灭;

(2)开发板的GPIO1和GPIO3连接到电机驱动板1,驱动脚踏板部分的两个电动推杆,以实现脚踏板的升降;

(3)开发板的GPIO2和GPIO4连接到电机驱动板2,驱动靠背部分的两个电动推杆,以实现靠背的升降;

(4)开发板上云,接收来自手机小程序的控制指令。

图3.1 轮椅控制结构
图3.1 轮椅控制结构

3.2 轮椅靠背、脚踏板控制

3.2.1 硬件部分

为了控制轮椅脚踏板和靠背的升起和降落,在轮椅的两个脚踏板和靠背处放置了4个电动推杆,如下图所示,电动推杆采用了直流有刷电机,提供0-24V电压即可控制推杆的升起和降落。

如图3.2为电动推杆和安装图。

图3.2 靠背和脚踏板上的电动推杆
图3.2 靠背和脚踏板上的电动推杆

项目采用了如下图所示的单路电机驱动板,对驱动板的IN1和IN2提供提供控制信号可以控制电机正转、反转和刹车,对PWM口输入不同占空比的方波可以控制电机的转速。另外,在项目开发时,为保证脚踏板和靠背控制的同步性,靠背和两个脚踏板的电动推杆均连接到同一个电机驱动板。

图3.3 电机驱动板接线图和控制信号
图3.3 电机驱动板接线图和控制信号

电机驱动板需要提供9-36V的电压来驱动电动推杆,因此采用了24V开关电源,如下图所示,可输出24V 4.5A的电压。

图3.6 系统电源模块
图3.6 系统电源模块

3.2.2 软件设计

为了控制推杆电机和靠背电机,采用了AIOT开发板板载E53模块的GPIO1-4实现电机方向的控制,方向控制如下表所示:

表3-1 电平控制信号
表3-1 电平控制信号

IO初始化程序如下:

代码语言:javascript
复制
/* 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

开发板接收到微信小程序的控制指令后IO口的输出程序:

代码语言:javascript
复制
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);
     }
}

3.3 轮椅灯光控制

轮椅灯光的控制采用图3.7的LED灯珠,在使用时设置IO口为输出模式,然后控制IO口电平的高低即可控制其亮灭。

图3.7 LED灯珠
图3.7 LED灯珠

4、智能轮椅多模感知

4.1 多模感知方案-自身感知与环境感知

项目基于AIOT开发板研究了智能轮椅的多模感知,包括对自身自身状态的感知和对环境的感知,并通过手机小程序进行查看。结构图如图4.1所示,包括以下几部分:

(1)自身感知:

1、定位信息感知:采用ATK S1216F8 BD GPS/北斗模块,采集轮椅的定位信息(经、纬度)和移动速度;

2、姿态信息感知:采用ATK-MPU6050六轴传感器,采集轮椅的姿态角(俯仰角pitch,偏航角yaw和翻滚角roll);

(2)外部环境感知:

1、温度、湿度感知:采用DHT11传感器,输出轮椅所在环境的温湿度;

2、光照强度感知:采用BH1750传感器,输出轮椅所在环境的光强;

(3)开发板上云,在小程序上查看感知上报数据。

图4.1 多模感知结构图
图4.1 多模感知结构图

4.2 数据采集板介绍与通信协议设计

为了简便系统设计,在开发的时候采用了数据采集板(Cortex-M3),在采集完MPU6050、GPS和DHT11传感器的数据后,采集板通过串口2发送数据,AIOT开发板通过E53模块的串口5接收数据并处理。

数据协议如下图所示:

图4.2一帧感知数据的结构
图4.2一帧感知数据的结构

数据采集板端按照上述协议封装数据的函数如下:

代码语言:javascript
复制
//串口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 
}

AIOT开发板利用串口5接收数据,数据存储在rx_buff数组中:

代码语言:javascript
复制
void LPUART5_IRQHandler(void){
 /* If new data arrived. */
 int i=0;
 if ((kLPUART_RxDataRegFullFlag)&LPUART_GetStatusFlags(LPUART5)){
 data = LPUART_ReadByte(LPUART5);
 if(len<19){
  rx_buff[len++]=data;
  if(rx_buff[0]!=0x88)
  len=0;
 }
 else if(len>=19)
  len=0;
 }
 SDK_ISR_EXIT_BARRIER;
}

4.3 自身状态感知

轮椅自身状态的感知包括姿态角信息、定位信息和速度信息,接下来对各个模块的开发过程进行介绍。

4.3.1 姿态信息感知

在轮椅移动过程中,采用正点原子的ATK-MPU6050六轴传感器模块采集轮椅的实时姿态角信息,传感器如下图所示:

图4.3 ATK-MPU6050六轴传感器模块实物图
图4.3 ATK-MPU6050六轴传感器模块实物图

ATK-MPU6050 模块具有体积小、自带 DMP、自带温度传感器、支持IIC从机地址设置和中断、兼容3.3V/5V系统、使用方便等特点,基本特性如下图所示。模块仅通过一个IIC接口与外部通信,并可以通过MPU_AD0设置模块的IIC地址,当MPU_AD0悬空接GND的时候,模块的IIC从机地址为:0X68;当MPU_AD0接VCC的时候,模块的IIC从机地址为:0X69。

图4.4 ATK-MPU6050六轴传感器特性
图4.4 ATK-MPU6050六轴传感器特性

获取姿态角的程序如下:

代码语言:javascript
复制
//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;
}

4.3.2 定位信息、速度信息感知

项目采用正点原子的ATK-S1216F8 BD GPS北斗模块采集轮椅的经纬度定位信息和移动速度,模块如下图所示:

图4.5 ATK-S1216F8 BD GPS北斗模块和有源天线
图4.5 ATK-S1216F8 BD GPS北斗模块和有源天线

模块特性如下图所示,该模块能够通过串口输出NMEA 0183协议的定位数据,包括经度、纬度、UTC时间、速度、可见GPS/北斗卫星数量等信息。

图4.6 模块特性
图4.6 模块特性

数据采集板通过串口4接收到传感器数据后,将数据存放在USART1_TX_BUF数组中,然后利用GPS_Analysis(&gpsx,(u8*)USART1_TX_BUF)函数分析字符串,并将模块提供的信息存储到gpsx数据结构中,在使用时读取该结构的数据即可。

4.4 外部环境感知

轮椅在移动过程中,还需要对外部环境进行感知,项目结合温湿度传感器和光照传感器开发了轮椅的外部感知功能。

4.4.1 温度、湿度感知

温度、湿度数据采集采用DHT11传感器,该传感器采用单总线数据格式发送数据,数据格式为8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和,

图4.7 DHT11温湿度传感器及数据传输
图4.7 DHT11温湿度传感器及数据传输

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据。从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集。采集数据后转换到低速模式。

数据结构定义如下:

代码语言:javascript
复制
typedef struct _DHT11
{
	char Tem_H;		//温度整数部分
	char Tem_L;		//温度小数部分
	char Hum_H;		//湿度整数部分
	char Hum_L;		//湿度小数部分
}DHT11_TypeDef;
int DHT11_GetTem(void)//获取温度
{
	return (DHT11.Tem_H << 8 | DHT11.Tem_L);
}
int DHT11_GetHum(void)//获取湿度
{
	return (DHT11.Hum_H << 8 | DHT11.Hum_L);
}

4.4.2 光照强度感知

轮椅外部环境的光照强度感知采用AIOT开发板板载的BH1750传感器,该传感器是一种用于两线式串行总线接口的数字型光强度传感器,具有接近视觉灵敏度的光谱灵敏度特性,利用它的高分辨率可以探测较大范围的光强度变化。传感器内置16bit AD转换器,可对亮度进行1勒克斯的高精度测定。

图4.8 BH1750传感器
图4.8 BH1750传感器

读取传感器数据的程序如下:

代码语言:javascript
复制
static int bh1750_read_dat(uint8_t* dat)
{
    status_t reVal = kStatus_Fail;
    if (kStatus_Success != LPI2C_MasterStart(BH1750_I2C_MASTER, BH1750_DEVICE_ADDR_7BIT, kLPI2C_Read)) {
        return -1;
    }
    reVal = LPI2C_MasterReceive(BH1750_I2C_MASTER, dat, 2);
    if (reVal != kStatus_Success)
    {
        if (reVal == kStatus_LPI2C_Nak)
        {
            LPI2C_MasterStop(BH1750_I2C_MASTER);
        }
        return -1;
    }
    reVal = LPI2C_MasterStop(BH1750_I2C_MASTER);
    if (reVal != kStatus_Success)
    {
        return -1;
    }
    return 0;
}

5、轮椅数据上云与腾讯连连小程序

5.1 轮椅上云方案

腾讯云物联网开发平台为设备上云提供了一站式服务,开发者根据自己的开发需求在平台上设计设备模型,从而轻松实现设备数据上云、读取云下发的数据。为了实现设备与物联网开发平台的交互,采用了板载的ESP8266 WIFI模块,该模块是由乐鑫公司出品的一款物联网芯片,因为价格较低,性能稳定等收到很大关注,可工作于三种种模式下,分别是:AP模式,station模式以及混合模式,通过常用的AT指令进行控制。

如图5.1为WIFI模块以及上云流程。

图5.1 ESP8266 WIFI模块及上云方案
图5.1 ESP8266 WIFI模块及上云方案

5.2 物联网开发平台及微信/APP小程序设计

为了实现轮椅与小程序的交互,项目基于腾讯云物联网开发平台和腾讯连连设计了可在微信和腾讯连连APP上使用的小程序。物联网开发平台网址为https://console.cloud.tencent.com/iotexplorer,参考https://github.com/OpenAtomFoundation/TencentOS-tiny/blob/master/doc/30.TencentOS_Tiny_EVB_ AIoT_QuickStart.md

本项目的小程序开发采用下述流程:

(1)物模型设计,包括:

控制部分:轮椅脚踏板的升、降,靠背的升、降,灯珠的亮、灭;

感知部分:亮度、温度、湿度、经度、纬度、速度、俯仰角、翻滚角和偏航角;

另外,还包括计数器功能,从而用户在小程序中按下对应的按钮,即可发布带有对应标识符的控制信息、订阅数据。

图5.2 物模型设计
图5.2 物模型设计

(2)交互开发,设计小程序界面

可以直接使用模板,也可以进行H5开发设计小程序界面,基于模板调整了元素的布局,保证了美观和可读性。

图5.3 交互开发
图5.3 交互开发

(3)设备调试,点击设备名称(dev01)可以进入设备界面,可以看到设备名称、设备密钥和产品ID,进而利用python脚本mqtt_config_gen.py,一次输入产品ID、设备名称、设备密钥,就可以生成对用的mqtt信息。

图5.4 设备调试
图5.4 设备调试

(4)完成后使用腾讯连连小程序扫描设备二维码可以在微信小程序上看到图5.5左图的界面,另外如果使用腾讯连连APP可以看到图5.5右图的画面。

图5.5 微信/APP小程序
图5.5 微信/APP小程序

6、基于TencentOS tiny MDK软件包的移植功能

在移植TencentOS tiny到keil工程时,需要从github下载TencentOS tiny,然后逐个文件夹进行复制,并在工程中添加头文件和源文件,操作相对来说比较繁琐,作者在21年暑假制作了TencentOS tiny的MDK软件包,能够以安装的方式将TencentOS tiny移植到Keil上,比较方便,相关内容在链接https://cloud.tencent.com/developer/article/1934891(AIoT应用创新大赛-使用MDK软件包移植TencentOS tiny)

7、项目测试

在完成设计后,进行了实验,如下为成果视频:

智能轮椅 - 云+社区 - 腾讯云 (tencent.com)

下图为调试过程中串口助手的界面,可以看到上报、下发数据,以及数据采集板采集的数据:

图7.1 串口助手界面
图7.1 串口助手界面

在腾讯云物联网平台上可以看到设备详细的上行、下行信息:

图7.2 腾讯云物联网平台
图7.2 腾讯云物联网平台

在小程序上也能看到设备持续上报的信息,发送指令等:

图7.3 APP界面
图7.3 APP界面

8、总结、展望

通过这次比赛,我学习了TencentOS tiny物联网操作系统搭配物联网开发板的使用,包括任务的配置、调度等,同时也是在参加完飞思卡尔智能车竞赛后又一次使用恩智浦的芯片进行项目开发,对于我来说收获是巨大的,这包括项目开发能力、学习能力、表达能力等。

在这次比赛中,我结合实验室正在做的项目,设计了系统功能架构,在学习了腾讯连连小程序设计、设备上云和AIOT开发板使用后,我完成了智能轮椅的远程控制和多模感知功能,轮椅的使用者可以在手机上轻松控制轮椅的脚踏板、靠背和灯光,还可以看到轮椅自身的定位、速度、姿态信息,以及外部的温度、湿度和光照强度。

相信结合物联网进行轮椅的开发,会使轮椅的控制便捷性、可视化水平和人机交互能力得到进一步的提升,在接下来,还可以结合激光雷达、摄像头等模块提高轮椅的智能性,方便轮椅使用者的监护人进一步掌握轮椅的安全状态、下发紧急控制指令等。

附件:PPT照片

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 1、项目背景
    • 1.1 TencentOS tiny AIOT开发板开发板
      • 1.2 智能轮椅介绍
      • 2、项目设计
        • 2.1 项目架构设计
          • 2.2 轮椅实物及电路模块
            • 2.3 作品创新点
              • 2.4 作品商业价值分析
              • 3、智能轮椅控制
                • 3.1 控制方案设计
                  • 3.2 轮椅靠背、脚踏板控制
                    • 3.2.1 硬件部分
                    • 3.2.2 软件设计
                  • 3.3 轮椅灯光控制
                  • 4、智能轮椅多模感知
                    • 4.1 多模感知方案-自身感知与环境感知
                      • 4.2 数据采集板介绍与通信协议设计
                        • 4.3 自身状态感知
                          • 4.3.1 姿态信息感知
                          • 4.3.2 定位信息、速度信息感知
                        • 4.4 外部环境感知
                          • 4.4.1 温度、湿度感知
                          • 4.4.2 光照强度感知
                      • 5、轮椅数据上云与腾讯连连小程序
                        • 5.1 轮椅上云方案
                          • 5.2 物联网开发平台及微信/APP小程序设计
                          • 6、基于TencentOS tiny MDK软件包的移植功能
                          • 7、项目测试
                          • 8、总结、展望
                          • 附件:PPT照片
                          相关产品与服务
                          云开发 CloudBase
                          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档