说明:

1)此章节将讲述下我对各个环节的考虑,详细的选型和资源分配会在《二.3》节展开,软硬件设计会在设计部分讲。如果对智能小车熟悉的同学可以一带而过,看《二.3》最终选型和资源分配。

2)因为是写博客,不是设计文档,所以语言不会那么严谨,有些地方我会直接把结果放在功能需求里,希望大家理解

既然确定了要做一款自己的智能小车,那么问题来了:

Q1:车子要做多大尺寸

Q2:需要实现哪些功能

Q3:成本控制在多少预算

Q4:计划多久完成

Q5:哪些功能板载、哪些功能外扩

Q6:上位机和终端APP具备哪些功能

Q7:是否要接入到scratch

确认小车尺寸

最初想法是准备在小车上直接盖个PC材质的车模盖子,这样外壳也有了,在某宝上搜了一圈,最后选定了一款恺司玛[1]的外壳。

买回来卡尺量一下,画个CAD图纸,打印出来实际对比下,顺便拿实际车轮试验下效果,最终确定的板子尺寸为292*114mm,轴间距为185mm,用直径60mm的车轮,考虑成本,优先考虑TT-130电机。

小车功能规划

  • 避障功能

智能小车的基本功能之一。但是需要部署几路传感器,传感器的位置如何放置,传感器的值如何获取呢?综合了现有成熟传感器部件COTS(Commercial Off-The-Shelf)的用法,决定在车头和车尾各放3路红外,组成左-中-右的检测网络,传感器数据采集用直接ADC采样的方式,既可以省器件,减少占用PCB面积,在外部光线干扰的情况下,可以通过ADC采样值设置检测门限。

  • 循迹功能

智能小车的基本功能之一。通常的做法是放置左-中-右三路循迹红外,后来又有了左-中-中-右四路红外方式,我没有试过4路是否更好,但考虑到循迹难处理的是转弯时的减速和脱离轨迹的判断,在车身中部预留了红外循迹,这样就能构成了左-中-右-中后的循迹检测网络。传感器数据采集也用直接ADC采样的方式。

  • 测距功能

智能小车的基本功能之一。常用的做法是超声波测距(HC-SR04)、红外测距(GP2Y0A21YK0F)或者激光测距(VL53L0X),成本最低的是超声波测距,一路HC-SR04价格约4元钱;GP2Y0A21YK0F价格约30元,VL53L0X价格约15元。

型号

工作电压

检测范围

数据接口

价格(¥)

HC-SR04

5V

2cm~45cm

GPIO

4.00

GP2Y0A21YK0F

5V

10cm~80cm

模拟电压输出

30.00

VL53L0X

3.3V/5V

200cm

I2C

15.00

这些模块集成了专用IC,适合直接使用商用成品模块。

实测HC-SR04距离可以到800mm,所以我一开始是把超声波安装位置放在车身中间,这样,我买的车壳就比较容易安装,后来发现实际操作比较困难,而且舵机安装在后面,因为舵机出线原因,导致有安装问题,后来我又移到车头部位了。

  • 舵机功能

智能小车的基本功能之一。舵机功能考虑如下,超声波测距需要左右转动,就需要一路舵机;如果配置摄像头,需要2轴转动,这样2路舵机就属于标配;

舵机有2种备选:SG90/MG90s和S3003,因为小车不用转向舵机,不需要很大的扭矩,通过测试,我发现MG90s(180度转向)够用了。

  • 电机驱动功能

智能小车的基本功能之一。电驱配置有三种典型方案(不考虑平衡车2路方式)

方案1:4轮结构:独立四驱

方案2:3轮结构:独立前置2驱 + 后轮万向轮

方案3:4轮结构:独立后置2驱 + 前轮转向轮(2轮)

方案2与选的车壳整体外观不符,直接筛掉

方案3尽管能节约2路电机,但是我规划电机是直接安装在PCB板上,这个方案需要再做个抓向用的支架,在安装上比方案1更复杂,也筛掉了。

最终选定的是方案1,方案1还可以做冗余设计,就是可以把TT-130电机的内部电机和减速齿轮挖掉,直接挂从动轮就变成2驱车了:)

  • 编码器测速功能

智能小车的基本功能之一。在我的规划里,小车不需要准确的转速和行驶路程,本来不想加的,但是作为基本功能,还是保留了前驱的2路码盘测速功能

  • 方位计功能

可选功能。因为对MPU6050稍微熟悉一点,方位计首选的MPU6050,通过DMP的姿态计算,MPU6050能够提供必要的yaw值,可以用来小车行驶纠偏,也可以用来计算车速(实际这一块没搞定,四元素没吃透,直接积分出来的速度和距离值偏差很大,无法直接使用)。

  • 本地状态显示功能

可选功能。通过本地显示可以直接展示小车必要的状态信息如电量、模式等信息。我主要评估了1602液晶和OLED屏,后者尽管贵一点,但是占地面积小,可以与MPU6050共用I2C总线

  • 通信功能

智能小车的基本功能之一。在通信方案上有多种方案:有线通信:TTL/RS232/RS485/CAN,无线通信:Bluetooth/NRF24L01/WIFI。有线在初期调试和作为后期操作维护(OM)时常用,无线的优势也很明显。一般的小车方案都会用有线加无线的方案,但是我自己没怎么玩蓝牙和NRF24L01,对WIFI和TCPIP协议更熟悉,所以我优选的自己熟悉的方案,wifi模块选择的是ESP82266中的ESP-07模块。蓝牙和NRF24L01预留接口需要用到时再说。

多说几句ESP-07这个WIFI模块,当初选这个模块时是有些担忧的,它对发送帧间隔是有固定要求的,手册是20ms。个人实测最快收包和发包间隔要大于130ms,否则就会丢包。看网友讲这个可以通过修改固件可以优化,我就用了此模块作为我的通信方案。其实到现在我都没去动这个模块的固件,通过软件收发协议和策略来优化通信链路。

蓝牙模块和NRF24L01通过接口外扩。

  • 车身指示功能

智能小车的基本功能之一。除了必要的行驶指示灯外,小车必须有固定的灯光颜色或者闪烁来指示小车当前状态。增加了RGB全色灯,作为车身指示灯,这样就预留了一个功能通过颜色识别小车的功能。

  • 碰撞检测功能

可选功能。因为有红外避障和超声波避障,这个功能显得不是很重要,没有考虑在板上直接部署。如果需要,用现有成熟模块如KY301扩展,是否板上部署,还要看最终的MCU资源是否够用。

  • 颜色识别功能

可选功能。网上看到过国外发布的用颜色识别做循迹的小车,不同颜色组合代表不同指令,蛮有意思的,但是已经超出我设想的功能范围了。所以颜色识别我没考虑,如果要用智能通过商用成品接线或者单独做个小板子扣上去用了。

  • 光强检测功能

可选功能。光强检测最简单的方法就是使用光敏电阻,高级点方案用光强传感器如KY031。这个功能我原来的设想是用来判断是白天还是晚上的,但是后来发现,家里灯光开亮点跟大白天传感器反馈结果差别不大,想想真要这么用的话,软件增加一项设置,把红外传感器的设定门限跟该项值联动就行了,所以板子上我就留了一路光敏,作为备用。

  • 语音控制功能

可选功能。设想的基本功能是通过语音可以控制小车,再高级点语音功能我觉得超出小车功能范围了。实现方案有2种备选,一种通过APP语音识别后,将命令通过WIFI下发到小车执行;另一种方案直接用离线语音识别模块,通过该模块接口接收语音指令。其实还有一种是直接用MCU的I2S接口,我觉得这样做会加大我的投入时间,能用现成的就用现成了,也不是一定需要这个功能。

  • 视频功能

可选功能。这个功能的想法来源是看过国外一个玩家发的视频,他把高清摄像头安装在车上,然后把回传的视频通过投影仪投放在墙面,用方向盘操控小车行驶,感觉跟第一视角的VR现场一样,挺震撼的。这个功能曾让我在MCU选型上犹豫过,是否直接用ESP32 CAMERA套件来做。简单分析了下,这个套件的图像分辨率和帧数有可能达不到预期,干脆也做成用成熟商用部件扩展,直接用wifi直连做数据回传,图像不经过小车,这样可以节省大部分的MCU处理开销,MCU也能选择更便宜点的。其实,我在小车做好后,用家里的高清摄像头装载车上,然后投屏到电视上,发现抖帧很厉害。有网友说这是网络原因或者摄像头原因,用FPV摄像头就没有这个问题,我同意您的看法。

  • 定位功能

可选功能。这个功能我觉得对小车来说是鸡肋,玩小车时会用终端控制,如果需要位置信息,可以直接终端的位置信息就可以,如果需要用GPS位置信息做巡航,通过成熟单工模块外扩即可。

  • 供电功能

必备功能。从使用简单的角度,我觉得用可充电电池直接板载安装,通过USB口充电这种方式更简单易用。选用18650电池,是因为到某宝一搜“电池支架”,基本都是18650电池的支架,对电池容量简单估算下,假如2节2400mA容量18650的电池,无论串联使用或者并联使用,总容量约为4800mA,能量消耗主要在电机,TT130/N20/370电机工作电流和堵转电流差别很大,而且电池合理使用也有讲究的,4800mA毛估估可以玩1个小时左右。

  • 高级扩展功能

在我的规划中,如果智能小车只具备上述功能是不够的。小车能否像无人机编组那样实现编队行驶(我记得UBTECH可以让几百个机器人同步跳舞),能否像智能驾驶那样在行驶过程中插队或者离队。。。。。。

另外,如果在小车上长个机械臂,舵机数量是否需要预留或者复用?

等等,还有哪些不一样的地方呢?

预算与成本控制

我计划把每辆小车成本控制在200元以内

时间计划

阶段

计划投入

投入说明

方案

7天

原理图/PCB

7天

加工

4天

基本功能调测

7天

硬件、通信和传感器基本功能

上位机

7天

APP

7天

上位机调完后开始

功能完善

14天

增加业务功能

调优

14天

做必要的实时性优化

大致一估摸,把基础部分做好大概都要个把月,平时还要赚奶粉钱。计划时间也就是大概吧

功能板载和外扩功能

需要根据MCU资源才能最终确定,需求规划直接购买商用部件的有超声波、舵机、声控、摄像头等,在设计时要考虑PIN-TO-PIN直插,并且留够安装孔。

上位机和终端APP功能

这个有点多。先不讲

是否要接入到scratch

一开始没准备折腾,后来小孩子提了这个问题,我就弄了下,现在只打通了scratch->node 代理->tcpserver -> 小车的单向通道,还没有真正实现。没太大动力:)

侵权声明:文中部分图片来自互联网,如您发现引用您的资源而又没有声明出处或者您不愿意被我引用,请留言,我会第一时间修改。谢谢

下一篇:集成智能小车(二...1)整体设计之缘起

集成智能小车(二...2)整体设计之谋相关推荐

  1. 自动跟随小车c语言,智能小车跟随系统的设计与制作.doc

    本科毕业论文(设计) 题目: 智能小车跟随系统的设计与制作 学院: 物理与电子科学学院 班级: 姓名: 指导教师: 职称: 完成日期: 年 月 日 PAGE \* MERGEFORMAT PAGE \ ...

  2. 机器人控制系统(二)——整体设计

    一.简述 机器人控制系统是一个复杂设计,针对不同功能目标有不同的开发路线,若想开发一个通用的控制系统难度会非常高,因此确定目标需求非常重要,这里所述的目标需求有两种,一种为开发基本的控制系统再根据实际 ...

  3. UI2Code智能生成Flutter代码--整体设计篇

    背景:   随着移动互联网时代的到来,人类的科学技术突飞猛进.然而软件工程师们依旧需要花费大量精力在重复的还原UI视觉稿的工作. UI视觉研发拥有明显的特征:组件,位置和布局,符合机器学习处理范畴.能 ...

  4. 智能小车二十《摄像头和路由器装上小车》

    很多次失败后,昨晚突然找到一个路由器16m的flash.再来一遍吧,经过几次的安装.加锡.去锡,终于把路由器搞定了.我就用默认的网络配置吧,至少这样比较稳定,每次都能访问到路由器. 总结昨晚几次的路由 ...

  5. 软件智能:aaas系统整体设计的内容构成和简单介绍---正文开篇 之 --重说“’得名’的’A字面指称’及其’C字里暗藏’和’B行间隐含’” 之1

    在前面的一篇<三析"中台">中,有说"'得名'的'A字面指称'及其'C字里暗藏'和'B行间隐含'". 简单的说,就是 "得名"的 ...

  6. 智能家居工厂模式整体设计框架控制设备测试

    通俗理解的步骤就是链表通用模板定义(在头文件里定义).链表的创建(头插尾插,在.C 文件里).链表的初始化(init配置管脚初始电平等).链表内容的读取(指令工厂TCP服务端读取客户端发来的指令.串口 ...

  7. 【毕业设计】39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

    [毕业设计]39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真工程+源代码+答辩论文+答辩PPT) 文章目录 [毕业设计]39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真 ...

  8. 【毕业设计之树莓派系列】基于树莓派的智能小车设计

    基于树莓派的智能小车设计 摘要 随着人们对智能化生活的需求不断增长,智能小车的发展逐渐受到关注.然而,现有的智能小车硬件和软件设计有一定的局限性,需要进一步改进和完善.本文旨在基于树莓派PICO开发板 ...

  9. 最简单DIY蓝牙PS2遥控器控制蓝牙智能小车

    51单片机物联网智能小车系列文章目录 第一篇:最简单DIY的51蓝牙遥控小车设计方案 第二篇:最简单DIY串口蓝牙硬件实现方案 第三篇:最简单DIY蓝牙PS2遥控器控制蓝牙智能小车 文章目录 51单片 ...

最新文章

  1. php和java融合_JSP、PHP与JAVA融合的开发环境之二
  2. 查询前几条记录SQL在不同数据库中的用法
  3. 修改centos等linux的hostname-永久生效
  4. Linux free指令查看内存使用情况
  5. Vim配置文件(全平台可用)2012-05-01版
  6. 解决Extjs中Combobox显示值和真实值赋值问题
  7. flash的Socket通讯沙箱和安全策略问题
  8. 不止代码:ybtoj-棋盘分割(二维区间dp)
  9. 数据结构 2-2 线性表的顺序表实现
  10. HDU2050 由直线分割平面推广到折线分割平面
  11. 正则表达式实现中文的大写字符
  12. three.js 05-05 之 SphereGeometry 几何体
  13. [推荐] 6410 休眠唤醒实现小结 [问题点数:40分]【转】
  14. (转)“不开心”的10种英语表达
  15. 分布式定时任务框架---Uncode Schedule
  16. 计算机网络出行711,出现网络连接711五种解决方法详解
  17. Android 选择图片、上传图片之PictureSelector
  18. 100个深度图像分割算法,纽约大学UCLA等最新综述论文
  19. C语言中sort函数的用处
  20. OpenWrt 设置IP地址

热门文章

  1. android华为手机全屏显示
  2. 如何在直播视频上添加水印Logo
  3. 2020年Java面试题及答案_Java面试宝典_Java笔试题(持续更新中)
  4. JAVA练习 家庭记账本
  5. ROC:Receiver operating characteristic Curve接受者操作特征的理解
  6. 如何搭建个人简历网站
  7. 微信公众号小程序如何做流媒体视频直播?
  8. 阿里滑块,X82Y,解决方案
  9. java version 1.8下载_JDK1.8下载、安装和环境配置教程
  10. 真的必须要在主线程更新UI吗?