赞
踩
接上一部分基于STM32的智能循迹避障小车实验(小车运动部分)
上一篇我们成功让小车动起来了,现在我们试着让小车听话地运动。
这一部分主要利用了循迹模块两个
图 1循迹模块
就是这个东西:
一共三个引脚
VCC:电源线,连接单片机的3.3V-5V
GND:地线,连接单片机的接地(GND)
OUT:开关信号输出(传感器检测到黑线的时候,这个引脚呈现高电平)
循迹模块工作原理:红外发射器一直发射红外线,红外线经发射后被接收,此时输出低电平,输出指示灯点亮。
黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块输出高电平,输出指示灯熄灭。
注意:当循迹模块距离地面太高时,会出现与循迹模块遇到黑线的一样情况,因此循迹模块距离地面不要太高。
了解了循迹模块的特点后,我们开始连线:将两个模块的VCC和GND分别接到开发板的VCC和GND,最后一个OUT接到普通GPIO口上,将两个循迹块固定到小车前方,如图 2循迹模块安装实物图。
图 2循迹模块安装实物图
安装完成后我们进入编程实现部分。
CobeMX设置
这部分我们直接打开之前完成的运动小车部分,在其上继续完成。打开CobeMX。循迹模块只需使用普通的GPIO口设置为GPIO_Input(输入)模式,这里我选择的是PB12(左侧循迹模块)和PE8(右侧循迹模块)。
图 3循迹模块CobeMX设置
完成基本设置后点击生成代码。
代码实现
现在我们只需要识别循迹模块OUT接口对应的GPIO口电平即可了解小车的运动路线情况。此处实现比较简单,直接上代码:
- // 循迹
-
- void Car_XunJi(void)
-
- {
-
- if(Right_Light == GPIO_PIN_SET) // 右侧检测到黑线
-
- {
-
- if(Left_Light == GPIO_PIN_SET) // 左侧检测到黑线
-
- {
-
- Car_Go(); // 同时检测到黑线就直行
-
- }
-
- else
-
- {
-
- Car_Right(); // 只有右侧检测到黑线,右转
-
- }
-
-
-
- }
-
- if(Left_Light == GPIO_PIN_SET)
-
- {
-
- Car_Left(); // 只有左侧检测到黑线,左转
-
- }
-
- else
-
- {
-
- Car_Go(); // 左右两侧都没有检测到黑线救直行
-
- }
这样就完成了循迹函数的书写,接下来只需在主函数中调用这个函数即可完成循迹小车。
主函数部分:
- int main(void)
-
- {
-
- /* USER CODE BEGIN 1 */
-
- /* USER CODE END 1 */
-
- /* MCU Configuration--------------------------------------------------------*/
-
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
-
- HAL_Init();
-
- /* USER CODE BEGIN Init */
-
- /* USER CODE END Init */
-
- /* Configure the system clock */
-
- SystemClock_Config();
-
- /* USER CODE BEGIN SysInit */
-
- /* USER CODE END SysInit */
-
- /* Initialize all configured peripherals */
-
- MX_GPIO_Init();
-
- MX_TIM2_Init();
-
- MX_USART1_UART_Init();
-
- MX_TIM3_Init();
-
- MX_TIM4_Init();
-
- /* USER CODE BEGIN 2 */
-
- printf("这是智能小车方向控制测试程序");
-
- Car_Go();
-
-
-
- /* USER CODE END 2 */
-
- /* Infinite loop */
-
- /* USER CODE BEGIN WHILE */
-
- while (1)
-
- {
- Car_XunJi();
- HAL_Delay(100);
-
- /* USER CODE END WHILE */
-
- /* USER CODE BEGIN 3 */
-
- }
-
- /* USER CODE END 3 */
-
- }
最后附上整个项目的HAL库源码:
提取码:1234
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。