樹莓派使用 OLED 屏顯示圖片及文字

来源:https://www.cnblogs.com/yychuyu/archive/2020/06/05/13051456.html
-Advertisement-
Play Games

樹莓派預設是不帶顯示屏的,如果想要查看系統的一些信息,需要使用電腦登錄到樹莓派,或者通過 HDMI 連接外接顯示器查看。這樣做總是有點麻煩,我們可以通過外接一個 OLED 屏來顯示一些關鍵參數或者圖片。本文將詳細介紹操作方法。 OLED 模組介紹 OLED 屏主要有兩種:128×32 和 128×6 ...


樹莓派預設是不帶顯示屏的,如果想要查看系統的一些信息,需要使用電腦登錄到樹莓派,或者通過 HDMI 連接外接顯示器查看。這樣做總是有點麻煩,我們可以通過外接一個 OLED 屏來顯示一些關鍵參數或者圖片。本文將詳細介紹操作方法。

OLED 模組介紹

OLED 屏主要有兩種:128×32 和 128×64 ,主要顏色是白、黃、藍。OLED 屏的特點是功耗低,價格便宜,使用 I2C 介面與主機連接。本文所使用的是 128×64 尺寸的屏幕,外形如下:

它的介面很簡單,只有 4 個 Pin 腳:VCC,GND,SDA,SCL,所以它與樹莓派的連接也很簡單,如下圖所示(本文使用樹莓派 3B):

開啟 I2C 介面

樹莓派預設是不開啟 I2C 介面的,所以我們需要手動打開它。執行以下命令:

$ sudo apt-get install -y python-smbus
$ sudo apt-get install -y i2c-tools
$ sudo raspi-config

然後按以下動圖方式開啟 I2C 功能。

安裝 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

這幾個文件運行的結果如下圖示:

屏幕尺寸適配

以上的幾個示例文件里,它們都預設你的屏幕尺寸是 128×32 ,但它們依然可以跑在 128×64 的屏幕上。如果我們想要看得更舒服一點,我們可以將尺寸進行適配。

在每個 Python 文件里,都有下麵這麼一段代碼:

這裡也寫得很清楚了,上下兩行代碼分別代表 128×32 和 128×64 的屏幕,使用何種尺寸的屏幕,只需將對應的代碼前面的 # 去掉即可。


公眾號:良許Linux

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0. 前言 在之前我們介紹了請求通過路由尋找到控制器,以及控制器與視圖的數據流轉。那麼,我們回過頭來,再看看路由的一些其他用法。 1. 路由屬性(Route Attribute) 按照英文的直接翻譯,Routing Attribute 的意思是路由屬性,但實際上 Attribute在微軟的官方稱呼是 ...
  • 一直對async/await存在疑惑,在博客園裡看到了文中提及的博客,感覺講的很好,自己也學習到了。所以進行簡單的摘要 ...
  • 預設情況下所有的Nuget包都會下載到C盤,目前我這邊有幾十個G的大小,這導致我C盤的容量越來越小... 我們可以在Nuget.config中修改package存放路徑,Nuget.config 在C:\Users\{UserName}\AppData\Roaming\NuGet目錄下 預設如下所示 ...
  • 在做介面測試時,經常會碰到請求參數為token的類型,但是可能大部分測試人員對token,cookie,session的區別還是一知半解。為此我查閱大量的資料做瞭如下總結。 此篇文章也許是最全最通俗的關於Token ,Cookie和Session的區別的文章,好好揣摩文章的每一個字,也許你會有更深的 ...
  • C#將DataTable數據導出CSV文件通用方法! //導出按鈕調用導出方法 protected void btnCSV_Click(object sender, EventArgs e) { DataTable dt = ExportData();//獲取datatable數據源 string ...
  • 一:背景 1. 講故事 在我們的一個全記憶體項目中,需要將一家大品牌店鋪小千萬的trade灌入到記憶體中,大家知道trade中一般會有訂單來源,省市區 ,當把這些欄位灌進去後,你會發現他們特別侵蝕記憶體,因為都是字元串類型,不知道大家對記憶體侵蝕性是不是很清楚,我就問一個問題。 Question: 一個空字 ...
  • 背景 Read the fucking source code! --By 魯迅 A picture is worth a thousand words. --By 高爾基 說明: Kernel版本:4.14 ARM64處理器,Contex-A53,雙核 使用工具:Source Insight 3. ...
  • 之所以要延遲多少秒做健康狀態檢查是因為,docker運行為容器以後,會立刻把該容器的狀態標記為running狀態,而對於有些初始化比較慢的容器,如果馬上對它做健康狀態檢查,可能是不健康的狀態,這樣一來我們對瞭解容器是否健康就不是很準確了;如果配合某些工具,很可能存在檢測到容器不健康就把該容器刪除,... ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...