本文素材来源于宁夏大学

作者:白二曹、王瑞、穆琴、王童兵

指导老师:康彩

一、项目简介

1.功能介绍

无线充电智能车由无线充电、自动控制、红外遥控、网页显示四部分组成。

(1)流程描述

用户端浏览器访问http://127.0.0.1页面显示小车所有信息及所需数据

→网页通过与小车的WIFI模块连接检测小车是否可以正常工作;

→手动通过红外遥控器电源按钮启动小车或者网页端点击启动启动小车;

→通过网页端或红外遥控对其进行速度和方向的调节;

→到达充电桩通过小车和充电桩的协同作用反馈电量信息,网页通过电量转化为的续航里程距离下一充电桩的位置判断是否需要充电,或者用户自己进行判断并选择合适的方案(网页判断指令只提供参考价值);

→若需要充电则发送指令小车接收指令并启动充电模式。

(2)主流程的流程图

(3)分块功能

① 无线充电:无线充电桩采用电磁感应式无线充电传输系统。系统由发射线圈L1和接收线圈L2组成,2个线圈组在一起构成电磁耦合感应器,发射线圈所携带的电流产生磁场,并通过线圈耦合使接收线圈产生电压,充电桩上的红外发射模块与小车上的电量检测器协同 工作判断车是否需要进行无线充电。

② 自动控制:充电桩上有光电接触开关和红外发射模块,车沿规定路线经过无线充电桩时,充电桩上的光电接触开关被遮挡,无线发射模块开始工作;红外发射模块全程工作,与小车上的红外接收器配合用以检测小车是否到达充电区域,其与小车上的低压报警装置结合,便可判断小车在此充电区域是否停止充电(判断条件:红外模块检测到小车到达充电区及低压报警装置工作),若判断需要充电,网页发送充电指令WiFi模块接收指令后启动自动充电程序小车进行充电。

③ 红外遥控:红外遥控是在没有网络时用户端网页与WIFI模块不能正常通信的情况下采用红外遥控的方法对小车的行进方向与速度进行   调整和实现避障功能,以及在进行无线充电时微调车体相对充电桩的位置使其达到高效充电的效果。

④ 网页显示:用户启动无线充电智能车后,车体上会显示智能车电量,网页端将显示所有数据(包括:电量、电压、续航里程、温度、小车线路是否正常、是否需要充电等),网页端还可以控制智能车的行进方向及速度,需要充电时,网页端也可以显示充电界面与完成充电界面。各团队成员间已将iis系统搭建成功,可实现不同电脑在同一局域网下访问该页面的功能。

2.先进性、创新性与智能性

(1)先进性:此智能车采用目前前沿的充电方式对电源进行充电,且可通过多种传感器的相互配合实现自动充电的功能。该智能车将数据监测及操作系统、报警系统、温度检测、用户体验及反馈信息服务等功能集成于网页端,可实现网页端控制及无网络状态下的手动控制,更加全面系统的对智能车进行操控。

(2)创新性与智能性:此无线充电小车采用用户端网页与WiFi模块数据连接进行远程控制与数据传输,通过数据传输反馈小车的整体性能与能量指标,通过自动检测电量数值与充电桩保持通信进行自动充电和自动调节车体使其正对充电位置以达到能量转化的最高效率,在网络失去联系的情况下可以采取红外遥控的方法对小车进行控制;网页端可以在设置IP地址相同和允许公开访问的情况下可实现多用户同时对网页进行浏览,查看小车的所有参数数据和性能指标。

二、制作过程

1. 思路来源

现在国家提倡低碳出行,绿色环保,尤其电动车行业近几年得到了快速的兴起与发展,越来越多的人把目光转向电动车方面,随着我国经济持续增长和城乡居民收入水平的提高,以及电动车便捷、环保、经济等特点满足了居民日常出行的需求,电动车市场呈现出稳定的发展势头,同时,消费者对产品品质的要求也越来越高。从市场供给来看,电动车行业的投资情况良好,行业投资项目进展较好。在电动车需求持续增长、销售持续扩大的情况下,现有电动车生产企业不断扩大产能,优质的生产企业涌入,将推动电动车产量持续增长。

从现状来看现有的有线充电有诸多弊端例如:找到充电桩后接口标准不一,充不了;公用充电桩太难占;充电桩分布不均,村民买车最吃亏;电压过高容易引发火灾和其他的人员伤亡和财产损失……因此无线充电技术的应用将填补这空白区域,无线充电技术暂时没有能够完全达到客户和商家的满意程度,但它的优势还是值得一提的,首先无线充电不限地理环境的影响,不限车辆的型号,不限用户的多少,占地小、充电便利性高、可无人值守、人工维护成本低、空间利用率更高等诸多优势,一旦无线充电技术实现成熟化,其面对的市场或将是全球的各个领域和行业都会有所涉及,无线充电技术应用于电动车等出行工具来讲,前景是非常可观的,所以我们组对于这一想法展开讨论后大家一致同意这个项目的想法,决定首先做一个基础一体化的小车模型来为后期的研发做基础。

2.方案选择过程

对于方案选择,我们初选方案有三个:

方案一:

不使用无线充电技术,而是做一款大容量的“超级电池”,其可保障智能车行驶数百公里。经过分析及我们现有条件的限制,一致觉得此方案无法实现,故放弃此方案。

方案二:

改造现有有线充电桩的充电方式,优化路径,增大可利用空间以增加充电桩数目,采用新技术,提高有线充电桩的质量。经实地调研与后期讨论,认为此方案花费较大,并不符合市场需求,故放弃此方案。

方案三:

采用无线充电技术,做一套无线充电装置,改善电动车的充电方式及其自动控制能力以提高电动车性能。经过数次讨论与研究,我们一致认为此方案为最可行的方案。

3.制作过程照片

三、程序源代码

1. 网页部分

2.驱动、控制部分

#include<IRremote.h>//使用IRRemote函数库.

#define choose 2 //1为通过串口打印码值模式

#definechoose2 4 //3为通过串口打印码值模式

//.......................................................................................……//

电机设置

#define leftA_PIN3;

#define leftB_PIN4;

#define leftC_PIN 5;

#define leftD.PIN 6;

#define rigbtA_PIN 7;

#define rightB_PIN 8;

#define rightC_PIN 11;

#define rightD_PIN 12;

void motor pinint(); //引脚初始化

void forward(); //前进

void back( ); //后退

void turnLeftOrigin(); //原地左

void turnRightOrigin(); //原地右

void turnRightforword();//右前

void turnLeftfonword(); //左前

void turnLeftback(); //左后

void setup();

{

Serial.begin(9600);//9600(PC端使用)

motor pinint();//电机引脚初始化

Irrecv.enablelRIn();//启动红外解码

}

void loop();

{

if(choose==1 && choose2==3) scan();.

else if(choose==2 && choose2==4) rev();

}

/*电机引脚初始化*/

void motor_pinint();

{

pinMode(leftA_PIN, OUTPUT); //设置引脚为输出引脚

pinMode(leftB_PIN, OUTPUT); //设置引脚为输出引脚

pinMode(leftC_PIN, OUTPUT);

pinMode(leftD_PIN, OUTPUT);

pinMode(rightA_PIN, OUTPUT); //设置引脚为输出引脚

PinMode(rightB_PIN, OUTPUT); //设置引脚为输出引脚

pinMode (rightC_PIN, OUTPUT);

pinMode (rightD_PIN, OUTPUT);

}

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

forward子函数——前进子函数

函数功能∶控制车前进

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

void forward();

{

analogWrite(leftA_PIN, 30);

analogWrite(leftB_PIN, 0); //左轮前进

analogWriteleftC_PIN, 30);

analogWriteleftP_PIN, 0);

//----------------------------------------------//

analogWrite(rightA_PIN, 60);

analogWrite(rightB_PIN, 0); //右轮前进

analogWrite(rightC_PIN, 60);

analogWrite(rightp_PIN, 0);

}

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

back子函数——后退子函数..

函数功能∶控制车后退.

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

void back();

{

analogWrite(leftA_PIN, 0);

analogWrite(leftB_PIN, 30); //左轮后退..

analogWrite(leftC_PIN,0);

analogWrite(leftD_PIN,30);

analogWrite(rightA_PIN, 0);

analogWrite(rightB_PIN, 70); //右轮后退

analogWrite(rightC_PIN, 0);

analogWrite(rightD_PIN, 70);

}

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

turnLeftOrigin 子函数——原地左转子函数.

函数功能∶控制车原地左转.

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

void turnLeftOrigin();

{

analogWrite(leftA_PIN, 0);

analogWrite(leftB_PIN, 120); //左轮后退.

analogWrite(leftC_PIN, 0);

analogWrite(leftD_PIN, 120);

analogWrite(rightA_PIN, 120);

analogWrite(rightB_PIN, 0); //右轮前进

analogWrite(rightC_PIN, 120);

analogWrite(rigbtD_PIN, 0);

}

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

turnRightOrgin子函数——原地右转子函数

函数功能∶控制车原地右转..

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

void turnRightOrigin();

{

analogWrite(leftA_PIN, 120);

analogWrite(leftB_PIN, 0); //左轮前进..

analogWrite(leftC_PIN, 120);

analogWrite(leftD_PIN, 0);

analogWrite(rightA_PIN, 0);

analogWrite(rightB_PIN, 120); //右轮后退..

analogWrite(rightC_PIN, 0);

analogWrite(rightD_PIN, 120);

}

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

turnRightforword子函数——右前运动子函数

函数功能∶控制车右前

void turnRightforword();

{

analogWrite(leftA_PIN, 200);

analogWrite(leftB_PIN, 0); //左轮快前进

analogWrite(leftC_PIN, 200);

analogWrite(leftD_PIN, 0);

analogWrite(rightA_PIN, 120);

analogWrite(rightB_PIN, 0); //右轮慢前进

analogWrite(rightC_PIN,120);

analogWrite(rightD_PIN, 0);

}

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

turnLeftforward子函数——左前运动子函数

函数功能∶控制车左前

void turnLeftforword();

{

analogWrite(leftA_PIN, 120);

analogWrite(leftB_PIN, 0); //左轮慢前进.

analogWrite(leftC_PIN, 120);

analogWrite(leftD_PIN, 0);

analogWrite(rightA_PIN, 200);

analogWrite(rightB_PIN, 0); //右轮快前进

analogWrite(rightC_PIN, 200);

analogWrite(rightD_PIN, 0);

}

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

turnRightforword子函数——右后运动子函数

函数功能:控制车右后

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

void turnRightback();

{

analogWrite(leftA_PIN, 0);

analogWrite(leftB_PIN, 200); //左轮快后退

analogWrite(leftC_PIN, 0);

analogWrite(leftP_PIN, 200);

analogWrite(rightA_PIN, 0);

analogWrite(rightB_PIN, 120); //右轮慢后退..

analogWrite(rightC_PIN, 0);

analogWrite(rightD_PIN, 120);

}

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

turnLeftforward子函数——左后运动子函数.

函数功能∶控制车左后.

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

void turnleftback();

{

analogWrite(leftA_PIN, 0);

analogWrite(leftB_PIN, 120); //左轮慢后退.

analogWrite(leftC_PIN, 0);

analogWrite(leftD_PIN, 120);

analogWrite(rightA_PIN, 0);

analogWrite(rightB_PIN, 200); //右轮快后退

analogWrite(rightC_PIN, 0);

analogWrite(rightD_PIN, 200);

}

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

stop子函数——停止子函数..

函数功能∶控制车停止

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

void_stop();

{

analogWrite(leftA_PIN, 0);

analogWrite(leftB_PIN, 0); //左轮静止不动

analogWrite(leftC_PIN, 0);

analogWrite(leftD_PIN, 0);

analogWrite(rightA_PIN, 0);

analogWrite(rightB PIN, 0); //右轮静止不动

analogWrite(rightC_PIN, 0);

analogWrite(rightD_PIN, 0);

}

void rev(void);

{

if (irrecv.decode(&results)) {   //解码成功,把数据放入results.value 变量中

if ((results.value == 16718055)||(result.value == 1033561079))

{

forward(); //2前进

delay(3000);

_stopl);

}

else if((results.value == 1675477))

{

if (irrecv2.decode(&results2)) {

if(results2.value == 12345677)

{

_stopl);

}

else if((results.value ==16738455))

{

forward(); //0前进

}

else if ((results.value == 465573243) || (results.value==16730805)|| (results.value == 1228587814)||(reultsvalue == 1045675)||(results.value == 1333775926)||(results.value == 304335233)|| (results.value == 891929274)||(results.value == 93040025)

{

back(); //8后退

delay(500);

_stop();

}

else if (resuls.value == 16724175)||(results.value == 2534850111)||(results.value == 814588342)|| (results.value == 2534850111)||(results.value == 16724175))

{

turnLeftforward();//1左前

delay(500);

_stopl);

}

else if((results.value == 16743045)||(ceault5.xaluge==1635910171))

{

turnRightforward(); //3右前

delay(500);

_stop();

}

else if ((results .value == 1209942246) || (results.value == 851901943) || (results.value ==   16728765) || (results.value == 2364611682) || (results.value==3833948210) || (results.value == 1253111733) || (results.value==2268352677))

{

turnleftback();   //7左后

delay(500);

_stop();

}

else if ((results.value == 16732845) || (results.value == 1623741183) || (results.value ==

1053031451) || (results.value == 3680188601) || (results.value == 2405230358) || (results.value == 3337729400))

{

turnRightback();   //9右后

delay(500);

_stop();

}

else if ((results.value == 2351064443) ||   (results.value == 16716015) || (results.value == 3640844469) ||(results.value == 3606423579))

{

turnLeftOrigin(); //4原地左转

delay(250);

_stop();

}

else if((results.value == 16734885) || (results.value == 71952287) || (results.value == 16716015) || (results.value == 2351064443))

{

turnRistougin(); //6原地右转

delay(250);

_stop();

}

else if (results.value == 1217346747) || (results.value == 16726215) || (results.value == 2740225102))

{

_stop(); //5停止

}

irrecv.resume(); //继续等待接收下一组信号

} if(results.value ==0x16)

delay(600);//延时600毫秒,做一个简单的消抖

}

}

}

void scan(void){

if(irrecv.decode(&results)){   //解码成功,把数据放入results变量中.

Serial.print("irCode:");   //把数据输入到串口

Serial print(results.value, DEC); //显示红外编码,

Serial.print(", bits: ");

Serial.print(results.bits); //显示红外编码位数..

Irrecv.resume(); //继续等待接收下一组信号.,

}

if(results.value==0x16){

digitalWriter9, HIGH);

Delay(600); //延时600毫秒,做一个简单的消抖.

}

}

void scan1(void){

if(irrecv2.decode(&results)){   //解码成功,把数据放入results变量中

//把数据输入到串口

Serial.print(“irCode2:");

Serial.print(results2.value, DEC); //显示红外编码.

SeriaLprint(", bits: ");

Serial.println(results2.bits); //显示红外编码位数

Serial.print(results2.value, DEC); //显示红外编码

Serial print(", bits: ");

Serial.println(results2.bits);//显示红外编码位数.

irrecv2.resume(); //继续等待接收下一组信号.

}

}

无线充电智能车的详细资料请参考无线充电智能车

无线充电智能车的制作相关推荐

  1. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.4 准备好了吗?

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第2章 ,第2.4节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更多章 ...

  2. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一1.1 麻烦开始了

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第1章 ,第1.1节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更多章 ...

  3. 《Arduino奇妙之旅:智能车趣味制作天龙八步》一2.3.2 开发环境

    本节书摘来华章计算机<Arduino奇妙之旅:智能车趣味制作天龙八步>一书中的第2章 ,第2.3.2节,(美)James Floyd Kelly Harold Timmis 著 程晨 译更 ...

  4. 无线充电智能保温杯设计

    目 录 1 绪论 2 1.1 选题背景及意义 2 1.2 发展现状及趋势 2 1.3 研究主要内容 2 2 总体方案设计 3 2.1 系统硬件设计方案 3 2.1.1 主控制电路 3 2.1.2 显示 ...

  5. 基础摄像头四轮智能车的制作

    本人是17届的参赛选手,是一个刚刚入门智能车的新手,想把我这半年的思路整理给大家,希望能帮助到大家,如果有什么不对的地方希望大家能够指出. 1.首先是边线的获取 我边线的获取方法是爬线法,通俗来讲就是 ...

  6. 【项目分享】无线充电项目!!!

    无线充电项目!!! 前言 无线电源系统 基于无线充电的智能车 基于超级电容的无线充电方案 结语 前言 无线充电技术作为一种便捷.无需物理接触的充电方式,正逐渐应用于各种电子设备和智能系统中.在嵌入式领 ...

  7. 智能车竞赛技术报告 | 智能车视觉 - 中南林业科技大学 - 弃车人队

    简 介: 本文根据第十六届智能车大赛的要求,经过在实验室的不断调试,研究并设出了拥有自主循迹功能及数字和物种识别功能的以摄像头传感器为主导的 AGV实体.在循迹算法上,为了加快小车对赛道信息的采集速度 ...

  8. 智能车竞赛技术报告 | 节能信标组 - 宿迁学院 - MAkkaPakka

    学 校:宿迁学院      队伍名称:Makka Pakka    参赛队员:王妙龙 吴子敬 李翔 带队教师:倪亚南 袁静     第一章 引言   全国大学生智能车竞赛是旨在加强学生实践.创新能力和 ...

  9. 智能车竞赛技术报告 | 节能信标组 - 太原工业学院 - 晋速-天槊星

    简 介: 本文结合了太原工业学院晋速天槊星队的队员们在准备第十六届智能车大赛中的研究成果.车模为自制车模,核心处理器采用TC264处理器,软件平台为ADS开发环境.本文主要介绍智能小车的机械结构,软硬 ...

最新文章

  1. alias重启终端失效的问题
  2. python selenium爬虫爬京东评论_Python 不用selenium 带你高效爬取京东商品评论
  3. Python 数据结构视频教程五
  4. 基于第三方开源库的OPC服务器开发指南(2)——LightOPC的编译及部署
  5. MySQL优化 之 Discuz论坛优化
  6. 进入保护模式(三)内存的分页
  7. Redis1 晨考题
  8. Let's Encrypt泛域名SSL证书申请
  9. rabbitmq如何清空queue队列数据
  10. [cocos2dx笔记015]关于cocos2dx Button三种状态说明
  11. 【习题基础知识】输入与输出、简单循环(好多图贴上去好累...要看图的话我把word文档发给你)...
  12. 使用dex2jar反编译apk
  13. python计算图片的信源熵值(信息熵)
  14. 百度地图模拟签到考勤程序
  15. 十年再出发:阿里云智能战略加速的“四级火箭”...
  16. Qt程序无法启动,debug时提示During startup program exited with code 0xc0000135
  17. Audition 2021(Au)下载安装及详细安装教程
  18. 基于autojs7的亚丁号成语大家族辅助
  19. 基于android的安卓订餐多商家点餐app
  20. 设计原则—YAGNI

热门文章

  1. 迷你电脑主机的优缺点及应用分析
  2. iGrimace IGevo 非ZNT V8 V3 IOSAPP一键新机 全息备份
  3. JAVA 控制台读写
  4. android 更换软件提示音,修改微信APP新消息提示音(教程)!
  5. canvas--如何实现H5移动端电子签名
  6. 锻炼少儿编程中的逻辑思维能力
  7. Excel 单元格超出不显示
  8. 艾德克斯充电测试软件_艾德克斯直流充电桩测试应用
  9. 极简酷炫个人简历自我介绍职位竞聘述职PPT模板
  10. 8口交换机方案-RTL8309N(含原理图和PCB)