-
2021-07-30 12:36:27
(基于Mixly)
1,接线操作:
L298N(使能引脚ENA接pin10,方向引脚接pin4,pin5,使能引脚ENB接pin11,方向引脚接pin6,pin7)
蓝牙HC-05(vcc接5v,GND接GND,RXD接TX,TXD接RX)
volatile int i; void setMotor(int dirpin1,int dirpin2,int speedpin, int speed) { digitalWrite(dirpin2,!digitalRead(dirpin1)); if (speed == 0) { digitalWrite(dirpin1, LOW); analogWrite(speedpin, 0); } else if (speed > 0) { digitalWrite(dirpin1, LOW); analogWrite(speedpin, speed); } else { digitalWrite(dirpin1, HIGH); analogWrite(speedpin, -speed); } } void gostrignt() { setMotor(4, 5, 10, 100); setMotor(7, 6, 11, 100); } void goback() { setMotor(4, 5, 10, -100); setMotor(7, 6, 11, -100); } void goright() { setMotor(4, 5, 10, 100); setMotor(7, 6, 11, 0); } void goleft() { setMotor(4, 5, 10, 0); setMotor(7, 6, 11, 100); } void stop() { setMotor(4, 5, 10, 0); setMotor(7, 6, 11, 0); } void setup(){ pinMode(4, OUTPUT); pinMode(5, OUTPUT); digitalWrite(4, LOW); digitalWrite(5, LOW); pinMode(7, OUTPUT); pinMode(6, OUTPUT); digitalWrite(7, LOW); digitalWrite(6, LOW); Serial.begin(9600); i = 0; } void loop(){ if (Serial.available() > 0) { i = Serial.read(); switch (i) { case 'q': gostrignt(); break; case 'h': goback(); break; case 'z': goleft(); break; case 'y': goright(); break; case 't': stop(); break; } } }
2,手机蓝牙调试app。
"蓝牙调试器“
设置按键,前后左右。
3,控制小车移动。
更多相关内容 -
C51单片机蓝牙控制小车proteus仿真程序源码+相关技术资料.zip
2022-04-28 10:10:00C51单片机蓝牙控制小车proteus仿真程序源码+相关技术资料,仅供学校及设计参考。 -
基于安卓手机蓝牙控制的智能小车设计.zip_智能小车蓝牙控制代码程序
2021-01-06 22:26:22本课题研究的是基于安卓手机蓝牙控制的智能小车设计,基于手机平台,借助于蓝牙技术,设计和实现了一种无线遥控小车新的解决方案。设计以手机控制平台、蓝牙通讯模块、电机驱动模块等硬件模块组成的遥控小车。实现小车... -
基于STM32的蓝牙控制小车
2020-05-25 14:08:31首先上位机软件通过蓝牙模块将控制指令传给主控模块,主控模块通过识别指令进而调用相关子程序控制小车的运动状态,TFT屏显示小车当前的运行状态,再结合L298N电机驱动模块驱动电机,实现小车与用户之间简单的人机... -
基于STM32蓝牙控制小车系统设计(硬件+源代码+论文)-电路方案
2021-04-22 11:47:45基于stm32f4的蓝牙控制小车介绍: 该蓝牙控制小车是一个基于意法半导体与ARM公司生产的STM32F4 DISCOVERY开发板完成,外接集电机驱动模块、电源管理模块、stm32f4主控模块、蓝牙串口通信模块、android控制端模块。 ... -
蓝牙小车遥控程序
2018-01-19 00:15:29蓝牙遥控小车C语言程序,可用于51,stm32最小系统等制作智能小车使用通过该程序能使用手机端蓝牙发送信息到小车蓝牙接收,实现转弯,前进,后退等操作 -
arduino蓝牙小车实现控制程序开源代码
2022-04-19 10:08:52arduino蓝牙小车的实现 ...注:代码来源为引用相关博客加以修改和优化(pwm调速),以实现小车的控制。 在调试的过程中,也存在一些问题,比如小车的左右转有一些bug. //电机引脚设置/ #define leftA_PIN 5 #definearduino蓝牙小车的实现
材料:
- arduino uno 开发板
- 蓝牙JDY-32
- 四驱小车套件
- 杜邦线若干
- 3.7v电池两节
软件:
-
arduino IDE 开发平台
-
移动app----SPP(找了很多款,都搜索不到蓝牙,发现这款还好,一下子就连上了蓝牙)
相关程序:
注:代码来源为引用相关博客加以修改和优化(pwm调速),以实现小车的控制。
在调试的过程中,也存在一些问题,比如小车的左右转有一些bug.#define STOP 0 #define FORWARD 1 #define BACKWARD 2 #define TURNLEFT 3 #define TURNRIGHT 4 int leftMotor1 = 5; int leftMotor2 = 6; int rightMotor1 = 9; int rightMotor2 = 10; void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(leftMotor1, OUTPUT); pinMode(leftMotor2, OUTPUT); pinMode(rightMotor1, OUTPUT); pinMode(rightMotor2, OUTPUT); } void loop() { // put your main code here, to run repeatedly: //usart read if(Serial.available()>0) { char cmd = Serial.read();//读取蓝牙模块发送到串口的数据 motorRun(cmd); } } void motorRun(int cmd) { switch(cmd){ case'F': Serial.println("前进"); //输出状态 analogWrite(leftMotor1,100); analogWrite(leftMotor2,0); analogWrite(rightMotor1,100); analogWrite(rightMotor2,0); delay(3000); Stop(); break; case'B': Serial.println("后退"); // analogWrite(leftMotor1,0); analogWrite(leftMotor2,100); analogWrite(rightMotor1,0); analogWrite(rightMotor2,100); delay(3000); Stop(); break; case 'L': Serial.println("左转"); // digitalWrite(leftMotor1, 100); digitalWrite(leftMotor2,200); digitalWrite(rightMotor1, 200); digitalWrite(rightMotor2, 100); delay(3000); Stop(); break; case 'l': //原地左转 analogWrite(leftMotor1,0); analogWrite(leftMotor2,200); analogWrite(rightMotor1,200); analogWrite(rightMotor2,0); Serial.println("右转"); delay(3000); Stop(); break; case 'R': Serial.println("右转"); // digitalWrite(leftMotor1, 200); digitalWrite(leftMotor2, 100); digitalWrite(rightMotor1, 100); digitalWrite(rightMotor2, 200); delay(3000); Stop(); break; case 'r': //原地右转 analogWrite(leftMotor1,200); analogWrite(leftMotor2,0); analogWrite(rightMotor1,0); analogWrite(rightMotor2,200); delay(3000); Stop(); break; } } void Stop(void) { analogWrite(leftMotor1,0); analogWrite(leftMotor2,0); //左轮静止不动 analogWrite(rightMotor1,0); analogWrite(rightMotor2,0); //右轮静止不动 }
-
stm32蓝牙控制小车.rar
2020-07-20 15:14:31STM32单片机蓝牙控制小车源代码 内置蓝牙接收程序,用蓝牙发送器选择好控制按钮的数值 更改程序数值即可实现任意键控制小车前进后退及转向 -
51单片机蓝牙小车程序详解
2021-11-16 15:02:171.串口初始化 void UART_Init(void) //函数初始化。9600bps@11.0592MHz { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 //... } } 接线: 51单片机蓝牙小车接线(L298N供电,分别电源供电)1.串口初始化
void UART_Init(void) //函数初始化。9600bps@11.0592MHz { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 //AUXR |= 0x40; //定时器1时钟为Fosc,即1T(删除。高级的单片机才有这个选项) //AUXR &= 0xFE; //串口1选择定时器1为波特率发生器(删除。高级的单片机才有这个选项) TMOD &= 0x0F; //清除定时器1模式位 TMOD |= 0x20; //设定定时器1为8位自动重装方式 TL1 = 0xFD; //设定定时初值 TH1 = 0xFD; //设定定时器重装值 ET1 = 0; //禁止定时器1中断 TR1 = 1; //启动定时器1 EA=1; // CPU的总中断允许控制位,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的中断申请。 ES=1; //串行口中断允许位,ES=1,允许串行口中断,ES=0,禁止串行口中断。 }
2.配置端口及驱动程序
sbit IN1=P0^0; sbit IN2=P0^1; sbit IN3=P0^2; sbit IN4=P0^3; void stop() { IN1=0; IN2=0; IN3=0; IN4=0; } void forward() { IN1=1; IN2=0; IN3=1; IN4=0; } void back() { IN1=0; IN2=1; IN3=0; IN4=1; } void left() { IN1=1; IN2=0; IN3=0; IN4=0; } void right() { IN1=0; IN2=0; IN3=1; IN4=0; }
3.主函数
void main() { UART_Init(); while(1) { } }
4.中断函数
void UART_Routine() interrupt 4 //8个中断请求源中的串口中断。 { unsigned char S; //定义一个S存放 SBUF中的数据。 if(RI==1) //判断接收中断请求标志位,TI为1 表示用开始可以开始接收了。 { stop(); //电机控制,先停止再执行指令。 S=SBUF; //手机蓝牙信号发送指令 储存在SBUF中。从SBUF里面 拿出指令赋给S。 switch(S) { case ('1'): //判断S中是不是指令“1” forward();break; case ('2'): //判断S中是不是指令“2” back();break; case ('3'): left();break; case ('4'): right();break; case ('0'): stop();break; } RI=0; //单片机接收中断请求标志位,接收完之后自动变为1,接收完成之后要手动置为0。为0下次才可以接收。 }
注意:
1.中断函数里面的1,2,3,4,0要在手机蓝牙APP中设置。
2.手机蓝牙APP中设置,按下按键/松开按键,电机转动的。
或者按下按键电机转动,松开按键 电机停止等。
完整代码:
#include <REGX52.H> sbit IN1=P0^0; sbit IN2=P0^1; sbit IN3=P0^2; sbit IN4=P0^3; void stop() { IN1=0; IN2=0; IN3=0; IN4=0; } void forward() { IN1=1; IN2=0; IN3=1; IN4=0; } void back() { IN1=0; IN2=1; IN3=0; IN4=1; } void left() { IN1=1; IN2=0; IN3=0; IN4=0; } void right() { IN1=0; IN2=0; IN3=1; IN4=0; } void UART_Init(void) { PCON &= 0x7F; SCON = 0x50; TMOD &= 0x0F; TMOD |= 0x20; TL1 = 0xFD; TH1 = 0xFD; ET1 = 0; TR1 = 1; EA=1; ES=1; } void main() { UART_Init(); while(1) { } } void UART_Routine() interrupt 4 { unsigned char S; if(RI==1) { stop(); S=SBUF; switch(S) { case ('1'): forward();break; case ('2'): back();break; case ('3'): left();break; case ('4'): right();break; case ('0'): stop();break; } RI=0; } }
接线:
-
安卓手机蓝牙控制小车
2015-10-23 20:27:46安卓手机蓝牙控制小车行进路径的代码。包括演示以及安卓手机界面设计,小车端代码等等。非常全面。 -
基于stm32避障+蓝牙控制小车(详细)
2022-04-01 09:15:44闲话:最近很忙,帮朋友做了一个毕设,关于stm32的避障和蓝牙控制小车,昨天刚买器件,这里每天记录一下进程,以免自己摆烂,嘻嘻,这是自己大一就很想做的设计,一直没时间,借此机会,圆一下梦。 回到主题 最终...闲话:最近很忙,帮朋友做了一个毕设,关于stm32的避障和蓝牙控制小车,昨天刚买器件,这里每天记录一下进程,以免自己摆烂,嘻嘻,这是自己大一就很想做的设计,一直没时间,借此机会,圆一下梦。
这个接线,幼儿园的小朋友都可以搞定啦
回到主题
最终实现功能:小车遇到障碍,随机更改方向以及蓝牙控制小车前进+后退+左右转所需材料硬件材料:
1.stm32f103c8t6核心板
2.ST-Link (烧录代码)
3.4WD亚克力小车地盘
4.SG90舵机+超声波模块(HC-SR04)
5.杜邦线若干
6.蓝牙模块(HC-05)
7.L298N(电机驱动模块)
8.18650锂电池所需软件:
1.keil5硬件终于到了,迫不及待开干了,目前已经完成舵机,蓝牙模块的测试,等不及了吧,快看下面步骤吧!
舵机模块:用的是SG90,这个主要用的是PWM,控制占空比来控制舵机的角度,这次测试只是简单的试试是否能让其转到,效果是可以,到后期整合起来的时候再来精确角度,现在完成这个就可以了。
用的是定时器产生周期,然后通过他的定时器通道来控制占空比(每个定时器有4个通道),因为我用的是TM2的通道2,根据datasheet,可以知道,信号脚是PA1,因为他是默认模式,因此不需要开启AFIO复用时钟,看下面代码
20ms
//0.5ms--------------0度;
//1.0ms------------45度;
//1.5ms------------90度;
//2.0ms-----------135度;
//2.5ms-----------180度;我这里周期是20ms
这就实现的简单的让舵机转动。
蓝牙模块
步骤:
1.首先去MIT可视化编程网站开发个简单的蓝牙手机app,开发很简单,百度搜一下就可以开发完成,这里不详细论述,效果如下图
蓝牙开发编程逻辑如下图,跟我的一模一样就好了
2.然后配置蓝牙的AT指令。
连线说明:蓝牙 USB-TTL(CH340)
RX--------->TX
TX--------->RX
GND --------->GND
VCC--------->5V
EN--------->3.3V然后打开串口助手
最重要的是这里,一开始的波特率设置位38400,默认的,记得点击下面的发送新行,因为AT指令都是\r\n结尾的。完成什么两步,就可以实现AT质量了。具体有什么AT指令,可以看蓝牙AT指令开发手册,这里不详细说明。我们主要发:
AT+NAME? //查看蓝牙名字
AT+ROLE? //查看主从模式
AT+UART=9600,0,0 //设置波特率,奇偶校验位,停止位AT指令配置完后,拔掉ENABLE这个根线,再插入电脑,记得波特率选择9600,这时候手机连接蓝牙,就可以实现手机发送信息,串口助手接收啦,看效果图吧
好啦,这里就实现了蓝牙的配置啦,下一步就是通过串口助手,控制电机的驱动就完事啦!这次完成了电机的驱动。我一共有4个电机,我将他们这样串联,如果是2个电机,就不用和我这样串联了,就直接接上电机驱动口就行了,电机和L298N的接线图如下,记得把PWM的信号线接上单片机,我这里没接。
我左边的电机用的是TIM3的通道3和4产生的pwm
接下来就是蓝牙控制电机了
这里只需要在上面配置蓝牙的基础上,在UART1的串口中断改一下代码就行,像我这样
这时候,蓝牙记得接上单片机,不然没反应的哦蓝牙模块 stm32
VCC 5V
GND GND
TXD RXD
RXD TXD这样就可以了,上面的只要一步步跟着来,一定可以实现的。
到这里,蓝牙控制就实现了,现在得让它自己避障
如果上面都实现,只需要在主函数改成这样的代码就行了
发不了视频,就发张图片看看吧,最后说一句,这些不是很难的,大家一步一步跟着我来,一定可以实现的,布布线,这就算完成啦!最后要代码的关注下,私聊我,都是无偿给的哈(因为链接容易失效),有什么不懂的也可以问我哈
-
蓝牙遥控控制智能小车AndroidStudio参考代码
2018-05-27 18:55:39本代码将蓝牙通信封装在一个API里,资源就在里面。代码实现了手机和蓝牙小车之间的通信 -
手把手教你做蓝牙小车(一)
2021-05-19 11:52:01作为一个软件程序猿,在我眼里,Arduino是学习“可怕硬件”的一个便捷通道。它把复杂的硬件名称,属性给我们隐藏起来,只需要一些简单的软件知识,就可以学习硬件开发。1.2 怎么选择Arduino开发板1.2.1 官方版本还是... -
基于STM32蓝牙小车的毕业设计
2021-08-18 20:41:49然后,在android手机上安装“蓝牙通信”应用程序后,打开该APP,然后选择“允许打开蓝牙”。点击设备列表中的“开始搜索按钮”,在设备列表中选择蓝牙模块的名字进行连接。 完成上述工作以后,就可以在手机上通过按... -
android控制蓝牙小车程序
2016-03-27 00:10:23android控制蓝牙小车程序 -
蓝牙控制小车前进后退,左右转及加减速
2019-01-22 12:57:31基于stm32的蓝牙小车控制程序 -
Arduino mega 2560 蓝牙遥控小车程序代码
2020-10-09 20:34:11本代码为大二单片机课程大作业,使用arduino mega2560板子控制蓝牙小车运动,实现了测速,测量温度,加速减速,灯光显示运动状态等功能,后续有时间我还会上传各个模块的介绍,下载的朋友可以私信我要硬件部分的资料... -
可以用蓝牙控制小车的程序
2015-05-19 16:49:23可以用蓝牙控制小车的程序,实现无线控制自己的小车。 -
arduino的蓝牙小车程序
2018-01-28 21:37:15arduino的蓝牙小车程序,手机app控制......................................................... -
智能蓝牙小车程序
2018-07-12 09:48:22使用蓝牙模块对智能小车进行驱动,可是实现手机对他的控制 -
基于51单片机的蓝牙遥控小车程序【硬软件部分】
2018-08-23 12:26:41****这是我写的第一篇博客,如果有问题欢迎指正...小车模型一个(直流电机一对) 电池18650一对 HC-08蓝牙模块 蓝牙模块主要要掌握其基本参数以及工作原理即可,附下图。 L298模块 l298内部包含4... -
智能小车蓝牙控制 基于stm32f103
2019-04-06 15:21:13可以用手机APP操控小车的运动 #include "delay.h" #include "sys.h" #include "usart.h" #include "stm32f10x_tim.h" #include "motor.h" #include "PWM.h" int main(void) { u16 t; u16 len; u16 times=0... -
四轮小车(BTN驱动电机)(可以用微信小程序控制小车(蓝牙通信),也可使用超声波自动避障,其中包括原理...
2021-03-19 20:39:36可以用蓝牙小程序控制小车,也可哟使用超声波模块自动避障 -
蓝牙控制小车
2016-12-28 20:00:17手机客户端蓝牙,发送字符1代表...双轮小车,1个l298n控制2个直流电机。只有前进的情况下,允许左转和右转。还支持按键控制。在不连接蓝牙的情况下,使用电脑pc端的串口终端亦可控制。蓝牙的作用相当于pc端的串口终端。 -
毕业论文 | 基于安卓手机蓝牙控制的智能小车设计(源代码)
2021-01-08 19:54:09本课题研究的是基于安卓手机蓝牙控制的智能小车设计,基于手机平台,借助于蓝牙技术,设计和实现了一种无线遥控小车新的解决方案。设计以手机控制平台、蓝牙通讯模块、电机驱动模块等硬件模块组成的遥控小车。实现小车... -
以STC15F2K60S2单片机为控制核心,手机蓝牙等模块为辅助,开发了一个蓝牙遥控小车
2019-05-05 15:39:03本代码已经过调试,里面包含蓝牙通讯,51单片机驱动小车的内容,只需在手机上下载一个蓝牙APP,将本代码烧进单片机小车,与手机端蓝牙连接即可 -
基于STM32的小车蓝牙程序
2018-08-06 08:46:48这是基于STM32的小车蓝牙程序,拥有PWM调速功能,能实现前进,后退,左转,右转。 -
蓝牙控制51小车 源代码及安卓客户端原理图等
2019-10-16 23:55:48控制器部分:接收传感器部分传递过来的信号,并根据事前写入的决策系统(软件程序),来决定蓝牙小车对外部信号的反应,将控制信号发给执行器部分。好比人的大脑。 执行器部分:驱动蓝牙小车做出各种行为,包括发出... -
蓝牙遥控小车(详细免费教程)
2022-03-01 20:05:01一、教程内容 1、组装(硬件接线) 2、APP制作(遥控界面) 3、下位机程序编写 二、讲解内容 ...:有一块52/51单片机最小...给单片机(下位机)来个程序,小车能不能起飞,就靠它了!安排 下载进去到单片鸡!先... -
STM32循迹避障蓝牙小车.rar
2021-11-04 11:03:58STM32循迹避障蓝牙小车,有啥问题可以留言吧,应该能看到。笔者自写可用!!!