小車循跡功能的實現(第六天)

在這里插入圖片描述


👨?💻個人主頁:@開發者-削好皮的Pineapple!

👨?💻 hello 歡迎 點贊👍 收藏? 留言📝 加關注?!

👨?💻 本文由 削好皮的Pineapple! 原創

👨?💻 收錄于專欄:C語言到基于STM32 的智能礦探小車


請添加圖片描述

請添加圖片描述

文章目錄

    • ?前言?
    • 🎶一、小車循跡功能
      • 1.1 紅外模塊
    • 🎶二、小車循跡實現
      • 2.1 電平狀態讀取與對應關系
      • 2.2 紅外模塊GPIO配置
      • 2.3 循跡偽代碼
        • 結束語🥇


?前言?

小車循跡功能的實現,包括紅外模塊的組成、接線方法、組裝與調試技巧,以及通過讀取GPIO引腳電平狀態來控制小車行駛狀態的循跡邏輯。掌握這些知識,能讓礦探小車沿著指定路線行駛并在終點穩穩停住,為智能礦探小車的進一步開發奠定關鍵基礎。


🎶一、小車循跡功能


1.1 紅外模塊

  • 功能:使礦探小車能夠沿著指定的路線行駛,并且在終點處能夠穩穩停住。
  • 組成
    • 紅外中空板(大紅外)1塊

    • 在這里插入圖片描述
      在這里插入圖片描述

    • 紅外探頭(小紅外)2個

    • 在這里插入圖片描述

    • 10根杜邦線

  • 接線
    • 紅外探頭與紅外中空板:
      • 紅外探頭的VCC接紅外中空板的VCC
      • 紅外探頭的GND接紅外中空板的GND
      • 紅外探頭的OUT接紅外中空板的INx(1、2、3、4),兩個探頭接在中控板上的任意兩組即可
    • 紅外中空板與單片機:
      • 紅外中空板的VCC接單片機的5V
      • 紅外中空板的GND接單片機的GND(注意不要反接,接正確后指示燈D5會亮)
      • 紅外中空板的OUTxINx)(1、2、3、4)接單片機的GPIO(不是4根都要連接,具體看紅外探頭和中空板的連接,選擇兩個即可)
  • 工作原理:正確連接好線之后,上電如果小紅外發送的紅外線遇到能夠反射光線的障礙物(黑色物體不可以反射光線),則小紅外會通過OUT輸出一個低電平給中空板,并且對應的指示燈(D1、D2、D3、D4)會亮。
  • 組裝:小紅外用銅柱固定在小車前部,紅外燈管朝下。
  • 經驗分享
    • 調試好再組裝。
    • 接好線上電,讓紅外探頭探測光滑的平面,對應的指示燈應該要亮;如果不亮,可以調節對應的電位器從而調節紅外探頭的檢測距離,直到調亮;如果調節怎么都調節不亮,請換一組。
    • 再讓紅外探頭檢測黑色物體,對應的指示燈應該熄滅;如果不熄滅,調節對應電位器,直到熄滅為止。
  • 最終的調試結果:紅外探頭靠近光滑平面,對應指示燈亮;遠離或遇到黑色物體,對應指示燈熄滅。

🎶二、小車循跡實現


2.1 電平狀態讀取與對應關系

  • 讀取對應GPIO引腳電平狀態的函數:
    GPIO_ReadInputDataBit(GPIO_TypeDef * GPIOx, uint16_t GPIO_Pin)
    
    • 參數:
      • GPIOx:指定GPIO組號
      • GPIO_Pin:指定引腳編號
    • 返回值:
      • 0 表示讀取到的GPIO是一個高電平
      • 1 表示讀取到的GPIO是一個低電平
  • 電平狀態對應情況:
    • 紅外探頭檢測到光滑地面時,會輸出一個低電平給中空板,中控板通過OUTx/INTx傳輸給對應GPIO低電平。
    • 紅外探頭檢測到黑線時,會反饋一個高電平給對應GPIO。

2.2 紅外模塊GPIO配置

  1. 時鐘使能
  2. GPIO初始化為浮空輸入

2.3 循跡偽代碼

left right
if(left == 0 && right == 0)
{//小車前進
}
else if(left == 1 && right == 0)
{//小車左轉
}
else if(left == 0 && right == 1)
{//小車右轉
}
else if(right == 1 && left  == 1)
{//小車停止
}
結束語🥇

🔥 訂閱專欄持續學習:C語言到基于STM32的智能礦探小車
💬 歡迎點贊、收藏、留言討論,一起攻克嵌入式開發!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/90648.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/90648.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/90648.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ auto與 for循環

一、數組 #include <iostream> #include <vector> using namespace std; int main() {int vec[6] {1,2,3};for (auto num : vec) { /* num 是 int */ cout << "Hello, world!" << num <<endl;}return 0; }二、STL容器與迭代器 for 循…

【RK3568+PG2L50H開發板實驗例程】FPGA部分 | ROM、RAM、FIFO 的使用

本原創文章由深圳市小眼睛科技有限公司創作&#xff0c;版權歸本公司所有&#xff0c;如需轉載&#xff0c;需授權并注明出處&#xff08;www.meyesemi.com) 1.實驗簡介 實驗目的&#xff1a; 掌握紫光平臺的 RAM、ROM、FIFO IP 的使用 實驗環境&#xff1a; Window11 PDS2022…

力扣-21.合并兩個有序鏈表

題目鏈接 21.合并兩個有序鏈表 class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode p1 list1;ListNode p2 list2;ListNode p new ListNode(0);ListNode cur p;while (p1 ! null && p2 ! null) {if (p1.val > p2.val) …

MoE混合專家模型:千億參數的高效推理引擎與架構革命

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 從稀疏激活到多模態協同的智能計算范式 &#x1f9e9; 一、核心思想與…

【論文筆記】BlockGaussian:巧妙解決大規模場景重建中的偽影問題

論文地址&#xff1a;https://arxiv.org/pdf/2504.09048 大規模場景的重建方法不僅僅對于高空航拍數據有效&#xff0c;而且對于地面大中場景也有增強效果&#xff0c;故專門來學習一下這一方向的知識。感謝作者大佬們的great work。 Abstract 三維高斯潑濺&#xff08;3DGS…

網絡眾籌項目數據庫(2014-2024.11)

1727網絡眾籌項目數據庫&#xff08;2014-2024.11&#xff09;數據簡介作為新興互聯網融資模式&#xff0c;眾籌已成為越來越多創業者和中小企業獲取資金的渠道&#xff0c;但眾籌項目一直面臨融資成功率低的困難&#xff0c;成功融資的項目在許多平臺上占比不足五成。而目前對…

k8s新增jupyter服務

k8s新增服務 常用命令 kubectl apply -f xxxxxx.yaml # 部署資源&#xff0c;順序&#xff1a;namespace -> pvc -> deployment -> servicekubectl create namespace jupyter # 創建namespacekubectl get namespaces # 查看nskubectl get pods -n jupyter # 查看p…

結構化數據、非結構化數據區別

一、核心定義結構化數據&#xff1a;指具有固定格式、可直接用二維表&#xff08;如數據庫表&#xff09;表示的數據&#xff0c;其字段&#xff08;列&#xff09;定義明確&#xff0c;數據之間的關系清晰。例如&#xff1a;Excel 表格中的數據、關系型數據庫&#xff08;MySQ…

Linux修煉:基礎指令

Hello大家好&#xff01;很高興我們又見面啦&#xff01;給生活添點passion&#xff0c;開始今天的編程之路&#xff01; 我的博客&#xff1a;<但凡. 我的專欄&#xff1a;《編程之路》、《數據結構與算法之美》、《題海拾貝》、《C修煉之路》、《Linux修煉&#xff1a;終端…

【Linux網絡】深入理解HTTP/HTTPS協議:原理、實現與加密機制全面解析

協議是通信雙方必須遵守的規則&#xff0c;確保數據能夠正確傳輸和解析&#xff0c;它規定了數據格式、傳輸順序、錯誤處理等細節。應用層的協議一般都是我們自己進行定義的&#xff0c;但是有很多程序員前輩已經寫出來了很哇塞的協議&#xff0c;我們直接進行學習和使用即可HT…

淺嘗 Spring AI【使用超級簡單~】

一直想要體驗下 Spring AI&#xff0c;最近自己的一個工具有這個需求&#xff0c;所以這里準備使用下。其實使用起來超級簡單。 1.IDEA 新建 Spring項目 1&#xff09;這里可以根據自己的喜好選擇 項目名、jdk版本等 2&#xff09;這里選擇 在ai中選擇 openAI 即可。然后我另…

DDL期間TDSQL異常會話查詢造成數據庫主備切換

問題描述&#xff1a;7*24聯機交易系統&#xff0c;傍晚時分&#xff0c;從客戶端后臺對3千萬行的大表執行縮短varchar類型字段長度的ddl語句&#xff0c;執行期間&#xff0c;為了查看ddl進度&#xff0c;從TDSQL-MySQL赤兔前端頁面點擊異常會話查詢&#xff0c;之后數據庫卡住…

弧焊機器人氣體全方位節能指南

氬弧焊&#xff08;TIG焊接&#xff09;作為其中一種高效且精密的技術&#xff0c;憑借其穩定性和高質量的焊接效果&#xff0c;在航空航天、汽車制造、船舶建造以及石油化工等領域占據了不可或缺的地位。氬弧焊通過使用惰性氣體&#xff08;如氬氣&#xff09;保護電弧和熔池&…

數據清洗(ETL/ELT)原理與工具選擇指南:企業數字化轉型的核心引擎?

目錄 一、數據清洗&#xff08;ETL/ELT&#xff09;到底在干啥&#xff1f; 1.揪出并處理異常值 2.把缺失的數據補上&#xff08;或處理好&#xff09; 3.數據轉換與標準化 4.一致性校驗 二、工具怎么選&#xff1f;看菜吃飯&#xff0c;量體裁衣 1.數據量不大、要求不高…

阿里云服務器,CentOS7.9上安裝YApi 接口管理平臺

目錄 1.node安裝 1.1下載node,解壓 1.2 部署bin文件 1.3 安裝mongodb 2.啟動yapi 2.1 前置命令 2.2 啟動服務 3.利用pm2方便服務管理維護 3.1.安裝pm2 3.2 常用 PM2 命令 4.常見問題 4.1. 確認 MongoDB 是否安裝 4.2. 安裝 MongoDB&#xff08;若未安裝&#xff…

阿里云錯題集分享

有最近想要考試阿里云的可以私信我 &#xff0c;一起加油錯題集1.在使用阿里云的負載均衡SLB實例時&#xff0c;做了如下健康檢查的配置:成功響應和超時響應時間均為1秒&#xff0c;健康檢查間隔為2秒&#xff0c;不健康閾值為3&#xff0c;健康閾值為3。即對于確認一個云服務器…

Android 12 - 部分相機橫屏顯示方案

1.相機過渡界面方向旋轉 Android 10 - 相機過渡界面默認角度 同A10 有些區別&#xff0c;再次增加記錄修改。 這個文件沒有修改&#xff0c;只是說明 src/com/android/camera/CameraActivity.javaprivate void freezeScreenCommon(boolean async) {long startTime System.…

Operation Blackout 2025 Phantom Check hayabusa+ControlSet001+VirtualBox

QAQA攻擊者使用哪個 WMI 類來檢索型號和制造商信息以進行虛擬化檢測&#xff1f;Win32_ComputerSystem攻擊者執行了哪個 WMI 查詢來檢索計算機的當前溫度值&#xff1f;SELECT CurrentTemperature FROM MSAcpi_ThermalZoneTemperature攻擊者加載了 PowerShell 腳本以檢測虛擬化…

《O-PAS?標準的安全方法》白皮書:為工業自動化系統筑起安全防線

The Open Group 最新白皮書《O-PAS?標準的安全方法》重磅發布&#xff0c;為流程工業在邁向開放架構與多供應商互操作的過程中&#xff0c;指明了安全實踐的方向。O-PAS?標準的安全方法ABOUT PUBLICATION亮點一&#xff1a;首次系統闡釋 O-PAS? 標準安全方法與 IEC/ISA 6244…

UML 圖類型全解析:結構圖與行為圖分類詳解

作為軟件架構的核心建模語言&#xff0c;UML&#xff08;統一建模語言&#xff09;通過14種標準圖表提供系統多維度視角。這些圖表分為結構圖&#xff08;靜態模型&#xff09; 和 行為圖&#xff08;動態模型&#xff09; 兩大類&#xff0c;覆蓋從需求到實現的完整生命周期。…