基於MSP430F5529的紅外循跡小車

2021-02-24 俗人chao

第一功能:

第二功能:

下圖為黑色跑道,跑道為2mm的黑線,A、B、C、D四點為直徑4mm的黑圈。

小車選用MSP430F5529做為主控晶片,TCRT5000紅外循跡模塊用來實現小車識別跑道功能,原理為紅外發射判斷黑白線以及區分黑線寬度,電機使用兩個直流電機,電機驅動模塊選用TB6612,來實現實時控制電機轉動的幅度與轉速。

將MSP430F5529的P3.0、P3.1、P3.2引腳分別與3個TCRT5000模塊的DO端相連,晶片實時檢測這3個埠的電平,當發生電平跳變時,電機運行就會做出相對應的調整,而控制電機轉速的是P1.3與P2.0引腳,它們與TB6612模塊的PWMA、PWMB引腳相連,原理是通過改變佔空比來實現。P1.2、P1.4、P1.5三個引腳通過撥碼開關與GND相連,用來實現對三個行駛模式的分開控制,P2.2需要拉高(啟動時)所以圖中沒畫。

三個撥碼開關分別控制三個模式,第一個模式為第一個實現功能即B點停,第二個模式為第二個實現功能即小車一直行駛,第三個模式為小車定時60秒後開始一直行駛。

#include <msp430f5529.h>
int liftbi=0,rightbi=0;
unsigned int temp=0;
void GPIO_init(void){
P3DIR &=~(BIT0+BIT1+BIT2+BIT3); P3REN |= (BIT0+BIT1+BIT2+BIT3); P3OUT &=~(BIT0+BIT1+BIT2+BIT3);
P2DIR &=~(BIT2); P2OUT &=~(BIT2);
P1DIR |= BIT0; P1OUT |= BIT0; P1REN |= (BIT1+BIT2+BIT4+BIT5); P1OUT |= (BIT1+BIT2+BIT4+BIT5); P1DIR &=~(BIT1+BIT2+BIT4+BIT5); P1DIR |= BIT6;}
void Motor_L(float left){ TA0CCR2 = left; }
void Motor_R(float right){ TA1CCR1 = right; }
void MotorSet(float L, float R){ Motor_L(L); Motor_R(R);}
void mode_0(){ long i,j; if((P3IN|0xf0)==0xf0) MotorSet(37,23); if((P3IN|0xf0)==0xf1) MotorSet(37,0); if(((P3IN|0xf0)==0xf2)) MotorSet(37,23); if((P3IN|0xf0)==0xf4) MotorSet(0,23); if((P3IN|0xf0)==0xf3) { MotorSet(37,23); for(i=0;i<30000;i++); MotorSet(0,0); } if((P3IN|0xf0)==0xf6) { MotorSet(37,23); for(j=0;j<30000;j++); MotorSet(0,0); }}
void mode_1(){ while(1) { if((P3IN|0xf0)==0xf0) MotorSet(37,23); if((P3IN|0xf0)==0xf1) MotorSet(37,0); if(((P3IN|0xf0)==0xf2)) MotorSet(37,23); if((P3IN|0xf0)==0xf4) MotorSet(0,23); if((P3IN|0xf0)==0xf3) MotorSet(38,23); if((P3IN|0xf0)==0xf6) MotorSet(38,23); }}
void P12_Onclick() { while(1) { mode_0(); }}
void P14_Onclick() { while(1) { mode_1(); }}
void P15_Onclick() { TA2CCR0 = 32760; TA2CCTL0 = CCIE; TA2CTL = TASSEL_1 + MC_1 + TACLR; _BIS_SR(LPM3_bits + GIE); while(1) { }}
void main(void){ volatile unsigned int i; WDTCTL = WDTPW + WDTHOLD; P1DIR |=BIT3; P1SEL |=BIT3; P2DIR |=BIT0; P2SEL |=BIT0; TA0CCR0 = 50; TA0CCTL2 = OUTMOD_7; TA1CCR0 = 50; TA1CCTL1 = OUTMOD_7;
TA0CTL= TASSEL_2 +MC_1; TA1CTL= TASSEL_2 +MC_1; TA0CCR2=liftbi; TA1CCR1=rightbi; GPIO_init();
while(1) { if((P2IN|0xFB)==0XFF) P2OUT &=~BIT2; if((P1IN&0x04)==0x00) { if((P2IN|0xFB)==0XFF) { P12_Onclick(); } } if((P1IN&0x10)==0x00) { if((P2IN|0xFB)==0XFF) P14_Onclick(); } if((P1IN&0x20)==0x00) { if((P2IN|0xFB)==0XFF) P15_Onclick(); } }}#pragma vector = TIMER2_A0_VECTOR__interrupt void Timer_A(void) { temp++; if(temp>=60) { mode_1(); }}

轉發、關注、點在看都是我最大的動力

做個俗人,貪財好色!

相關焦點

  • Micropython教程之TPYBoard製作藍牙+紅外循跡小車
    如下表接線:藍牙模塊(HC-06) TPYBoardv10x5V VIN(+5V)GND GNDRX Y9(UART(3)-TX)TX Y10(UART(3)-RX)33.4.四路紅外循跡模塊33.4.1.四路紅外感應探頭的安裝尋跡的原理其實就光的吸收,反射和散射。大家都知道,白色反射所有顏色的光,而黑色吸收所有顏色的光,這就為小車尋跡提供了有力的科學依據。在小車的車頭上安裝上紅外探頭(我是安裝了四個),一字順序排開。哪個探頭接收不到反射或者散射回來的光時,說明這個探頭此時正在黑色的尋跡帶上。
  • 基於雷射二極體的智能循跡小車的硬體設計
    摘要 介紹了一種基於紅外雷射二極體的智能循跡模型車硬體系統的設計方法。該系統以MC9S12XS128為控制核心,採用紅外雷射二極體及紅外接收傳感器採集路徑信息,同時應用內部集成H橋電路的MC33886晶片進行電機驅動,並運用LM331晶片來設計測速電路。
  • 你真的了解循跡小車嗎,小宇教你如何製作屬於自己的循跡小車
    很多人都想要一款屬於自己的循跡小車,它可以安裝我們的編程進行移動,規避障礙物等自主活動,那麼最簡單的51循跡小車怎麼做呢?今天小編帶給大家一款自動循跡小車的設計方案。自動循跡小車是一項比較熱門的電子競賽,有許多設計方案。
  • 初學者如何製作智能循跡小車
    智能循跡小車並不是很難,非常適合初學者鍛鍊電子設計的綜合能力,下面整體分析一下關鍵的技術要點:(1)作為一輛小車必須有可以行走的輪子,即可以正常行走的小車,這是小車的框架;(2)要求智能,即可以通過CPU控制小車自由移動,那麼必須有控制輪子的驅動,一般輪子的驅動用電機製作,可為直流電機或步進電機,因此這部分內容包括CPU控制電機實現小車前後移動,左拐、右拐,調速;必須有一個
  • 科普 | 基於arduino平臺具有運輸物塊功能的智能循跡小車
    (i)工作原理:TCRT5000 傳感器的紅外發射二極體不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,光敏三極體一直處於關斷狀態,此時模塊的輸出端為低電平,指示二極體一直處於熄滅狀態;被檢測物體出現在檢測範圍內時,紅外線被反射回來且強度足夠大,光敏三極 管飽和,此時模塊的輸出端為高電平,
  • 基於MC9S12XSl28單片機的智能循跡小車的硬體設計
    摘要:給出了一種基於MC9S12XSl28單片機的智能模型車硬體系統的設計方法,該系統的核心控制器採用MC9S12XSl28晶片,並採用數字攝像頭0V6620採集路面信息,電機驅動模塊則採用MC33886 H橋晶片。
  • 基於Kinetis60的智能循跡小車設計
    摘要:智能循跡小車可以根據前端攝像頭的輸入圖像識別出道路狀況,通過優化智能車的軟硬體設計,能夠確保其在不同環境下行駛的快速性和準確性,本文以Kinetis60為核心處理器,完成了智能車路徑檢測、速度檢測、數據傳輸模塊、電機舵機驅動模塊的設計與實現,並在此基礎上提出了一種利用攝像頭實時圖像進行智能車循跡判斷的方法
  • 基於arduino的循跡小車(含有PID算法)
    循跡小車一般分為兩方面:一方面是簡單的閉環賽道只有直道和彎道,另一方面是畢設類型的包括一些元素:90度彎道、十字道路、S形彎道等。
  • 基於STM32的智能尋跡避障小車(完整版)
    基於STM32的智能尋跡避障小車(完整版) 使用舵機+超聲波多個方向避障 ,ST188尋跡,OLED顯示工作模式。 本文介紹了一款以意法半導體公司生產的STM32為核心控制器,在MDK4.70軟體開發平臺下設計開發的智能小車。
  • 機器人教程4:紅外循跡及LM339模塊
    1、概述2、紅外光電管的工作原理本文引用地址:http://www.eepw.com.cn/article/201612/324303.htm3檢測電路設計4、LM339模塊及紅外對管模塊介紹5、紅外循跡程序
  • 李家俊深入「新工科」課堂 現場觀摩「物流循跡小車」的設計與製作
    本站訊(通訊員 王磊 崔瑩 攝影記者 郭程)12月17日下午,天津大學黨委書記李家俊來到「新工科」課堂,現場觀摩和考察「未來智能機器與系統」平臺第一門項目課——《設計與建造》的開題作業「物流循跡小車」的開發過程。天津大學新工科教育中心辦公室主任原續波,機械工程學院黨委書記孫月海、院長王天友、副院長孫濤、求是學部副主任於倩等一起陪同聽課。
  • 基於紅外遙控的arduino遙控小車
    遙控小車是每個人童年的最愛,不僅好奇它的奇妙,更是喜歡它帶來的刺激。小編為大家帶來幾篇文章,來給大家講講製作遙控小車的程序。
  • 51單片機循跡小車電機驅動程序PWM
    這個是從一個製作成功的循跡小車裡面提取出來的本文引用地址:http://www.eepw.com.cn/article/201612/325006.htm原理圖及其原始碼壓縮包的下載地址:http://www.51hei.com/bbs/dpj-19526-1.html下面是主要的程序文件預覽:#include//快速 跑的sbit P00=P0^0; //循跡口
  • 基於Cortex-M3的礦井車循跡系統設計
    本文引用地址:http://www.eepw.com.cn/article/149035.htm關鍵詞:循跡系統;Cortex-M3;紅外感應;模糊控制;Zigbee隨著科技的發展、和諧社會的需求,在惡劣礦井下自動小車取代人力運作、保證礦工的人身安全成為了急需解決的問題。智能循跡小車為改善和提高礦井下運輸貨物,發揮了重要的作用。
  • 輪式移動機器人的循跡設計
    通過循跡傳感器模塊(由光電電晶體和紅外光電二極體所構成)來判別黑色線路徑,再通過 STC89C52單片機控制L298N電機驅動模塊從而實現對兩個直流電機進行控制,最終完成小車的循跡。所設計的輪式移動機器人能沿黑色路徑進行自主行駛,既具備機械本體、直流電機驅動器、檢測傳感裝置和控制器,又是一種可以進行重複編程、自動控制、仿人操作及在三維空間完成靈活運動的電子自動化的生產設備。
  • 輕聊智能拋石車電控——基於Arduino的控制
    但在實際備戰過程中,結合小車的機械以及賽事規則的實際,大部分隊伍還是難以解決這看似「小兒科」的控制。下面我來闡述一下如何根據這個賽題的實際情況做一個漂亮的控制。電控分為三個部分:循跡;停車;旋轉舵機。一、循跡循跡的最常使用方法是用三個紅外傳感器檢測到的高低電平來判斷小車是否沿著黑線正確行駛,在一般的場合,用數字輸出digitalWrite()來讓小車的左右輪正反轉實現差速轉彎足夠了。但在基於本次賽題,頻繁的正反轉無法使自己裝配的齒輪很好的嚙合實現傳動,嚴重影響了「指南」精度,所以並不推薦。使用analogWrite()在調節PWM佔空比,能夠較為平滑的控制循跡。
  • 智能小車再不玩就out了,十款小車隨便挑!
    2、51單片機的安卓藍牙小車 智能遙控小車普通的遙控小車已經滿足不了大眾的需求,要是手機能控制那就好玩多啦。這個小車材料很簡單,四個電機輪子、一個驅動模塊,把程序下載到51單片機就可以直接玩啦,手機上位機程序更是直接安裝使用。有了附件裡的文件,零基礎這樣能玩轉小車。3、三輪智能小車設計腿的蛤蟆不好找,但是三個輪子的小車還是可以設計出來的。
  • 高性能循跡跟蹤小車,怎麼在比賽中擊敗對手?
    這是一個用於比賽的循跡跟蹤小車項目,他是怎麼在兼顧尺寸和速度性的同時滿足小車高性能的要求的呢?循跡小車在創客圈裡面並不是什麼新鮮事,但普通的循跡小車要麼比較大,要麼則比較重,並不適合用來比賽。在我們當地的創客圈子裡面有一個循跡小車的比賽項目,要求上場的小車的尺寸不能超過12x20cm,那我們該怎樣來滿足這樣的需求呢?
  • (10)MSP430F5529 定時器Timer_A
    以msp430f5529板為例淺談外接電源設置 msp430f5529火箭板是近兩年大學生電子設計競賽常用到的單片機開發板 msp430f5529捕獲加串口源碼 msp430f5529捕獲加串口,可以供大家學習單片機源程序如下
  • 基於鴻蒙系統+Hi3861的WiFi小車,可以通過電腦、手機控制
    圖片來自 Pexels 基於鴻蒙系統+Hi3861 的 WiFi 小車 首先,我們得有一套 WiFi 小車套件,其實也是 Hi3861 加上電機、循跡模塊、超聲波等模塊。