学智能硬件好还是软件好

2022-09-14 16:52:18 IT技术网 互联网
浏览

本篇文章给大家谈谈《学智能硬件好还是软件好》对应的知识点,希望对各位有所帮助。

本文目录一览:

智能硬件产品的软件设计

我一直相信努力会有回报,一直在公司推的扩展器APP项目终于做起来了。目前UI,UE已经完成,软件开发和APP开发的接口也对好了,就等排期进行开发了。我觉得自己的运气也是极好的,本来一个APP项目是很难立起来的,这期间经历的挫折和打击也不少,还好搭着costdown项目的顺风车一起做了起来。本文主要讲讲整个硬件产品的软件设计中自己的经验,虽然以扩展器为例,但是这些点适用很多智能硬件产品的软件设计了。

既然APP都要做了,则索性将PC端和H5端都进行了一次迭代,由于接手过来的时候PC端和H5端产品都已经做了一个初版,但是都没有相关的文档,所以自己全部重新整理了一遍PC端,H5端的文档。当写一个新的产品或者功能的prd的时候,我是可以根据自己的逻辑和思路一气呵成的,但是这个我需要在同一个文档里既整理出现有产品的内容还得加入新的想法进行改进。这就要求我得先对已有的功能逻辑完全了解,然后思考这个逻辑是否合理,有没有更好的方案。更奇葩的是,有些逻辑我觉得是混乱的,在询问之前团队时,他们居然说当时有些异常情况没有遇到,没有去做相关的测试,所以没有梳理相关逻辑。因为项目的推动不容易,主要是因为开发资源比较紧张,在和开发商量的时候答应过开发,PC端和H5端的升级会尽量减少开发的工作量。因此在梳理文档的时候,只是整理现有逻辑,修改不合理的逻辑,梳理之前团队没有想的逻辑,新功能一个都没有添加。关于PC端和H5端这块,我只想给出以下建议:

遇到中途接手的项目,并且没有相关文档可以参考的时候,三点建议:

第一:一定是需要把已有的逻辑了解透彻,记录下逻辑还有优化的点以及逻辑混乱的点,自己先梳理一遍之后再去和现有的开发团队对一下有没有什么问题;

第二,考虑到开发也是根据现有的程序做修改,在文档中把有改动的点一定要做标记,清楚描述现有逻辑是怎样的,修改后是怎样的,这样方便程序员查看;

第三,除了有些逻辑进行了相关改动,为了更好的用户体验,交互方面也做了些改动。坑爹的是,翻看公司之前的UE和UI资料,发现做出来的产品和资料对不上,这可苦了UE和我了。我给UE把整个产品操作流程录了下来方便她对着现有做出来的查看,然后把要修改的地方在文档中标记出来,拜托她对着标记的地方做相应的修改。最后我再把她做出来的UE图仔仔细细对好几遍,有不对的地方得记录下来拜托她再修改,这还得来回好几次。

虽然过程繁琐了点,但是比推项目的时候开心多了。而且这样一来,我相当于把一个硬件产品所需要的软件设计全部做了一遍。虽然说扩展器的功能比较简单,但是能把架构和细节都过一遍,也学到了不少东西。毕竟之前做路由APP的时候全部做的是功能点,没有一个整体的概念。

这部分主要是根据自己做扩展器APP的经验,介绍一下在设计智能硬件产品APP的时候需要注意的部分重点。智能硬件产品APP不同于纯互联网APP,它的设计需要考虑的端比较多,每一个逻辑都需要考虑到所有的端的情况,不同端之间会相互影响,不同的网络情况又会对不同的端造成不同的影响。所以那个情况多呀,异常多呀,有些功能稍微复杂点的写出来的prd快赶上一个APP了。今天呢,不谈这些细节,细节还是放在具体的功能设计里面去说比较合适,今天只说在新做一个硬件产品APP时需要考虑的切入点。

一般来说,对硬件产品APP而言,重要的有如下模块:

接入,首配,工具

对于一个刚起步的硬件产品APP来说,其中最重要的是 接入 和 首配, 只有简易快速的配置连接硬件,才谈的上控制硬件,即工具和APP的其他功能设计。

接入主要考虑的是APP如何识别出硬件产品,识别是不是自己公司的产品(只有自家的产品才能进行通信控制)以及是自家公司的哪个产品(不同的产品,其首配,工具等等很多功能都是不一样的)。由于公司的硬件产品比较多,最好的是能够将相同性质的硬件产品集成在同一个APP里面,这样既方便产品的开发,用户体验也会更加友好。扩展器同路由器一样同属网络产品,再加上扩展器本身就需要搭配路由器使用,因此我所负责的扩展器APP是直接集成到现有的路由APP里。识别是否为自家公司的产品好做,一般待配置产品的SSID(网络名称)都是带有自家公司的名称的,根据SSID就可以直接判断了。那如何识别这是一台路由器还是一个扩展器呢?连接上设备的网络后,路由器是有IP地址的,APP可直接通过访问IP发送消息来确认是路由器。但是扩展器只有在扩展成功后才会有分配的IP,而且还是变化的,因此不能使用和路由器一样的方法进行识别。产品处于待配置状态时会广播一些字段,其中就有MAC地址,原以为可以通过对Mac地址进行管控,直接将一段Mac地址对应一类产品,这样就可以直接通过Mac地址进行识别产品类型。然而首先我们公司并没有做Mac地址的管控,其次APP通过广播接收的Mac地址信息会有一定的不准确性,因此这种方法不可行。但是广播出来的字段又没有其他有用信息可利用了,所以又回到了SSID上,我们决定给SSID加上后缀名,表征它是一个扩展器。因用户在首配和无线设置中是可以修改SSID的,为了始终能够识别(除了首配的时候需要进行识别,在用APP切换设备管理的时候也需要对连接设备进行识别),后缀名不能让用户改动,这个我们在交互层面上做了一定的设计,而在理解上,则参考Word之类的文档名称一样,只能修改名称,不能修改后缀名。从SSID上进行识别只是一个初步识别,在初步识别后还会通过尝试通信让扩展器发送一个产品类型的字段进行确认。

这样整个识别接入的逻辑才算完整,开发做起来相对简单,用户体验也没有太大影响。

不同的产品的首配流程是不一样的,这里只谈一些共识点。首配需要首先检测是否首配过,检测方法在了解后略微有点low。主要是根据WiFi名称是否被更改过以及是否有设置密码来判断。当然,若恰好某台配置过的路由器既没有修改WiFi名称还没有设置密码,那不好意思,我们判断不了,可能需要重新配置一次了。整个首配流程在设计的时候一定要简单并且防呆工作做好,不然一步错导致步步错就会带来极差的用户体验,而首配的失败会让用户对整个品牌和产品的好感度消失。无论是在路由配置还是扩展器配置中,首配基本上都是“一气呵成”的,也就是把所有的设置项都选好后记录下来,中间没有任何生效的点,只有最后一步才会将所有的设置生效。而有一点不一样,就是管理员密码的设置是直接生效的。在体验产品的时候会发现,在保存管理员密码后不进行接下来的配置,退出后再次进入则需要输入管理员密码;而且输入后不能进入首页(也就是不能),而是进入继续配置的页面。为什么要提到这些,因为有两个方向的考虑点,一是管理员密码有没有必要和接下来的配置分离开,二是用户就是不想配置连网就想使用工具控制设备的场景怎么处理。PC端现在做的还是分离和不能进入,而APP不同的是,用户在输入管理员密码后可以跳过配置,直接进入首页,因为考虑到APP是有与硬件不相关的功能(比如社区)和账户体系(比如我)。分离是为了设备管理的安全性着想;不能进入考虑的是大部分场景:没有扩展连网,设备的意义不大,所以还是尽量引导用户去配置完成。

以上几点是首配中比较容易混乱的大的逻辑点,其他的步骤是根据不同设备的连网需求而有所不同的,这个里面的细节也是非常的多,本文就不做过多的描述了。

不得不说,文章排版有点.......(不过内容可是真真切切的的实战干货)我实在不想把时间花在排版上,因为还有好多东西要学,好多内容要尽快输出。此时的我已经换了个部门,现在已经不是硬件产品经理了,目前是一名社区产品经理。所以很多东西要尽快学习熟悉起来,不然要被人怼死。以后输出的和硬件相关的产品设计文章可能不多了,社区产品相关的文章请拭目以待。

自己有一定编程基础,如果想自己动手做个智能硬件(如机器人,智能家居产品)什么的需要学习什么内容呀?

我们大学就是学这个的,我大概给你讲一下我们都学什么课程吧

《电子电路技术基础》

《模拟电子技术基础》

《数字电子技术基础》

《机械学基础》

电路,模电,数电的知识吧,主要就是帮你设计电路

机械学,就是机器人的胳膊通电了之后怎么动之类的

如果你想设计的全面一点可能还需要《大学物理》,《工程数学》之类的书,机械部分的设计图,你还需要学一下工程图怎么画,最好再学一下CAD

电路部分设计可能还会用到电路仿真软件Multisim,Proteus之类的也要学

设计完了制PCB板会用到Protel的知识

Multisim里面也有制版功能,不太好用而已

当然,你想给机器人编程,还得学习《单片机》

想让机器人实现一些测量功能,比如碰到墙壁转弯之类的智能化的功能,还需要学习《传感器》

我说的这些都是基础知识储备,你可以上中国知网,或者其他论坛网站,看看别人自己做机器人的论文或者一些经验。

但是如果你只是想拼模块的话,去淘宝买就行了,而且就是一些拼接,没什么技术含量,看说明书就够了。

人工智能要学哪些软件?

人工智能目前主流还是用的python语言和C/C++。

其实大家在网上搜索,都可以查得到,人工智能用的是python语言。实际呢。人工智能的底层逻辑都是用C/C++写的。python只是负责来写一些实现的逻辑。例如第一步是什么、第二部是什么等等。

人工智能的核心算法都是用C/C++写的,因为是计算密集型,还需要非常精细的优化,还需要GPU,还需要专用硬件的接口之类的。而这些,只有C/C++可以做到。

而之所以用到python,是因为python的易上手和胶水语言的特性。C/C++需要一个其他语言到C/C++的挂跨语言接口,那么基于python的特性,python是首选。

所以目前人工智能编程主要的语言是C/C++,其次是python。

开发智能硬件需要哪些技术

传感器检测技术,数字信号处理技术,嵌入式技术,通信技术,信息处理技术。

智能家居所用的软件?和硬件是什么?

每个智能家居品牌用到的软件和硬件技术都不一样。你的问题太笼统。 我们物联智能家居是采用zigbee无线组网技术实现的,硬件要用到zigbee芯片,软件要结合zibee协议,开发适合各种平台(手机、IPAD、电脑)的操作软件。核心技术就不多讲了。

做智能硬件需要学哪些?

1.明确硬件总体需求情况,如CPU 处理能力、存储容量及速度,I/O 端口的分配、接口要求、电平要求、特殊电路要求等

2.根据需求分析制定硬件总体方案,寻求关键器件及其技术资料、技术途径、技术支持,要比较充分地考虑技术可能性、可靠性以及成本控制,并对开发调试工具提出明确的要求,关键器件索取样品。

3.作硬件详细设计,包括绘制硬件原理图、单板功能框图及编码、PCB布线,同时完成开发物料清单、生产文件(Gerber)、物料申领。

4. 领回PCB板及物料后安排焊好2~4 块单板,作单板调试,对原理设计中的各功能进行调测,必要时修改原理图并作记录。

5.软硬件系统联调,一般的单板需硬件人员、单板软件人员的配合,经过单板调试后在原理及PCB布线方面有些调整,需第二次投板。

6.内部验收及转中试,试产时,跟踪产线的问题,积极协助产线解决各项问题,提高优良率,为量产铺平道路。

7.小批量产。产品通过验收后,要进行小批量产,摸清生产工艺,测试工艺,为大批量产做准备。

8.大批量产。经过小批量产验证全套电子产品研发、测试、量产工艺都没有问题后,可以开始大批量产工作。

其中电子产品开发完毕后,一般需要有个外壳或者结构体之类的固定电子产品的东西,正常情况下不会直接拿着电路板使用,因此中间还穿插着模具设计、外形设计、开模具、试装配等工序,大约有将近20多道工序才能完成一个电子产品研发过程,复杂一些的就更多了。不太清楚都可以直接向北京瑞雪星晨科技有限公司的李工询问下,此人经验比较丰富,愿意助人。

可以说每一款电子产品研发都有自己的特点,否则就变成同一款电子产品了,因此遇到具体的电子产品研发时,还需要根据其功能特点进行专门分析。

关于《学智能硬件好还是软件好》的介绍到此就结束了。