普冉PY32系列(十) 基於PY32F002A的6+1通道遙控小車I - 綜述篇

来源:https://www.cnblogs.com/milton/archive/2023/11/21/17841551.html
-Advertisement-
Play Games

本篇介紹一個基於 PY32F002A 和 XL2400 的低成本無線遙控實現. 7通道是指6個模擬通道加一個開關通道, 模擬通道受PY32F002A的PIN腳限制, 全部用上可以做到8個, 因為我想保留SWD口, 所以只做了6個. 普通應用只需要雙搖桿加兩個雙調節, 基本夠用了. 第七個通道是一組開... ...


目錄

基於PY32F002A的6+1通道遙控小車I - 綜述篇

以下介紹基於 PY32F002A 和 XL2400 的低成本無線遙控實現. 因為內容較多, 分三篇說明.

實物圖

先放上最終的實物

遙控器

  • 遙控器包含兩個十字電位器, 兩個旋鈕電位器, 六個輕觸開關和兩個滑動開關, 顯示部分為12864LCD.
  • 兩個十字電位器, 兩個旋鈕電位器組成了六個模擬通道. 模擬通道數量受PY32F002A的PIN腳限制, 全部用上可以做到八個, 因為我想保留SWD口, 所以只做了六個. 普通應用只需要雙搖桿加兩個雙調節, 基本夠用了.
  • 第七個通道是一組開關量, 六個輕觸開關和兩個滑動開關共8個bit, 是通過74HC165擴展實現的, 當前的設計只用了一片74HC165, 採集8個開關信號, 通過串聯更多的74HC165可以擴展到16個或24個開關信號.
  • 無線模塊是可插拔設計, 便於替換XL2400和XN297LBW, 以及測試不同天線的性能

驅動器

  • 中間9個通道為高速IO通道, 直接關聯到PY32F002A的PIN腳, 這些PIN都關聯到TIM1或TIM3(看下麵的PIN分配表), 可以設置為原生PWM輸出
  • 兩側的8PIN排針一共16個通道為擴展IO通道, 使用74HC595擴展產生, 可以輸出開關量或低速PWM
  • 當前的小車的電機控制僅用到擴展IO
  • 無線模塊是可插拔設計
  • 驅動端可以控制的通道並不受6+1限制, 驅動器並不局限於驅動小車, 9路高速IO加16路擴展IO可以驅動很多設備
  • 模塊的螺絲孔位是針對這種小車底盤設計的, 但是只能上一邊, 不能全上

設計目標

看完實物, 回到最初的設計思路. 因為是從零開始, 在這一階段設計中為快速驗證, 先確定結構, 避免複雜設計, 只考慮數顯和單向傳輸, 不考慮回傳數據.

無線控制端

  • 雙十字搖桿加雙調節, 需要至少共6個模擬通道
  • 2+6或4+4開關按鍵, 共8個開關信號
  • LCD屏顯

電機驅動端

  • 至少8個高速IO通道, 支持原生PWM信號輸出
  • 16個低速IO通道, 支持開關信號輸出, 或模擬PWM信號輸出

硬體部分

主要組件

硬體選型

  • MCU: PY32F002A TSSOP20
  • 2.4GHz: XL2400 or XN297LBW
  • IO Ext: 74HC165, 74HC595
  • LCD: ST7567 12864
  • Motor Driver: YX-1818

PIN分配

控制板

  • 為保持調試的便利, 保留SWD口PA13, PA14作為SWD, SWC使用, 在開發中使用JLink RTT輸出日誌. JLink RTT日誌輸出可以參考這篇 使用JLink RTT代替串口輸出日誌.
  • 將NRST口復用為IO, 屏蔽RST功能, 參考 SOP8,SOP10,SOP16封裝的PY32F002A/PY32F003管腳復用
  • 使用ST7567是因為正好手裡有不少1寸的ST7567LCD屏, 而且能和XL2400復用SPI口(其實也就復用了兩個PIN), 可以換成I2C介面的SD1306.
  • XL2400使用了硬體方式的SPI通信, 具體可以看前一篇GPIO模擬和硬體SPI方式驅動無線收發晶元XL2400
  • ST7567和XL2400合用一個硬體SPI口, 通信時使用PB2和PB3進行選擇
  • 模擬信號的輸入使用 PA0, PA1, PA2, PA3, PA4, PA5 這六個ADC通道
  • 開關信號的輸入使用一片74HC165進行轉換, 理論上可以級聯2~3片, 每片能擴充出8個開關信號

具體的PIN分配如下

ST7567 XL2400 搖桿1 搖桿2 調節1 調節2 74HC165
PA0 X
PA1 x
PA2 X
PA3 X
PA4 X
PA5 X
PA6 CLK
PA7 QH
PA13 SWD
PA14 SWC
PB0 RESET
PB1 DC/AO
PB2 CSN
PB3 CSN/CE
PF0 SCK SCK
PF1 DATA
PF2 NRST MOSI DATA
PF4/PB6 BOOT0 SH/LD

驅動板

  • 保留SWD口PA13, PA14作為SWD, SWC
  • 將NRST口復用為IO, 屏蔽RST功能
  • ST7567和XL2400合用一個硬體SPI口, 通信時使用PB2和PB3進行選擇
  • 一共9個高速IO輸出通道, 都有對應的時鐘, 可以產生PWM信號. 使用PIN腳: PA0, PA1, PA2, PA3, PA6, PA7, PB0, PB1, PB3
  • 使用兩片74HC595作為IO輸出擴展, 產生16個低速IO輸出通道

具體的PIN分配如下

XL2400 原生PWM 74HC595
PA0 TIM1_3
PA1 TIM1_4
PA2 TIM3_1
PA3 TIM1_1
PA4 SER/DS
PA5 SRCLK/SHCP
PA6 TIM3_1
PA7 TIM3_2
PA13 SWD
PA14 SWC
PB0 TIM3_3
PB1 TIM3_4
PB2 CSN
PB3 TIM1_2
PF0 SCK
PF1 DATA
PF2 NRST DATA
PF4/PB6 BOOT0 RCLK/STCP

電路原理圖

遙控器

  • 遙控器使用了一片PY32F002A TSSOP20和一片74HC165D SOP16,
  • 手柄輸入使用的是兩個16x16的搖桿電位器. 搖桿電位器有13x13和16x16兩種尺寸, 如果需要使用13x13可以自行更換.
  • 電源部分使用的是一節18650. 除了XL2400耐壓為3.6V以外, PY32F002A和其它元件都可以工作在5V, 因為滿電電壓會超過4V, 為了防止損壞XL2400, 這裡使用一顆二極體做簡單降壓兼反接保護. 經實測驗證 XL2400 可以工作在 3.8V.
  • 如果需要嚴格意義上的3.3V輸入, 可以替換成低壓降的XC6206P332MR.
  • 微動開關都加了上拉電阻
  • 兩側搖桿電位器的開關和對應最外側的開關相通, 按壓等效
  • 遙控面板不包含無線模塊

驅動控制

  • 驅動端使用的是一片 PY32F002A TSSOP20 和兩片 74HC595D SOP16
  • PY32F002A 和 74HC595D 供電由一片AMS1117提供, 工作在3.3V. 因此電源輸入不能低於4V, 不能使用單節18650
  • 電機供電部分與電源輸入直通. 為避免複雜度, 電路中未內建DC-DC轉換, 如果電機/舵機需要5V或6V的準確電壓, 需要外接DC-DC模塊供電
  • 電源部分有一個1A的自恢復保險
  • 控制板不包含無線模塊, 不包含電機驅動

電機驅動

電機驅動使用的是 YX-1818, 支持兩組有刷直流電機, 外圍元件簡單, 也可以採用成品的 MX1616 驅動模塊或者L9110, L298等. 驅動玩具DC電機只需要幾百毫安, 選擇哪種都可以.

無線模塊

無線部分使用的是 XL2400, 也可以換成XN297LBW, 這兩個晶元的電路是相容的. 具體可以參考GPIO模擬和硬體SPI方式驅動無線收發晶元XL2400, 這裡的電路一樣但是PCB部分做了改進, 占用尺寸更小. 註意模塊的PIN腳和遙控器, 驅動板的排針孔位是對應的, 如果買成品的XN297LBW模塊, 需要自行修改PIN腳順序.

PCB

在一塊 10cm x 10cm 的 PCB 上集中了上面提到的所有模塊, 可以在嘉立創上一次列印, 但是需要自行分割. PCB上包含的內容

  • 遙控面板 * 1
  • 驅動控制板 * 1
  • 電機驅動 * 2
  • 無線模塊 * 3

正面

反面

參考

  • PY32F002A+Ci24R1遙控器
    在立創開源廣場搜到的一個同類設計, 參考了部分元件選擇(例如YX-1818驅動).

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

-Advertisement-
Play Games
更多相關文章
  • 本章將和大家分享 Elasticsearch 的一些基本概念。話不多說,下麵我們直接進入主題。 一、什麼是Lucene Lucene是Apache的開源搜索引擎類庫,提供了搜索引擎的核心API。 1、Lucene的優勢:易擴展、高性能(基於倒排索引) 2、Lucene的缺點:只限於Java語言開發、 ...
  • XML相關 Xml是可拓展標記語言,一種文件格式。我們使用xml來完成對數據持久化的存儲。等待我們有一程式運行結束之後,將記憶體中的數據進行保存,(保存在硬碟/伺服器)實現對數據的持久化存儲。 xml文件的讀取和保存以及修改 要點: XMl文件的載入 XML文件節點的查找訪問 XML文件節點內容的讀取 ...
  • 前言 最近還在和 npgsql 與 EF Core 鬥爭,由於 EF Core 暫時還不支持 AOT,因此在 AOT 應用程式中使用 EF Core 時,會提示問題: 聽這個意思,似乎使用 Compiled Model 可以解決問題,於是就又研究了一下 EF Core 的這個功能。 在 EF Cor ...
  • C#12中引入了新的語法糖來創建常見的集合。並且可以使用..來解構集合,將其內聯到另一個集合中。 支持的類型 數組類型,例如 int[]。 System.Span<T> 和 System.ReadOnlySpan<T>。 支持常見泛型集合,例如 System.Collections.Generic. ...
  • 本文簡介 隨著互聯網的快速發展,電商網站已經成為人們日常生活中不可或缺的一部分。而商城系統作為電商網站的核心,其重要性不言而喻。使用C#語言開源商城系統,可以輕鬆打造出穩定、安全的商城網站,為你的電商事業保駕護航。下麵推薦五款開源界出名的商城項目。 C#語言開源商城系統的優勢 跨平臺性 C#是一種跨 ...
  • 前言 一年多沒更新博客,上一次寫此系列還是四年前,雖遲但到,沒有承諾,主打隨性,所以不存在斷更,催更,哈哈,上一篇我們細究從請求到綁定詳細原理,本篇則是探討模型綁定細節,當一個問題產生到最終解決時,回過頭我們整體分析其產生背景以及設計思路才能有所獲。好了,廢話不多說,我們開始模型綁定細節之旅。 問題 ...
  • 目錄 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU簡介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode開發環境 普冉PY32系列(三) PY32F002A資源實測 - 這個型號不簡單 普冉PY32系列(四) PY32F002A/003/0 ...
  • Linux基本使用和常用命令 1、登錄Linux操作系統方式 1.圖形化界面 基於x window System顯示框架開發 由KDE(類似於蘋果系統)、GNOME.v.3.0 提供圖形化桌面環境 2.虛擬控制台 文本方式(Ctrl + Alt + F3) 3.Web網頁登錄 前提是需要打開網頁控制 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...