从单片机到机器人

一 概述

写这个文章的目的,是总结自己作为机电一体化专业学生到从业者这一路以来的经历,给后辈们一些参考,希望能够帮助到大家。这里不专门强调背景,也是为了让更多的人受益。

二 初入行业

我进入这个行业,说起来也是一次机缘巧合,当年填报志愿的时候,我不知道三个平行志愿是有排列顺序的。顺手把不那么起眼的机械自动化写到了第一个,而自己真想去的信息管理专业排后面了,可能也是一种宿命?我所在的学校,当初机械专业往往是招不满从别处调剂过来凑人数的,可想而知,我这虽然不高的分数去了肯定也是照单全收的。

大学几年,我还是认真的学了本专业的一些课程的,特别是大三开始的单片机课程,那个时候微机原理上听不懂的内容,去单片机课程上再听一遍,再动手制作一遍,就明白了不少。依然记得,汇编语言那些课程,去图书馆来回看了好几本书才明白。以前学点东西,资源太少了,除了图书馆,还剩下图书馆。现在回过头看,要是当初有人指点一下就好了。所以现在写这个帖子,也是给这个方向的朋友们一个参考。

言归正传,大学前面几年,实际是打基础的,从大三开始进入专业课的学习,同时开始了单片机的学习,比较怪异的是,我们大二的时候学的是Visual Basic,而不是工科院校习以为常的C语言,所以我的大学时代单片机技术的软件方面的非常畸形的组合汇编语言+Visual Basic,我觉得现在应该没人用VB去开发界面,也不会有人用汇编去写单片机了。虽然走了个弯路,不过我觉得还是值得的,原因后面再聊。大三开始分流到机械电子工程,之后一路走到黑,都是机械电子工程专业了。

三 继续深造

大学毕业,继续读机械电子工程的研究生,这一下又是好多年。从研究生第二年开始,就开始做项目了,真正的单片机开发项目。那是一个数据采集的项目,牵涉的东西还不少,具体内容就不说了,谈谈体会。首先,机电专业的,电路板是要自己画的,由于没钱,所以你只能做自己没法做的部分,其余都要自己来。那个时候,除了PCB加工,剩余的原理图设计,layout,焊接,调试全部自己来。包括元器件采购也要去电子市场跑,没有电商可用,那可是2000年出头,阿里还小,那么阿里的儿子淘宝就更小了。

好不容易把电路板搞出来了,开始写代码了,发现自己当年学的汇编貌似没啥用处了。那个时候的参考书已经开始大规模转C语言了,但是伟大的51单片机明星郭老师还没有出来,所以我没得学习了,只能自己摸索。摸爬滚打几个项目后,我对51单片机开发总算熟悉了,开始尝试各种不同的类型,比如比较流行的AVR单片机,后面据说有16bit的单片机了,也尝试用了一段Freescale的,现在叫做NXP了。这里说一句,16bit的汽车电子领域大量在用。再到后面,32bit的出来了,我又跟着去了,中间的插曲是,嵌入式linux火了,S3C2440+嵌入式Linux大卖,我也跟着入场,开发板买了吃灰,发现自己除了会跟着操作,好像啥都没看懂。那么继续买入门的S3C44B0,据说是裁剪的Linux,继续吃灰。现在看起来,我一个单片机C语言刚做几个项目,连模块化都不太懂的,直接上Linux,而且没有这个OS的使用经历,跟着入坑是真的入坑。好在,学生的时间就是多,我绕这么一圈下来,貌似也没啥,除了损失玩游戏的时间。

四 参加工作

参加工作后,开始正式跟机械设备的控制打交道了,才发现,之前学的内容和做的项目,真是不值一提。那个到手的代码多到以10万行来计,还不是复制黏贴能搞定的,这个时候真有种铁板一块,无从下手的感觉。好处依然是,新人入手,时间足。可以说,我职业生态的C语言基础,就是这个时间段打下的。这个阶段,市面上那些经典的C语言书基本翻遍了,也才体会到C语言之父写的那本《C编程语言》真不是给初学者看的。当然,深入理解了指针这个灵魂,这个时候,我要感谢当年汇编语言打下的基础了,我觉得,你要是知道汇编语言的寻址方式,C指针这种是小儿科了。只是当年被寻址方式直接劝退的人也不在少数。因此,在后面有本x86汇编语言的书里面,那位作者直接说,上来直接教寻址方式,是劝退学生,而当年,我翻过的5本书里面都是这个开头的,感叹是不是出生太早了。

这个阶段最大的体会是,原来C语言可以这么用啊?原来产品级别的代码是这样设计的,原来一个程序里面70%以上的时间是处理各种异常和给出调试日志。真是应了那句话,成功的方式只有一种,失败的方式有999种。当然,这里不得不再提依据,我工作的时候用的是DSP,这个嵌入式领域的一大山头,在我学生时代其实也接触了,我不太好意思讲,因为也是蜻蜓点水。

五 继续前进

我个人觉得自己应该算是单片机行业的老兵了,从大学三年级开始,从51的8bit单片机开始,直到今天的复杂64位单片机,我都用过,不能说精通,好歹都打过照面。工作中也算是把嵌入式领域,设备控制上能见过的东西都摸了一把。啥SPI,IIC,UART,232,485,这些外设,各种OS,UCOS,FreeRTOS,RTX,VxWorks,Linux,都有过开发产品的经历。各种各样的机器人,并联的,串联的,移动的,也都开发过。个人的感觉是,单片机和OS都是载体,会随着时代的进步不断变化,作为技术人员需要不断拥抱这个变化,说个简单的例子,51单片机时代,我们用的RAM只有128Bytes,对的,你没有看错,是Bytes,不是MB也不是GB,甚至KB都不是。所以经常能见到一些代码绕来绕去,是为了阶跃几个bit,估计以后是很难看到了。单片机从最初12MHz主频,到现在1GHz以上都有了。外设也是越来越丰富,从最初的各种外扩,到现在的各类片上外设,真是方便太多了。

现在的网上资源,书本,也不是当年的情况了,大家到了一个单片机学习的好时代。但是,坏处呢?就是越来越卷了,既然大家都知道了,那就更加努力去拼搏吧。

最后,谈一谈我对机器人这个行业的看法。以前,我们的机器人教科书上总是说,机器人的形态很多,有不可移动的机械臂,也有可以移动的无人车,无人机,所以这个概念很大,跟人的差异太大了。其实,我觉得之前定义为robot的不应该翻译为机器人,而是根据不同的形态来翻译更好。比如,机械臂就叫操作机或者机械臂就好了,无人车或者无人机也那样叫就行了,别都归类到机器人了,叫做自动化设备更好。就像智能手机,实际上不能叫做手机,叫做智能移动设备更好。自动化设备发展了这么多年,终于在最近几年,出现了真的可以叫做机器人的设备了,这个也就是目前大热的人形机器人,是不是有点拗口,都说是人了,还要强调人形,这个也是历史遗留问题了。因此,多少年来,自动化技术的发展,其实只是丰富了手脚(机械臂,无人车),以及眼睛(各种检测技术,滤波算法),真的大脑层面的一直处于比较低级的阶段,直到最近几年,AI技术的突破发展,才有了真的机器人概念。我们未来的机器人是真的有大脑的,从最近AI公司联合机器人公司推出的原型产品就能看出来。能真的听懂人话,与人交流,并产生动作和行为,具备一定自主思考推理能力的设备,才能叫做机器人。大家终于要见证货真价实的机器人了。这是一个非常好的时代,大家共同努力。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值