樹莓派默認是不帶顯示屏的,如果想要查看系統的一些信息,需要使用電腦登錄到樹莓派,或者通過 HDMI 連接外接顯示器查看。這樣做總是有點麻煩,我們可以通過外接一個 OLED 屏來顯示一些關鍵參數或者圖片。本文將詳細介紹操作方法。
OLED 模組介紹
OLED 屏主要有兩種:128×32 和 128×64 ,主要顏色是白、黃、藍。OLED 屏的特點是功耗低,價格便宜,使用 I2C 接口與主機連接。本文所使用的是 128×64 尺寸的屏幕,外形如下:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xkEw4pA3-1591185576473)(https://i.loli.net/2019/06/16/5d06423a536b413084.jpg)]
它的接口很簡單,只有 4 個 Pin 腳:VCC,GND,SDA,SCL,所以它與樹莓派的連接也很簡單,如下圖所示(本文使用樹莓派 3B):
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-ME0ZIDlI-1591185576476)(https://i.loli.net/2019/06/16/5d0643443a04c80906.png)]
開啓 I2C 接口
樹莓派默認是不開啓 I2C 接口的,所以我們需要手動打開它。執行以下命令:
$ sudo apt-get install -y python-smbus
$ sudo apt-get install -y i2c-tools
$ sudo raspi-config
然後按以下動圖方式開啓 I2C 功能。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-40llPAEs-1591185576477)(https://i.loli.net/2019/06/16/5d06453640cbd29452.gif)]
安裝 OLED 屏的 Python 庫
爲了在 OLED 屏上顯示文字或圖像,我們需要使用到 Adafruit 的 Python 庫,這個庫支持所有的 SSD1306 相關的顯示屏,包括 128×32 和 128×64 屏幕。
首先我們需要下載這個庫:
$ git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
然後進入到目錄,再進行安裝:
$ cd Adafruit_Python_SSD1306
$ sudo python3 setup.py install # 如果使用 Python2 ,則使用對應命令
找到 OLED 模組地址
安裝好 Python 庫之後,我們可以使用 i2cdetect
命令來找到 OLED 屏的物理地址:
$ i2cdetect -y 1
我們會得到類似這樣的輸出:
不同的模組可能得到不同的輸出。這裏我們的 I2C 地址就是 0x3C。如果你使用的是初代樹莓派(256MB的樹莓派1代B),那麼需要使用下面的命令:
$ i2cdetect -y 0
使用 OLED 屏顯示圖像及文字
在剛剛下載的那個庫文件裏,有一個 examples 目錄,在那個目錄裏,我們可以看到以下內容:
- animate.py
- buttons.py
- image.py
- shapes.py
- stats.py
這幾個文件我們可以直接運行,比如:
$ python3 shapes.py
這幾個文件運行的結果如下圖示:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-eRdG6yg1-1591185576481)(https://i.loli.net/2019/06/16/5d0648c5a96f931880.jpg)]
屏幕尺寸適配
以上的幾個示例文件裏,它們都默認你的屏幕尺寸是 128×32 ,但它們依然可以跑在 128×64 的屏幕上。如果我們想要看得更舒服一點,我們可以將尺寸進行適配。
在每個 Python 文件裏,都有下面這麼一段代碼:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xWHWpNiZ-1591185576483)(https://i.loli.net/2019/06/16/5d064a566495d78251.png)]
這裏也寫得很清楚了,上下兩行代碼分別代表 128×32 和 128×64 的屏幕,使用何種尺寸的屏幕,只需將對應的代碼前面的 #
去掉即可。
最後,最近很多小夥伴找我要Linux學習路線圖,於是我根據自己的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!目錄如下:
免費送給大家,只求大家金指給我點個贊!
也希望有小夥伴能加入我,把這份電子書做得更完美!
有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章
推薦閱讀: