天天看點

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

作者:APPLE頻道

視訊加載中...

01無線電軌

一、問題/目标

  這個ESP32控制闆是無線電軌小車的核心,在其接入電腦之後, 可以通過幾個小實驗來練習 MicroPython 程式設計這樣可以為後面小車調試打下基礎,通過這個過程, 可以逐漸熟悉控制闆上的各個端口下面看幾個基本小程式的開發測試。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

二、基本原理

  利用ESP32控制電路闆上的 LED, 按鍵以及 OLED螢幕, 需要知道這些外設對應的端口。這是ESP32 外部端口的定義, LED1 接入 IO2,。兩個按鍵分級别介入 IO25, IO26。這裡給出了 OLED 螢幕的五個控制信号對應的端口。此外, 再找到電路闆上它們各自的位置。從電路闆正面來看, LED1 對應的 絲網面為 D1,兩個按鍵在電路闆的右側,這個 7 針的插座用于固定 OLED 螢幕的。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  通過原理圖來看,LED1 端口如果是低電平, 對應的 LED 點亮, 高電平時, LED 熄滅。兩個按鍵端口,被兩個上拉電阻置成高電位,當被按下式, 對應的 IO 口電平為 低電平。右側的 OLED 端口用于連接配接外部的 128 ×64 的液晶螢幕。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

三、應用舉例

1、LED閃爍

  在給定的資料中, 包含有一個 Test LED 的 Python 程式,

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  這是程式的代碼。程式前兩行 import 後面所需要用到的子產品, 一個是用于管腳控制的 Pin 子產品, 另外一個是用于定時的 time 子產品。使用 Pin 類 聲明一個 LED0 對象, 帶有兩個參數。 第一個參數表示 IO 管腳的序号, 剛才從原理圖中可以知道 LED1 連接配接到 IO2。第二個管腳定義該 管腳輸入輸出性質。 這裡定義成輸出管腳, 驅動 LED。下面利用對象函數 value 設定該管腳的狀态。1 表示高電平, 0 表示低電平。程式後一半是 while 循環結構, 由于條件始終為 TRUE, 是以這個循環是一直在執行, 直到遇見 break 指令, 或者程式出現錯誤。下面使用 if else 語句更改 LED的狀态。 前面應用 value 函數讀取 LED 的狀态, 當它為 0 時,就将它設定為 1,。否則設定為 0,。 是以這個操作就是改變 LED 的狀态。每一次循環暫停 0.5 秒鐘,是以 LED 就每秒鐘更變一次點亮狀态。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  将程式拷貝到 Thonny 上面的程式編輯視窗,通過菜單 Run 指令, 啟動程式運作。

  程式運作後LED 便開始閃爍。 如果改變這個延時時間, 比如改為 0.25 秒,重新裝載程式運作,可以觀察到 LED 閃爍頻率增加一倍。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

2、按鈕測試

  電路闆上的按鍵可以用于輸入臨時的指令, 比如開啟或者停止程式的執行。這兩個按鈕位于電路闆的右側。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  程式和非常簡單。前面兩句仍然是輸入 Pin 和 time 軟體子產品。接下來利用 Pin 聲明量個管腳,前面的數字分别表示兩個按鍵接入 ESP32 的IO端口序号,後面的參數表示 該管腳的屬性, 輸入輸入端口。後面是一個 while 循環體通過 value 讀取兩個按鍵的狀态, 使用 print 顯示在 Thonny 開發環境中 的 Shell 視窗。按鍵電平為高電平, 傳回 1, 否則傳回 0。 根據原理圖我們知道, 當按鍵按下之後, 對應的管腳為低電平。通過 time 的 sleep 函數, 控制循環周期為 1 秒鐘,是以該程式運作之後, 每個一秒鐘顯示按鍵狀态。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  将程式拷貝到 Thonny 環境内運作,可以看到 Shell 視窗每個一秒鐘輸出一行數字, 按鍵沒有按動式, 數字為 1, 當按鍵按下時, 對應的數字為 0。是以通過判斷管腳的電平高低,便可以知道對應的按鍵是否按下由此可以控制程式的執行流程。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

3、測試OLED

  如果需要顯示更多的資訊, 使用OLED會更加友善。 開發套件中的 OLED 是 128 乘 64 點陣的 OLED顯示屏, 可以顯示字元、圖形等。 OLED屏具有七個管腳, 可以安插在電路闆上的插座内。接入之後, 便可以通過程式進行測試了。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  由于 OLED 程式比較複雜, 下面就簡單介紹一下測試的步驟。程式涉及到兩個檔案,一個是前面的 OLED096 , 另一個是 test oled 檔案。 OLED096檔案包含有 螢幕驅動函數, 它會被 test oled 程式調用。下面需要将這兩個檔案都載入到 ESP32 裝置中。首先在 Thonny 信件建立立一個檔案, 吧 OLED096 檔案内容拷貝到程式編輯界面。 然後存儲。 存儲的時候選擇 MicroPython 裝置, 存儲的檔案名為 LQ_OLED096。 注意這個名字不能夠改變。 如果存儲過程顯示裝置忙, 可以按動 “STOP” 停止 ESP32 程式運作。接下來在建立一個檔案, 把 TEST OLED 程式内容拷貝到編輯框内, 然後執行該軟體。 在Shell 視窗内沒有出錯提示, 程式便是正常運作了。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

  程式運作後, 可以觀察到 OLED 螢幕上顯示的測試資訊, 下面有一個遞增的數字 OLED 螢幕如果是雙色, 可以看到對應的黃色和藍色字元。至此, OLED程式測試完畢。 如果大家對于相應的程式感興趣, 可以自行研究一下兩個檔案中的代碼。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

四、總結

  本文給出了基于 ESP32 的控制闆的三個基本測試實驗,通過這些實驗, 大家熟悉開發闆上 MicroPython 程式的開發為後面開發修改智能車程式打下基礎建議大家在熟悉開發闆原理圖的基礎上自行完成更多的測試。

無線電軌智能車校内賽 | 如何在ESP32上進行初步程式設計測試?

02講座資料

一、講座視訊

二、講座資料

  • 清華雲盤資料下載下傳[1] : https://cloud.tsinghua.edu.cn/d/7471180bdb0f4d1ebbc7/
  • 無線電軌智能車校内賽 | 如何學習無線電軌車模?[2]
  • 基礎Python學習網站 Learn Python[3] : https://www.learnpython.org/

參考資料

[1]

清華雲盤資料下載下傳: https://cloud.tsinghua.edu.cn/d/7471180bdb0f4d1ebbc7/

[2]

無線電軌智能車校内賽 | 如何學習無線電軌車模?: https://zhuoqing.blog.csdn.net/article/details/131876635

[3]

基礎Python學習網站 Learn Python: https://www.learnpython.org/