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

说明:

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

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

 

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

Q1:车子要做多大尺寸

Q2:需要实现哪些功能

Q3:成本控制在多少预算

Q4:计划多久完成

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

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

Q7:是否要接入到scratch

 

确认小车尺寸

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

https://gd2.alicdn.com/imgextra/i4/3370008624/TB2H13QAeGSBuNjSspbXXciipXa_!!3370008624.jpg

买回来卡尺量一下,画个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)整体设计之缘起

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值