接下来我将以项目开发为主线,总结一下我这一年来学习机器人的得与失!以下只是个人学习分享,大佬勿喷!毕竟我只是一个渣渣。
关注我公众号的人可能看过我之前写的一篇文章渣渣鑫的故事
没错,我是渣渣鑫,那么今天抛开其他,我们从机器人开发项目流程说起,聊聊我这一年来的项目经历。
简单说一下我参加的比赛吧,下面这张图就是我这大二这一年大大小小参加的比赛,说多不多,说少不少,但收获很多,抛开比赛得的奖,我觉得最值得回忆的是友谊,队员的配合,和我们通过的每一次宵,熬过的每一个夜晚。青春就是这样啊,一眨眼大二就要结束了,现在回想起来还是那么的美好,我们的青春只有这一次,多年以后再看这篇文章,热泪盈眶!!
电赛我记得应该是大二刚开学比的,因为疫情导致比赛推迟,因为自己资历不够,那一年的电赛我没有参加。比赛之后我决定进行复盘,做了一个简易版的电赛小车,完成了巡线,数字特征点识别,路线规划等功能。
那晚我记得很清除,第二天大一要来培训,我们三个熬到了四点多才睡觉。但把赛题做出来的时候,心里别提多激动了,根本没有困意。
后来我们开始了新的项目-----道路标线机器人
又是一夜一夜的累加,肝!
第二天一大早就下去调试,拍视频
开始挑战杯:
大家都努力完成着自己的任务,没有一个人懈怠,我们从0开始,一步一步走到了现在
最后我也带着它走到了挑战杯的赛场,结果虽然不是很满意,但这又如何呢?我更在乎的是这段经历。比赛如社会,潜移默化中会教会我们一些东西。
参加了大四学长的毕业,也留下了我与景蔚哥的同框照片。仿佛一眨眼,自己也将到达毕业季了,时间真的很快!!
大学生学科竞赛咨询网:https://www.saihuan.net/
大学生竞赛社区:https://www.saikr.com/
现实版钢铁侠
抖音搜:猪坚强(普通人的造车梦)
老师好我叫何同学
下载地址:
微信公众号搜索:今日工作室,里面有破解版的软件
宏观了解了项目开发需要哪些软件之后,很多人已经头大了,这么多东西,谁学的完啊,等学会都大学毕业啦!其实上面这些东西只是让你学会如何使用这些软件,软件的使用是最基本的,也是最没有技术含量的。不要把会使用软件作为学习目的,就比如电路这块,我们学的应该是电路的设计,而不是照着视频,画个原理图。就说我会硬件了。再比如软件开发,开源代码一大堆,淘宝咸鱼几毛钱一堆代码,我们要用架构的思维去学习,我们可以使用别人的代码,毕竟高级程序员都是CV大师,但是我们要在抄代码的基础上学会如何改代码。到最后如何设计代码。
说了这么多,那我们项目开发需要什么呢?
其实对于初学者来说,我们有一段空白区,就是我们不了解学的东西是什么,有什么用。就拿我自己来说吧,我大一培训那会儿,学长说要开设单片机课程,但是并没有说什么型号。因为我是一个性子急的人,所以当天下课我就去网上找资料,铺天盖地都是C51单片机,我就自以为要学习这款单片机,并且当时花了199买了一个课程,那晚自以为买到了宝,我记得应该是看到了半夜两点多吧!(根本看不懂)
第二天咨询学长才发现,学的是stm32.。。。。。。当时给我整无语了!
所以这里我想说的是,有问题就问,虽然我们懂得也不多吧!但至少那些基础的问题还是知道的。
好了废话少说。直接上干货!!课程学哪些,去哪里学。
自己主要是学习软件这块的,所以硬件懂得不是很多(有问题可以问我,我有认识的大佬)
我觉得学习硬件之前必须要科普一些电路知识,对于小白,上来就学习AD软件,只会照葫芦画瓢,最后连电容,电阻都分不清。难的物理知识咱抛开不说。毕竟电子设计大赛有专门的电路设计题。这可不是看你PCB板子画的怎么样,这是要上手设计电路的
电路基础知识补充
凡亿教育
其实PCB设计很简单,只要有原理图,懂原理图,就可以绘制,看的就是你布线的耐心。嘉立创这边封装什么的都很全,画完直接打板就行(每个月两次免费大板)。上面有很多开源的PCB,可以打着回来玩一玩。
https://www.bilibili.com/video/BV1dU4y187fN?spm_id_from=333.337.search-card.all.click&vd_source=b504e7535c0fe22d96216efd422227aa
其实画PCB在很多时候不怎么用,更多的时候是需要我们自己去焊接的。那么焊接就有说到了,简单的直插式焊接,和难度高点的贴片焊接。这个有技巧,而且工具得好,比如加热台,焊锡膏等等。
贴片焊接技术
1.买材料的时候,对于型号的选择,就拿简单的型材和螺丝螺母来说,型材的尺寸和螺母尺寸是否一致,反正我第一次买回来的材料。螺母都塞不进去。当时真的很崩溃。
2.买材料一定要看型号
3.型材连接件种类也有很多,型号也要和型材想匹配。否则配合不上。这些我都有遇到过。这只是其中的一部分。很多都需要大家在制作过程中去学习。毕竟吃一堑长一智嘛
在选材料的时候,其实是能学到很多东西的(我这里以电机驱动和电机选择为例子来简单说一下)
首先是电机驱动:比如我们常用的L298n,TB6612,
我们买材料一定要看材料的属性,是否符合自己项目需求。
这里告诉大家一下,比如一些模块资料我们没有,可以去淘宝搜这些模块,然后和商家要相关资料,大部分在商品介绍里面就会给出。
关于建模这块,我是真的不会,但是我天天看他们建模,整体流程还是懂点的,我这里就以项目开发中,需要建模同学做哪些,来简单聊一聊。
这个我也没什么推荐的,主要是熟能生巧,我建议以项目去学习,就是学习一个零件如何绘制,而不是学习这个软件怎么操作
其实我觉得吧,建模同学才是YYDS,因为他们是最累的,建模就是在没有实物之前,要自己构思每一个结构,心里要有整体的框架,这个是很难的,这不是天马行空的想象,这是要与实际相结合的,建模建不好,实物就做不好。而且建模的一些零件是要靠3D打印的,这对于尺寸要求就很高了。
设计是最难的,你要设计的合理,设计的有美感,确实是需要投入时间好好练习的。
这个的话看自己能力,其实第一个作品,我们的设计周期挺长的,也不要听别人说几小时一个图,我觉得,一个好的设计是需要考虑很多因素的。就第三个机械鸟爪的设计,我们当时为了想自平衡这个结构,换了很多设计,最后虽然没参加比赛,但觉得这个作品学到的东西远远不至于那一张奖状。
如果有人喜欢设计,后期可以往影视设计,三维设计,家居设计方向发展。我这里有一些接单渠道,说到接单我这里插一句,自己还是半瓶醋的时候不要接触,实话。不过你们想接,可以联系我,包括一些程序设计,软件开发相关的我这里也有。
https://data.newrank.cn/m/s.html?s=OSkrODE3Li5I&k
https://www.sanweimoxing.com/
https://www.mfcad.com/
知识付费,所以下图花钱是很正常的
这里面很多3D动力获奖的作品,其实我们做不到完全的创新,那么就在人家的创新上加上自己的元素。这也叫创新。
说到电控这块要学的东西真的很多,其实全部掌握是不可能的,但是学习的过程中会了解到很多知识。丰富了我们的知识面。接下来我就一一介绍一下吧!
下面这些是我大一学习过程中总结的,主要是每个阶段学习对应的一些课程和文章,其实我也没什么讲的,很多东西需要自己去搜集,我的可能只是针对我自己的,不一定适合所有人嘞。
这块我觉得吧!学习单片机开发之前,必须要了解单片机开发的语言,这里主要用到的是C语言开发,和一点点C++知识。
课程推荐:
大家B站搜郝斌C语言(这个课程虽然很老了,但是语言这个东西就和汉字一样,根是不变的)很多人听小甲鱼的,但我还是觉得郝斌老师的不错。
进阶:
c primer plus中文版
视频的话:比较多,想要的私聊我
如果只是想快速做项目的话,这块了解基本语法,数组、函数、结构体、指针(指针了解就行,因为初学不可能一下学会,这是循序渐进的过程)、简单的逻辑运算(与或非)。差不多学完这些,就可以开始学习单片机了。
学习单片机你要有个宏观了解,如果做一些简单项目的话,可以用C51和arduino,这两款单片机学起来比较容易,尤其是arduino,是一款轻量级开发板,适合创客爱好者使用。其实他的功能非常强大,只是我们没有深入去了解。
博睿机器人:这个视频资料目前没有上传,需要的私聊我。但是arduino资料是很多的,B站搜一下就可以啦!
我之前也写过一篇文档,主要就是讲解stm32基础代码的,因为当时一个同学让我帮他写一下。
具体学习流程呢其实也是先看视频入门,然后做几个小项目,差不多基本外设会使用就行,作为下位机来使用就行,主要学习的是GPIO ,时钟,定时器,串口,IIC,SPI,ADC。差不多就这些。
视频推荐:
- 普中科技(以项目为主)
- 野火stm32(讲的详细)
- 正点原子
进阶:
这个物联网开发板其实还是很值得大家去学习的呢,现在有一门课程就是物联网,讲的就是万物互联,这也是我们以后发展的方向。
其实单片机的学习,最后看的是你编写的逻辑代码和驱动代码,这也就是为什么会有驱动开发工程师和算法工程师了。
物联网是未来发展的大趋势,小米家居就是要实现万物互联。所以还是建议大家学一下的。
物联网学的东西也不少,偏向网络开发这块,像一些通信协议之类的都要了解。
ROS机器人可以说是控制领域的扛把子了,学习起来也是比较吃力的,但是使用起来不难,毕竟开源代码,这里要注意的是,ROS实现的是自动控制,自动控制中,就要求我们精准性,所以硬件这块很重要,
建议学习ROS的时候,先用人家配套的硬件。或者做一个小的,灵活的。
视频推荐:
古月居21讲
windows下安装ROS教程
需要重点学习的:
熟悉Linux操作
会使用linux指令启动文件
了解ROS包的文件分类
了解tf坐标系
了解里程计
了解Slam算法
了解激光雷达的使用
能够完成上位机和下位机的通信(串口)
使用UWB实现定位
电控在项目中也是很重要的,电控就像是大脑,控制着一切,没有加入电控的机器人,就是没有灵魂的躯壳。
在我们做的互联网+项目中,无人机相关的新技术主要是:
首先是对云台摄像机的视觉伺服控制算法进行研究,设计了一种基于图像坐标偏移反馈的云台运动控制算法。
该算法使云台可根据目标相对位置驱动摄像机转动追踪标靶,从而保证目标标靶质心始终处于图像中心位置,有效解决了无人车跟踪过程中传统固定摄像机视野受限、目标跟踪丢失的问题;
我们也增加了基于增量式PID算法的无人机电机控制技术,解决了电机状态变化较快时发生抖动的问题,从而做出最优决策来向电机发送转向指令,驱动无人机行进。
资料推荐:
简单的下位机控制就不讲了,主要讲一下用到的新技术有哪些吧!
这次主要是加入了图像回传功能,和定点拍摄的功能。
图像回传这块用到了网络编程相关的知识,主要是讲拍摄的照片存储到硬盘中,树莓派相当于是客户端,会读取硬盘中图片的路径,将图片发送到服务器端,我们接收到图片后,进行后期制作。
定点拍摄,我们采用opencv的特征点读取。来达到定点拍摄的效果。
操作起来还是比较简单的,图传现在有很多种,我们学习的这个比较简单。有局限就是必须连接同一局域网(后期应该使用广域网进行图传)
说实话,项目做的再好,如果PPT上面不下功夫,那只会竹篮打水一场空。关于PPT制作,我总结以下几点:
- 首先是内容;项目背景、同类产品存在的痛点、针对痛点的解决方案、模型图、工程图、零件图、爆照图、产品细节/功能展示、制作过程(激光切割,数控加工,3D打印等等)、实物展示、知识产权展示(专利,论文等)、未来规划
- 上面是争对创新类比赛,如果是创业类比赛,就要进行财务分析,市场调研,资产预测等等。
3.PPT 的美观,能让评委眼前一亮。
这是我的机创的一个PPT展示。做PPT你得要会ps的简单抠图和pr的视频制作。这写都是再比赛中会用到的。
其实每个项目的制作流程都是相似的。但我们在准备过程中任然存在诸多问题。
C语言
Linux
C++
数据结构
数据库
QT开发
MFC等等