基于单片机巡迹避障智能小车系统

文章目录

  • 前言
  • 资料获取
  • 设计介绍
  • 设计程序
  • 具体实现截图
  • 设计获取


前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
单片机设计精品实战案例
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

资料获取

文章底部名片,详细资料联系我。

设计介绍

基于单片机巡迹避障智能小车系统是一个集成了单片机控制、传感器检测、路径识别和避障策略于一体的智能系统。以下是对该系统的详细介绍:

一、系统组成

  1. 核心控制器
    单片机作为整个系统的核心控制器,负责接收传感器数据、执行控制算法,并输出控制指令。常用的单片机型号包括STC89C52、Arduino、Raspberry Pi等,这些单片机具有性能稳定、功耗低、适合实时控制等特点。

  2. 传感器
    寻迹传感器:用于检测地面上的特定路径标记,如黑线。通常使用红外线传感器或光电传感器,通过检测反射光线的变化来确定路径位置。
    避障传感器:用于检测小车前方是否存在障碍物,并测量障碍物的距离。常用的避障传感器包括超声波传感器和红外测距传感器。

设计程序

#include <reg52.h>
#define uchar	unsigned char
#define uint	unsigned int
uchar temp, signal, tt1, t0, t1, t2, t3, t4, t5, t6;sbit	jia	= P3 ^ 1;
sbit	jian	= P3 ^ 2;uchar time = 20;void delay_1ms( uint d )
{uint i;while ( d-- )for ( i = 0; i < 75; i++ );
}void delay_50us( unsigned int t )  /* 延时函数 */
{unsigned int j, k;for (; t > 0; t-- ){for ( j = 10; j > 0; j-- ){for ( k = 1; k > 0; k-- );}}
}void motor_run()     /* 电机起动 */
{P1 = 0x35;delay_1ms( 220 - time );P1 = 0x53;delay_1ms( time );
}void motor_left()    /* 左进 */
{P1 = 0x30;delay_1ms( 220 - time );P1 = 0x00;delay_1ms( time );
}void motor_right()     /* 右进 */
{P1 = 0x05;delay_1ms( 220 - time );P1 = 0x00;delay_1ms( time );
}void motor_big_right()    /* 粗右进 */
{P1 = 0x55;delay_1ms( 220 - time );P1 = 0x00;delay_1ms( time );
}void motor_big_left()
{P1 = 0x33;delay_1ms( 220 - time );P1 = 0x00;delay_1ms( time );
}void motor_stop()      /* 电机停止 */
{P1 = 0x00;
}void  key_scan()
{if ( jia == 0 ) /* 判定 */{delay_50us( 100 );/* 延时 */if ( jia == 0 ){time++;if ( time == 200 )time = 200;while ( jia == 0 );/* 自锁 */}}if ( jian == 0 ) /* 判定 */{delay_50us( 100 );/* 延时 */if ( jian == 0 ){time--;if ( time == 20 )time = 20;while ( jian == 0 );/* 自锁 */}}
}void motor_back()
{P1 = 0x53;
}void main()
{t0	= 0;t1	= 0;t2	= 0;t3	= 0;t4	= 0;t5	= 0;t6	= 0;tt1	= 0;EA	= 1;ET1	= 1;TR1	= 1;TMOD	= 0x01;TH1	= -(1000 / 256);TL1	= -(1000 % 256);while ( 1 ){key_scan();if ( P3 == 0xfe ){motor_back();}else{temp	= P2;signal	= temp & 0xff;  /* 得到红外反向信号 */switch ( signal ){case 0xff:              /* 无偏差 */motor_run();t0++;if ( t0 == 10 ){t0 = 0;motor_left();motor_right();}t1 = t2 = t3 = t4 = t5 = t6 = 0;break;case 0xfd: /* 1轮右偏 */motor_big_left();t1++;if ( t1 == 4 ){t1 = 0;motor_left();}t0 = t2 = t3 = t4 = t5 = t6 = 0;break;case 0xef: /* 4轮左偏 */motor_big_right();t2++;if ( t2 == 4 ){t2 = 0;motor_right();}t0 = t1 = t3 = t4 = t5 = t6 = 0;break;case 0xfb:      /* 2轮右偏出轨 */case 0xf9:      /* 1、2轮右偏 */motor_big_left();t3++;if ( t3 == 4 ){t3 = 0;motor_left();}t0 = t1 = t2 = t4 = t5 = t6 = 0;
/*				delay_1ms(10); */break;case 0xdf:      /* 5左偏出轨 */case 0xcf:      /* 4、5轮左偏 */motor_big_right();t4++;if ( t4 == 4 ){t4 = 0;motor_right();}t0 = t1 = t2 = t3 = t5 = t6 = 0;
/*				delay_1ms(10); */break;case 0xfe: /* 0最右偏出轨 */case 0xfa:motor_big_left();t5++;if ( t5 == 1 ){t5 = 0;motor_left();motor_left();}t0 = t1 = t2 = t3 = t4 = t6 = 0;
/*				delay_1ms(10); */break;case 0xbf: /* 6最左偏出轨 */case 0x9f:motor_big_right();t6++;if ( t6 == 1 ){t6 = 0;motor_right();motor_right();}t0 = t1 = t2 = t3 = t4 = t5 = 0;
/*				delay_1ms(10); */break;case 0xeb:      /* 前两传感器压在黑线上 */case 0xdb:      /* 后两传感器压在黑线上 */case 0xbe:      /* 中间两传感器压在黑线上 */case 0xac:      /* 前四传感器压在黑线上 */case 0x9a:      /* 后四传感器压在黑线上 */motor_back();delay_1ms( 200 );motor_stop();/*				delay_1ms(1000); */default:
/**                      motor_back();*                      delay_1ms(50);*                      motor_left();*                      motor_right();*/break;}}}
}/*void time1() interrupt 3* {** TH1=-(1000/256);* TL1=-(1000%256);* tt1++;* if(tt1==300)* {* motor_back();* //	delay_1ms(1);* tt1=0;* }* } */

具体实现截图

在这里插入图片描述
在这里插入图片描述

设计获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏👇🏻

毕业设计精品实战案例

收藏关注不迷路!!

🌟文末获取设计🌟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1544090.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

RPA + 计算机视觉

随着超自动化成为顶级企业技术趋势之一&#xff0c;领先的机器人流程自动化 (RPA) 公司开始将人工智能功能集成到其自动化工具中&#xff0c;以创建能够自动化端到端流程并做出决策的智能机器人。计算机视觉是新一代 RPA 工具的关键 AI 功能之一。 在本文中&#xff0c;我们将…

2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-选择题解析

2024年 中小学信息学奥赛CSP-J真题解析 1、32 位 int 类型的存储范围是 A、 -2147483647 ~ 2147483647 B、 -2147483647 ~ 2147483648 C、 -2147483648 ~ 2147483647 D、 -2147483648 ~ 2147483648 答案&#xff1a;C 考点分析&#xff1a;主要考查小朋友们数据类型的存储…

Centos/fedora/openEuler 终端中文显示配置

注意&#xff1a;这里主要解决的是图形界面、远程登录界面的中文乱码问题 系统原生的终端&#xff08;如虚拟机系统显示的终端&#xff09;&#xff0c;由于使用的是十分原始的 TTY 终端&#xff0c;使用点阵字体进行显示&#xff0c;点阵字体不支持中文&#xff0c;因此无法显…

前端——表单标签样式

1. form表单标签 块级元素 action: 表单提交地址 method: 表单提交格式 https网络协议请求格式: post/get等 通常: post方式是发送数据 而get是拿取数据 name: 表单的名称 target: 提交完表单之后 你的新页面在哪里打开 2. input输入控件 可以通过type属性 …

7,STM32CubeMX配置IIC工程(OLED显示)

1&#xff0c;前言 单片机型号&#xff1a;STM32F407 编程环境 &#xff1a;STM32CubeMX Keil v5 硬件连接 &#xff1a;串口1&#xff0c;ADC1CH5--->PA5 注&#xff1a;本工程在1&#xff0c;STM32CubeMX工程基础&#xff08;配置Debug、时钟树&#xff09;基础上…

【Unity保龄球项目】的实现逻辑以及代码解释

1.BaoLQManager.cs 这个脚本实现了基本的保龄球游戏逻辑&#xff0c;包括扔球功能。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class BaoLQManager : MonoBehaviour {// 业务逻辑1&#xff1a;把保龄球扔出去// 业务逻辑2&am…

祝桥镇星光村火情闪电救援:速控之下,安全警钟长鸣

安科瑞武陈燕 在秋日的午后&#xff0c;阳光本应温柔地洒在浦东新区祝桥镇星光村的每一个角落&#xff0c;然而&#xff0c;一场突如其来的火灾打破了这份宁静。 9月2日中午12时许&#xff0c;该村1队的一户居民家中突然燃起熊熊大火&#xff0c;浓烟滚滚自二楼窗口腾空而起&…

gdb调试和makefile管理

一.gdb调试工具 命令 简写 作用 help h 按模块列出命令类 help class 查看某一类型的具体命令 lsit l 查看代码&#xff0c;可跟行号和函数名 quit q 退出gdb run r 全速运行程序 start 单步执行&#xff0c;运行程序&#xff0c;停在第一行执行语句 next …

Qt 窗口类的继承关系和作用

核心基类 [1] QObject&#xff1a;Qt中许多类的基类&#xff0c;支持Qt对象模型&#xff0c;包括信号和槽机制、对象树和事件系统等。虽然它本身不是直接用于创建窗口的&#xff0c;但它是许多窗口和控件类继承链中的重要一环。 注&#xff1a;如果你创建了一个自定义类&…

杰发科技——Eclipse环境安装

文件已传到网盘&#xff1a; 1. 安装文件准备 2. 安装Make 默认路径&#xff1a;C:\Program Files (x86)\GnuWin32\bin\ 不复制的话会报错 Error: Program "make" not found in PATH 3. 安装工具链 默认路径&#xff1a;C:\Program Files (x86)\Arm GNU Toolchain…

OpenAI converting API code from GPT-3 to chatGPT-3.5

题意&#xff1a;将OpenAI API代码从GPT-3转换为ChatGPT-3.5 问题背景&#xff1a; Below is my working code for the GPT-3 API. I am having trouble converting it to work with chatGPT-3.5. 以下是我用于GPT-3 API的工作代码。我在将其转换为适用于ChatGPT-3.5时遇到了…

Android Studio 真机USB调试运行频繁掉线问题

一、遇到问题 Android Studio使用手机运行项目时&#xff0c;总是频繁掉线&#xff0c;连接很不稳定&#xff0c;动不动就消失&#xff0c;基本上无法使用 二、问题出现原因 1、硬件问题&#xff1a;数据线 换条数据线试试&#xff0c;如果可以&#xff0c;那就是数据线的…

15年408-数据结构

第一题 解析&#xff1a; 栈第一次应该存main的信息。 然后进入到main里面&#xff0c;要输出S(1)&#xff0c;将S(1)存入栈内&#xff0c; 进入到S(1)中&#xff0c;1>0,所以还要调用S(0) S(0)进入栈中&#xff0c;此时栈内从下至上依次是main(),S(1),S(0) 答案选A 第二题&…

昇腾AI异构计算架构CANN——高效使能AI原生创新

异构计算与人工智能的关系是什么&#xff1f;昇腾AI异构计算架构CANN是什么&#xff1f;有哪些主要特点&#xff1f;开发者如何利用CANN的原生能力进行大模型创新&#xff0c;构筑差异化竞争力&#xff1f;带着这些问题&#xff0c;我们来认识昇腾AI异构计算架构——CANN。 1 …

随机验证码验证【JavaScript】

这段 JavaScript 代码实现了随机验证码的生成和验证功能。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-…

Vue3教程 - 2 开发环境搭建

更好的阅读体验&#xff1a;点这里 &#xff08; www.foooor.com &#xff09; 2 开发环境搭建 要进行 Vue 开发&#xff0c;需要安装 Node.js&#xff0c;因为构建 Vue 项目的工具&#xff0c;例如 Webpack、Vite等&#xff0c;这些工具依赖于Node.js环境来运行。 Node.js…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意&#xff1a;OpenAI GPT-3 API&#xff1a;davinci 和 text-davinci-003 有什么区别 问题背景&#xff1a; Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练

玩手机数据集 8201张玩手机的照片&#xff0c;有对应的xml和txt文件&#xff0c;可以用于yolo训练 玩手机数据集&#xff08;Phone Usage Detection Dataset&#xff09; 数据集概述 该数据集专为检测人们使用手机的行为设计&#xff0c;旨在帮助研究人员和工程师开发高效的…

Sentinel-1 数据处理时如何手动下载高程数据

在Sentinel-1 数据数据预处理时&#xff0c;会使用高程数据进行地形校正。但选择自动下载高程时&#xff0c;由于网络原因经常会卡死&#xff0c;造成预处理过程不能正常进行&#xff01; 这个问题经过我的反复实践&#xff0c;可以通过手动下载高程数据来解决。下面是具体方法…

MySQL之基本查询(一)(insert || select)

目录 一、表的增删查改 二、表的增加insert 三、表的读取select where 条件子句 结果排序 筛选分页结果 一、表的增删查改 我们平时在使用数据库的时候&#xff0c;最重要的就是需要对数据库进行各种操作。而我们对数据库的操作一般来说也就是四个操作&#xff0c;CRUD :…