列表

详情


阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
在服务型智能扫地机器人的系统设计中,李工设计的扫地机器人硬件系统接口如图2-1所示,其中STM32单片机负责进行各个传感器的数据采集,包括利用GPIO进行各种传感器数据的获取、利用ADC进行红外测距仪数据的获取、利用IIC进行陀螺仪(角度)传感器数据的获取,通过串口将数据发送给主处理器S5PV210,并利用脉冲计数进行扫地机器人运动速度、距离等信息的获取。主处理器S5PV210通过USB接口采集实时视频,利用PWM进行云台控制,同时利用USB接口通过WIFI和后台主机实现信息交互。

STM32单片机有BOOT1和BOOT0两个启动方式选择管脚,包括三种不同的启动方式,如表2-1所示。

李工在STM32单片机的启动电路设计时,采用跳线帽形式进行启动方式选择,对应电路如图2-2所示。

李工在利用ADC进行红外测距仪数据的采集设计中,采用STM32内置的12bit逐次比较型ADC,参考电压Vref为3.3V,ADC的采集数字输出为:

为获取扫地机器人在移动过程中的距离、速度等信息,李工将霍尔传感器模块分别安装在左右车轮驱动电机的轴上,通过两个计数器采集左右驱动电机轴上的霍尔传感器脉冲数,以此来计算获取扫地机器人的移动距离、旋转角度等信息。图2-3为扫地机器人的圆形机身和左右两轮的示意图。

已知左右车轮转动一圈时,霍尔传感器输出564个脉冲(表示为n0),那么计数器采集到的脉冲数和左右轮的移动距离关系可以表示为(R为车轮距中心半径,r为左右轮的半径,nx为当前计数器从开始到现在采集到的脉冲数):

【问题1】(2分)
如果STM32的选择从主Flash启动,那么图2-2中的跳线帽应该连接管脚1和管脚2还是管脚2和管脚3?
【问题2】(2分)
当红外测距仪数据模拟电压Vin为2.4V时,ADC的输出值是多少?(用十进制数表示)
【问题3】(3分)
假设扫地机器人的车轮距中心半径R=30cm,左右轮的半径r=5cm。当左轮PWM脉冲计数数目为2256时,左轮从脉冲计数开始到现在,移动的距离是多少厘米?(π取3.14)
【问题4】(8分)
李工在扫地机器人设计中加入了陀螺仪模块,通过陀螺仪可以获取不同时刻之间的偏转角,进而与霍尔传感器相融合,使得运动控制器能够直接快速得到系统当前的偏转角。陀螺仪和STM32之间通过IIC接口进行数据通信,陀螺仪和STM32之间还有一个信号线(STM32的GPIO9)和陀螺仪芯片复位线(STM32的GPIO8,低电平为复位,高电平为非复位)。
在STM32通过IIC接口获取陀螺仪数据前,需要先对陀螺仪复位并查询信号线的有效性(GPIO9高为有效,低为无效),有效时再通过IIC接口读取陀螺仪的数据。李工设计了通过IIC接口获取陀螺仪数据的流程图(图2-4),请选择合适的项进行补全。
图2-4中(1)~(4)备选答案:
A.GPIO9和GPIO8都设置为输入
B.GPIO9和GPIO8都设置为输出
C.GPIO9设置为输入,GPIO8设置为输出
D.GPIO9设置为输出,GPIO8设置为输入
E.GPIO9设置为高,持续一段时间,GPIO9设置为低
F.GPIO9设置为低,持续一段时间,GPIO9设置为高
G.GPIO8设置为低,持续一段时间,GPIO8设置为高
H.GPIO8设置为高,持续一段时间,GPIO8设置为低
I.GPIO9为高电平?
J.GPIO9为低电平?
K.GPIO8为高电平?
L.GPIO8为低电平?
M.通过IIC读取数据
N.通过IIC写入数据

参考答案:

【问题1】
管脚1和管脚2
【问题2】
2978
【问题3】
125.6厘米
【问题4】
(1)C
(2)G
(3)I
(4)M

详细解析:

此题考查嵌入式系统硬件设计的相关知识。
【问题1】如果STM32的选择从主Flash启动,从表2-1可以看出,BOOT0为0,BOOT1任意值,所以,图2-2中的跳线帽应该连接管脚1和管脚2。
【问题2】当红外测距仪数据模拟电压Vin为2.4V时,代入公式可以计算得到DC的输出值是2978。注意要转化为十进制。

【问题3】根据公式,r=5cm,no=564,nx=2256,将这些值代入公式就可以得到需要的距离数值。

【问题4】需要注意的是,流程已经在题干中说明了:
1.陀螺仪和STM32之间通过IIC接口进行数据通信,陀螺仪和STM32之间还有一个信号线(STM32的GPIO9)和陀螺仪芯片复位线(STM32的GPIO8,低电平为复位,高电平为非复位)。
2.在STM32通过IIC接口获取陀螺仪数据前,需要先对陀螺仪复位并查询信号线的有效性(GPIO9高为有效,低为无效),有效时再通过IIC接口读取陀螺仪的数据。

上一题