APP下载

基于Qt的宠物照顾系统设计

2022-06-10朱赖红张少怀

电子制作 2022年11期
关键词:舵机树莓界面

朱赖红,张少怀

(陕西科技大学 镐京学院,陕西西安,721046)

0 引言

随着时代的快速发展,在人们物质需求得以满足的前提下,越来越多的人开始追求精神方面的需求,开始饲养各种各样的宠物。宠物是小朋友的玩伴,上班族会把宠物当作朋友以便缓解压力,老年人或许会把宠物当作一种寄托。然而由于工作的繁忙,很多人不得不把宠物整天关在家里,这样就无法得知宠物的状况,像因疫情而起的特殊情况,导致很多宠物独自在家,并且长时间无法得到照顾,无法进食饮水。于是,远程宠物照顾系统便应运而生。

本文设计基于Qt的宠物照顾系统,通过Qt平台进行程序设计并封装,再由设计好的程序控制树莓派上的CSI摄像头以及舵机控制器,来达到远程监控照顾宠物的目的。系统由树莓派模块,摄像头模块,舵机模块,Qt软件编程模块组成。经过测试,系统功能齐全、运行稳定。

1 总体方案设计

1.1 整体方案介绍

基于Qt的宠物照顾系统, Qt平台进行程序设计并封装,由设计好的程序控制树莓派上的CSI摄像头以及舵机控制器,达到远程监控照顾宠物的目的。文中方案涉及到的主要技术有远程视频监控,舵机驱动,Qt软件平台编程以及树莓派。

系统在软件方面选择了Qt作为软件开发平台,Qt是一个由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它不仅可以开发GUI程序,还可以应用于开发非GUI程序。与其他的软件创作平台相比,Qt Creator 提供了一种简单快速的设计UI的方法,即通过简单的拖拽就能在“.ui”文件中设计各种功能的界面,配合上一些相对简单的代码,就可以设计出一些基本的UI界面。它还拥有很好的跨平台特性,市面上的主流系统像Microsoft Windows,Linux,Solaris,SunOS,HP-UX,Digital UNIX等都被包含在内,这就让使用者能够更加便捷的进行设计和创作。

系统在硬件方面选择了树莓派。树莓派的英文名字是Raspberry Pi是一种基于ARM的微型电脑主板,用SD/MicroSD卡作为其内存硬盘,主板上有1到4个USB接口,一个以太网接口,能够连接鼠标,键盘,网线。它还拥有视频模拟信号的电视输出口,以及HDIM高清视频输出口。在连接显示屏,鼠标,键盘的情况下,可以当作电脑来使用,执行一些简单的任务。与其他的硬件开发板相比,树莓派具有很便捷的开发环境,有可视化图形界面与代码界面两种方式可以选择,也有更大的开发空间,便于后续开发。

1.2 功能模块

宠物照顾系统是由用户登录界面、摄像头模块、舵机模块、树莓派模块所组成,其中各个模块的功能如下:① 用户登录界面:用户在登陆界面输入相对应的用户名和密码,在错误的情况下需要重新输入,在正确的情况下就可以登录到视频查看界面;② 摄像头模块:拍摄视频图像并且保存到设置好的地址中,使得用户可以通过地址来调用摄像头所拍摄到的视频图像;③ 舵机模块:通过程序控制舵机转动,从而达到对宠物粮和饮用水的定量投放;④ 树莓派模块:连接摄像头和舵机驱动,使得这两者可以通过程序进行调用。

2 硬件设计

2.1 摄像头模块

在树莓派中,常用的摄像头有两种,一种是USB接口的摄像头,直接通过树莓派上的USB接口进行连接,然后在树莓派上通过指令下载驱动,安装好即可使用,是一种比较通用的摄像头。另外一种是CSI摄像头, CSI摄像头电路板通过一条15芯的排线与树莓派进行连接,蓝色标记对准网络接口,用卡座来固定排线。

CSI摄像头与USB摄像头相比,在处理相同帧数图片时,CSI摄像头处理的时间更短,速度更快,同时CPU的占用率也比USB摄像头低,USB摄像头在工作时CPU占用率的波动是50%~80%,而CSI工作时CPU的占用率仅在10%~20%之间波动。对于树莓派来说,受限于CPU的性能,过高的CPU占用率会导致发热严重,虽然树莓派本身有散热风扇,但是在长时间的过热可能会对树莓派上的零件造成破坏。考虑到以上这些因素,最后选择使用CSI摄像头。如图1所示,树莓派CSI摄像头的电路接口图。

图1 CSI摄像头电路接口图

2.2 舵机模块

远程宠物照顾系统的舵机模块选用的是MG995舵机。舵机简单的说就是集成了直流电机,电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元。能够利用简单的输入信号比较精确的转动给定角度的电机系统。MG995舵机的工作电压是4.8V~6V,可以通过外置充电器的5V电压进行供电。

树莓派上的GPIO接口有40个,如图2所示,其中有两个3V电源接口,两个5V电源接口,以及26个GPIO接口,其中4号接线柱上的5V的电源接口和6号接线柱上的GND接口需要用来连接树莓派的小型风扇,以便于树莓派散热。舵机控制板通过杜邦线连接到树莓派上的2号5V电源接口,1号3V电源接口,3号接线柱,5号接线柱的GPIO接口以及9号接线柱的GND接口,这样就可以通过树莓派给出的信号来控制舵机驱动板。

图2 树莓派GPIO接口电路图

舵机的控制一般需要一个20ms的实际脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以MG995舵机为例,其控制关系应为:

(1)0.5ms-------0度

(2)1.0ms-------45度

(3)1.5ms-------90度

(4)2.0ms-------135度

(5)2.5ms-------180度

因为MG995舵机接收PWM信号的频率为50Hz,即周期为20ms,所以树莓派发送的模拟PWM信号的周期也应为20ms。设置舵机转动45度角时,是投喂一个单位的宠物粮或饮用水,用户就可以通过控制舵机的转动角度来进行定量投喂。如图3所示。

图3 舵机驱动板实物图

通过软件生成稳定的PWM信号对于运行Linux的树莓派来说只是一种方法,在系统上运行的其他进程可能会随时中断PWM信号的生成。此时可以使用专门的外部芯片来完成此工作。PCA9685作为16路舵机驱动板可以同时控制多个舵机,并且拥有32位高性能处理器,可以很大程度的减轻树莓派的工作量,它拥有单独的舵机供电电源,支持多种通信方式,拥有很好的扩展性。

3 软件设计

3.1 系统整体软件设计概述

宠物照顾系统的软件平台使用的是Qt。对于本文中所叙述的系统来说,软件方面需要实现的功能有:用户登录界面,用户通过注册用户名和密码来实现安全登录。摄像头模块,对树莓派上的摄像头进行控制,如视频拍摄,图片截取,格式转换,解码等。舵机模块,通过模拟的PWM信号操控舵机,使其转动不同的角度,完成对宠物粮和饮用水的定量投放。如图4所示,远程宠物照顾系统的软件部分整体流程,此流程叙述了上述功能的完成过程。

图4 宠物照顾系统软件整体流程图

3.2 摄像头模块软件设计

本节叙述的是宠物照顾系统中的摄像头软件模块,在该模块中,用户可以在主界面选择查看视频监控。如图5所示,程序会通过IP地址的调用来查看连接到树莓派上的摄像头所拍摄的画面,并将其提供给用户观看,用户也可以选择保存一段视频或者图像便于日后观看。

图5 摄像头模块程序流程图

进入到流程后,用户可以通过界面上提供的按钮进行操作。界面的上方显示的是用户登录时所使用的用户名,下方的设备1和设备2用户可以自行选择。如果用户想要观看设备1的画面,就点击设备1前方的选择标志,选择完成后就可以在选项卡1中观看监控视频。如果用户想要观看设备2的视频监控,操作流程与设备1相同。用户可以通过选择视频模式或者图片模式进行观看,当用户选择视频模式时,可以观看到正常的监控视频。当用户处于非Wi-Fi模式时,可以选择更加节省流量的图片模式,选项卡中的画面会每隔5秒变化一次。用户还可以点击视频选择保存,在视频库和图片库中会有用户主动保存的视频和图片,用户可以自行查看。当保存的视频或者图像过多导致查找不便时,用户可以通过视频库后方的时间表来查看保存的视频或者图像。

在设计用户主界面时,为了满足不同用户的审美需求,在主页面中加入了不同的颜色,用户可以根据自身的喜好来选择不同的界面外观,更换主界面的风格和颜色,有黑色,灰色,蓝色,天蓝色这四种颜色可供用户选择。同时为了保证界面美观,窗口同样设置为居中显示。

3.3 舵机程序设计

宠物照顾系统中用来控制投喂的舵机模块,其流程图6所示,在本模块中,需要控制舵机通过转动不同的角度来投喂不同量的宠物粮和饮用水。

图6 舵机程序流程图

当用户选择投喂时,系统会根据用户选择的投喂量,来生成输出模拟PWM信号控制舵机转动,设置舵机转动45度角为一个单位量,当用户需要投喂两个单位宠物粮时,舵机需要转动90度角,即模拟PWM信号会给舵机1.5ms的高电平和18.5ms的低电平,这样舵机就可以根据用户的需要投放定量的宠粮。如图7所示。

图7 舵机举例图

4 系统测试

4.1 摄像头模块测试

在本模块测试中,需要测试系统摄像头能否正常进行视频监控,用户保存的视频或者图像能否正常存储。

树莓派在通电开启后,脚本程序会自动给摄像头使能,当使能完成后,摄像头进入到正常工作状态,此时正常登录的用户就可以通过系统来进行远程视频监控,进入到此页面后,用户可以观察到独自在家的宠物。

当用户需要对拍摄的视频和图像进行保存时,树莓派上的摄像头接收到指令,开始传输拍摄到的视频或图像,将其保存在设定好的地址中,如图8所示,已保存的视频图像都应在此地址中显示。

图8 测试图片视频保存位置

4.2 舵机模块测试

在本模块测试中,需要测试舵机能否正常转动,在树莓派通电开启后,舵机启动处于正常工作状态。当用户选择投喂时,舵机收到来自上位机的指令,按照模拟的PWM信号给出的不同的脉冲宽度,转动不同的角度,完成对宠物粮和饮用水的定量投放。如图9所示,以两个单位的投喂量为例,当模拟PWM信号给出1.5ms高电平和18.5ms低电平时,舵机会转动90度。

图9 舵机测试图

5 结束语

本文设计了基于Qt的宠物照顾系统。硬件控制板选用了树莓派,软件平台选择了Qt,经过整体测试后取得了以下结论:

(1) 基于Qt的宠物照顾系统可以通过树莓派上的CSI摄像头远程视频监控独自在家的宠物。

(2) 使用该系统的用户可以通过用户界面注册用户名和密码,并通过用户名和密码登录本系统。

(3) 使用该系统的用户可以拍摄宠物活动的视频或图片,并且加以保存,并通过视频图像播放器进行查看。

(4) 使用该系统用户可以在远程对宠物进行投喂,通过控制舵机的转动角度来确定投喂的宠物粮或饮用水的量。

(5) 基于Qt的宠物照顾系统可以保存拍摄到的图像和视频。

(6) 本文设计了基于Qt的宠物照顾系统,提出了一种新型的宠物饲养方式,解决了一些用户无法远程照顾宠物的需求。

猜你喜欢

舵机树莓界面
不同截面类型钢管RPC界面粘结性能对比研究
国企党委前置研究的“四个界面”
黄金水果红树莓
树莓红了 游人醉了
海太克HS—1100WP数字舵机
超音速舵机保护器
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)
菜鸟看模型
界面成立自媒体联盟深挖原生内容创造力