软件主要实现的功能:一是发出周期均为17 ms,脉冲宽度分别为470μs和240μs的脉冲信号,作为超声、红外传感器的驱动信号。使信号笔在工作时发出系统定位所需的超声、红外信号。二是通过判断单片机引脚4,即GP3口的电平变化情况,唤醒或使单片机进入睡眠模式。利用单片机的引脚电平变化中断模式,当该引脚为低电平时,单片机进入睡眠状态,此时的电流减小;当GP3口变为高电平时,就会将其从睡眠模式唤醒进入工作状态。这样做是为了在抬笔时单片机进入SLEEP模式,不发信号,而落笔书写时,发出超声、红外信号以便定位。而且这样可以节省电量,使电池工作的时间变长。
此时已经实现了信号笔的功能,但是出现的问题是信号笔在抬落笔时,有一段反应时间,即不能立即实现发送数据和停止发数的动作,导致落笔写字时会出现丢笔的现象,抬笔后有拖笔现象,影响正常的书写。这种现象应该是电平变化时不能立即置高或者置低的原因。在PIC12F508单片机的资料可以找到OPTION寄存器的各位定义,如表12-2所示。
表12-2 OPTION寄存器各位定义
其中,GPPU位是弱上拉使能位,作为数字输入,其输入电平应该非高即低,一般不能处于悬浮(高阻态)的第三状态。PIC芯片的弱上拉(弱下拉也可以)就杜绝了第三态的出现。而之所以要做成弱上拉,是上拉比下拉的抗干扰性要强。将该位使能后,丢笔和拖笔的现象得到解决。但是此时耗电量在SLEEP模式时耗电量变大,达到200 μA。使能弱上拉使静态时的电流变大,所以这种方法不可取。分析硬件上引起电平变换的引脚4的外接电路,如图12-24所示。将电容C8的值减小,使其充放电时间缩短就可以消除丢笔和拖笔的现象。将弱上拉功能屏蔽,这样,既做到省电又可以消除上述现象。此时工作电流为600μA,静态时电流值减小到20μA。信号笔正常使用时间是70小时,非工作状态时的耗电量减少了96%,满足了用户的需要。
图12-24 电平变化唤醒方式的外接电路图
信号笔可以正常书写,落笔书写的同时会发出红外、超声定位信号,信号笔功能基本实现。但是,在距离超声传感器较近(约2 cm)时,书写的轨迹不能正确地在显示器上显示。经分析,是由于传感器本身的特性及接收后超声信号放大倍数很大造成的。由于在接收传感器近端(约2 cm)处,接收到的超声信号很强。放大倍数过高导致将过强的噪声也放大为饱和信号,引起超声信号变形。近传感器处,红外信号对超声信号有干扰,如图12-25所示(正常的波形图如图12-26所示),所以在接近传感器的区域书写时出现了飞点(偏离正确轨迹距离很大的点),飞点情况如图12-27所示。
图12-25 近端出现了飞点的波形图
图12-26 正常的波形图
图12-27 书写中出现的飞点
为避免飞点产生,可采用以下方法解决该问题。信号笔的红外、超声信号不再同时发出,而是发出红外信号后,间隔60μs再发超声信号。这样在接收端接收到红外信号后,做了一个宽度为60μs的窗,使单片机在这段时间内不响应任何中断,且清除所有中断标志位,这样就能解决近端定位不准的问题。接收的时延信息再相应地减掉这段时间延时(60μs),即可以正确地定位出信号笔的轨迹。
软件工作流程图如图12-28所示。
图12-28 信号笔软件工作流程图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。