董 辉,田 叮,彭宣聪,唐旺山,吴 祥
(浙江工业大学 信息工程学院,浙江 杭州 310023)
物联网技术的迅猛发展,正在引导一场深刻的信息技术革命[1-2]。近年来,Wi-Fi技术的不断发展与进步,以其传输可靠性强、速率高、传输距离远和组网灵活等优点[3],使其在物联网中大量应用。新的嵌入式智能产品会改变传统产品的一些缺点,极大地方便人们的生活。便携式智能笔主要通过笔尖的摄像头对报纸、书刊、杂志等文档里的文字进行提取、摘抄存储或翻译,一般体型较小、方便携带,便于移动办公。目前,脱机智能笔具有成本高、外观普通、功耗大、功能有限及交互能力差等缺点。笔者深入研究了Wi-Fi无线通讯技术,对便携智能笔控制系统的软硬件进行了协同设计,实现了便携智能笔的低成本要求。
基于Wi-Fi技术的便携智能笔控制系统总体方案如图1所示,整个系统主要由控制器模块、数据采集模块、显示模块、远程通信模块和电源模块组成。
图1 便携智能笔控制系统总体方案Fig.1 General scheme of portable intelligent pen control system
控制器模块采用STM32F103RCT6,该芯片是一款基于Cortex-M3 ARM内核的32位微处理器。微控制器集成了许多模块,包括存储器、通讯单元和JATG等丰富的硬件资源,处理器本身具有丰富的外设模块,使系统变得更加可靠稳定[4]。远程通信模块采用ESP-12S串口Wi-Fi模块。数据采集模块采用由OmniVision公司生产的OV7725图像感光元件组成的高清迷你摄像头和Risym轻触开关,显示模块采用0.91 in的OLED显示屏幕和LED显示灯。
控制系统实现的整体功能主要有:设备通过Wi-Fi连接路由器或手机热点上网,实现设备与服务器之间的远程通讯;设备通过高清迷你摄像头进行图像数据采集,通过Wi-Fi网络按照http post方式传送图像的压缩数据到服务器端;设备通过OLED显示屏幕显示文字或字符,如果文字或字符数据一个屏幕显示不完全,则屏幕进行滚动显示,OLED显示屏幕的数据来自远端的服务器;设备通过长按开关键实现系统的开机和关机;设备在正常的状态下指示灯每隔5 s闪烁一次,如果出现异常情况,指示灯常亮;设备对锂电池的电压进行实时监测,如果电池出现低压情况,通过显示屏幕进行提醒和显示;设备能够进行远程Wi-Fi参数配置,通过服务器与设备之间建立的连接,实现Wi-Fi的参数动态配置。
基于Wi-Fi的便携智能笔控制系统硬件结构如图2所示。控制系统采用STM32F103RCT6微控制器,主要的模块有:电源模块、OLED屏幕显示模块、锂电池电压采集模块、摄像头模块、按键模块、Wi-Fi模块和LED灯指示模块。
图2 系统硬件结构Fig.2 System hardware structure
ESP-12S是一款专为移动设备和物联网应用设计的具有超低功耗的UART-Wi-Fi芯片,该模块为用户提供了高度集成的Wi-Fi SOC解决方案,可以作为从机搭载于其他主机MCU运行[5]。系统采用STM32F103RCT6为主控制器,ESP-12S模块为从机使用,将Wi-Fi模块中的RXD和TXD引脚分别与主控芯片USART3的TXD和RXD连接,实现主控芯片与模块之间的数据通信。
系统的数据主要通过摄像头传感器进行采集,摄像头分黑白和彩色两种,系统采用CMOS摄像头,只需提供文字图像的灰度信息,而不必提取其彩色信息。
由于系统对传感器有体积限制,对图像分辨率要求不是高,但是对帧率要求高,因此采用了低分辨率,高帧率的摄像头。OV7725是一款低功耗、高性能的VGA(Video graphics array,视频图形阵列)CMOS图像传感器,通过SCCB接口协议配置内部寄存器,控制CMOS传感器的工作方式[6]。它支持连续和隔行两种扫描方式,VGA与QVGA两种输出格式,最高像素为640×480,帧速度为30 fps,数据格式包括YUV,YCrCb,RGB 3 种,满足本系统对摄像头的低分辨率、高帧率要求。实际应用测试,摄像头采集一帧数据的时间和分辨率能够满足系统的要求。
系统采用400 mA的锂电池供电。锂电池的充电电路采用TP4056芯片设计,TP4056是一款单节锂离子电池恒流/恒压线性充电芯片,采用底部带散热片的SOP8封装以及简单的外部应用电路,非常适合便携式设备应用。LED灯D3为充电完成指示灯,当系统充电完成后,LED灯亮。电容C14和C12为电压输入滤波电容,保证输入电源的稳定。引脚PROG为恒流充电电路设置,R8的阻值通过计算得到,即
(1)
式中:IBAT为1 A;在预充电阶段,VPROG为0.1 V,在恒流充电阶段,VPROG为1 V。TP4056设计电路图如图3所示。
图3 TP4056设计电路图Fig.3 TP4056 design circuit diagram
锂电池不能直接向系统供电,需要有LDO芯片进行稳压输出,采用的LDO稳压芯片为RT9193-33,芯片RT9193-33为系统提供3.3 V的电压输出。LED指示灯D4为系统电源指示,当系统电源正常供电时,D4亮;当系统电源异常时,D4熄灭。芯片的EN端控制芯片是否工作,当EN端口为低电平时,芯片停止对外输出电压;当EN端口为高电平时,芯片正常对外输出电压,通过控制芯片的EN引脚可以控制系统是否开机和关机。RT9193-33设计电路如图4所示。
图4 RT9193-33设计电路图Fig.4 RT9193-33 design circuit diagram
实际测试结果显示:充电模块输入电源电压范围在-6.5~12 V之间,输出的电压稳定、转换效率高,具有过流、过温和过压保护功能。
系统采用的显示模块为OLED显示屏幕。OLED屏幕为自发光材料,无需用到背光板,同时具有视角广、画质均匀、发光效率高和功耗低等优点。本系统采用的OLED型号为SSD1306,屏幕尺寸为0.91 in,其中SSD1306与控制器通讯有3 种接口可以选择,分别为6 800/8 000串口、I2C和SPI接口。
在外接3.3 V电源的实际工作测试中,正常工作的平均电流2 mA,功耗为P1=3.3 V×2 mA=0.006 6 W,满足系统的低功耗的要求。由于OLED为自发光器件,在较强的光照环境下具有较高的对比度,适用于多种复杂工作环境。
便携智能笔控制系统软件开发基于ARM公司推出的嵌入式软件开发工具RealView MDK,它提供了对硬件设备的调试功能和对软件的仿真功能,包含许多经典开发案例模板和固件实例,同时还支持多种调试接口(如UART,JTAG,JLINK等),可大大减小软件开发难度,缩短开发周期[7]。系统软件功能如图5所示,主要包括Wi-Fi参数配置、摄像头数据采集、远程数据交互和数据显示。
图5 系统软件结构Fig.5 System software structure
微控制器上电后,先对系统进行初始化,然后对摄像头进行参数配置,读取微控制器内存中的路由器账户和参数信息,进行Wi-Fi联网参数配置,所有参数配置完成后,系统进行状态检测。通过ADC进行电池电压的实时采集,将采集到的电压值进行分析处理,当采集的电压值低于设置值时,OLED屏幕显示电池低压进行提醒。当检测拍照按键按下时,系统启动摄像头开始工作,进行数据采集,数据采集完成后,开始压缩处理,将压缩后的数据通过网络发送到服务器中。服务器向控制器发送显示数据,微控制器通过串口中断进行数据接收,接收数据完毕,将数据写入相应的OLED寄存器中。系统状态指示LED每隔5 s进行端口状态反转控制,当系统工作异常时,LED灯端口的状态停止反转。
ESP-12S模块内置32 位MCU,系统上电后开始初始化,设置ESP-12S模块的工作模式、路由器连接参数、服务器的端口和IP参数。
控制器与ESP-12S模块的参数配置通过AT指令进行设置。微控制器通过串口向ESP-12S发送“AT+CWMODE=1”指令,将ESP-12S的工作模式设置为STA模式;发送指令“AT+CWJAP=
ESP-12S模块初始化和微控制初始化完成后,控制板会自动连上设置的目标路由器和服务器,控制板与服务器建立远程连接,通过TCP/IP的数据格式进行数据交互。
由于没有有效的硬件输入设备支持,整个控制系统工作过程中的动态参数配置只能通过软件设置。系统工作时,由于工作的环境不同,ESP-12S模块的路由器账户和密码参数也是变化的。为了提高系统的通用性,系统的Wi-Fi参数配置采用动态配置。首先,控制器与服务器通过默认的路由器参数建立网络连接,服务器发送“Wi-Fi ssid:{ssid}pwd:{password}”数据包给微控制器,微控制器接收到数据包后进行解析,并提取路由器的账户和密码信息,将提取的账户和密码信息发送给服务器,服务器确定控制板的反馈信息后,发送确定数据包给控制板,控制板接收到确定信息后,将路由器的账户和密码信息写入内部内存中。系统参数配置成功后,关机重启,ESP-12S模块初始化时,系统会将最新设置的参数信息写入到模块中,模块联网参数配置成功。采用纯软件的方式进行参数配置可以有效减少硬件成本,提高系统的可操作性,系统Wi-Fi参数配置流程图如图6所示。
图6 系统Wi-Fi参数配置流程图Fig.6 System Wi-Fi parameter configuration flow chart
通过互联网传送数据时,数据的每个包为1 024 Byte。由于压缩后的一帧摄像头图像数据大于单个数据包传送的最大值,所以要对图像数据进行拆包处理,为了使服务器接收到多个数据包后能进行正确组合,每个数据包中包含该数据包在一帧图像数据中的位置标志信息,服务器首先提取每个数据包的位置标志信息,然后将通过标志进行一帧完整数据的组合。
为了确保系统数据的可靠性,基于Wi-Fi的便携智能笔控制系统采用基于TCP/IP协议设计的自定义通讯协议。该通信协议数据包格式如表1所示。
表1 通信数据包格式Table 1 Communication packet format 单位:Byte
摄像头采集的原始数据的数据量较大,直接发送会给网络造成很大的负担,给系统造成较大的延时。为了确保数据能够快速有效地传送到服务器,需要对图像数据进行二值化处理,将处理后的数据压缩后再发送到服务器,可以保证系统传输的实时性。
由于系统采用的微控制器不能进行复杂的算法运算,综合考虑后,图像采用RLE算法进行压缩。RLE(Run-length encoding行程编码)压缩算法是Windows系统使用的一种图像文件压缩方法,其基本思想是:将一扫描行中颜色值相同的相邻像素用两个Byte来表示,第一个Byte是一个计数值,用于指定像素重复的次数;第二个Byte是具体像素值[8-9]。编码以(C,L)形式表示,C为数值,L为行程长度。例如对于20 个数据{0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1}进行行程编码可得{(0,8),(1,12)} 4 个单元数据。解压缩过程可逆,可重构为原来的数据,属于无损压缩,行程较短时,该编码效率比较低。
设计采用基于改进的RLE压缩算法对二值化图像进行压缩处理。改进的RLE压缩算法对二值化图像进行压缩的过程是:利用单个Byte表示像素值和该像素值长度信息,Byte的最高位(第7 位)记录二值化图像的像素信息,1表示二值化图像的白色点,0表示二值化图像的黑色点,剩余6 位记录该像素的长度信息,如果长度大于一个Byte所能记录的最长信息长度,则增加Byte记录像素信息。对不同尺寸的二值化图像进行压缩,压缩率如表2所示。
表2 图像压缩效果Table 2 Image compression effect
系统采用改进的RLE压缩算法对二值化图像进行压缩处理后再发送到服务器,可以有效解决数据传输过程中的延时性问题。
笔者设计的便携智能笔硬件如图7所示。
图7 便携智能笔硬件Fig.7 The hardware of portable intelligent pen
按下控制板上的拍照按键将采集到的图像数据压缩处理后发送到服务器,服务器对接收到的数据进行解压和解析,并同步显示。图8为服务器显示的部分字符数据。服务器正常显示图像后,会将解析后的数据发送至控制板,控制板上的OLED屏幕显示相应数据。
图8 服务器上显示的字符Fig.8 Characters displayed on the server
该智能笔对英文字符的中文翻译如图9所示,服务器根据不同的需求和场合,将相应的解析数据发送到控制板。采用这种方式,在硬件不变的前提下,服务器只需要对发送的数据进行修改,大大提高了系统通用性,也降低了硬件成本。
图9 控制板屏幕显示Fig.9 Control panel screen display
市场上常见的智能笔是通过硬件存储芯片进行数据保存,通过输出接口读出数据[10],这种方式使得系统的硬件成本较高。目前市场上具有同样功能的智能笔的价格在600 元左右,而笔者所设计的便携智能笔控制系统的成本不足100 元,满足市场对低成本的要求。测试表明:笔者所设计的便携智能笔控制系统具有较好的通用性,只需要进行软件方面的调整,就可以应用于不同语言的文字翻译。
Wi-Fi网络数据传输由于其传输速度快、可靠性高、组网成本低,将会是无线数据采集的发展趋势。笔者设计并实现了一个基于OV7725和Wi-Fi技术的便携智能笔控制系统,该系统软件运行在Windows平台上,以STM32F103RCT6微控制器为硬件平台,通过OV7725采集原始图像数据,微控制器对图像进行压缩,利用Wi-Fi技术和TCP/IP数据协议进行数据传输,0.91 in的OLED屏幕对服务器发送给控制板的数据进行显示。通过微控制器的内存实现对Wi-Fi联网路由器账户和密码参数的动态配置,系统整体工作稳定、高效。系统通用性较强,硬件成本较低,具有较好的应用前景。