接上一部分基于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 */
}
跳下一部分基于STM32的智能循迹避障小车实验(舵机部分)
最后附上整个项目的HAL库源码:
百度网盘 请输入提取码文章来源:https://www.toymoban.com/news/detail-506247.html
提取码:1234文章来源地址https://www.toymoban.com/news/detail-506247.html
到了这里,关于基于STM32的智能循迹避障小车实验(循迹部分)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!