4,程序原理设计:
①液晶驱动设计
液晶采用的是2.4吋的TFT26万色彩屏,带触摸面板,驱动IC是ili9328。这次液晶采用的是i80-system模式的16位并口连接,以前做过用SPI口驱动的,发现速度不够快,所以这次改用并口试试,发现速度确实要比用SPI接口的方式快很多。为了显示汉字,我为它自己设计了一套汉字搜索方法,方便快速,添加新汉字以及显示函数的调用都很方便。哈哈。
src="file:///C:/Users/DRJ/AppData/Local/Temp/msohtmlclip1/02/clip_image001.gif" width=48 height=51>
16根数据线,可同时传输两个字节了,然后是四个控制线(cs,rs,wr,rd),然后复位线、电源、GND,然后四个液晶背光控制,然后四根触摸控制线。
液晶接口驱动的时候,要特别注意对驱动IC中的一些寄存器的配置,否则是很难点亮液晶屏的。然后我认为你要注意时序图和控制信号的逻辑。
i80-system接口的时序图。
四根控制线所产生的操作效果。
②计步器研究
当你在运动的时候,我们知道ADXL345加速度计可以得出xyz三个方向上的加速度值,那么是不是可以认为当我们行走的时候,无论计步器你怎么放,总有一个方向上的加速度变化是最明显的吧,我们就可以把那个轴上统计得到的加速度值作为自己计算的基础,这样就可以实现全方向的计步了,而不必特意规定加速度计的摆放姿势。
然后,ADXL345有一个32个数据保存功能的FIFO缓存,这样可以大大减少用CPU访问加速度计的次数,假设一下,人行走的或者跑步,步频大约在0.5步/s~5步/s,如果我每步采样20个数据值,每个数据值由4个滤波值滤波得到,那么为了保证步数不丢失,我一秒钟至少要统计5*4*20=400个数据,也就是说ADXL345的输出至少要在400HZ,那么如果我每2.5ms就去访问一下加速度计显然不实惠啊,所以有了这个FIFO的缓冲真的是很方便。大大降低了CPU的访问次数。
你想想看,如果我知道了使用者的身高体重,那么我能得出什么?人的步长是和身高以及速度有关的,而卡路里消耗是和体重以及速度有关的。你跑的越快,你步长也越长,你消耗的也越多。这样我通过统计步数,也能估算出你走路的距离和你消耗的卡路里了。很有趣啊。
③电子指南针研究
我们知道地磁场,南北方向上是最强烈的,当我们把徒步者水平摆放的时候,它在水平XY方向上测量得到的磁场强度,其实就是地磁场的水平分量啊。。。。那么我们把XY方向上的值正交一下,地磁北的方向不就知道了吗。。。SO EASY。。。
④气压传感器研究
气压传感器我们使用的铭动的MD-PS002,它在150KPa范围内的输出范围是60~100mV,我们就是需要取这个范围的电压信号进行放大,然后再V-F转换成数字信号传给CPU即可。AD8236的仪表放大器的增益范围在5~200,我给它设定50倍的放大,那么放大后的信号在3V~5V之间,用AD7740进行伏频转换,我给它的参考电压为5V,那么0~5V的电压范围,它的转换输出在10%~90%的最大输出频率。这样我用CPU就可以知道气压传感器的输出压强了。但是要说明的是,由于我设计上的失误,这块初版上的电源无法输出5V电压,所以气压传感器就无法驱动了。遗憾啊。。。。。
⑤温度计研究
温度计的设计是最容易的了,温度传感器使用的是ADI公司的带I2C接口的ADT7410,虽然容易,但是这块片子是16位,±0.5℃的精度,可谓精度颇高啊。。。它有一个每秒采样一次的省电模式,对我的设计很有用! |