標題:
STM32智能小車之 循跡
[打印本頁]
作者:
www240697738
時間:
2017-5-21 20:05
標題:
STM32智能小車之 循跡
一般小車實現(xiàn)了跑動之后,接著要做的就是讓它按照我們設定的路線進行巡線走路,那么就要用到循跡模塊了。網(wǎng)上循跡模塊很多的,有好多種,原理就那樣
,就是利用紅外傳感原理。小車能夠按照黑線走是因為當紅外線的光照到黑線上時會被吸收,從而檢測部到信號,而照到白線時可以反射回去,也就可以接受得到,因此,空值起來也很簡單,一句話,
檢測和模塊相連管腳的電平的高低。
哪么我就來說說,該怎樣檢測呢。
通過相應的函數(shù)讀取管腳的電平值就行了。
GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_12)== 1
這里就是檢測下,GPIOD 12管腳的值是否等于1,進而進行相應的動作,空值小車的轉(zhuǎn)向。左邊檢測到了,說明小車往左偏,應該向左偏;右邊類似。很簡單吧。嘻嘻!
最重要的其實還是控制循跡模塊的這些管腳,首先對他們進行的一系列的初始化操作。因為要判斷這些管腳的狀態(tài),因此,在初始化的時候應該講他們?nèi)吭O置成浮空輸入。關(guān)于管腳的4中初始化狀態(tài),具體可以參考stm32參考手冊,里面講的很詳細,4種輸入,4種輸出。
下面貼出初始化的代碼:
/****************************************************************************
* @函數(shù)名:Traction_GPIO_Configuration(void)
* @描述: 小車循跡管腳初始化
* @輸入: 無
* @輸出: 無
* @返回值:無
****************************************************************************/
void Traction_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);//使能PD端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14; //PD.11~PD.14端口配置
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空輸入
GPIO_Init(GPIOD, &GPIO_InitStructure);
//GPIO_SetBits(GPIOD,GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14); //PD.11.....PD14 輸出高電平
}
復制代碼
上面的函數(shù)主要是對所控制的管腳進行了相應的初始化。其他的操作,就是讀每個控制管腳的值了,然后進行相應的操作。
我用的循跡模塊是這個型號的,我覺得還行。
0.png
(91.96 KB, 下載次數(shù): 75)
下載附件
2017-5-21 21:05 上傳
湊活能用!
一直在堅持,一直沒放棄……
作者:
13852833337
時間:
2017-6-16 05:25
謝謝分享,很不錯的資料,感謝
作者:
13720249551
時間:
2017-7-22 19:04
有完整的資料嗎?
作者:
13720249551
時間:
2017-7-22 19:04
需要什么硬件
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1