【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)

文章目录

  • 【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)
    • 任务书
    • 设计说明书
      • 摘要
      • 设计框架架构
      • 设计说明书及设计文件
      • 源码展示

任务书

主要内容:
理解并掌握单片机的基本知识;设计一款能够自动避障的机器人。
基本要求:
1、掌握单片机的发展情况以及它的工作原理和基本构造。
2、要求所设计的机器人能够自动避障。
3、对系统的精度和可靠性等进行了测试。
资料链接
1.原理图工程文件
2.源代码工程文件
3.仿真工程
4.原理图截图
5.仿真截图
6.论文(低重复率),22568字
7.答辩PPT

设计说明书

摘要

本文主要研究内容为基于单片机的自动避障机器人。避障机器人是一种采用了多种传感器的自动控制系统。系统采用红外检测障碍物,一旦检测到前方有障碍物则将信号发送给单片机,通过单片机处理分析,将控制信息输出到电机驱动控制机器人能够顺利有效的避开障碍物。本系统以AT89C51单片机为核心,红外检测器模块为传感器,385直流电机及电机驱动L298N为被控制对象控制机器人躲避障碍物。具体的避障流程为:系统开始运行,首先是直行,当红外检测器探测到有右端有障碍物后控制电机左轮速度慢于右轮,实现左转。同理左端检测到障碍物后控制电机右轮速度慢于左轮,实现右转。

设计框架架构

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)_第1张图片

前 言 1
第一章 绪论 2
第一节 研究背景 2
第二节 研究意义 2
第三节 国内外发展情况 3
第四节 本文的主要研究内容 4
第五节 本章小结 4
第二章 基于单片机的自动避障机器人设计方案分析 5
第一节 系统设计概述 5
第二节 元器件方案选择 6
一、主控芯片选择 6
二、避障方案选择 7
三、电机选择 7
四、电机驱动选择 8
第三节 本章小结 8
第三章 基于单片机的自动避障机器人电路设计 9
第一节 核心控制最小系统电路设计 10
第二节 避障电路设计 11
第三节 电机及驱动电路设计 12
第四节 电源电路设计 14
第五节 按键电路设计 14
第六节 LED电路设计 15
第七节 系统总电路图 15
第八节 本章小结 16
第四章 基于单片机的自动避障机器人软件设计 17
第一节 系统总流程设计 17
第二节 避障程序设计 19
一、避障程序设计流程 19
二、避障子程序 20
第三节 电机驱动程序设计 20
一、电机驱动程序设计流程 20
二、电机驱动子程序 22
第四节 LED及按键程序流程设计 22
一、LED及按键程序设计流程 22
二、LED及按键子程序 23
第五节 本章小结 24
第五章 基于单片机的自动避障机器人仿真实现 25
第一节 仿真软件介绍 25
第二节 系统电路连接与调试 26
第三节 系统测试 27
第四节 本章小结 31
总 结 32
致 谢 33
参考文献 34
附 录 36
一、英文原文 36
二、英文翻译 40
三、工程图纸 44
四、源代码 45

设计说明书及设计文件

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)_第2张图片

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)_第3张图片

【毕业设计】23-基于单片机的自动避障机器人设计(原理图+源代码+仿真+论文+答辩PPT)_第4张图片

论文(低重复率),22568字

源码展示

#include 
#define uchar unsigned char
sbit IN1	=	P2^0;
sbit IN2	=	P2^1;
sbit IN3	=	P2^2;
sbit IN4	=	P2^3;
sbit ENA	=	P2^4;
sbit ENB	=	P2^5;
sbit LED	=	P3^2;
sbit BUTTON	=	P3^3;
sbit LeftUp		 = P1^0;
sbit LeftDown  = P1^1;
sbit RightUp   = P1^2;
sbit RightDown = P1^3;
//**左右轮子速度调节变量
uchar numL,numR,BUTTON_FLAG;
//***********************
void init_time()
{
	TMOD=0X01;
	TH0=(65536-500)/256;
	TL0=(65536-500)%256;
	EA=1;
	ET0=1;
	TR0=1;
}
void time0() interrupt 1 using 1
{
	static uchar num;
	num++;
	if(num==numR) ENB=~ENB;
	if(num==numL)	ENA=~ENA;	
	if(num==100){ENA=~ENA;ENB=~ENB;num=0;}
	TH0=(65536-500)/256;
	TL0=(65536-500)%256;	
}
void main()
{
	BUTTON_FLAG=0;
	numL=70;numR=20;

  init_time();
	LED=0;
  while(1)
	{
		if(!BUTTON)
		{
			BUTTON_FLAG =1;
			LED=1;
			ENA=ENB=1;
	    IN1=IN3=1;IN2=IN4=0;
		}
		else
		{
			BUTTON_FLAG=0;
			LED=0;
			ENA=ENB=0;
	    IN1=IN3=0;IN2=IN4=0;
		}
		if(BUTTON_FLAG=1)
		{
		if(!LeftUp)		{	while(!LeftUp);		numL+=5;	
										if(numL>100)numL=0;}
		if(!LeftDown)	{	while(!LeftDown);	numL-=5;	
										if(numL>100)numL=0;}
		if(!RightUp)	{	while(!RightUp);	numR+=5;	
										if(numR>100)numR=0;}
		if(!RightDown){	while(!RightDown);numR-=5;	
										if(numR>100)numR=0;}
		}

你可能感兴趣的:(单片机,机器人,嵌入式硬件)