-
2021-05-21 02:42:42
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/****************************************************************************
硬件连接
P1_6 接驱动模块ENA 使能端,输入PWM信号调节速度
P1_7 接驱动模块ENB 使能端,输入PWM信号调节速度 P3_4 P3_5 接IN1 IN2 当 P3_4=1,P3_5=0; 时左电机正转 驱动蓝色输出端OUT1 OUT2接左电机
P3_4 P3_5 接IN1 IN2 当 P3_4=0,P3_5=1; 时左电机反转
P3_6 P3_7 接IN3 IN4 当 P3_6=1,P3_7=0; 时右电机正转 驱动蓝色输出端OUT3 OUT4接右电机
P3_6 P3_7 接IN3 IN4 当 P3_6=0,P3_7=1; 时右电机反转 P1_0接四路寻迹模块接口第一路输出信号即中控板上面标记为OUT1
P1_1接四路寻迹模块接口第二路输出信号即中控板上面标记为OUT2
P1_2接四路寻迹模块接口第三路输出信号即中控板上面标记为OUT3
P1_3接四路寻迹模块接口第四路输出信号即中控板上面标记为OUT4
四路寻迹传感器有信号(白线)为0 没有信号(黑线)为1
四路寻迹传感器电源+5V GND 取自于单片机板靠近液晶调节对比度的电源输出接口
关于单片机电源:本店驱动模块内带LDO稳压芯片,当电池输入最低的电压6V时候可以输出稳定的5V
分别在针脚标+5 与GND 。这个电源可以作为单片机系统的供电电源。
****************************************************************************/ #include #define Left_moto_pwm P1_6 //接驱动模块ENA 使能端,输入PWM信号调节速度
#define Right_moto_pwm P1_7 //接驱动模块ENB #define Left_1_led P1_0 //四路寻迹模块接口第一路
#define Left_2_led P1_1 //四路寻迹模块接口第二路
#define Right_1_led P1_2 //四路寻迹模块接口第三路
#define Right_2_led P1_3 //四路寻迹模块接口第四路
#define Left_moto_go {P3_4=0,P3_5=1;} //P3_4 P3_5 接IN1 IN2 当 P3_4=0,P3_5=1; 时左电机前进
#define Left_moto_back {P3_4=1,P3_5=0;} //P3_4 P3_5 接IN1 IN2 当 P3_4=1,P3_5=0; 时左电机后退
#define Right_moto_go {P3_6=0,P3_7=1;} //P3_6 P3_7 接IN1 IN2 当 P3_6=0,P3_7=1; 时右电机前转
#define Right_moto_back {P3_6=1,P3_7=0;} //P3_6 P3_7 接IN1 IN2 当 P3_6=1,P3_7=0; 时右电机后退 void main(void)
{ Left_moto_pwm =1;
Right_moto_pwm=1; //使能端置1全速前进 while(1) /*无限循环*/
{ Left_moto_go;
Right_moto_go; }
}
微信:156125701
更多相关内容 -
嵌入式小车比赛
2018-06-22 10:49:13介于高职组嵌入式应用开发赛项,小车循迹,红绿灯识别,车牌识别,交通灯识别,二维码识别代码功能齐全 -
智能小车大赛资料
2019-01-04 11:06:51智能小车大赛资料 -
近十个学校的智能小车比赛程序(无保留),要的来拿
2019-06-11 16:07:01近十个学校的比赛程序(无保留),你懂得。非常经典,做智能车的不容错过噢。 好的内容都是回复可见的 程序1. #include <hidef.h> /* common defines and macros */ #include <mc9s12...近十个学校的比赛程序(无保留),你懂得。非常经典,做智能车的不容错过噢。
好的内容都是回复可见的
程序1.- #include <hidef.h> /* common defines and macros */
- #include <mc9s12dg128.h> /* derivative information */
- #pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
- /*************************************************************
- 摄像头数据
- ***************************************************************/
- unsigned int AbsoluteTime; // 系统时钟,用于闭环调速
- unsigned int Picture1[10][4]={{600,600,0,40},{600,600,0,60},{600,600,0,80},
- {600,600,0,100},{600,600,0,120},{600,600,0,140},
- {600,600,0,160},{600,600,0,180},{600,600,0,200},
- {600,600,0,220}};
- unsigned int Picturewrflag[10]; //图像数据真伪判别标志
- int PictureCoordinate[10]={0,0,0,0,0,0,0,0,0,0};//图像坐标
- unsigned int FieldCNT;
- int RowCNT;
- int CapFlag;
- long coordinate1,coordinate2,line_wideth;
- int se = 0;
- int PMCNT,NextPMCNT;
- int curvature;//曲率
- int ServoMotorPWM;
- int i;
- int TurningLine;
- /*********************************************************************
- PID数据
- ***********************************************************************/
- static int CurrentSpeed=0,DstSpeed=90;
- static int waittime=0;
- int speed_0=0;
- int e=0,e_1=0;
- int ie=0;
- int Kp=35;
- int Kd=0;
- int Ki=10;//5;
- int PACN0_i;
- int SpeedMin=90,SpeedMax=400;
- char a;
- /***********************************************************************
- 路径记忆数据
- ************************************************************************/
- int length=0;
- int bendstraightMemory[100];//直道弯道数据存储
- /*********************************************************************
- 摄像头函数
- *********************************************************************/
- void ETCInit(void);
- void CCDInit(void);
- void PWMInit(void);
- void SystemInit(void);
- void PictureDispose(void);
- /*********************************************************************
- PID函数
- **********************************************************************/
- void SpeedPID(void);
- static void RTIInit(void);
- void SetSpeed(void);
- /***********************************************************************
- 路径记忆函数
- ************************************************************************/
- void JourneyMemory(void);
- /***********************************************************************/
- void main(void) {
- DisableInterrupts;
- SystemInit();
- EnableInterrupts;
- for(;;) {
- EnableInterrupts;
- JourneyMemory();
- PictureDispose();
- }
- }
- /************************************************************************
- 系统初始化区域
- **************************************************************************/
- void SystemInit(void)
- { AbsoluteTime = 0; // 初始化系统时钟
- DDRB = 0xff; // 初始化PORTB,用于数据输出
- FieldCNT = 0; // 场计数器初始化
- ETCInit();
- PWMInit();
- RTIInit();
- }
- static void RTIInit(void) {
- /* setup of the RTI interrupt frequency */
- /* adjusted to get 1 millisecond (10.24 ms) with 16 MHz oscillator */
- RTICTL = 0x64; /* set RTI prescaler */
- CRGINT = 0x80; /* enable RTI interrupts */
- }
- void ETCInit(void)
- {
- TCTL4_EDG0B=0;
- TCTL4_EDG0A=1; //0 channel Capture on rising edges only
- TCTL3_EDG7B=1;
- TCTL3_EDG7A=0; //7 channel Capture on falling edges only
- TIOS_IOS0=0; //0 channel input compare
- TIOS_IOS7=0; //7 channel input compare
- TIOS_IOS4 = 0; // 视频输入捕获
- TIOS_IOS5 = 0; // 行同步
- TIOS_IOS6 = 0; // 场同步
- TSCR1_TEN = 1; // 使能计数
- TSCR1_TFFCA = 1; // 捕获中断、比较中断标志位通过读取数据和写入数据清除
- PACTL=0x40; //16位累加器A使能 ,下降沿工作
- PBCTL_PBEN=1;//16位累加器B使能
- TC4 = TC4; // 清除中断标志位
- TC5 = TC5;
- TC6 = TC6;
- CCDInit();
- }
- **********************************
- 函数名称:CCDInit
- 功能描述:图像空间初始化
- ********************************
- void PWMInit(void) {
- PWME = 0x00; // 禁止所有的PWM输出通道
- PWMPOL = 0xFF; // 所有的PWM输出高电平有效
- PWMCLK = 0x00; // Clock A && Clock B is the clock source for PWM channel 0~7
- PWMPRCLK = 0x03; // bus clock:24M;Clock A--8分频,Clock B--0分频
- PWMCAE = 0x00; // 所有的PWM输出为左对齐方式输出
- PWMCTL = 0xFF; // 将两个8位的PWM输出通道组合成一个16位的PWM输出通
- PWMCNT01 = 0xFF; // PWM计数器清零
- PWMCNT23 = 0xFF;
- PWMCNT45 = 0xFF;
- PWMCNT67 = 0xFF;
- PWMPER01 = 60000; // 驱动前轮舵机,周期20ms,频率50Hz
- PWMPER23 = 2400; //周期0.1ms,频率10kHz
- PWMPER67 = 2400;
- // 设置占空比初始值
- PWMDTY01 = 4200//舵机要求PWM高电平宽度0.5ms~2.5ms对应计数器数值为3800~4450~5150右
- PWMDTY23 =1660;
- PWMDTY67 =0;
- PWME = 0xFF; // 所有PWM通道使能
- }
- EnableInterrupts;
- }
- /**************************************************************************
- 速度PID控制区域
- ***************************************************************************
- interrupt void Real_Time_Interrupt(void)
- {
- AbsoluteTime++; // 运行系统时钟
- SpeedPID();
- PORTB=(char)(PACN10);
- CRGFLG = 0x80; // 清中断标志
- EnableInterrupts;
- }
- /*******************************************************************/
- void SpeedPID(void)
- {
- PACN0_i=PACN10;
- CurrentSpeed = PACN0_i;//码盘输入引脚PT0
- PACN10=0;
- e_1=e;
- e=CurrentSpeed-DstSpeed;//-CurrentSpeed;
- if(e<-20){
- PWMDTY67 =0;
- PWMDTY23 =2400;
- }
- else if(e>20){
- PWMDTY23=0;
- PWMDTY67=2400;
- }
- else
- {
- ie+=e;
- speed_0=speed_0-(Kp*e/10)-(int)(Ki*ie/1000)+Kd*(e-e_1);
- SetSpeed();
- }
- }
- void SetSpeed(void)
- { if(speed_0>2400)
- speed_0=2400;
- PWMDTY67 =0;
- PWMDTY23 =speed_0;
- }
文件到原文下载,原文出自:https://bbs.usoftchina.com/thread-205436-1-1.html
-
2013年飞思卡尔智能小车比赛创意组
2013-06-21 21:19:052013年飞思卡尔智能小车比赛创意组,2013年飞思卡尔智能小车比赛创意组 -
电子竞赛,智能小车资料大全.zip
2020-03-11 15:05:11电子竞赛,智能小车资料大全。电动车车翘班,基于pic,基于单片机,全国大学生电子设计大赛个参赛作品课件,代码等 -
飞思卡尔智能小车比赛单片机硬件设计资料
2010-12-07 10:25:37由飞思卡尔半导体公司协办的全国大学生智能小车比赛,内附详细的单片机硬件设计资料 -
飞思卡尔智能小车比赛的报告
2009-04-02 18:52:44本报告是为参加“飞思卡尔”杯全国大学生智能汽车邀请赛而撰写的技术报告,系统的介绍了哈尔滨工程大学“极品飞车2号”智能寻线小车的开发研制过程。采取比较成熟的技术,配合创新的设计方案,通过实际试验表明模型... -
赛道计时,一个用时智能小车比赛的VB串口程序设计
2009-03-29 11:48:07一个用时智能小车比赛的VB串口程序设计,可以记录每辆小车跑完一圈下来的成绩,并且可以保存起来,没跑完一圈自动刷新。继续记录下一圈的成绩。非常好的程序。 -
适合初学者借鉴的arduino智能小车代码集合
2018-10-01 15:45:19内包含了前进后退基础功能代码 蓝牙小车代码 红外遥控小车 超声波避障小车 红外避障小车 循迹小车 小车花式动作等多方面的代码,非常适合初学arduino的小白借鉴使用,代码都是经过验证的,没有bug -
电子设计大赛智能小车方案
2009-03-12 09:58:55本文介绍了一种以AT89S52单片机作为检测和控制核心的简易智能小车设计方法,实现了小车的自动识别路线,判断并自动躲避障碍,选择正确行进路线,寻找光源等功能。 -
arduino+opemnv智能搬运物流小车(附设计电路)
2020-08-09 00:31:50本设计方案采用的是Arduino Mega 2560控制板,结合Open mv 模块进行视觉处理从而进行颜色识别...本设计方案切实可行,已经得到了比赛的验证,对往后的赛事或相关的设计制作具有一定的参考和使用价值。 智能车 diy制作 -
Car2018_代码_百科荣创_
2021-10-01 16:05:44该程序在百科荣创的嵌入式开发平台实现智能小车,该车主控为STM32系列芯片(This program realizes the tracing function of intelligent car on the embedded development platform of Encyclopedia Rongchuang.... -
北京百科融创2014嵌入式国赛小车
2014-07-06 13:11:44北京百科融创2014嵌入式国赛小车 -
嵌入式系统/ARM技术中的智能小车多功能传感器模块的设计方法
2020-10-23 11:55:16智能小车是集微处理器技术、传感技术、信息处理技术等多种技术于一体的综合系统,目前,智能小车在军事、民用及科学研究等领域都已得到广泛的应用。更是受到众多电子类竞赛的青睐,如全国大学生电子竞赛、飞思卡尔... -
2021年嵌入式技术应用开发省赛资料 交职院智能小车程序(二等奖).zip
2021-11-23 09:47:232021年嵌入式技术应用开发省赛资料 百科融创智能车 交职院智能小车程序(二等奖),源代码,源代码 -
探索者全地形(2)_工科比赛_全地形越障小车_
2021-09-30 06:17:30自动寻黑线,可攀爬台阶,稳定性好。我使用的这个代码在工科比赛中获得第一名。 -
全国大学电子设计大赛 智能小车单片机程序及报告+流程图+管脚说明
2009-07-25 10:57:32全国大学电子设计大赛 智能小车单片机程序及报告+流程图+管脚说明 绝对经典 珍稀资源 -
工程训练综合能力竞赛-智能物流小车.zip
2021-02-26 14:46:36大学期间参加的一项比赛,包含省赛和国赛两大部分 省赛获得湖南省第二,国赛获得全国第九 用的编码盘定位模块,可实现直线/折线/弧线行驶 无聊放置精度达到90%以上,整个过程动作非常顺畅 参赛视频见:... -
智能小车资料
2018-02-09 23:16:52智能小车,飞思卡尔比赛用小车,分为电磁组,光电组,ccd组,小车可自动寻找路线,自动驾驶 -
智能小车设计指导
2013-04-23 18:11:24这类小车就是校内智能小车比赛 飞思卡尔采用的类型,通常为后轮直流电机驱动+前轮舵机转向的方式,但是也有例外,像 2007 的全国大学生电子设计竞赛中的电动车跷跷板一题,为了达到精确的控制效果,很多人将后轮改 ... -
2003年智能小车(全国大学生电子设计竞赛).zip
2021-03-23 15:56:222003年智能小车(全国大学生电子设计竞赛)源代码,适用于毕业设计、比赛、出书项目实例,实际设计参考。 -
单片机智能小车前进后退左转右转比赛程序
2021-05-24 06:19:42/********************************************************************************** ... QX-A51智能小车* 【外部晶振】: 11.0592mhz* 【主控芯片】: STC89C52* 【编译环境】: Keil μVisio4* **************.../*********************************************************************************
* 【实验平台】: QX-MCS51 单片机开发板 & QX-A51智能小车
* 【外部晶振】: 11.0592mhz
* 【主控芯片】: STC89C52
* 【编译环境】: Keil μVisio4
* ********************************【接线说明】********************************
以下"A_"表示智能小车底板~~~"B_"表示开发板
*开发板供电线 :A_J5-VCC~~~B_VCC或5V0 A_J6-GND~~~B_GND (一共使用2根杜邦线)
*电机控制线 :A_J10-P1.2至P1.7 对应接到B_P1.2至P1.7 (一共使用6根杜邦线)
*避障寻迹反馈线:A_J11-P3.2至P3.5 对应接到B_P3.2至P3.5 (一共使用4根杜邦线)
******************************************************************************
* 【程序功能】:智能小车前进后退左转右转综合实验
* 【使用说明】:接线无误后,烧写程序打开电源开关小车全速前进-后退-右转-左转-停止
* 【注意事项】:避免小车撞向障碍物或小车轮子堵转,小车电压不能低于6V
**********************************************************************************/
#include
sbit IN1 = P1^2; //为1 左电机反转
sbit IN2 = P1^3; //为1 左电机正转
sbit IN3 = P1^6; //为1 右电机正转
sbit IN4 = P1^7; //为1 右电机反转
sbit EN1 = P1^4; //为1 左电机使能
sbit EN2 = P1^5; //为1 右电机使能
void delay(unsigned int z)//毫秒级延时
{
unsigned int x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
void main()
{
//小车直行
EN1 = 1; //为1 左电机使能
EN2 = 1; //为1 右电机使能
IN1 = 0;//为1 左电机反转
IN2 = 1;//为1 左电机正转
IN3 = 1;//为1 右电机正转
IN4 = 0;//为1 右电机反转
delay(3000);//毫秒级延时
//小车停止
EN1 = 0; //为1 左电机使能
EN2 = 0; //为1 右电机使能
delay(3000);//毫秒级延时
//小车后退
EN1 = 1; //为1 左电机使能
EN2 = 1; //为1 右电机使能
IN1 = 1;//为1 左电机反转
IN2 = 0;//为1 左电机正转
IN3 = 0;//为1 右电机正转
IN4 = 1;//为1 右电机反转
delay(3000);//毫秒级延时
//小车停止
EN1 = 0; //为1 左电机使能
EN2 = 0; //为1 右电机使能
delay(3000);//毫秒级延时
//小车右转
EN1 = 1; //为1 左电机使能
EN2 = 1; //为1 右电机使能
IN1 = 0; //为1 左电机反转
IN2 = 1; //为1 左电机正转
IN3 = 0; //为1 右电机正转
IN4 = 0; //为1 右电机反转
delay(3000);//毫秒级延时
//小车停止
EN1 = 0; //为1 左电机使能
EN2 = 0; //为1 右电机使能
delay(3000);//毫秒级延时
//小车左转
EN1 = 1; //为1 左电机使能
EN2 = 1; //为1 右电机使能
IN1 = 1; //为1 左电机反转
IN2 = 1; //为1 左电机正转
IN3 = 1; //为1 右电机正转
IN4 = 0; //为1 右电机反转
delay(3000);//毫秒级延时
//小车停止
EN1 = 0; //为1 左电机使能
EN2 = 0; //为1 右电机使能
while(1);
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
-
行业资料-交通装置-一种比赛用能自动泊车的智能小车.zip
2021-08-17 14:07:56行业资料-交通装置-一种比赛用能自动泊车的智能小车.zip -
51单片机智能小车
2021-05-12 22:37:39最近学校举办了一个智能小车比赛,比赛内容为用手机蓝牙控制小车拥有5个功能,分别是超声波舵机避障,测距(显示在LCD1602上), 红外跟随,循迹还有蓝牙控制小车前进后退左转又转以及停止。 文章目录 蓝牙...最近学校举办了一个智能小车比赛,比赛内容为用手机蓝牙控制小车拥有5个功能,分别是超声波舵机避障,测距(显示在LCD1602上),红外跟随,循迹还有蓝牙控制小车前进后退左转又转以及停止。
前言
基于51单片机的智能小车是比较基础的小车,很适合初学者学习
一、整体思路
这款小车单片机的芯片是52RC的,是有3个定时器T0,T1,T2,一般51的是只有两个定时器T0和T1,在这里我们将PWM模块和舵机共用一个定时器T0,定时器T1用于超声波,定时器T2用做串行口的波特率给蓝牙使用。
二、代码部分
1.定时器初始化
void TimeInit() { T2MOD=0x01;//蓝牙 T2CON=0x30; TH2=0xfd; TL2=0xfd; RCAP2H=0xFF; RCAP2L=0xDC; TMOD|=0x11;//定时器1用于超声波,定时器0舵机和PWM SCON=0x50; PCON=0x00; TH0=(65536-100)/256;//定时0.1ms TL0=(65536-100)%256; TH1=0x00; TL1=0x00; TR2=1; ET1=1; ET0=1; PS=1; EA=1; TR0=1; ES=1; PT1=0; IE=0x92; }
2.蓝牙部分控制所有功能
while(1) //程序主循环 { if(flag_REC==1) // { flag_REC=0; if(buff[0]=='O'&&buff[1]=='N') //第一个字节为O,第二个字节为N,第三个字节为控制码 switch(buff[2]) { case up : // 前进 send_str( ); run(); ShowPort=LedShowData[1]; break; case down: // 后退 send_str1( ); back(); ShowPort=LedShowData[2]; break; case left1: // 左转 send_str3( ); leftrun(); ShowPort=LedShowData[3]; break; case right1: // 右转 send_str2( ); rightrun(); ShowPort=LedShowData[4]; break; case stop: // 停止 send_str4( ); ShowPort=LedShowData[0]; stop1(); break; case csbcj: //舵机超声波测距 send_str5( ); ShowPort=LedShowData[5]; Robot_Avoidance(); break; case hwgs: //红外跟随 send_str6( ); ShowPort=LedShowData[6]; Hwgs(); break; case xj: //循迹 寻黑线 send_str7( ); ShowPort=LedShowData[7]; Hwgs(); break; } } }
3.红外跟随
void Hwgs() { while(1) { if(LeftIRBZ==1&&RightIRBZ==1) stop1(); //调用停止函数 前面没有光线 if(LeftIRBZ==1&&RightIRBZ==0) //右边检测到红外信号 { rightrun2(); //调用小车右转函数 delay(1); } if(RightIRBZ==1&&LeftIRBZ==0) //左边检测到红外信号 { leftrun2(); //调用小车左转函数 delay(1); } if(RightIRBZ==0&&LeftIRBZ==0) //两边传感器同时检测到红外 { run(); //调用前进函数 delay(1); //前进40毫秒 } if(buff[2]!=hwgs)return; } return; }
4.循迹
在这里我们用到的是三路循迹,有的小车可能有4路、5路循迹, 在这里可以自己根据PWM调节速度。
void Robot_Traction() //机器人循迹子程序 { if(Left_1_led==0&&mid_1_led==1&&Right_1_led==0)//亮的时候为0,不亮才检测到黑线 { run1(); } if(Left_1_led==1&&mid_1_led==1&&Right_1_led==0) { left2(); } if(Left_1_led==1&&mid_1_led==0&&Right_1_led==0) //原地向左旋转 { leftrun(); } if(Left_1_led==0&&mid_1_led==1&&Right_1_led==1) { right2(); } if(Left_1_led==0&&mid_1_led==0&&Right_1_led==1) //原地向右旋转 { rightrun(); } if(Right_1_led==1&&Left_1_led==1) { run(); } }
三、完整代码
下面是完整的代码
https://pan.baidu.com/s/1CYsrn7LoVRdI6DA6AxBVkw
链接:https://pan.baidu.com/s/1CYsrn7LoVRdI6DA6AxBVkw
提取码:srkl
-
嵌入式历年赛题
2019-04-29 21:40:45收集历年嵌入式蓝桥杯赛题。方便大家参考。12年省赛国赛到18年省赛国赛。 -
智能小车毕业设计答辩.pptx
2020-04-06 00:04:38智能循迹小车毕业设计 ;第二章 硬件电路设计;引言;无容置疑机电一体化人才的培养不论是在国外还是国内都开始重视起来主要表现在大学生的各种大型的创新比赛比如亚洲广播电视联盟亚太地区机器人大赛ABU ROBCON全国... -
【基于51的多功能智能小车】
2022-03-16 13:48:22基于51的蓝牙智能插座 文章目录基于51的蓝牙智能插座前言一、蓝牙简易介绍二、硬件部分三、串口引入四、程序编写总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门... -
(不眠者①队)国电-F题:智能送药小车,广东赛区一等奖,推国赛,开源(代码+设计方案)
2021-11-17 18:35:22国电 —— F题: 智能送药小车,所有源码暂时开源 目录 国电 —— F题: 智能送药小车,所有源码暂时开源 前言 一、题目 二、硬件部分 材料清单: 材料实物图: 设计方案: 三、代码部分 数字识别: 寻迹部分: 十字... -
西电“智能星“第一届自动驾驶小车比赛 参赛记录 暨 JetRacer 使用心得
2021-05-29 15:37:28由于一些神秘原因, 我参加了这个比赛. 最后又由于自己的神秘操作, 痛失冠军. 当时挺自责的, 后来想想这和考试粗心错了题是一个道理, 粗心就是能力不足, 真正有实力的人是不会忽略各种细节的, 我还是能力不够, ...