智能小车STM32——蓝牙循迹

本文介绍了基于STM32的智能小车设计,包括蓝牙遥控功能,用户可以通过手机发送指令控制小车行驶。此外,小车具备循迹能力,使用红外传感器实现自动沿线路行驶。硬件部分涉及STM32最小系统板、红外传感器、电机驱动模块、蓝牙模块等,详细阐述了电机驱动、循迹模块和蓝牙模块的配置与调试方法。
摘要由CSDN通过智能技术生成
1、功能介绍

蓝牙切换功能:智能小车内置了蓝牙模块,可以通过手机或其他蓝牙设备与之连接。用户可以通过手机发送指令控制小车的运动方向,实现远程控制。

循迹功能:智能小车配备了红外线传感器,可以实现循迹功能。通过检测地面上的黑线或白线,小车能够自动沿着线路行驶,实现自动导航功能。

1.硬件准备

小车底盘一个(两驱),5号4节电池盒一个,STM32f103c8t6最小系统板,红外光电反射传感器两个,ST-LINK下载器,HC-05蓝牙模块、CH340模块、L298N电机驱动模块,焊接设备、一些杜邦线、也可以再准备一个面包板。

硬件搭设

硬件及程序

1.电机驱动

1.主电源正极接12v,主电源负极接GND。

 2.先将5V的跳线帽短接,这样不用额外通过5V输入端外加电源在给单片机供电,可直接有5V输入端连接导线直接给单片机供电,如不将跳线帽短接,则5V输入端输出的电压为12V,连接单片机会导致单片机烧毁

3.A相使能,B相使能是对输入1.2.3.4的控制,如果使能A和使能B加上跳线帽的话,则只需要通过控制输入1.2(一个电机),3.4(另外一个电机)分别给两个电机的两端0和1实现正反转,都给0或者都给1则电机不会转,如果使能A和使能B不加上跳线帽的话,当AB为低电平时,输入1.2.3.4都不会工作,所以可以通过控制使能A和使能B的开和关的周期来控制产生PWM波。
 

2.小车运动

  • 当IN1、IN3为高电平,IN2、IN4为低电平时,电机正转
  • 当IN1、IN3为低电平,IN2、IN4为高电平时,电机反转
  • 都为高电平时,电机不转
  • 电机的正转和反转与跟电机的接线不同而不同,注意自己调试

motor.c

#include "stm32f10x.h"  
#include "pwm.h"
 
void motor_init()
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	
	//2.设置GPIO模式
	//PB12~PB15 通用推挽输出
 
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 |GPIO_Pin_8 |GPIO_Pin_11;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	  PWM_Init();
	
}
 
 
void car_go()
{
		//左轮
	GPIO_SetBits( GPIOA, GPIO_Pin_6);
	GPIO_ResetBits( GPIOA,GPIO_Pin_7);
	TIM_SetCompare3(TIM3, 90  );
 
	//右轮
	GPIO_SetBits( GPIOA, GPIO_Pin_8);
	GPIO_ResetBits( GPIOA,GPIO_Pin_11);
	TIM_SetCompare4(TIM3, 90  );
	
}
void car_back()
{
	//左轮
	GPIO_ResetBits( GPIOA, GPIO_Pin_6);
	GPIO_SetBits( GPIOA,GPIO_Pin_7);
	TIM_SetCompare3(TIM3, 90  );
	
	/
  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值