【【胎教级51单片机智能小车设计】】

胎教级51单片机智能小车设计

从现在开始开一个新坑
称为创意工坊
主要更新一些有意思的设计

第一次手把手更新51单片机智能小车
胎教级教学人人都会
单片机实现的功能是通过蓝牙APP 控制小车前后左右移动
先讲明白这个小车
后续再在这个小车上更新其他的设计
在这里插入图片描述
成品图

第一步:先介绍一下我所用的各种购买材料

我在拼多多购买了
在这里插入图片描述

1. 51单片机最小系统

(如果你有STC89C52的单片机就不买了,因为我想多买一个做别的设计所以我买了这个套餐,成品+单片机)
在这里插入图片描述
最小系统请务必买这种拉杆的
就是有一个扳手方便你下拉
我之前在淘宝买了
在这里插入图片描述
这样的非常不好用,这种没有个拉杆 全靠自己的手插 插不进你还要掰管脚 很不方便
买最小系统 请认准 拉杆的

2. 杜邦线

杜邦线建议买 30cm + 10cm 的因为我身边有10cm 的所以我没买 如果你没有 建议买一下很好 帮助很大

接下来是我在淘宝上购买的

3. 电烙铁(非必须)

在这里插入图片描述
这个是非必须的 我在制作这个小车的时候并未使用到电烙铁 第一点因为 我怕焊接错了 没有悔改的地方 第二点 焊接还算是小危险吧 但是我买了 毕竟咱们以后想要做一些成品的不去修改的器件 还是需要用到电烙铁
第三点 这个小车 不用电烙铁也可以完成

4.L298n 驱动电机

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

5.智能小车底盘

在这里插入图片描述
在这里插入图片描述
我买的是二驱 四驱是一样的
买小车送电池盒挺好
送的是四个电池的电池盒

6.HC-06蓝牙模块

在这里插入图片描述
在这里插入图片描述
要带底盘焊针

这就是上述材料 除了电烙铁非必须 其他都是必须的

第二步 拿到东西之后开始组装

小车的组装观看这个视频
再放一下链接
小车组装视频
这个是我们差不多同款的网上关于小车的视频都大同小异 这个安装最好

第三步 : 开始接线

接线在我的浏览寻找中没有一个人讲的很清楚都是模棱两可 听不懂 令人生气 我给大家讲清楚 !!!!!!!!
这里说明一下 导线是哪里来的
并且为什么不用电烙铁
我们把杜邦线剪掉头 就是导线 然后用打火机烧掉外衣 就会露出里面的铜丝
我们在很多时候拿铜丝绕几圈
拿铜丝塞进L298n 里面不是更方便吗

我们从电机出发
在这里插入图片描述
电机的每个地方都要接
我们把它分成3个板块
第一个板块 电机上面写着12V GND 5V
怎么接看清楚操作
我们电池仓会多出两根线 一跟是正极 另一根是负极
在这里插入图片描述
只关注这个部分 电池仓的正极线一根 记住仅正极接到开关的一脚 从开关的另一脚引出线接到电机的12V上
而电池仓的这个负极线直接接到电机的GND上
然后 电机的GND连接单片机的GND
电机的5V连接单片机的Vcc
(给单片机供电)

再把12V 和 5V 拿一根线串起来
为什么 我i直接在这里说明好了 因为电机驱动需要12V 但是我们普通的干电池 像南孚电池碱性电池仅1.5V 电池仓4个也就6V 完全支撑不起 把这端相连就能启动电机 了

最后电机1区的连线
12V
1.接从开关引出的电池仓正极线
2.和5V相连线

GND
1.电池仓的负极线
2.51单片机最小系统的GND

5V
1.51单片机最小系统的5V
2.和12V相连线

这是电机1区的线

我们接下来看电机的2区
电机的2区的是接发动机的两个引脚
在这里插入图片描述
连过来 两边的电机都插入
有人问有没有先后之分 其实我并没有考虑先后左右 当我失败的时候我考虑了把接口换了一下哈哈哈

接下来考虑3区的接线

3区按照顺序接在单片机最小系统的
P00 P01 P02 P03 上
在这里插入图片描述
四根线对四根线

到这里基本接线快结束了
直接拿起我们的蓝牙模块
蓝牙模块VCC 接 单片机最小系统的Vcc
GND 接单片机最小系统的GND
RXD 接单片机最小系统的TXD
TXD接单片机最小系统的RXD

如果你像我这么连接那么恭喜你已经完工了

下面烧录进代码

我默认你有烧录设备了那之前的普中的整个大开发板 如果没有那就需要买一个51单片机下载器了
代码如下

#include<reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit LB=P0^0;    //左边马达下接口     out2
sbit LF=P0^1;    //左上        out1
sbit RB=P0^2;    //右下        out4
sbit RF=P0^3;    //右上        out3

 void stop()
{
    LF=0;
    LB=0;
    RF=0;
    RB=0;
}

void forward()
{
    LF=1;
    LB=0;
    RF=1;
    RB=0;      
}

void back()
{
    LF=0;
    LB=1;
    RF=0;
    RB=1;    
}

void left()
{
    LF=0;
    LB=1;
    RF=1;
    RB=0;
}

void right()
{
    LF=1;
    LB=0;
    RF=0;
    RB=1;
    
}
void Com_Int(void) interrupt 4
{
    uchar receive_data;    
    EA = 0;
    if(RI == 1) 
    { 
        RI=0; 
        LF=0;
        RF=0;
        LB=0;
        RB=0;
        receive_data = SBUF;
        switch(receive_data)
        {
            case ('1'):
                forward();break;
            case ('2'):
                back();break;
            case ('3'):
                left();break;
            case ('4'):
                right();break;
            case ('0'):
                stop();break;
        }            
    }        
        EA = 1;
}
    
void UsartConfiguration()
{    
    SCON=0X50;    //SCON 是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志        
    TMOD=0X20;            
    PCON=0X00;        
    TH1=0Xfd;            
    TL1=0Xfd; //波特率为9600算出来的fd
    TR1= 1;                    
    ES = 1;        
        EA = 1;         
}


void main()
{
    UsartConfiguration();    
    while(1);    
}

也可以直接使用我的.hex文件

对于蓝牙软件

下载完成后先点击键盘设置一下键位
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
因为我连接电机的时候并未在意 正反方向
如果这里出现在地上旋转 那把电机的2区域选择一边线交换一下
如果出现 和指令相违背 选择把 这里面消息的地方 1 2 3 4 改成正确的

第一次蓝牙连接需要输入密码1234

ok 结束了谢谢大家 希望大家喜欢

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(一)

说明&#xff1a;请先自行安装好docker再来看本篇文章&#xff0c;本篇文章主要实现通过使用docker部署mysql实现读写分离&#xff0c;并连接数据库测试。第二篇将实现使用Shardingjdbc实现springboot的读写分离实现。 基于Docker去创建Mysql的主从架构 #创建主从数据库文件夹…

Rocky(centos) jar 注册成服务,能开机自启动

概述 涉及&#xff1a;1&#xff09;sh 无法直接运行java命令&#xff0c;可以软连&#xff0c;此处是直接路径 2&#xff09;sh脚本报一堆空格换行错误&#xff1a;需将转成unix标准格式&#xff1b; #切换到上传的脚本路径 dos2unix 脚本文件名.sh 2&#xff09;SELINUX …

如何使用STAR原则优化项目管理?

介绍STAR原则 1.1 STAR原则的定义 STAR原则是一个行为面试技术&#xff0c;即Situation&#xff08;情境&#xff09;、Task&#xff08;任务&#xff09;、Action&#xff08;行动&#xff09;和Result&#xff08;结果&#xff09;。这种原则被广泛应用在职业面试中&#x…

PROFINet转Modbus协议转换网关Profinet数据通讯模块

产品概述 你是否曾经遇到过不同网络协议之间的沟通问题&#xff1f;捷米特JM-RTU-PN为你解决这个难题&#xff01; 捷米特JM-RTU-PN是一款数据通讯模块&#xff0c;能够实现PROFINet网络与Modbus网络之间的数据传输。它可以将RS485网络连接到PROFINet网络&#xff0c;并支持不…

【iOS】—— UIKit相关问题

文章目录 UIKit常用的UIKit组件懒加载的优势 CALayer和UIView区别关系 UITableViewUITableView遵循的两个delegate以及必须实现的方法上述四个必须实现方法执行顺序其他方法的执行顺序&#xff1a; UICollectionView和UITableView的区别UICollectionViewFlowLayout和UICollecti…

mysql进阶-用户的创建_修改_删除

1. 使用mysql单次查询 [rootVM-4-6-centos /]# mysql -h localhost -P 3306 -p mytest -e "select * from book1"; Enter password: ------------------------------------------- | id | category_id | book_name | num | ----------------------------…

第七章 图论

第七章 图论 一、数据结构定义 图的邻接矩阵存储法#define MaxVertexNum 100 // 节点数目的最大值// 无边权&#xff0c;只用0或1表示边是否存在 bool graph[MaxVertexNum][MaxVertexNum];// 有边权 int graph[MaxVertexNum][MaxVertexNum];图的邻接表存储法 把所有节点存储为…

Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单 em

&#xfeff; Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&…

UNITY随记(八) SHADER实现立方体CUBE显示边框,描边

Shader "Vitens/CubeOutline"{Properties{_Color("Color", color) (1,1,1,1)_Width("Width", range(0,0.5)) 0.1}SubShader{Tags { "Queue""Transparent" }Pass {//如果要显示背面的线框&#xff0c;取消下面两个注释即可…

【etcd】docker 启动单点 etcd

etcd: v3.5.9 etcd-browser: rustyx/etcdv3-browser:latest 本文档主要描述用 docker 部署单点的 etcd&#xff0c; 用 etcd-browser 来查看注册到 etcd 的 key 默认配置启动 docker run -d --name ai-etcd --networkhost --restart always \-v $PWD/etcd.conf.yml:/opt/bitn…

Redis系列二:Clion+MAC+Redis环境搭建

1. ClionMACRedis-3.0-annotated环境搭建 参考&#xff1a; https://github.com/huangz1990/redis-3.0-annotated https://gitee.com/dumpcao/redis-3.0-annotated-cmake-in-clion https://tool.4xseo.com/a/12910.html 1.1 下载并导入Clion git clone https://gitee.com/dum…

LabVIEW开发多材料摩擦电测量控制系统

LabVIEW开发多材料摩擦电测量控制系统 摩擦电效应是两个物体摩擦在一起&#xff0c;电荷从一个物体转移到另一个物体的现象&#xff0c;从而导致两个物体携带相等和相反的电荷。接触和充电是主导该过程的两个关键因素。当静电荷累积到一定水平时&#xff0c;可能会出现放电现象…

Netty自定义消息协议的实现逻辑处理粘包拆包、心跳机制

Netty 自定义消息协议的实现逻辑自定义编码器 心跳机制实现客户端发送心跳包 自定义消息协议的实现逻辑 消息协议&#xff1a;这一次消息需要包含两个部分&#xff0c;即消息长度和消息内容本身。 自定义消息编码器︰消息编码器将客户端发送的消息转换成遵守消息协议的消息&…

关于latch up的重读

衬底电流容易导致寄生三极管导通(衬底电阻衬底电流》衬底压差)&#xff0c;更容易触发latchup&#xff1b; 一般常用的实际产品中会用衬底隔离的器件来做负压器件&#xff1b;用DNW&NBL组成一个隔离盆将整个负压区和正常电路分开&#xff0c;DNW&NBL接高电压&#xff1…

抄写Linux源码(Day7:读闪客文章第二回 “自己给自己挪个地儿”)

闪客文章地址&#xff1a;https://mp.weixin.qq.com/s?__bizMzk0MjE3NDE0Ng&mid2247499274&idx1&sn23885b5b1344a1425f5a971d06ad2e7d&chksmc2c584a7f5b20db1b0a75ea896e7218a9f8bcd006e68f53693bab240b13f9e2fb0ec0c9b9a6a&cur_album_id2123743679373688…

iMX6ULL驱动开发 | 让imx6ull开发板支持usb接口FC游戏手柄

手边有一闲置的linux开发板iMX6ULL一直在吃灰&#xff0c;不用来搞点事情&#xff0c;总觉得对不住它。业余打发时间就玩起来吧&#xff0c;总比刷某音强。从某多多上8块儿大洋买来一个usb接口的游戏手柄&#xff0c;让开发板支持以下它&#xff0c;后续就可以接着在上面玩童年…

BUU [网鼎杯 2020 朱雀组]phpweb

BUU [网鼎杯 2020 朱雀组]phpweb 众生皆懒狗。打开题目&#xff0c;只有一个报错&#xff0c;不知何从下手。 翻译一下报错&#xff0c;data()函数:,还是没有头绪&#xff0c;中国有句古话说的好“遇事不决抓个包” 抓个包果然有东西&#xff0c;仔细一看这不就分别是函数和参…

软件外包开发的JAVA开发框架

Java的开发框架有很多&#xff0c;以下是一些常见的Java开发框架及其特点&#xff0c;每个框架都有其特定的使用场景和优势&#xff0c;开发者可以根据项目的需求选择合适的框架。今天和大家介绍常见的框架及特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&…

【Golang 接口自动化01】使用标准库net/http发送Get请求

目录 发送Get请求 响应信息 拓展 资料获取方法 发送Get请求 使用Golang发送get请求很容易&#xff0c;我们还是使用http://httpbin.org作为服务端来进行演示。 package mainimport ("bytes""fmt""log""net/http""net/url&qu…

echarts图表基本使用

折线图 import * as echarts from echarts;const chartDom document.getElementById(main); const myChart echarts.init(chartDom); const option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [820, 932, …