51单片机项目设计:WiFi视频小车制作

发布者:Meshulun最新更新时间:2022-01-10 来源: eefocus关键字:51单片机  WiFi 手机看文章 扫描二维码
随时随地手机看文章

在这里插入图片描述百度网盘资料链接:https://pan.baidu.com/s/1Qxm7A7pz6ktaHefDTkzhwg

提取码:c3ol


CSDN资料下载链接:https://download.csdn.net/download/mbs520/13134025

取走记得点赞~


在这里插入图片描述

一、材料准备

1、核心装备:wifi摄像头模块

名称:正点原子WiFi摄像头模块

简介:minifly四轴配套模块,体积小重量轻、WiFi通信60米距离 、720 30帧高清画面

在这里插入图片描述

2、电机选择


名称:霍尔编码电机

型号:620转


这里用直流电机即可,这个贵,网上搜直流减速电机,最好带个轮子,方便安装

在这里插入图片描述

3、小车框架

博主这个就直接锯木板了

或者直接购买智能小车底盘

4、主控芯片选择

名称:STC89C52单片机最小系统板

购买链接:https://m.tb.cn/h.43JCfUl?sm=0792c6

5、电机驱动

名称:LN298

特点:驱动电流大,工作稳定,就是比较费电

6、电源

名称:18650锂电池

电压:3.7V

(我的是废充电宝下拆下的,比较丑)

在这里插入图片描述

二、电路原理

电路原理图(看不清请下载资料)

在这里插入图片描述

按图连接好

在这里插入图片描述

在这里插入图片描述

三、源代码

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

名称:51WIFI视频小车

作者:化作尘

时间:2020年11月20日11点27分

邮箱:2809786963@qq.com

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


#include "reg52.h"


#define uchar unsigned char

#define uint unsigned char


/***小车控制定义**/

#define DIR P1

#define QIAN 0xaa 

#define HOU 0x55 

#define ZUO 0x5a 

#define YOU 0xa5 

#define STOP 0x00 



void uart_init();

void uart_tx_string(uchar *str);

void uart_tx_byte(uchar str);

void Delayms(unsigned int n);

void Delayus(unsigned int n);


uchar rec;//接收到的字节

uchar buff[9]="00000000";//接收到的数据包

uchar flag;//数据包开始接收标志

uchar num; //数组下标

uchar buf_ready;//接收到数据包置1


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

函数名:主函数

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

void main()

{

        uart_init();

DIR = STOP;

        Delayms(1);

buff[3] = 0x80;

buff[4] = 0x80;

        uart_tx_string("hello buletooch car!n");

        while(1)

        {

if(buf_ready == 1)//接收一组数据完成标志

{

buf_ready = 0;

}

if(buff[3]>0xd0){DIR = QIAN;Delayus(5);DIR = STOP;Delayus(5);}//buff[3]控制前后

else if(buff[3]<0x20){DIR = HOU;Delayus(5);DIR = STOP;Delayus(5);}

else if(buff[4]>0xd0){DIR = YOU;Delayus(15);DIR = STOP;Delayus(5);}//buff[4]控制左右

else if(buff[4]<0x20){DIR = ZUO;Delayus(15);DIR = STOP;Delayus(5);}

else DIR = STOP;

        }

}


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

函数名:串口中断

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

void uart_timer() interrupt 4

{

        if(RI)

        {

RI = 0;

                rec=SBUF;

if(rec==0x66 && flag==0)//数据头

{

flag = 1;  

num=0;

buff[0] = rec;

}

else if(flag == 1)//开始接收数据包buff[8]

{

num++;

buff[num] = rec;

if(num==7 && buff[7]==0x99)//接收到数据尾

{

buf_ready = 1;

flag = 0;

num = 0;

}

else if(num == 7)//接收错误

{

flag = 0;

num = 0;

}

}

        }

}


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

函数名:串口初始化

波特率:19200

晶振:11.059M

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

void uart_init()

{

TMOD=0x20;

TH1=0xfd; //9600

TL1=0xfd;

PCON=0x80;//9600*2

SCON=0x50;

TR1=1; //start Timer1

EA=1;

ES=1;

}

 

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

函数名:串口发送一个字节

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

void uart_tx_byte(uchar str)

{

        SBUF=str;

        while(!TI);

Delayms(2);

}


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

函数名:串口发送一个字符串

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

void uart_tx_string(uchar *str)

{

        while(*str!='')

        {

                uart_tx_byte(*str++);

                Delayms(2);

        }

}


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

函数名:延时函数

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

void Delayms(unsigned int n)

{

        unsigned int i,j;

        for(j=n;j>0;j--)

                for(i=112;i>0;i--);

}


void Delayus(unsigned int n)

{

        while(n--);

}


四、调试

(一)APP使用


1、安装WiFi模块配套APP

下载我的资料,找到软件

在这里插入图片描述

2、等待WiFi模块初始化,开启需要15秒后蓝色led开始闪烁

3、连接WiFi,找到MiniFly

4、打开软件,开启电源

5、看到画面,开启控制

(二)一般遇到的问题


1、app连接不上

解决方法:换手机


2、连接上模块不能控制小车运动

调试方法:

1)用usb转ttl模块,模块连接电脑

串口发送数据格式(串口波特率 19200,1 个启始位,1 个停止位,其它无):

在这里插入图片描述

2)用手机连接好模块,打开控制按钮,串口能接收到源源不断的控制指令

在这里插入图片描述


(三)仔细阅读两个手册

关键字:51单片机  WiFi 引用地址:51单片机项目设计:WiFi视频小车制作

上一篇:51单片机项目设计:基于51单片机时钟万年历
下一篇:51单片机教程:二相四线步进电机驱动

推荐阅读最新更新时间:2024-11-12 07:00

51单片机快速入门指南】3.1:配置外部中断触发方式和中断优先级
普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 源码 stdint.h见【51单片机快速入门指南】1:基础知识和工程创建 中断知识见【51单片机快速入门指南】3:中断系统 将外部中断0和外部中断1均配置为下降沿触发,但外部中断1的优先级最高,外部中断0的优先级最低。 EXTI.c #include REGX52.H #include intrins.h #include stdint.h #include EXTI.h //定义LED管脚 sbit D1 = P2^0; sbit D2 =
[单片机]
【<font color='red'>51单片机</font>快速入门指南】3.1:配置外部中断触发方式和中断优先级
基于51单片机之LCD1602时钟实验例程
************************** Copyright(C) CaKe **************************************** ================================================== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== ==============**版本号 : V1.0 ============== ==============**时间 : 2014.08
[单片机]
51单片机学习——中断
1、中断源及其中断标志 外部中断0:中断号为0;中断标志为IE0;中断服务程序入口为0003H; 定时器0:中断号为1;中断标志为TF0;中断服务程序入口为000BH; 外部中断1:中断号为2;中断标志为IE1;中断服务程序入口为0013H; 定时器1:中断号为3;中断标志为TF1;中断服务程序入口为001BH; 串行口:中断号为4;中断标志为R1或T1;中断服务程序入口为0023H; 2、中断允许控制 CPU对中断系统所有中断及其某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。IE的状态可通过程序由软件设定。某位设定为1,相应的中断源中断允许;某位设定为0,相应的中断源中断屏蔽。CPU复位时,IE各位清0,禁止所有中断。
[单片机]
51单片机-按键&蜂鸣器&数码管
在上一讲的代码中我们可以不用写“sbit GND = P2^3;”,像宋老师那样直接在开头“P2 = 0xF7;”仅让P2.3输出0其他输出1即可,这样P2.7就有被拉低的条件了。 1.趁热打铁 沿袭上一讲的功能,我们新学的按键知识需要结合所学过的无源蜂鸣器硬件一起捣鼓玩玩。同上一讲的代码功能一样,这次用的是无源蜂鸣器,按键按下时,蜂鸣器就响,松开不按时就不响。 2.分析 我们先缕缕思路,显然无源蜂鸣器要想鸣叫,就不能像“LED2=KEY4;”这样赋值的方式。我们已经知道,在P2.3输出低电平的情况下,K4按下的时候程序中KEY4就等于0,松开不按时KEY4等于1。 这里可以在主函数中的死循环里用“if(KEY4==0
[单片机]
28-基于51单片机的智能窗帘设计
具体实现功能 系统由STC89C51+1602液晶+步进电机+光敏电阻+按键模块+DS1302时钟模块+ADC0832模块+电源构成。 1、LCD1602显示日期和时间、当前控制模式及光照强度; 2、可通过按键切换:手动模式、定时模式、光控模式; 3、手动模式:通过开窗帘和关窗帘键对窗帘进行控制; 4、定时模式:通过按键设置开窗帘和关窗帘的时间; 5、光控模式:光照强度大于设置值时开启窗帘,否则关闭; 6、步进电机正转半圈,模拟开窗,红色LED灯点亮;电机反转半圈,模拟关窗,红色LED灯熄灭。 按键说明: 按键1:切换模式(在手动模式、定时模式、光控模式循环切换) 按键2:进入当前时间的设置(年
[单片机]
28-基于<font color='red'>51单片机</font>的智能窗帘设计
51单片机存储器地址
1、特殊功能寄存器 在AT89C52 片内存储器中,80H-FFH 共128 个单元为特殊功能寄存器(SFE)。并非所有的地址都被定义,从80H FFH 共128 个字节只有一部分被定义,还有相当一部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。 不应将数据 1 写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是 0 。 AT89C52除了与AT89C51所有的定时/计数器0 和定时/计数器1 外,还增加了一个定时/计数器2。定时/计数器2 的控制和状态位位于T2CON(参见表3)T2MOD,寄存器对(RCAO2H、RCAP2L)是定时器2
[单片机]
基于51单片机的医用血压测量仪设计案例
一、主要功能 本项目使用Proteus8.12仿真51单片机控制器,使用OLED12864液晶模块、PCF8591 AD模块、按键、电机等。 主要功能: 系统运行后,OLED显示开机显示界面。可通过K1键开始测量血压,气泵阀开启,一段时间后停止,开始测量高压和低压,并将测量值显示在OLED,并且显示当前血压状态。 主要功能如下: (1)OLED显示血压; (2)血压高压测量你; (3)血压低压测量; (4)血压状态显示。 二、硬件资源 51单片机核心模块、OLED12864液晶模块、按键、电机模块、PCF8591 AD模块。 三、软件设计 /* //定义结构体 _sys_ctrl sys_ctrl; //系统参数设置 vo
[单片机]
基于<font color='red'>51单片机</font>的医用血压测量仪设计案例
51单片机做的音乐盒,带八段数码管显示程序+Proteus仿真
#include reg52.h #define uchar unsigned char #define uint unsigned int sbit key1=P3^2;//按key1可以暂停播放 sbit key2=P3^3;//按key2可切换歌曲 sbit fm=P3^7;//蜂鸣器连续的IO口 uchar code shuzi0=0x3f; uchar code shuzi1=0x06;//数字1 uchar code shuzi2=0x5b;//数字2 uchar code shuzi3=0x4f; uchar code shuzi4=0x66; uchar code shuzi5=0x6d; uchar code
[单片机]
<font color='red'>51单片机</font>做的音乐盒,带八段数码管显示程序+Proteus仿真
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved