搜档网
当前位置:搜档网 › 智能小车控制程序

智能小车控制程序

智能小车控制程序
智能小车控制程序

/*实现前进与后退功能*/

/*控制智能车向前行驶10秒,然后停3秒,再向后行驶6秒,停止*/

/********************************************************/

#include<>

#define uint unsigned int

/*进行端口声明时,应与具体硬件连接相对应,如不相互对应,将影响程序功能的正常实现*/

sbit S1=P1^3; //对电机端口声明

sbit S2=P1^4;

sbit S3=P1^5;

sbit S4=P1^6;

/*功能函数定义*/

void delay(uint del) //延时函数,延时del毫秒

{

uint i,j;

for(i=0; i

for(j=0; j<148; j++);

}

void go() //实现前进功能

{

S1=1; //S1与S2控制小车右侧的两个轮子

S2=0;

S3=1; //S3与S4控制小车左侧的两个轮子

S4=0;

}

void back() //实现后退功能

{

S1=0;

S2=1;

S3=0;

S4=1;

}

void stop() //实现停止功能

{

S1=0;

S2=0;

S3=0;

S4=0;

}

/*主函数*/

void main() //主函数

{

go(); //前进

delay(10000); //前进10秒

stop(); //停止

delay(3000); //停3秒

back(); //后退

delay(6000); //后退6秒

stop(); //停止

}

智能小车控制程序1

/*实现前进与后退功能*/ /*控制智能车向前行驶10秒,然后停3秒,再向后行驶6秒,停止*/ /********************************************************/ #include #define uint unsigned int /*进行端口声明时,应与具体硬件连接相对应,如不相互对应,将影响程序功能的正常实现*/ sbit S1=P1^3; //对电机端口声明 sbit S2=P1^4; sbit S3=P1^5; sbit S4=P1^6; /*功能函数定义*/ void delay(uint del) //延时函数,延时del毫秒 { uint i,j; for(i=0; i

{ go(); //前进 delay(10000); //前进10秒 stop(); //停止 delay(3000); //停3秒 back(); //后退 delay(6000); //后退6秒 stop(); //停止 }

外网远程控制WIFI智能小车机器人

本期教程专门介绍如何让我们的机器人与互联网相连,实现远程安防监控与控制!然后可以在全球范围内控制它。本教程使用的路由器为WR703N,DB120的路由外网控制设置。 一、基本原理 外网控制的基本原理就是“端口映射”+“动态域名”。什么叫端口映射呢?简单地说,就是在你家里的无线路由器上做一个设置,使得外网对于路由器上一个特定的端口的访问会被路由器重新转到一个指定的IP主机和端口,这样一来,家里的无线路由器就等于是一个“桥”,联通了外网和小车机器人上面的路由,使得我们可以在外网控制家里的机器人。 那么“动态域名”又是什么呢?大家可以想想:我们家里的路由器每次开机后,对外的IP 地址都是不同的,那么控制小车就需要每次通过查询路由对外的IP地址,然后重新设置控制端的IP,这是个很麻烦的事。“动态域名”就可以完美地解决这个问题,你先向动态域名提供商申请一个动态域名,这个域名是不变的,比如:https://www.sodocs.net/doc/b818307391.html,,提供商会给你一个账号密码,把这个账号密码填入路由的动态域名功能里面,每次开机的时候,路由就会向域名提供商的服务器登录,服务器就可以获取本次登录时,路由对外网的地址,然后自动帮你把这个新IP绑定在https://www.sodocs.net/doc/b818307391.html,这个域名上面,这样一来,我们就没必要每次都去找路由当前的IP了,直接输这个域名就可以连到我们的路由。 我们今天要做的也就是利用上面的原理完成外网到家里的无线路由器,再到机器人上面 的WIFI板这一过程。 二、外网映射设置 1、家庭路由器设置。 首先需要一个家用的路由器,可以上外网的,这个路由器就是作为沟通小车与外界的桥梁。在这里,我选用了我的TP-Link WR641G+路由器。 第一步:设置转发规则 如下图所示,登陆家庭路由器的192.168.1.1管理界面,找到转发规则——》虚拟服 务器 在这里,因为我们的WIFI机器人运行需要开两个端口,端口8080为视频端口,端口2001为控制端口,所以我们添加两个端口转发规则,这边我使用192.168.1.108作为转发的目标客户端,这就是我们的WIFI板IP地址。这个IP可以自己定的,但是必须为固定的。并 且在家庭路由器的DHCP范围内。 通过这个设置,来自外网的对8080端口和2001端口的访问将重新发送到 192.168.1.108这个IP的客户端上,也就是我们的WIFI板。

PWM调速+循迹__智能小车程序

//T0产生双路PWM信号,L298N为直流电机调速,接L298N时相应的管脚上最好接上10K 的上拉电阻。 /* 晶振采用12M,产生的PWM的频率约为100Hz */ #include #include #define uchar unsigned char #define uint unsigned int sbit en1=P3^4; /* L298的Enable A */ sbit en2=P3^5; /* L298的Enable B */ sbit s1=P1^0; /* L298的Input 1 */ sbit s2=P1^1; /* L298的Input 2 */ sbit s3=P1^3; /* L298的Input 3 */ sbit s4=P1^2; /* L298的Input 4 */ sbit R=P2^0; sbit C=P2^1; sbit L=P2^2; sbit key=P1^4; uchar t=0; /* 中断计数器*/ uchar m1=0; /* 电机1速度值*/ uchar m2=0; /* 电机2速度值*/ uchar tmp1,tmp2; /* 电机当前速度值*/ /* 电机控制函数index-电机号(1,2); speed-电机速度(0-100) */ void motor(uchar index, char speed) { if(speed<=100) { if(index==1) /* 电机1的处理*/ { m1=abs(speed); /* 取速度的绝对值*/ s1=1; s2=0; } if(index==2) /* 电机2的处理*/ { m2=abs(speed); /* 电机2的速度控制*/ s3=1; s4=0; } } } void Back(void) {

智能小车舵机控制精编版

智能小车舵机控制精编 版 MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】

1 //只利用一个定时器 T0,定时时间为,定义一个角度标识,数值为 1、2、3、4、5, //实现、1ms、、2ms、高电平的输出,再定义一个变量,数值最大为 40,实现周期为 20ms。 //每次进入定时中断,判断此时的角度标识,进行 //相应的操作。比如此时为 5,则进入的前 5 次中断期间,信号输出为高电平,即为的 //高电平。剩下的 35 次中断期间,信号输出为低电平,即为的低电平。这样总的时间 //是 20ms,为一个周期。 //用51板上s1和s2按键 //用P1^7输出 PWM信号控制舵机 #include "" unsigned char count; //次数标识 sbit pwm =P1^7 ; //PWM信号输出 sbit jia =P3^0; //角度增加按键检测IO口 sbit jan =P3^1; //角度减少按键检测IO口 sbit jianwei=P3^4; //按键位 unsigned char jd; //角度标识 sbit dula=P2^6; sbit wela=P2^7; unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e void delay(unsigned char i)//延时 { unsigned char j,k; for(j=i;j>0;j--) for(k=125;k>0;k--); } void Time0_Init() //定时器初始化 { TMOD = 0x01; //定时器0工作在方式1 IE= 0x82; TH0= 0xfe; TL0= 0x33; //晶振, TR0=1; //定时器开始 } void Time0_Int() interrupt 1 //中断程序 { TH0 = 0xfe; //重新赋值 TL0 = 0x33; if(count

智能wifi小车源程序

由于今年组委会光电管和摄像头分开比赛。所以传感器部分我们选择了光电管,比赛以小车的速度记成绩,为了让小车更快更稳得跑完全程,传感器的探测距离必须要远,既要有大的前瞻,普通的红外对管由于功率较小,探测距离增大时,干扰严重,所以我们自制了大功率对管,同时采用了程序控制脉冲发光的办法,有效的降低了发热,提高了系统的稳定性。 系统采用采用了7.2V 2000mAh Ni-Cd蓄电池作为系统能源,并且通过稳压电路分出6伏,5伏已分别给舵机和单片机供电。 直流电机驱动模块接收速度控制信号控制驱动电机运行,达到控制车速目的。转向伺服模块控制舵机转向,进而控制智能车转弯。速度测量模块实时测量智能车车速,用于系统的车速闭环控制,以精确控制车速。 系统充分使用了MC9S12DG128单片机的外围模块,具体使用到的模块包括:ADC模拟数字转换模块、定时器模块、PWM脉冲宽度调制模块、中断模块、I/O 端口和实时时钟模块等。 系统调试过程中,使用了组委会提供的代码调试环境CodeWarrior IDE,同时使用了清华的软件进行了仿真试验。 图1.1 系统结构框图 3.1舵机部分 为了使转弯更加灵活,对舵机相关部分作了部分改动。首先,我们将舵机力臂加长85mm。这样,对于同样的转弯角度值,只需更小的舵机转角,减小了舵机转弯时惯性带来的弊端。其次,我们将舵机反装,使舵机连杆水平,因为此时舵机提供的力全部用在转弯上。 3.2前轮部分 为了增加前轮转弯时的稳定性,对前轮相关部分进行了部分改动。首先,更改前后垫片

的数量,使前轮主销后倾,这样,车轮具有更好的自动回正功能。其次,更改连杆的长度,使车轮外倾,车轮转弯时,前半部分重心上移,促使赛车转弯更加稳定。再次,我们通过更改舵机连杆的长度,增加前轮前束,同样增加了前轮的稳定性。 3.3底盘部分 为了提高赛车运行时的稳定性,对地盘相关部分作了部分改动。首先,前轮相关位置加垫片,降低了前轮重心。其次,更改后轮车轴处的调节块,使后轮重心升高,这样,车身前倾,一定程度上,增加了车的稳定性。 3.4后轮部分 首先,更换后轮轮距调节块,使后轮两轮之间间距加大。这样,车在转弯时不容易产生侧滑。其次,调节后轮差速,使赛车转弯更加灵活。 4.1电源部分 为了能使智能车系统能正常工作,就需要对电池电压调节。其中,单片机系统、车速传感器电路需要5V 电压,路径识别的光电传感器和接收器电路电压工作为5V 、伺服电机工作电压范围4.8V 到6V(或直接由电池提供),直流电机可以使用7.2V 2000mAh Ni-cd 蓄电池直接供电。考虑到由于驱动电机引起的电压瞬间下降的现象,因此采用低压降的三端稳压器成为必然。我们在采用lm7805,和lm7806作为稳牙芯片。经试验电压纹波小,完全可以满足要求。 电池(7.2v ) 2000mAh Ni-cd 稳压电路 电机 图4.1系统电压调节图 5V 对管 单片机 舵机 测速板 6V 7.2V

智能循迹小车程序

智能循迹小车程序 Document number:BGCG-0857-BTDO-0089-2022

#include<> #define uchar unsigned char #define uint unsigned int //D0-D7:f,b,a,e,d,h,c,g 共阴依次编码 //74LS04反相器驱动数码管 uchar code table[10] = {0x5F,0x42,0x9E,0xD6,0xC3,0xD5,0xDD,0x46,0xDF,0xD7}; uchar i = 0; //用于0-3数码管轮流显示uint j = 0; //计时的次数 uint time=0; //计时 uint pwm=16; //占空比 uint speed; //调制PWM波的当前的值 sbit R=P3^2; //右边传感器 P3^2 sbit L=P3^3; //左边传感器 P3^3 //电机驱动口定义 sbit ENB=P1^0; //前轮电机停止控制使能 sbit ENA=P1^1; //后轮控制调速控制端口 sbit IN1=P1^2; //前轮 sbit IN2=P1^3; //前轮 sbit IN3=P1^4; //后轮

sbit IN4=P1^5; //后轮 void Init() { TMOD = 0x12; //定时器0用方式2,定时器1用方式1 TH0=(256-200)/256; //pwm TL0=(256-200)/256; TH1 = 0x0F8; //定时2ms TL1 = 0x30; EA = 1; ET0 = 1; ET1 = 1; TR0 = 1; TR1 = 1; } void tim0(void) interrupt 1 //产生PWM { speed ++; if(speed <= pwm) //pwm 就相当于占100的比例{ ENA = 1; }

5.智能小车-按键控制小车的启动

实验五:树莓派平台-------按键控制小车启动实验 1、实验前准备 图1-1 树莓派主控板 图1-2 按键开关 2、实验目的 ssh服务登录树莓派系统之后,编译运行按键控制小车启动实验后,按下KEY 启动小车,小车会自动先前进1s,后退1s,左转2s,右转2s,原地左转3s,原地右转3s,接着停止0.5s。 3、实验原理

按键消抖:通常我们的按键开关一般都是机械弹性开关,当机械触点断开,闭合时,由于机械触点的弹性作用,一个按键开关子在闭合时不会马上就能稳定的接通,在断开时也不会一下子彻底断开,而是在闭合和断开时会伴随着一连串的抖动。 图3-1 按键抖动状态图 抖动时间一般都是由按键的机械特性决定的,一般都会在10ms以内,为了确保程序对按键的一次闭合后一次断开只响应一次,必须进行按键的消抖处理,有硬件消抖和软件消抖。 其中,软件消抖指的是检测出键闭合后执行一个延时程序,产生5ms~10ms 的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms~10ms的延时,待后沿抖动消失后才能转入该键的处理程序。 硬件消抖是在开关两段接一个0.1uf的电容。本次实验我们采取的是软件延时去抖。 4、实验步骤 4-1.看懂原理图

图4-1 树莓派主控板电路图 图4-2 按键

图4-3 树莓派40pin引脚对照表 4-2 由电路原理图可知按键是直接连接到主控板上的wiringPi编码的10口。我们设置10口为输入模式,并当按下按键时通过检测该引脚的电平状态,来判断按键是否被按下。 4-3 程序代码如下:

基于Arduino单片机控制的WiFi智能小车

呼伦贝尔学院 计算机科学与技术学院 本科生毕业论文(设计) 题目:基于Arduino控制的 WIFI智能小车 学生姓名:苑伟 学号: 专业班级:2011级计算机科学与技术一班 指导教师:陶锐 完成时间: 2015年5月22日

目录

摘要 本次设计wifi智能小车主要采用Arduino作为底层硬件控制核心,接收来自路由器的指令执行相关操作;采用PWM脉冲调节小车速度、舵机控制以及灯光亮度;采用定时器实现小车数据的发送、小车的避障及计算小车的行驶速度;运用简单的PID算法实现轮胎直接的差速控制;采用路由器发射无线wifi,使用Lua脚本实现了接收单片机数据及发送操作指令,设计了web页面控制小车的B/S模式结构。 关键字:Arduino;PWM脉冲;PID算法;web控制

Abstract The design of wi-fi smart cars mainly adopts the Arduino as the control core to receive instructions from the router perform related operations; Using PWM pulse to adjust the vehicle speed, steering gear control and lighting brightness; using timer to realise the transmission of car data ,the breakdown of the car and calculate the car speeds; Using the simple PID algorithm tyre direct differential control; Using wireless wifi router launch, using the Lua script implements receiving MCU data and send operation instructions,and at last, it designs a web page to control the car B/S mode structure. Keyword: Arduino; PWM Pulse; PID arithmetic; Web manage

智能小车控制系统设计

智能小车控制系统设计 ——ARM控制模块设计 EasyARM615是一款基于32位ARM处理器,集学习和研发于一体的入门级开发套件,该套件采用Luminary Micro(流明诺瑞)公司生产的Stellaris系列微控制器LM3S615。本系统设计是以EasyARM615开发板为核心,通过灰度传感器检测路面上的黑线,运用PWM直流电机调速技术,完成对小车运动轨迹等一系列的控制。同时利用外扩的液晶显示器显示出各个参数。以达到一个简易的智能小车。 本文叙述了系统的设计原理及方法,讨论了ISR集成开发环境的使用,系统调试过程中出现的问题及解决方法。 据观察,普通的玩具小车一般需要在外加条件下才能按照自己的的设想轨迹去行驶,而目前可借助嵌入式技术让小车无需外加条件便可完成智能化。在小车行驶之前所需作的准备工作是在地面上布好黑线轨迹,设计好的小车便可按此黑线行驶,即为智能小车。其设计流程如下: 1、电机模块 采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成,H桥电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之工作在开关状态,根据调整输入控制脉冲的占空比,精确调整电机转速。这种电路由于管子工作只在饱和和截止状态下,效率非常没。H型电路使实现转速和方向的控制简单化,且电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调整技术。 具体电路如下图所示。本电路采用的是基于PWM原理的H型驱动电路。该电路采用TIP132大功率达林顿管,以保证电动机启动瞬间的8安培电流要求。

2、传感器模块 灰度测量模块,是一种能够区分出不同颜色的的电子部件。灰度测量模块是专为机器人设计的灰度传感器。例如:沿着黑色轨迹线行走,不偏离黑色轨迹线;沿着桌面边沿行走,不掉到地上,等等。足球比赛时,识别场地中灰度不同的地面,以便于进行定位。不同的物体对红外线的反射率不同,黑色最低,白色最高;它通过发射红外线并测量红外线被反射的强度来输出反映物体颜色的电压信号,有效距离3-30毫米。 其技术规格如下: 已知灰度传感器的输出电压为0-3.3V,所以可通过ARM615开发板上的ADC 模块转换成数字信号,最后通过不断测试得出黑线与白线的大概参数值,完成对小车传感器部分的设计。 在本次设计中选择二个灰度传感器,其实现效果与布局如下所示。

Arduino智能避障小车避障程序

Arduino智能避障小车避障程序 首先建立一个名为modulecar.ino的主程序。 // modulecar.ino,玩转智能小车主程序 #include //导入舵机库 #include //导入NwePing库 // 对照系统配线方案依次指定各I/O const int ENA = 3 ; //左电机PWM const int IN1 = 4 ; //左电机正 const int IN2 = 5 ; //左电机负 const int ENB = 6 ; //右电机PWM const int IN3 = 7 ; //右电机正 const int IN4 = 8 ; //右电机负 const int trigger = 9 ; //定义超声波传感器发射脚为D9 const int echo = 10 ; //定义传感器接收脚为D10 const int max_read = 300; //设定传感器最大探测距离。 int no_good = 35; //*设定35cm警戒距离。 int read_ahead; //实际距离读数。 Servo sensorStation; //设定传感器平台。 NewPing sensor(trigger, echo, max_read); //设定传感器引脚和最大读数//系统初始化 void setup() { Serial.begin(9600); //启用串行监视器可以给调试带来极大便利 sensorStation.attach(11); //把D11分配给舵机

pinMode(ENA, OUTPUT); //依次设定各I/O属性 pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(trigger, OUTPUT); pinMode(echo, INPUT); sensorStation.write(90); //舵机复位至90? delay(6000); //上电等待6s后进入主循环 } //主程序 void loop() { read_ahead = readDistance(); //调用readDistance()函数读出前方距离Serial.println("AHEAD:"); Serial.println(read_ahead); //串行监视器显示机器人前方距离 if (read_ahead < no_good) //如果前方距离小于警戒值 { fastStop(); //就令机器人紧急刹车 waTch(); //然后左右查看,分析得出最佳路线 goForward(); //*此处调用看似多余,但可以确保机器人高速运转下动作的连贯性 }

智能车控制算法

智能车转角与速度控制算法 1.检测黑线中点Center:设黑、白点两个计数数组black、white,从第一个白点开始,检测到一个白点,白点计数器就加1,检测到第一个黑点,黑点计数器就加1,并且白点计数器停止,以此类推扫描每一行;黑线中点=白点个数+(黑点的个数/2) 2.判断弯直道: 找出黑线的平均位置avg (以每10行或者20…作为参照,行数待定) 算出相对位移之和(每一行黑线中点与黑线平均位置距离的绝对值之和) 然后用Curve的大小来确定是否弯直道(Curve的阀值待定)。 3.控制速度: 根据弯度的大小控制速度大小。 //*****************************弯度检测函数*******************************// Curvecontrol () { int black[N]; //黑点计数器 int white[N]; //白点计数器 int center[N]; //黑线中点位置 int avg; //黑线中点平均位置 int curve;//N行的相对位移之和 if(白点) ++white[N]; //判断黑白点的个数 else ++black[N]; center[N]=white[N]+black[N]/2; //每一行的黑线中点avg=(center[1]+center[2]+...+center[N])/N; //求出黑线中点的平均位置 curve=(|avg-center[1]|+|avg-center[2]|+...+|avg-center[N]|)/N //求出N行的相对位移之和 return curve; //返回弯度大小

智能小车控制系统开题

毕业设计(论文)开题报告 题目智能小车控制系统研究 系部车辆工程系 专业 学生姓名学号 指导教师职称讲师 毕设地点 2016年1 月16 日

1.结合毕业设计(论文)课题任务情况,根据所查阅的文献资料,撰写1500~2000字左右的文献 综述: 一丶选题背景 智能汽车的概念在上世纪80 年代初由美国提出,随着智能控制算法的不断发展,以及硬件设备的快速更新,对智能车的发展起到了巨大的促进作用。同时交通问题也逐渐成为世界各个国家都要面临的重要问题,这也加快了新技术、新方法的应用。在这样的背景下智能车的研究逐渐成为新的热点。 当前世界公路的总里程每年都在高速增长,同时汽车的总量也在成倍增加,其中我国的增量更是非常明显,随着汽车的越来越多,出现交通事故的概率也在不断提高。世界各国为了解决这方面的问题提出了很多的想法,而智能车是众多想法中最可行的一种解决当前问题的方法。许多国家在无人驾驶汽车和智能交通系统的研究上都取得了不错的成果,有些研究结构已经研制成功了智能车的原型,并进行相关试验。最近10 年在传统汽车中半导体和电子技术应用的越来越多。汽车产业已经进入到了电子时代,智能汽车将是未来的发展趋势。根据相关部门的统计数据,2012 年之后生产的汽车,汽车上电子装置系统占整个汽车总成本超过30%,甚至在一些配置较高的汽车上,比重超过50%。 随着改革开放的不断深入,我国经济在过去的一段时间迅速崛起,人民的生活水平和幸福指数每年都在提高,拥有一辆汽车也不在是一个的梦想,而是变成了一个很多家庭都能消费的起的代步工具,当前我国的汽车数量,每年以两位数增长,然而我国的公共配套却相对落后,这就造成了我国严重的交通问题,道路拥挤十分严重,出现了开车不如骑车快的现象。 因此发展智能车和智能交通系统,是解决现有问题的一种有效的方法,通过不断的研究会在交通拥堵、减少事故方面起到十分显著的作用。未来通过无人驾驶技术,实现汽车的自动行驶,对于我国汽车、控制、电子等领域在新时期提高国际竞争力和自主创新能力有着重要的作用。 智能汽车控制系统的研究是一项复杂的系统工程,其中包含了机械、电子、自动循迹、自适应控制、机器人技术、传感器技术等多学科相互交融的一项研究。智能车通过多个传感器模块的协同工作,经过控制单元进行决策实现汽车的自动行驶、最优化路径等功能。 同时无人驾驶智能车在货运、农业生产、军事等领域具有很好的应用前景。 综上所述,发展智能汽车控制技术能够提高我国在微电子技术、人工智能、电机控制等新技术领域的技术水平。同时随着智能汽车的不断发展也能够有效的改善现有的交

智能寻迹小车以及程序

寻迹小车 在历届全国大学生电子设计竞赛中多次出现了集光、机、电于一体的简易智能小车题目。笔者通过论证、比较、实验之后,制作出了简易小车的寻迹电路系统。整个系统基于普通玩具小车的机械结构,并利用了小车的底盘、前后轮电机及其自动复原装置,能够平稳跟踪路面黑色轨迹运行。 总体方案 整个电路系统分为检测、控制、驱动三个模块。首先利用光电对管对路面信号进行检测,经过比较器处理之后,送给软件控制模块进行实时控制,输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。系统方案方框图如图1所示。 图1 智能小车寻迹系统框图 传感检测单元 小车循迹原理 该智能小车在画有黑线的白纸“路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”—黑线。笔者在该模块中利用了简单、应用也比较普遍的检测方法——红外探测法。 红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号。 传感器的选择 市场上用于红外探测法的器件较多,可以利用反射式传感器外接简单电路自制探头,也可以使用结构简单、工作性能可靠的集成式红外探头。ST系列集成红外探头价格便宜、体积小、使用方便、性能可靠、用途广泛,所以该系统中最终选择了ST168反射传感器作为红外光的发射和接收器件,其内部结构和外接电路均较为简单,如图2所示:

图2 ST168检测电路 ST168采用高发射功率红外光、电二极管和高灵敏光电晶体管组成,采用非接触式检测方式。ST168的检测距离很小,一般为8~15毫米,因为8毫米以下是它的检测盲区,而大于15毫米则很容易受干扰。笔者经过多次测试、比较,发现把传感器安装在距离检测物表面10毫米时,检测效果最好。 R1限制发射二极管的电流,发射管的电流和发射功率成正比,但受其极限输入正向电流50mA的影响,用R1=150的电阻作为限流电阻,Vcc=5V作为电源电压,测试发现发射功率完全能满足检测需要;可变电阻R2可限制接收电路的电流,一方面保护接收红外管;另一方面可调节检测电路的灵敏度。因为传感器输出端得到的是模拟电压信号,所以在输出端增加了比较器,先将ST168输出电压与2.5V进行比较,再送给单片机处理和控制。 传感器的安装 正确选择检测方法和传感器件是决定循迹效果的重要因素,而且正确的器件安装方法也是循迹电路好坏的一个重要因素。从简单、方便、可靠等角度出发,同时在底盘装设4个红外探测头,进行两级方向纠正控制,将大大提高其循迹的可靠性,具体位置分布如图3所示。

智能小车控制基本原理

【机器人创意工作室教程一】WIFI智能小车机器人基本原理 [复制链接] liuv ikin g 管 理 员 做 中 国 人 自 己 的 W I F I 机 器 人 ! 贡献 2 4 9 电梯直达 楼主 发表于 2012-5-13 11:58:55 |只看该作者|倒序浏览 分享到:11 WIFI智能小车机器人是很多人童年时的梦想,就好比当年看着《小鬼当家》里面的那个视频遥控车一样,看着就激动! 然而对于大部分初学者而言,本身并非电子专业,也不是计算机专业,可是却对WIFI/蓝牙控制的智 能小车机器人情有独钟,怎么办呢?对于一个专业不对的人来说,确实是隔行如隔山,但是没有关系,从今天起,WIFI机器人网·机器人创意工作室不间断地推出一系列教程,手把手教你如何DIY一个属 于自己的智能小车机器人。 鉴于蓝牙智能车和WIFI智能车其实很类似的,只是把WIFI模块换成了蓝牙模块,所以蓝牙车就不再 详细阐述了,弄明白了WIFI车,蓝牙车也一样的。 OK,进入正题,机器人创意工作室教程第一讲《WIFI智能小车机器人基本原理》 我们的这款WIFI智能小车机器人采用的路由器+PC或者手机、网页控制方式。其基本原理分为4大块: 1、把普通的无线路由器通过刷入开源的Openwrt系统,使之成为一个运行了Linux系统的小电脑,何 为Openwrt? 请看: 什么是OpenWRT? 1. 关于 OpenWrt 当Linksys 释放 WRT54G/GS 的源码后,网上出现了很多 不同版本的 Firmware 去增强原有的功能。大多数的 Firmware 都是99%使用 Linksys的源码,只有 1%是加上去的,每一种 Firmware 都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集 合各版本Firmware的长处,第二个是这版本距离 Linux 正式发行版越来越远。OpenWrt 选择了另一 条路,它从零开始,一点一点的把各软件加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。 以上解释摘自百度百科。简而言之,就是从思科的路由源码改造过来的,一个适用于某些特定芯片的 路由器的小型Linux系统,有了这个系统,我们的路由就不再是上网那么简单了,我们可以在上面安 装各种程序、驱动,以路由为平台,用户可以自由地加载USB摄像头、网卡、声卡、等等设备。 我们的WIFI板上运行着一款程序,叫做mjpg-streamer,这个程序可以把USB摄像头的视频进行编码,然后通过WIFI返回给上位机,这样,我们就可以看到来自机器人的视频了。 同时路由一般都预留有TTL串口,TTL串口是用来调试或者刷机用的,我们把这个TTL串口引出来, 然后通过安装在路由里面的Ser2net软件,就能把来自WIFI信道的指令转到串口输出,而串口在这里 的作用就是与单片机芯片MCU通信,让单片机知道用户要让他做什么动作。关于TTL的介绍,请看后 文。 WIFI(路由)模块:

WIFI智能小车机器人

WIFI智能小车机器人 作者:福建师范大学协和学院陈洋斌叶志燕沈渊 指导教师:钟伟雄林民庆 作品简介 在平常的生活中,我们经常会见到有人在玩遥控车,甚至现在还有了遥控飞机。这一切在过去那些年都还只是人们眼中孩子们的玩具而已,然而随着科技的发展,关于机器人的电影,或者是现实生活中科学研究者研发出来的仿生机器人经常在各种媒体中不断的报导。这毫无疑问,再过个几十年,机器人将走进我们的家庭中,它将为我们带来更多的便利。如今,很多电子发烧友DIY出了各种版本WIFI机器人。Wifi Robot,顾名思义就是通过wifi无线网控制的机器人,比起普通的遥控车,它的好处就是遥控信号覆盖范围可以做到很广。 WIFI智能小车机器人是一种基于WIFI的无线远程智能遥控机器人,利用非常成熟的WIFI无线网络为数据载体,实现控制数据,视频数据传送而达到控制小车和视频监控等等功能。它是集无线通信、实时电机驱动、多向机械云台、视频监控、环境温度检测、为一体的多功能智能遥控车。本系统在电脑端上位机采用QT编程,由于QT面向多平台,并且可移植性好。通过QT编写的上位机,便可以把控制数据通过Socket发送到路由器,路由器再通过ser2net把数据包解开,然后转发到路由器的串口; 该系统的控制端采用STC15单片机作为微处理器,通过STC15单片机与路由器建立串口通信,便能利用路由器的串口数据进行控制电机的工作状态模式和三个陀机的工作角度。STC15单片机还负责实时监控环境温度并经过路由器反馈至电脑,让使用者可以实时了解小车所在地的气温,以便于在到达目的地之前设定好空调温度等应用。

平台选型说明 本设计使用本届大赛指定的单片机开发板(以STC15F2K61S2芯片为控制核心) 设计说明 1、设计要求 1.找一台能刷Linux的无线路由器,将其操作系统刷成OpenWrt。

智能循迹小车详细制作过程

(穿山乙工作室) 三天三十元做出智能车 0.准备所需基本元器件 1).基本二驱车体一台。(本课以穿山乙推出的基本车体为例讲解) 2).5x7cm 洞洞板、单片机卡槽、51单片机、石英晶体、红色LED 、1K 电阻、10K 排阻各一个;2个瓷片电容、排针40个。 3).5x7cm 洞洞板、7805稳压芯片、红色LED 、1K 电阻各一个;双孔接线柱三个、10u 电解电容2个、排针12个、9110驱动芯片2个。 4).5x7cm 洞洞板、LM324比较器芯片各一个;红外对管三对、4.7K 电阻3个、330电阻三个、红色3mmLED 三个。 一、组装车体 基本设计思路: 1.基本车架(两个电机一体轮子+一个万向轮) 2.单片机主控模块 3.电机驱动模块(内置5V 电源输出) 4.黑白线循迹模块

(图中显示的很清晰吧,照着上螺丝就行了) 二、制作单片机控制模块 材料:5x7cm洞洞板、单片机卡槽、51单片机、石英晶体、红色LED、1K电阻、10K排阻各一个;2个瓷片电容、排针40个。 电路图如下,主要目的是把单片机的各个引脚用排针引出来,便于使用。我们也有焊接好的实物图供你参考。(如果你选用的是STC98系列的单片机在这里可以省掉复位电路不焊,仍能正常工作。我实物图中就没焊复位)

三、制作电机驱动模块 材料:5x7cm洞洞板、7805稳压芯片、红色LED、1K电阻各一个;双孔接线柱三个、10u电解电容2个、排针12个、9110驱动芯片2个。 电路图如下,这里我们把电源模块与驱动模块含在了同一个电路板上。因为电机驱动模块所需的电压是+9V左右(6—15V 均可),而单片机主控和循迹模块所需电压均为+5V。 这里用了一个7805稳压芯片将+9V电压稳出+5V电压。 +9V

基于单片机的WIFI智能小车设计

基于单片机的WIFI智能小车设计 摘要 WIFI智能小车由电机、小车车体、89C52控制芯片、WIFI收发模块、电机驱动、舵机、电源、摄像头等主要部件以及灯光、蜂鸣器、电平转换等辅助模块构成。WIFI智能小车利用笔记本或手机等能连接无线路由器的终端智能设备连接到路由器,通过应用软件显示路由器上摄像头上采集到的视频信号,再通过这些智能的终端设备发送控制指令到无线路由器,通过无线路由器将指令传送给单片机进行处理。然后通过单片机控制电机驱动驱动电机转动、舵机转动,从而实现控制小车的运动及视频采集。 关键词:路由器;wifi;智能小车;89C52

Abstract The intelligent WIFI car involved a motor, a body, the 89C52 control chip, a WIFI transfer module, motor drivers, a power supply, lights, a buzzer and a voltage converter. The intelligent WIFI car can use an intelligent terminal (such as a laptop or a mobile phone) to connect with the router and use application software to display the video signal collected by the camera, then the intelligent terminal will send control commands which can be processed by the MCU though the routers. The MCU will control the turning of motors and realize the moving of the car and the video collection. Keywords:Router;WIFI;intelligent car;89C52

智能小车蓝牙控制技术设计方案

智能小车蓝牙控制技术设计方案 手机遥控智能小车设计技术设计方案

文档修订记录

一、项目名称 《基于32F407的手机遥控智能小车的设计》 二、设计要求及性能指标 设计一个基于32F407的手机遥控智能小车,选用32F407作为主控芯片进行设计和实现。具体任务包括项目的可行性分析,硬件电路的设计,系统软件设计,仿真调试,实际测试等。 具体要求如下: (1)根据提供的原理图和相关资料,了解、掌握小车运行的工作原理,熟悉所用到的硬件模块工作原理 (2)学习掌握32F407库函数编程环境,掌握相关的库函数 (3)编写32F407程序,应用电机驱动模块、蓝牙模块和语音模块,实现小车根据接收到的指令(手机发出)完成相应的动作,并通过语音模块告知指令内容 三、项目总体方案设计 1、系统总体方案 根据课程设计的要求,系统设计方案如下:以32F407作为微控制器,以电机驱动电路和两个直流减速电机构成电机驱动模块;语音模块作为语音控制电路、以在特定的操作下产生相应的语音;以蓝牙模块和手机蓝牙相连接,以接收手机相应的指令;以7805稳压管构成电源电路。手机遥控智能小车系统结构框图如图1所示。

图1 手机遥控智能小车系统结构框图 手机遥控小车就是通过手机蓝牙和智能小车无线连接,通过蓝牙发送指令,小车接送到指令后,就会按照预先设定的程序,执行相应的操作,并由语音模块发出一系列相应的语音。为了实现这一目的,就需要有信息处理功能的微处理器来接收手机蓝牙发送的相应指令,然后将处理的指令发送到执行机构来执行,这就需要电机驱动模块,来实现小车的行走功能,而一个完整的系统,还需要有电源模块来提供能量。 系统的基本原理:预先在单片机内编程,使得相应的指令对应控制小车相应的轮子。然后手机通过蓝牙将相应的指令发送到单片机,以控制小车的运行。 2、关键技术、设计难点及其解决方案 关键技术: 1、能做到小车和手机无线连接,控制方便。 2、需要一个中央大脑,既能接收到手机的指令,又能奖指令传送给小车。 3、小车的接收到相应的指令后,可以做出相应的运用或者操作。 难点: 1、如何选择相应的中央大脑,选好之后怎么设置指令能做到简单和准确。 2、如何选择相应的驱动电路。如何操作。 解决方案 1、选择单片机芯片作为中央控制大脑,

基于STM32的智能小车控制系统设计

www?ele169?com | 21电子电路设计与方案 0 引言 移动机器人已经渗透到工业生产、物流、搬运、医疗等 社会的每个方面[1]。智能小车作为一种轮式机器人也得到了 广泛的应用研究[2]。控制系统是智能小车的关键构成部分, 能够在较为复杂的环境中,将小车按照预定的轨迹运行,或者运行到预先设定的位置,实现小车精确的速度与位置的控制,对智能小车系统起着至关重要的作用[3] 。因此,本文以四轮轮式结构智能小车为研究对象,采用STM32系列单片 机作为控制核心,结合CAN 总线通信接口,设计一种基于STM32的智能小车控制系统,该系统功能强大且扩展性好, 具有一定的实用价值。1 系统介绍 智能小车的控制系统是整个智能小车设计过程中最为重 要的一环。智能小车是在它的统一协调控制下完成行走、 避障、 自主循迹等任务,它的好坏直接关系着智能小车的性能好坏, 控制系统的设计方法也决定着智能小车的功能特点。图1 控制系统结构框图 通常,智能小车应具备自主定位、障碍物实时检测、自 动避障、速度检测以及无线通信等功能。根据上述功能的要求,本文所设计的控制系统的硬件模块主要包括:主控模块、障碍物检测模块、速度检测模块、无线通信模块、电源模块以及电机驱动模块等部分。控制系统的结构如图1所示。为了方便后续的功能的扩展,在实际设计过程中,各模块的软硬件设计均采用相对独立的模块化设计方法。2 系统硬件设计 ■2.1 电源模块电源模块主要为控制系统提供工作的电压。根据各个组成部分的功能,电源模块应提供电机驱动所需的12V、STM32主控核心所需的3.3V、其他芯片工作所需的5V 三种幅值的电压。因此,采用12V 的航模电池作为供电电源,5V 与3.3V 电源转换电路如图2所示。为了增加电源的可靠性,减少外界扰动的影响,在稳压芯片7805和LM1117的 输入和输出两侧均布置有电容。图2 电源模块电路 ■2.2 障碍物检测模块智能小车要具备自主避障的能力,必须在其行进过程中能够时刻检测到障碍物的信息,为此就需要设计相应的障碍物检测模块。常用的传感器主要有超声波、激光以及红外测距传感器。鉴于超声传感器使用方便、实时性强和性价比高等优点,本文选用型号为HC-SR04的超声测距模块,得到智能小车在行进过程中遇到的障碍物的信息。所使用的测距模块如图 3所示。其中VCC 为5V 电源输入接5V 电源即可, GND 为接地线,回响信号输出ECHO 与触发控制信号输入TRIG 与STM32的I/O 口连接即可。基于STM32的智能小车控制系统设计王嘉俊 (山西省清徐梗阳中学,山西清徐,030400)摘要:本文设计一种基于STM32的智能小车控制系统。该系统采用STM32单片机作为控制核心,通过HC-SR04超声波传感器实时检测障碍物信息,采用光电编码器得到转速信息构成闭环控制系统,使得智能小车的控制更为精确,通过CAN总线和无线通信模块实现操作人员对智能小车的有线和无线通信。该系统设计简单、可扩展性好且控制精度高,具有一定应用价值。关键词:智能小车;STM32;转速检测;避障

相关主题