毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

今天分享可以做毕设的WIFI视频小车,由化作尘设计制作。小车上安装WIFI模块,通过手机APP连接,并控制小车行进,同时将小车上摄像头拍摄到的画面回传至APP上显示。

小车效果展示


项目复制难度不高,根据分享的资料就能成功,已经有人成功了。如果作为毕设的话,还需要增加一定的工作量,除了可以自制开发板之外,还可以增加更多的功能。希望同学以此为参考,做出更好的作品来。

需要的硬件材料:

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

来自正点原子WiFi摄像头模块,minifly四轴配套模块,价格约125元。体积小重量轻、WiFi通信60米距离 、720 30帧高清画面。

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

2、电机选择

电机采用霍尔编码电机,620转。这里用直流电机即可,这个贵,网上搜直流减速电机,最好带个轮子,方便安装

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

3、小车框架

可以自己用木板自制,当然也可以直接购买智能小车底盘,几十块钱就可以搞定。

4、主控芯片

直接选择最简单的STC89C52单片机最小系统板。

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

5、电机驱动

经典的LN298,驱动电流大,工作稳定,就是比较费电。

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程


嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取嵌入式物联网学习资料(头条)

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

6)电源

用18650锂电池3.7V供电即可。

电路原理图

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

按照上图,把各个模块接好即可。(看不清请下载资料)

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

源代码

/*******************************************
名称: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!
");
    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!='\0')
        {
            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--);
}


系统调试

1)APP使用

首先,安装WiFi模块配套APP。在分享的资料中,找到软件:

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

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

第三步,连接WiFi,找到MiniFly

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

第四步,打开软件,开启电源

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

最后,看到画面,开启控制。

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

2)一般遇到的问题

问题一:app连接不上,解决方法简单粗暴,直接换手机。

问题二:连接上模块不能控制小车运动

调试方法:

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

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

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

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

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

最后,请大家仔细阅读两个手册:

毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

END


毕业设计|手机APP WIFI遥控视频小车,0延迟,开源制作过程

转载自:达尔闻说

文章来源于毕业设计| 手机APP WIFI遥控视频小车,0延迟,开源制作过程

原文链接:https://mp.weixin.qq.com/s/U2lGeON1xNTqRnusqv9pqQ

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章