“ 早上好。现在是7:00,马里布的天气是72度,有零星的云。冲浪条件从腰到肩高线比较合适。涨潮将在上午10:52 ”。每次我在电影《钢铁侠》中听到贾维斯的声音时,都会使我发冷。我敢肯定,就像我一样,许多人都梦想过像托尼·史塔克一样精致的生活。但是令人遗憾的是,我们在先进的微型电弧反应堆或像JARVIS一样智能的AI方面还没有先进的技术。但是有可能用类似于Raspberry Pi的Jarvis的闹钟来代替我们无聊的早上闹钟。在该项目的最后,我们将创建一个非常基本的GUI,通过它我们可以设置警报,并且当警报响起时,我们将具有声音,该声音可以使用一些预定义的文本告诉我们当前时间和日期。听起来不错吧!因此,让我们建立一个。
所需材料
- 树莓派
- 3.5英寸TFT液晶显示屏
- 扬声器
- 辅助电缆
- 网络连接
先决条件
假定您的Raspberry Pi已经使用操作系统进行了刷新,并且能够连接到Internet。如果不是这样,请在继续之前遵循Raspberry Pi入门教程。在这里,我们使用的是 Rasbian Jessie安装的Raspberry Pi 3。
还假定您可以通过终端窗口或通过其他应用程序来访问pi,使用该应用程序可以编写和执行python程序并使用终端窗口。
您可能还想了解如何在Raspberry Pi上连接3.5英寸TFT LCD,因为我们将在该项目中使用它。
为Raspberry Pi安装TTS引擎(Espeak)
正如项目标题所述,我们将建立一个口语时钟。为了使您的Pi说话,我们需要一个文本语音转换(TTS)引擎。有很多选项可供选择,但是为了简单起见,我选择了Espeak Engine。要在Pi上安装Espeak,只需在终端上运行以下命令
sudo apt-get install espeak sudo apt-get install espeak python-espeak
为Raspberry Pi语音闹钟创建GUI
对于此项目,我们需要开发一个代表闹钟的GUI,以便用户可以查看当前时间并设置闹钟。使用Python开发GUI的方法有很多,但是最受欢迎和用途最广泛的是PyQt4,因此我们将使用它来开发GUI。在下面的几个标题中,我们讨论了如何使用PyQt4设计自己的GUI,但是如果您不感兴趣,可以直接跳到“ 说闹钟程序 ”标题。
在Windows机器上使用Qt Designer安装PyQt4
由于我们正在设计GUI,因此我们将首先在笔记本电脑(windows / Linux)上开始编程,然后移植此python脚本以在Pi上运行。由于PyQt4具有很好的可移植性,因此大多数开发人员都这样做,因为在笔记本电脑中进行开发既轻松又快捷,然后在Raspberry Pi上实际进行。
我已经在Windows机器上安装了python和PQt软件包;如果您对此不感兴趣,只需跳过此步骤,就可以在树莓派本身上开发GUI。要在Windows上安装PQt,请下载此exe文件,并在安装过程中确保您已检查过Qt设计器软件,因为我们将其用于我们的项目。
在Pi / Linux / MAC机器上安装PyQt
要在Linux机器上安装PyQt,只需在命令终端上运行以下行
须藤apt-get install python-qt4
使用Qt Designer设计GUI
在您的GUI设计中使用PyQt4的一个明显优势是它具有Qt设计器软件。该软件可用于创建按钮,显示,文本和其他图形,只需将它们拖到屏幕中,然后将其放置在需要的位置即可。由于我们不必手动输入屏幕上对象的大小和位置,因此为我们节省了很多时间。我已经使用上一节中讨论的exe文件在Windows笔记本电脑上安装了Qt设计器以及Python和PyQt4。安装后,打开Qt Designer,您将获得此屏幕。
在左侧,您可以找到布局,间隔,按钮和其他项目,只需将其拖动到窗口中即可使用。您也可以使用右侧的窗口根据需要自定义对象。我使用了7段LCD显示屏,按钮,文本行和设置时间对象来创建闹钟的UI。使用布局将所有对象放置在所需的位置和大小后,我的窗口如下所示
GUI准备就绪后,您可以将设计另存为 .ui 文件。以后,当您希望对GUI进行更改时,只需打开此文件并进行更改,而无需在程序中上下滚动即可。如果您希望对此设计进行任何更改,可以下载用于讲话时钟的.ui文件。对GUI设计满意后,可以将其导出为python代码,从此处开始进行python编程。
我知道这里会有很多事情发生,但是无法在单个教程中解释如何使用Qt4库。您可以参考senddex PyQt4教程系列来了解