1. 程式人生 > >樹莓派+PyQt製作魔鏡

樹莓派+PyQt製作魔鏡

前段時間在GitHub瞎看,看到一個超炫酷的專案MagicMirror(專案地址),下面附上兩張國外大神做的鏡子。
這裡寫圖片描述
這裡寫圖片描述
然後就感覺超級帥氣,樹莓派啥的買來以後在上面跑了一遍MagicMirror的原始碼,然後看到可以擴充套件好多好玩的東西,後來發現這個專案使用JavaScript寫的,自己對JavaScript接觸的很少又正好最近學了學python就準備自己動手寫一個:我的魔鏡連結

當時想做這個的時候有兩種思路:

  • 第一種是伺服器端用python獲取各種我想顯示的資料然後存庫,鏡子端利用純Qt通過socket讀取伺服器端的資訊。
    這樣的好處就是做起來比較簡單,QT以及python相對獨立,然後Qt的可移植性也很好,弄到樹莓派上也比較容易。缺點是感覺在Qt跟伺服器之間資料比較雜,要弄一個比較完善的資料結構,另外伺服器端資料庫的操作也麻煩一點,另外感覺Qt在呼叫介面的時候可能會很麻煩。

  • 第二種就是用PyQt,也是我最後選擇的。直接在電腦上把程式碼傳到樹莓派跑起來就行。
    這樣的好處是利用python來替Qt呼叫API,直接將解析到的資料返回到Qt主函式顯示在主介面就行,理論上寫起來更簡單一些。缺點主要是擔心pyqt的可移植性不如Qt,擔心程式碼寫好以後在樹莓派上跑不起來。

最後還是選擇了第二種方案,下面是具體的過程。

0x00:編寫程式碼

大體的思路是:在Qt creator裡設計好ui介面,並把ui檔案放到python工程目錄下,通過pyuic(有關Pycharm安裝pyqt外掛的過程)轉換成相應的py檔案,然後對各個模組進行相應的一些操作。

一些有關PyQt5的教程:

簡單來說就是在ui檔案轉換過來的py檔案的__init__(self)函式中寫要寫的程式碼。

0x01:移植到樹莓派

對於移植到樹莓派,真是遇到了一萬個坑。

我從一開始就打算在虛擬機器裡把程式碼通過pyinstaller將程式碼打包成Linux下的可執行檔案然後傳到樹莓派執行。可能是樹莓派跟虛擬機器的cpu一些方面有問題,好不容易在Ubuntu上把寫好程式碼的介面重新調整了一遍(早知道直接在Ubuntu上寫了,Windows和Linux的介面差了好多),打包成可執行檔案以後傳送到樹莓派發現樹莓派不能開啟這個檔案。

沒辦法就準備直接在樹莓派上搭建python3+pyqt5的環境,直接在樹莓派上跑程式碼,參考

樹莓派上安裝配置Python+PyQt+Eric教程,這個教程都是下載原始碼然後make,速度很慢,應該可以用pip3直接安裝,有關換源的問題參考連結,後來跟著教程走到安裝Eric的時候一直提示找不到Qtsvg,絕望了好一陣以後發現樹莓派自帶python的IDE,然後就試著跑了一下,之前跟著教程安裝了相應的環境,沒想到竟然跑起來了!

  • 這裡也可以直接 python xx.py直接執行,效果是一樣的
    這裡寫圖片描述

0x02 一些小優化

這裡就是一些強迫症做的事情了了,我把頂欄設定成黑色,工作列弄到了樹莓派的底部這樣程式可以覆蓋底部,另外這個顯示屏會自己息屏我也設定了不息屏,最後就是讓他開機自動啟動了。
一些參考連結:

0x03 總結

做什麼都有坑,反正踩了一萬個坑。

  • 通過pyqt來修改qt的介面蠻麻煩的,一些資料調來調去很費時間,後面準備封裝幾個函式來操作介面。
  • 成本有限,使用的七寸的顯示屏,放置的功能比較少。
  • 介面呼叫的時候,是自己看的不仔細,換了一個天氣的介面
  • 還有一些程式碼寫的比較臃腫(自己看的難受)
  • 配環境真是個細活
  • 考慮新增跟鏡子對話的功能,魔鏡魔鏡誰是世界上最美麗的人?哈哈哈哈哈。

相關推薦

樹莓+PyQt製作

前段時間在GitHub瞎看,看到一個超炫酷的專案MagicMirror(專案地址),下面附上兩張國外大神做的鏡子。 然後就感覺超級帥氣,樹莓派啥的買來以後在上面跑了一遍MagicMirror的原始碼,然後看到可以擴充套件好多好玩的東西,後來發現這個專案

樹莓映象製作

還沒做好的指令碼: #!/bin/bash #create image echo "Creating Image ..." BOOT_DEV='/dev/sdb1' ROOT_DEV='/dev/sdb2' TIME=`date "+%Y%m%d%H%M%S"` FILE=backup_201812

樹莓3B製作無線wifi(AP with hostapd)

參考:https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/這是一款新型的樹莓派,並且自帶wifi模組,不用大家自己另購,很是方便。網上寫樹莓派做wifi的文件不少但

樹莓B製作下載器

手頭有一隻樹莓派B+,用來跑圖形介面的Raspbian感覺太慢了,恰好手頭還有一塊膝上型電腦硬碟,打造了一款下載器。 主要功能:無人值守下載,可通過SSH或FTP新增下載任務,通過FTP獲取下載檔案。 硬體:樹莓派B+ 1只、SD卡1片(我用的512M)、筆記本硬碟1塊、

樹莓

樹莓派官方雜誌MagPi 第74期中文翻譯 翻譯:子豪兄(同濟大學開源軟體協會) 加入翻譯組或相關合作請關注微信公眾號MagPi ,私聊後臺 歡迎各論壇網站公眾號分享轉載,請以 原文超連結或連結形式 轉載並註明出處 子豪兄。 原文地址 http://u6.

樹莓總結(包括語音和影象識別)

我實在是太懶了,現在才來寫這篇博文。 這裡我將總結做這個專案所用的思路,以及中間出現的各種問題還有問題的解決辦法。 1、最終實現方案(樹莓派、php+html、arecord、百度語音、face

樹莓

用樹莓派來做魔鏡 一部分內容的轉載宣告:我是參照http://www.tuicool.com/articles/IFnQn2U這個網站做得,並加以修改,完成了這次大作業 一、材料 樹莓派、原子鏡(我們是用貼膜的,材料還沒到,暫時不知道效果怎麼樣)、顯示器(顯示屏+對應的

樹莓系統安裝的問題大全

1. Failed at the [email protected] postinstall script 'node install.js'.  錯誤資訊: [email protected]:~/MagicMirror$ npm install &

樹莓】做一個備份

運行 using clas 準備 prim 初始化 per ole nac 在做樹莓派鏡像時候,遇到了一點問題,參考這篇文章,再重試一下。 Adafruit的樹莓派教程第一課福利:做一個備份鏡像 04/08/2014 Boyd Wang A

Linux命令行燒錄樹莓像至SD卡

mount 問題 而不是 使用 index fun pkill contain 一切都 首先下載鏡像壓縮包 驗證壓縮包的未被串改 1 sha1sum 2013-09-25-wheezy-raspbian.zip 對此命令的輸出結果和官網給出的

厲害了!小夥自學Python一個月,利用樹莓製作了黑客優盤工具!

  最近一直在學習Python爬蟲,可能隨著研究的深入,受到爬蟲技術的感染,開始對獲取別人的資料產生了興趣,Python寫網頁爬蟲是獲取別人網站上的資料,那可不可以用Python寫一個程式獲取別人U盤上的資料呢!   研究了網上的一些程式,結合手上的這塊可

經驗分享:利用樹莓開發板製作無線路由器

摸索了一個禮拜,總算將自己手上的樹莓派開發板製作成了一個無線路由器。 無線路由器在資料包的傳輸中會進行NAT轉化,並生成NAT表,資料包必須先通過LAN口進入路由器,再由WLAN口出路由器進入Internet,然後才能在Internet上找到對應的伺服器…以上為

用Buildroot製作樹莓64位精簡嵌入式系統

使用Buildroot 2018.08.1 1、make raspberrypi3_64_defconfig 2、make menuconfig toolchain中修改選項,將c library改為glibc,以適應更多的第三方開發 System configura

自寫app與樹莓製作智慧小車

實現的功能有: 1.實現小車的前進,後退,左轉,右轉。 2.實時視訊的傳回,檢視小車周圍的情況。 3.攝像頭的上下左右轉動,使用舵機雲臺來實現。 需要的材料: 1.樹莓派一個(帶有python環境,現在的好像都有自帶python

手動一步一步來製作備份Raspberry Pi樹莓SD卡的img映像檔案(不用dd命令)

之前複製或者備份樹莓派的SD卡,都是用dd命令全盤複製,可以用,但是這樣有兩大缺點: 1. 慢 2. 一個大的SD卡,比如64G,即使只用了2G,經過dd命令生成的img檔案也會生成一個和整個SD卡容量一樣大小的檔案,即64G   於是,需要有一個可以解決上述問題的製作樹莓

樹莓製作ROS機器人

開源ROS機器人作業系統是機器人開發的利器,集成了大量先進的演算法,而且還開源,國內也有很多人在研究,也有些原型,但網上文章多是翻譯官方的英文教程,在這裡我們一步一步的製作一個ROS機器人,探討機器人制作的步驟,而且我們儘量用開源的硬體Arduino,樹莓派,配件都可以在網

Android手機控制樹莓製作的四驅小車

-------更新 完整的程式碼放在Github上了: -------全文 年初的時候看到使用樹莓派製作的遠端開門器》後,覺得硬體程式設計似乎沒有想象的難。 之前認為硬體程式設計可能需要學習新的程式語言,需要特別的程式設計環境。然而樹莓派使用Linux作業

製作樹莓最小映象-img裁剪瘦身

修改記錄 2016年7月28日修改指令碼,動態支援樹莓派映象 最近剛做了一套opencv攝像頭監控的程式,想將這套程式做一個映象備份起來,但發現用Win32DiskImager或dd命令來製作映象,都是將sd卡整盤進行備份,造成了巨大的硬碟浪費,

樹莓安裝系統和製作映象

安裝raspbian 官網下載映象,dd到sd卡,dd完後掛載sd卡,修改/etc/network/interfaces設定無線網和靜態ip使樹莓派開機能自動連上自己的wifi,方便ssh。 iface wlan0 inet static addr

使用樹莓製作BCH冷錢包electroncash

1、參見之前的安裝樹莓派作業系統。 2、裝好系統後安裝electroncash需要的python3-pyqt5:  sudo apt-get install python3-pyqt5 3、在windows電腦裡去https://www.electroncash.org/