专业的方案公司阐述智能硬件产品开发的全过程

news2024/10/5 17:22:35


现在市场上的方案公司太多,让人应接不暇,当我们要开发一款智能硬件产品的时候,我们要如何去选择方案公司呢?又怎样判断方案公司是否则专业呢?下面沐渥带大家一起来了解下智能硬件产品开发的全过程,大家就知道如何去判断方案公司的专业度了。

一、市场分析
做智能硬件产品开发如开发互联网产品一样,首页也要对市场进行分析,其中主要包括用户需求分析;市场规模分析;竞品分析;用户购买力分析;可行性技术分析;成本分析等。
在制定产品的目标用户、功能、价位、利润等目标,并分析要做的产品是轻决策类型还是重决策类型,不同类型的产品对售价和产品服务有着很大的影响。同时还要分析制定自己的技术力量和上下的资源整合以及营销策略等。通过综合分析后则要产出一个市场分析报告和项目所需资金、技术方案、人员、周期、利润、营销方案以及产品迭代计划的项目分析报告,等得到客户的认可后则可进入立项阶段。

二、组建团队
一个软件开发也许只要一个程序员就差不多,但是智能硬件开发,则需要一个团队,除了软件相关人员外,还需要成立硬件开发和生产团队。一般至少需要包括外观设计、结构设计、电子工程师、测试工程师、品控、采购、项目经理等角色。
一个软件项目最大的成本是人力成本,而对于智能硬件项目来说,人力只是成本的一部分,还有很大一部分是产品模具和开发材料的成本,所以智能硬件项目的开发的对于方案公司面临更大的挑战。

三、需求分析
团队组建完后就可以进一步的分析需求了,需要综合需求和成本把产品的形态和硬件配置确定下来,这样后续软件的需求和功能就可以依托硬件的能力边界去做了。确定好硬件需求后,需要把产品的原理图制作好,在验证完可行性之后,就可以正式开始产品的设计和研发了。在这个阶段软硬件的需求和功能需要一同进行规划,达成基本的框架和共识。

四、软件研发
智能硬件产品的软件开发,除了APP和后台之外还有一个固件端的开发。由于固件是要运行产品上的,所以固件端的开发通常是先使用开发板来代替产品本身的,等主板设计好可使用时,就可以转移到实际产品上进行开发。
前期可以使用开发板进行大致的测试。不过由于开发板和实际产品之间还是存在着一些配置等方面的差异,所以有可能在开发板上没有的问题,在产品上运行时就会出现,因此在硬件可以运行调试后,需要持续对产品进行详尽的测试,要确保产品的稳定性。
通常智能硬件产品的软件都是可以进行远程升级的,即便软件出现一些BUG,也是可以通过远程升级解决的。

 五、外观设计
产品外观设计必须考虑能否装配主板或其他电子器件,要保证你所设计的产品主板能够放进去你所设计的盒子内部,而且盒子强度也要够;其次产品是否能开模,对于一件产品外观设计完以后能否开模制造出来,取决于拆件,而拆件又与装配循序、外观美观性和成本紧密关联。

六、结构设计
在结构设计中需要注意,根据外观和主板等配件,设计要兼顾两者的内部结构。同时也要考虑产品的坚韧度、组装难度、脱模难度,有运动部件的产品尤其需要注意运动部件的结构灵活性和稳定性。

七、PCBA设计
在电子设计和开发中需要注意的是PCB设计和电子元器件选型这两个问题。首先PCB设计考虑走线、SMT难度、分离模拟电路与数字电路以及元器件和电路之间的电磁干扰等相关问题。其次是元器件选型的问题,在电子元器件选型中要避免使用偏门的,因为有可能这个元器件随时会面临停产,或者与其他元器件难兼容,有时更换一个元器件会因为Pin脚或驱动不兼容而带来大麻烦。最后在主板设计好后即可进行打板出样品了,样品出来后即可烧录固件对其进行测试和优化。

八、整机验证
在这个阶段产品除了要进行各方面的测试验证和迭代优化之外,还需要将产品拿到实际的应用场景和用户那里进行使用测试,不仅可以从用户的角度测试产品的性能,还能暴露出产品场景设计和需求以及产品体验问题。因此整机验证是非常有必要的,当产品进一步成熟后再发现问题就很难进行修改了。

九、打样生产
产品经过整机验证后,基本外观、功能、配置就已经敲定了,所以此时就可以打样了,等打样确认后,过一段时间在进行生产,再次确定产品的稳定性。

十、开模、备料
在产品经过多次测试后,若在外观、结构、电子没有需要改动的情况下,模具就开始开模了,电子元器件也可以开始备料。

十一、整机验证
验证模具的质量,生产出来的壳体是否有问题,抗跌落或其他测试否能通过;对于电子开始小批量的SMT,验证测试PCBA的质量;若需要进行产品的内测,有条件的话可以进行小批量的生产;对产品进行耐久性和稳定性等多方面测试;产品组装工艺和流程的制定,在这个阶段需要组装多个产品,并对产品组装和生产工艺进行整理,输出产品生产指导书,指导工人生产和生产流程的设计。

 十二、产品内测
虽然产品一直在各种测试,但是在实际应用的各种场景中还是会遇到各种问题,因此产品出来后交给小规模的目标用户,去真实的场景下进行长时间的使用,可以帮助我们去发现那些我们无法覆盖到的场景和问题。通过这种方式也可以帮助我们找出产品设计中的不足,获得用户真实的使用体验,及时对产品进行优化。

十三、小批量试产
小批量试产首页是选择一个适合的代工厂,优先选择有相关产品经验且管理规范的工厂,最好相关设备都具备,可以在一家完成SMT、壳体生产加产品组装等相关流程。选好工厂后就要开始与工厂的工程师确定产品的生产流程和工艺了,然后就可以开始小批量的生产了。
做这一次小批量试产的目的是为了验证产品生产流程、元器件批量加工、生产工艺和工人的能力等多方面问题,对过程中出现的问题进行总结分析,得出解决方案。同时对产品的成品率进行监控。

十四、大批量生产
经过试产也就基本没有什么问题,与工厂也都应该磨合好了,就按照生产排期进行生产即可。在这里需要对产品的加工处理、员工的操作标准、以及质检的规范程度等方面,进行有效的监督和保证,在产品生产的过程中,产品经理需要开始编写产品维修手册,准备相应的维修更换的部件,以备售后使用。

十五、销售相关
在生产过程中产品经理还有一个重要的工作就是协助产品销售材料的制作,协助宣传文件或宣传视频等资料的制作。同时也要对销售同事进行培训,帮助他们理解产品在市场的定位以及自家产品的优劣势,并教会产品的使用,便于他们进行宣传和销售。还要对售后、技术支持等同事进行培训,告诉他们产品使用方法和可能出现的问题以及应对的方法和话术,并对技术支持和故障诊断进行培训。

十六、售后阶段
在售后阶段,主要是做好售后相关同事的培训工作,遇到新问题帮助解决,并持续关注产品销售的数据和市场。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 以及错误总结

Ubuntu 18.0.4 SonarQube-7.1.x 安装教程 docker安装未成功 zip安装 1. 下载地址 sonarQube最新版下载地址:(最新版不支持mysql)https://www.sonarqube.org/downloads/7.1版本下载地址:​ ​https://binaries.sonarsource.com…

【UE4 第一人称射击游戏】10-添加冲刺功能

上一篇: 【UE4 第一人称射击游戏】09-添加蹲伏功能 本篇效果: 步骤: 1.在“Character”文件夹内添加一个混合空间 骨架选择“Swat_Skeleton” 命名为“Sprint_BS” 双击打开“Sprint_BS”,将水平和垂直坐标名称分别设为“Direct…

【java】HashMap底层原理实现原理及面试题

目录一.哈希表(散列)1.什么是哈希表2.什么是哈希冲突(面试题)3.解决哈希冲突的方法(面试题)(1) 开放地址法① 线性探查②二次探查③随机探查(2) 再哈希法(3) 链地址法(4)建立公共溢出区二.HashMap1.HashMap的hash()算法(面试)(1)为什么不是h key.hashCode()直接返回&#xff0…

绘制菜单符号的技法

在上一篇文章中,我们了解了如何绘制主题化的和原始未主题化的单选按钮,我曾提到,绘制菜单符号会更加复杂一些。复杂之处在于,这些符号是通过单色位图实现的,而不是漂亮的全彩色位图。 首先,我们将通过一种错…

linux内核调度子系统随笔(一)

调度子系统组件(1) 调度类用于判断接下来运行哪个进程,内核支持不同的调度策略(完全公平调度,实时调度);调度类使得能够以模块化方法实现这些策略; (2) 在选中将要选择的进程后,必须执行底层任务切换;需要与cpu的紧密交互&#x…

信息安全管理体系

环境迁移 Platfor m Ops for AI 作为整合了 DataOps、MLOps、ModelOps 的复杂技术平台,在项目开发时仅使用一套系统无法支撑平台的稳定搭建,往往需要开发系统、集成测试系统、正式 环境系统在项目生命周期 中协作配合。将表、索引、并发程序、配置内容等…

HTML5 新增属性

文章目录HTML5 新增属性公共属性hidden属性draggable属性contenteditable属性data-*属性input元素新增属性autocomplete属性autofocus属性placeholder属性required属性pattern属性form元素新增属性novalidate属性HTML5 新增属性 公共属性 HTML5新增的常见公共属性有4个&#…

在今年的数字生态大会上,云原生数据库前进了一大步

云计算时代,数据库上云已成为产业数字化转型的重要动力。近期,在2022腾讯全球数字生态大会云原生数据库技术探索专场上,腾讯云分享了在云原生数据库领域的技术演进与探索,并就其在不同行业场景中的最佳实践进行了详细讲解&#xf…

【C++初阶】stack、queue和priority_queue的模拟实现

文章目录简介stackqueuepriority_queuestack的模拟实现成员变量emptysizetoppushpopqueue的模拟实现成员变量emptysizetoppushpoppriority_queue的模拟实现成员变量emptysizetoppushpop仿函数完整版代码stack.hqueue.hpriority_queue.htest.cpp简介 stack、queue和priority_qu…

四、SpringBoot Starter组件详解

starter组件实际上就是能够实现自动装配的jar包。 1.starter组件创建流程 假设我现在要集成redis,要拿到redisTemplate对象,怎么做呢? 1.引springboot包; 2.创建RedisTemplate类; 3.写配置类; 4.创建spring.factories文件; 5.打成jar包。 示例如下: 1.创建maven项目…

我的世界MOD制作(2)|| 你的第一个MOD

正文:I. 开发环境配置 我们需要一个带mixin的forge开发环境,这一步相当折磨人,网络不好的话半天时间都得砸这上面,但是不要灰心,过了这个坎接下来基本是顺风顺水。 1. 下载资源 & 修改build.gradle 首先去forge官网…

从三万英尺看全链路灰度

作者:卜比 全链路灰度是微服务领域,很实用的企业级场景下的技术能力。 从本期开始,我们将通过《全链路灰度:自顶向下的方法》的系列文章,由远及近的剖析全链路灰度全貌,系列文章分为 4 篇: 《…

无需数据库的笔记flatnotes

本文完成于 10 月底; 什么是 flatnotes? flatnotes 是一个自托管的、无数据库的笔记 Web 应用程序,它利用文件夹存储 Markdown 文件。 官方演示站点:https://demo.flatnotes.io/ 前言 本文介绍的软件很简单,但是有两…

保姆级教学——Python+Pygame怎么实现吃豆豆游戏

耽搁十几天的时间,我顺利的从阳转阴啦, 以后的日子一切恢复正常,好好工作,积极分享。希望在座的小伙伴阳了的全部健康转阴,没阳的全部不会变阳,新的一年,一切顺顺利利。 不知道最近大家学习得怎…

前端大屏常用的几种适配方案

方 案实现方式优点缺点vm vh1.按照设计稿的尺寸,将px按比例计算转为vw和vh1.可以动态计算图表的宽高,字体等,灵活性较高 2.当屏幕比例跟 ui 稿不一致时,不会出现两边留白情况1.每个图表都需要单独做字体、间距、位移的适配&#x…

磨金石教育摄影技能干货分享|看看大师们如何把“树”拍成艺术品

树,可以说是我们生活中最为常见的物种了。 在不同的地域,不同的气候环境下,生长着不同的树种。 北方的白桦树、杨树、梅花;南方的凤凰花、榕树、梧桐等等。 无论哪个地方的树,都有别样的姿态。 1、相机作画 白雪没有覆…

python实验实践【2】深度学习的python包

python包的管理是使用python进行实验过程中最为重要的一环,很多时候运行他人代码失败的原因是没能按照对方的要求配置python包库。本篇博客重点介绍深度学习场景中python包的管理。 目录python包版本选择python包安装python包版本选择 使用pytorch进行深度学习训练…

AndroidRN的混合集成 下载不了RN的依赖可以看看 好使

一、混合开发 App 混合开发,指的是一个 App 部分功能用 Native 构建,其他功能使用跨端框架进行构建,最常见的场景是,Native 作为一个可工程,其实业务开发使用垮端框架进行开发。目前,比较流行的跨端框架有…

ORB-SLAM3算法学习—双目和单目初始化

0总述 ORB-SLAM3算法中视觉的初始化依旧放在tracking线程中,因此在tracking中没有为imu模式设置单独的初始化函数,而IMU的初始化是在localMapping中实现的。 很有用的参考链接:https://cloud.tencent.com/developer/article/1761043 1双目…

Python 基础教程(1)

1.翻转字符串 def reverseWords(input):# 通过空格将字符串分隔符,把各个单词分隔为列表inputWords input.split(" ")# 翻转字符串# 假设列表 list [1,2,3,4], # list[0]1, list[1]2 ,而 -1 表示最后一个元素 list[-1]4 ( 与 list[3]4 一样…