V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
quietjosen
V2EX  ›  分享创造

硬件是怎么做出来的?带你从软件的视角,揭开神秘面纱

  quietjosen ·
atjason · 355 天前 · 18989 次点击
这是一个创建于 355 天前的主题,其中的信息可能已经有所发展或是发生改变。

2023 年,作为软件开发出身的我,做了两款智能硬件产品,注册了两个专利,「硬」气了一把。

你是否也喜欢鼓捣些硬件,是否对电路板是如何做出来的感到好奇?欢迎跟我一起,揭开硬件开发的神秘面纱,看看硬件工程师如何零基础入门。

硬件开发的基本流程

首先声明,这里所说的硬件,更偏向于 ARM 单片机及嵌入式开发。我不是硬件工程师出身,属于边学边干;可正是如此,我的视角可能更贴近真实、更容易帮你上手。如果哪个环节有更好的做法,欢迎行业内的朋友指正。

0 、明确需求

硬件领域很大,又很繁杂,从何说起呢?这是个问题。

首先,还是从需求出发。明确产品要实现哪些功能、有哪些约束条件,有了这些硬性标准,问题的边界就被大大缩小了。

这里,以它适智能跑轮为例,从头到尾,走一遍硬件研发的历程。先说一点,产品的研发不是一条直线,而是不断迭代、甚至重头再来的过程。为了描述方便,这里假设一切是一帆风顺的,只按最终的方案来描述。不过,考虑到商业性,一些地方不会说太细。

1 、芯片选型

它适智能跑轮,核心的需求,是记录数据,然后通过蓝牙传递出来;主要的约束,是低功耗、长待机。那么这颗芯片:

  • 性能不能太差,要能支撑起蓝牙连接和数据传输;
  • 性能也不用太强,不然会增加功耗;
  • 最好能以不同的功耗工作;不工作时休眠,并且可以被蓝牙连接唤醒;
  • 要能存储足够多的数据。当然,也可以用外围存储芯片,但那样既会增加成本,也会增加 PCB 的面积和复杂性,所以最好能集成进来。

然后,就是其他核心元件,包括蓝牙芯片、霍尔传感器等。

之后,就是确定产品的交互方式,比如显示、按键、声音等。

再之后,就是确定电源方案。电源对于整个电路设计,是非常重要的。事实上,对最终的电路来说,有一小半的元件,都是电源相关的。具体到这个产品,要支持锂电池供电、Type C 充电、LDO 降压稳压、测量锂电池电压等等。

到这里,主要的芯片及方案就基本确定了。接下来,就是搭建具体的电路、设计 PCB 。

2 、设计电路图

这时,就要面临 EDA 的选择。所谓 EDA ,类似于软件开发中的 IDE ,就是电路设计所需要用到的软件。这里我选择的是 立创 EDA,它是国产的、免费的,简单易用。这对于个人或小团队开发来说,非常重要。商业 EDA 是非常昂贵的;当然,我知道有所谓特别版。但作为软件开发出身的我,对正版、免费有天然的亲切感。

确定好工具后,可以开始设计电路图了。

设计电路图,主要靠两样:电路基础知识、芯片数据手册。基础知识自不必说,比如电阻、电容、三极管、MOS 管等基础元件的使用。对于复杂的芯片,主要是参考其数据手册的典型电路,针对自己具体的场景进行调整。

这一步还挺好玩的,把一堆元件摆出来,然后用线连啊连,像正极连正极、负极连接地,连着连着就好了。当然,步骤是这么个步骤,实际不会这么容易。

一般的电路图,大概长这样:

3 、设计 PCB

电路图设计好之后,就是设计 PCB ,也就是印刷电路板。这一步同样考验功力,也更加耗时。事实上,不考虑芯片选型的话,PCB 布板所花费的时间,比电路图长很多。

这一步,说简单也简单。就是确定后电路板的外尺寸后,把所有元件排排好;并参照电路图,把各元件通过走线连接起来。

最直接的难点是布线。不考虑多层板的话,电路板相当于一个平面,而平面上的线是不能交叉的。这使得必须很恰当地摆放元件,才能避免交叉。有时,还得反向修改电路图。当然,多层板可以改善这一点,但成本高,且设计难度加大。如非必要,常见的还是用双层板,也就是有正反两个面可以走线。

当然,PCB 板还有很多其他难点和要注意的地方,比如要适配外尺寸及开孔、天线及电磁屏蔽、散热、避免回路、差分信号线等等,这里就不展开了。

一般的 PCB 板,大概长这样:

4 、打板

电路板设计好之后,就可以 制作 PCB,俗称打板。这里依然推荐嘉立创,每月有两次免费打板的机会,付费也只是 20 元起;而且很快,最快隔天就可以收到。

打板之后,就要焊接元件。这里又面临一个选择,要么是让嘉立创这样的工厂替你完成 SMT 贴片,要么自己焊接。二者的优缺点很明显:自己焊,省钱、灵活、不用等,但花时间,且一些很小、引脚很多的元件,不好焊;第三方 SMT 则刚好相反。

一般来讲,前期、以及简单的电路板,可以自己焊;后期还是倾向于 SMT 服务。

焊接好元件后,就类似这样:

5 、刷固件

电路板制作好后,就要刷固件。当然,有些简单的电路,是不需要刷固件的。刷固件,就相当于给硬件装个操作系统。这里暂时略去固件的开发。

具体的,电路板上留刷机接口,配合专用的刷机工具、上位机,就可以将固件写入芯片的 Flash 存储。

6 、电路测试

刷好固件后,就要开始测试。简单的,就是先测试下正负极电阻,看有没有短路。没问题可以上电,看电路有没有按预期工作。如果有预留测试点,就测量测试点的电压等。也可以借助示波器等工具进行测量。

如果遇到问题,不要慌,这太正常了。一般来讲,就是先缩小问题的范围。可以用拆焊等方式,去掉不必要电路的影响,只看出问题的那部分,方便排查。

对于固件的测试,可以像黑盒一样观察硬件是否按预期工作,也可以像白盒一样进行调试。只是硬件的调试,远没有软件随便加断点那么轻松。

定位问题,找出解决方案,就可以进行下一次制板。当然,也可以根据实际使用中的不便或问题,对电路进行改进。

7 、制作原型

经过几轮迭代,电路板基本稳定,可以组装成原型机,开始使用场景的测试。

这时,通常要制作产品的外壳。最好自己有一定建模能力,这样可以设计产品的外壳、3D 打印,方便很多。

如果只是简单的外壳,可以用嘉立创的工具,可以比较简单地生成 3D 模型。如果有团队,可以和同事一起配合进行设计。如果已经有外观设计,就可以进行结构设计。比如,如何固定电路板、如何暴露交互接口等。

8 、量产电路板

假设经过一段时间测试,原型通过了,产品也到了规模化生产阶段,就要开始批量生产电路板了。

通常,不是重新上传设计文件下单,而是返单上一次被验证过的电路板。这样更可靠,避免手抖出错,导致批量生产的电路板报废。

电路板批量生产完后,还面临一个繁琐的流程:刷固件。之所以说繁琐,主要还是量。

试想一下,如果刷一个电路板需要 1 分钟,听起来不多吧?可要刷 1000 片呢,那就是 16 小时。不吃不喝,从早上 6 点,刷到晚上 10 点,吓人不。当然,实际没这么慢,但基本是这个数量级,快不了太多。

9 、生产、包装、发货

然后,就可以交付给工厂,进行包装生产了。继而转发至仓库,用户在电商平台下单后,就可以快递出去了。

等用户收到后开始使用,这时能做的,就是 双手合十,祈祷不要出问题。因为一旦出问题,大概率不像软件一样,升级个版本就能解决,很可能要召回。

说到这里,就要提一个话题:OTA ,就是用户可以远程升级固件,来解决问题、或增加功能。这个其实很重要,尤其是在前期、尚未经过大规模用户实测时。OTA 可以在不召回的情况下,解决一部分问题,减少损失。

10 、十全十美

如果一切顺利,用户用起来很开心,满足了实际需求,带来正面评价时,就是 产品人最开心的时刻

至此,就是硬件产品的基本流程。

硬件开发的一些故事

上面只是走马观花地介绍硬件的基本流程,挂一漏万。下面补充一些细节,解释下为什么 硬件工程师通常发量不多

如何上手硬件开发

玩芯片的第一步,都是点亮一颗灯;这个操作,相当于软件领域中打印出 Hello World。当然,做得多了,总有「点亮」芯片 的时候,哈哈。

最好边学边练,做些小东西练手。

  • 比如,我第一个做给自己用的硬件工具,是 IoT Power 电源转接头。
  • 比如,制作批量刷机工具,提高生产效率。
  • 比如,制作小的 PCB ,记录电池放电过程。

总之,制作自己用得上的小工具,是不错的开始

从软件和生态上来讲,可以从 Arduino 入手。相对复杂的,就是树莓派以及各种衍生派。

再说芯片选型

芯片选型非常重要,最考虑经验、能力。而且一旦定了,之后基本不太可能会改;如果改,意味着要兼容两套方案、非常恰当地处理芯片及产品库存,总之很麻烦。

芯片的生态很重要。如果一家公司的芯片被广泛使用,通常意味着它更成熟,隐藏的问题更少。如果选一家小厂的芯片,可能看起来更便宜,但配套的开发软件不好用,市场上不容易找到使用该芯片的开源方案,等等。更关键的,可能有隐藏的问题。而这个问题,一旦量产后才发现,将是非常痛苦的:召回的话,血亏;不召回的话,会有持续不断的用户问题。像 STM32 、兆易创新 GD32 这些系列,都是比较成熟的选择。

还有一个问题,就是 开发效率与运行效率的平衡。对于电脑或手机上的软件开发,通常不需要担心性能问题,CPU 、内存、电量管够。而单片机开发,则没这么幸运了。通常,嵌入式使用 C 语言开发。可惜,实在不想这把年纪了,再去啃 C 语言。

最后选择了 合宙 Air101 这颗主芯片。很大的原因,是它支持 LuatOS 开发。简单地说,就是在芯片上运行了一个 Lua 虚拟机,或者说运行环境。接下来,使用 Lua 这门脚本语言,就可以调用库函数,快速完成生产代码的开发。关键的,它还支持 OTA 升级。主流嵌入式操作系统 RTOS ,包括μClinux 、FreeRTOS 等。

有时感觉,硬件产品不是做出来的,是攒出来的;从巨大的元件库中选型,各种排列组合,最后出产品。

配件采购

芯片的采购也比较关键。尤其到后期,产品已经上市,准备批量返单时,如果发现一个关键的元件缺货了、涨价了,就很头痛。如果换芯片,又要有比较长周期的测试。

延伸来说,在硬件众多配件中,哪怕缺少一个螺丝,也会决定最终产品能否量产。过多屯货,又会压资金;之后如果换方案,很可能屯的芯片就无用了。因此,供应链管理很关键。比如,对于汽车这种有 N 多配件的产品来说,供应链管理的难度极大。

说说焊接

做硬件,手工焊接是基本功。虽然嘉立创这类平台,打样已经比较便宜了。但在开发阶段,频繁测试,花费还是不小。更关键,来来回回比较花时间、影响效率。很多时候,还是得撸起袖子自己焊。

焊接中,植锡、放元件,是很枯燥的。风枪一吹,爬锡过程很解压。小元件、多引脚的连锡,是最头痛的。

当然,还有 焊台最佳伴侣:烫伤膏,别问我是怎么知道的…

硬件佬工具多

硬件佬有很多配件、工具,比如各种型号的电容电阻等元件,万用表、示波器、功率计、焊台等。

电压电流这些,肉眼是看不见的,需要工具来测量。

  • 比如,同样是 5V 的电源,有的纹波大、有的小;
  • 比如,标称是 12V 2A 的电源,真到了 2A 的大负载,是不是会掉电压;
  • 比如,测量上电时序。

原型到产品

对于一款硬件产品,电路板只是其中一个环节,作为一款完整的产品,要考虑的东西还有很多。比如,包装、说明书、宣传文案配图视频、生产备货、等等。

产品原型做出来,离规模化上市,还差很远。什么东西一上量,性质就变了。

工厂生产,有很多不可控的因素,有很多妥协。事实上,初期设计 100 分的产品,最终批量上市时,能妥协到 70 分以上,已经很不错了

第一次批量生产固件,还是很慌的。可能电路设计有问题,也可能生产过程中有缺陷,担心投入的真金白银,变成无用的电子垃圾。

做了硬件,真的相信,第一代产品通常是有问题的。硬件比较复杂,使用环境和方式多种多样;很多问题,只有在用户使用过程中才能发现。而发现了问题,很多时候无法通过固件升级来解决,只能寄希望下一代硬件改进。

当然,如果大家都不支持第一代产品,也就不会有第二代。这世界总需要有人第一个吃螃蟹,也时常奖励吃螃蟹的人,看大家怎么选择了。

硬件抄袭

抄袭哪都有,硬件也一样,术语叫 抄板。怎么应对呢?很难。

打磨丝印,算是比较基础的操作。更有效的,是开发有固件的硬件,也就是硬件里是有代码、有固件的,这种就不好直接抄。

物理开关

硬件很难避免物理开关。本来想,硬件做得优雅,就不需要物理开关。现在看,意外情况总是有,还是要考虑售后的问题。认怂,给智能模块加个物理 Reset 开关。其实,很多硬件设备上都有此类开关,比如路由器就比较常见。

数字量与模拟量

软件与硬件的视角不同。

在软件人眼里,0 就是 0 ,1 就是 1 ,这不是再清楚明白不过的(当然,这里考虑的是整形数、不是浮点数)。进而,这也是一般人的理解。

在硬件人眼里,还真不是。像浮点数,1 可能是 0.998 ,也可能是 1.02 ,也可能是 > 0.5 。或者说,所有的值都有波动、有误差、有范围的。

嵌入式硬件的局促

比如,在存储空间很小的芯片中写代码,会遇到这样的问题:需要考虑 2100 年后的事吗?

如果需要,则需要存储完整的年份,比如 2023 ;如果不需要,则可以省点存储,比如只存 23 。

说说蓝牙通讯

BLE 蓝牙传输比较慢。实测有一次通过蓝牙传输 552KB 的文件,用时 7 分钟(436s)。并且,蓝牙不稳定、传输的可靠性不高;传输过程中,很容易出现丢数据、传错的情况。

硬件中诡异的问题

由于看不见摸不着,而电路又以光速运行,很容易产生诡异的问题。

  • 比如,有一次电路接线完全正确,死活不干活。最后通过万用表测量才发现,其中一根面包线是坏的、不通电的,我去
  • 比如,钰泰 ETA6093 ,连接电池,什么也不做,就会有很多尖峰电流,分钟平均有 120uA ,使得待机时间明显缩短。后来,问了原厂的技术支持,才知道本来就是这样的。如果要低功耗,只能选择其他型号。倒,之前屯的芯片都用不上,又要开始选芯片了。
  • 比如,测量电路中,如果负载有大电流、大负载,会产生比较大的压差,会明显影响测量结果。有时,电源线的长短,都会明显影响测量结果

这些问题,很多是自己经验不足(当然,没有谁天生经验就足,都一个一个坑踩过来的),有的是芯片本身有问题,有的数据手册压根没介绍,等等。

LED 不为人知的细节

不同颜色 LED 的功耗差异非常大。单从电流上看,R/G/B 三者的电流大概是:1.5mA/1mA/0.8mA 。但事实上,在此电流下,三者亮度大概是 G >>> B > R 。相同亮度下,绿色 LED 是最省电的

多一个能力,就多了一扇窗

和已有能力组合,可以增加很多可能性

  • 比如,家里燃气热水器坏了,我可以更换其中的风压开关;
  • 比如,电动车没有电子报警,我可以装一个;
  • 比如,鼠标的按键太吵,可以换个静音开关;
  • 比如,做一款智能音箱,连接 ChatGPT 回答问题。

兴趣归兴趣、炫技归炫技,作为一个产品,满足真实需求,才是最重要的。

欢迎入坑硬件开发

和纯软件开发相比,硬件有不一样的乐趣。入门并没那么难,值得你来尝试,欢迎入坑。

159 条回复    2024-01-06 15:03:56 +08:00
1  2  
helloeather
    101
helloeather  
   355 天前
不错,学习了!
bfdh
    102
bfdh  
   355 天前
@MozzieW #3 你这种需求感觉用红外(就像电视遥控器)最简单,缺点就是红外有方向性。
huoxing9888888
    103
huoxing9888888  
   355 天前
@quietjosen 学习能力真强,全职搞吗?
quietjosen
    104
quietjosen  
OP
   355 天前 via iPhone
@huoxing9888888 工作的一部分。
quietjosen
    105
quietjosen  
OP
   355 天前 via iPhone
@xieren58 是,硬件确实利润低,除非上规模,或者小众的定制化,但那上限太低。
zhaodong
    106
zhaodong  
   355 天前
厉害,虽然看不懂,但还是认真看完了。
SmallPlus
    107
SmallPlus  
   355 天前
本科自动化,焊板子是基本功,毕业转码了。当时考虑硬件工程师没软件发展好
darkengine
    108
darkengine  
   355 天前
入门从打板开始太难了, 搞个 Adrino 或者树莓派, 从折腾各种外设/传感器/显示屏开始
quietjosen
    109
quietjosen  
OP
   355 天前
@SmallPlus 其实,三十年河东,三十年河西。现在软件开发裁员挺多。
quietjosen
    110
quietjosen  
OP
   355 天前
@darkengine 恩,从开发板点灯开始,比较合适。
yongzhenchen682
    111
yongzhenchen682  
   354 天前
想起当初 89c51 手撕面包板 画 pcb 仿真 的时代,一眨眼 10 几年过去了。
quietjosen
    112
quietjosen  
OP
   354 天前
@yongzhenchen682 51 啊,那确实有年代感了。
silentsky
    113
silentsky  
   354 天前 via Android
学习了 有点用
mrfox
    114
mrfox  
   354 天前
再提个问题,比如拆解一个成品,有没有可能将芯片中的固件提取出来(有个旧阅读器应该电池死了,想把它的屏幕单独拿出来用(原系统是 linux 系)
hytirrb
    115
hytirrb  
   354 天前
哥你开始是咋入门的,感觉硬件调试还挺麻烦的
quietjosen
    116
quietjosen  
OP
   354 天前
@mrfox 提取固件是可以的,就是从 Flash 或 MCU 内置存储中,读取出固件。

但我不理解,提取固件,和重用屏幕有什么关联。
quietjosen
    117
quietjosen  
OP
   354 天前
@hytirrb 做自己用得到的小工具,试着做小产品。

恩,调试不容易,最好正向保证代码写得是对的。
SantinoSong
    118
SantinoSong  
   354 天前
感谢楼主,收获颇多。我有点想入手这个方向,做一些小物件。可否请教一下?
我自己想做一个小的电动模型,大小大概是一本书那么大,模型上面有两个组件,一个彩色的灯(比如紫色),我希望可以控制它间歇亮起;一个转盘,可以节奏转动比如隔 3 秒转一圈,然后希望的效果是,转盘转一次,上面的灯就亮一次。对功耗没有什么太大要求,能够用电池或者可以充电最好。
我是硬件小白,我该怎么入手比较好呢?
rouwann
    119
rouwann  
   354 天前
电子专业表示大学课程都学过
quietjosen
    120
quietjosen  
OP
   354 天前
@SantinoSong 转盘是手动转还是电机带动?

如果只是手动转的话,加个霍尔开关就行。
SantinoSong
    121
SantinoSong  
   354 天前
@quietjosen #120 我希望整个流程是自动的,所以肯定希望是电机,就是希望转盘隔几秒转 360°,然后旁边的灯同时闪一下。我是完全不懂,这个东西用你上面提的 Arduino 开发板可以实现吗?
quietjosen
    122
quietjosen  
OP
   354 天前
@SantinoSong Arduino 可以,用步进电机驱动。
hawei
    123
hawei  
   354 天前 via iPhone
太强了…我打算入坑了
leirenbb
    124
leirenbb  
   354 天前
赞 从硬件转到软件的路过。。。
Mde
    125
Mde  
   354 天前 via Android
以兴趣的目的入坑了硬件开发,硬件开发还是挺有意思的,为自己的想法提供一个实物载体,不过目前水平也就画画两层板而已😂
firemeteor
    126
firemeteor  
   354 天前
手抖的人真的玩不转烙铁,一直只敢小打小闹,不敢正经入坑。曾经修一个 micro usb 座子焊到我要崩溃...
GeruzoniAnsasu
    127
GeruzoniAnsasu  
   354 天前
@sankooc 这种东西做起来倒是不难,不过淘宝搜了一圈还真没卖的。 假如做一个这样的产品,你觉得自己肯出多少钱来买?
no13bus
    128
no13bus  
   354 天前
https://www.findmycat.io

@quietjosen 楼主我想问问做这么个硬件或者学会里面的硬件知识,难吗
quietjosen
    129
quietjosen  
OP
   354 天前
@hawei 哈哈,欢迎入坑😀
quietjosen
    130
quietjosen  
OP
   354 天前
@Mde 两层板可以了呀,能干很多事情了。我也是两层板水平,哈哈 [Shake]
quietjosen
    131
quietjosen  
OP
   354 天前
@firemeteor Type C 母座,开发我也焊不好;后来用焊䯧,就好多了。
quietjosen
    132
quietjosen  
OP
   354 天前
@no13bus 这个网站介绍得挺详细的,可以跟着看看。难不难这各问题,答案是相对的。
mrfox
    134
mrfox  
   354 天前
@quietjosen 谢谢答复,主要是不懂,一是想着备份,二是想是不是里面有驱动?

具体是要上什么设备吗,提取出来是不是也分析不了

单独利用屏幕一般是啥流程呢
Geo200
    135
Geo200  
   354 天前
写的很好,想离线保存这个文章,有什么好办法吗
quietjosen
    136
quietjosen  
OP
   354 天前
@Geo200 不敢当。文章没了,直接找我也行 😂

或者,可以在微信公众号里查看、收藏、保存到腾讯文档等、导出 PDF ,总之方法挺多。

https://mp.weixin.qq.com/s/FFtgswdjZ1zuHerD7K-4-w
LamKingTak
    137
LamKingTak  
   354 天前
顶一个!
morgan1freeman
    138
morgan1freeman  
   354 天前   ❤️ 1
@mrfox #45 esp32 上网找一下 usb 或者 蓝牙 模拟键盘的代码,然后把几个 io 跟按键 面包板连接起来,触发 IO 中断的时候 让 mcu 的蓝牙 发消息给电脑就行
这里有一个 chatgpt 的例子
wraithcorps11
    139
wraithcorps11  
   354 天前
点赞
morgan1freeman
    140
morgan1freeman  
   354 天前
https://github.com/fqdeng/esp32-pc-remote-switch-button
这里分享一下我的远程 button
因为黑苹果没法远程唤醒 所以 usb 连着电源搞了一个 远程按钮

其实这么多年来,c51 stm32 esp32 都玩过,说到底嵌入式入门成本高,还是工具链跟软件抽象的问题
mcu 跟外围通信一直没有好的封装,一堆的 CAN I2C 没法像软件一样封装好给上层应用,几乎每一个 mcu ,一个公司都是各自为战,没有好的 sdk 跟封装,很多东西一摸索,啥资料都没有,早一点 c51 的 datasheet 都是乱写的,全靠老师傅自己摸索,在 08 年那个年代,很多 c51 的资料 几乎都是没有的,老师傅都是一个一个祖传的 c 文件 手把手相传

不像 pc 软件 从链路层 ip 层 tcp upd 应用层 到 nginx 写一个 php 应用 每一层都有良好的封装跟抽象。
去年玩了一会 esp32 , 算我看到的示例 跟工具链 比较多的一款 mcu ,资料文档都挺详细的,除了这款 mcu 本身有一些性能问题,例如高精度的 AD/DC 采样不行,这个是硬件本身的因素,但是拿来做点玩具 没有什么高精要求,什么的还是比较合适的。
fantastM
    141
fantastM  
   354 天前
大赞,读完之后收获很多
quietjosen
    142
quietjosen  
OP
   354 天前
@morgan1freeman 确实,软件抽象得比较好,每层都能干每层的事。如果对底层、性能什么的不关心,直接跑最上层的脚本,省心很多。好在,嵌入式也开始有类似 python/lua 这类脚本语言,入门简单多了。

也确实,关于接口、库这些本该通用的东西,也是各个芯片厂各自为战。好在,如果不同芯片厂用相同的 RTOS ,理论上有一定的可迁移性。

对于 AD/DC ,MCU 内置的就是一般可用的。专门的 AD/DC 芯片,可能比 MCU 本身还贵。
morgan1freeman
    143
morgan1freeman  
   354 天前
@quietjosen #142 是的,但是那些 python/lua ,目前做教学 diy 用还是可以的,实际上成品不太现实,批量出货,几百万套的硬件,rom 能省则省,不会给 python lua 留空间放解释器的,能有一套好用的 C/C++ SDK 就不错了,不过 esp32 这款 资料是做的真不错
quietjosen
    144
quietjosen  
OP
   354 天前
@morgan1freeman 对,脚本语言,对于 DIY 挺好;既方便入门,性能什么的又不是问题。

工业领域,确实是按字节扣 RAM/ROM 的,C/C++ 才是最优解。

这两者都是需要的,才能支撑硬件在多方面都能很好地发展。没有 Hello World ,也就没有火箭科学。
maxxfire
    145
maxxfire  
   354 天前
你居然放弃了 C 语言去折腾硬件,勇气
quietjosen
    146
quietjosen  
OP
   354 天前
@maxxfire 事实上,一个硬件用的是 Lua ,一个用的是 Arduino
jwesthaverr
    147
jwesthaverr  
   354 天前
高质量分享,收藏了,OPNB !
maxxfire
    148
maxxfire  
   354 天前
@quietjosen 根据互联网思维,硬件是不赚钱的
lingex
    149
lingex  
   354 天前 via Android
对了,现在的 LED 技术发展可能有点出乎我们意料。我做的东西一般喜欢用大一些的限流电阻让亮度降低。比如 5V 电压时用 3k 限流电阻。还是我上面说的那个 DIY 的下载器,由于封装选错了,于是在垃圾板卡里找了一颗替代,发现它超级的亮,最后换成了 11k 限流电阻,它还是比普通 LED 亮很多…
xieren58
    150
xieren58  
   354 天前
玩嵌入式入门, rust + stm32 最优解了... 开发快, 又现代化...
quietjosen
    151
quietjosen  
OP
   354 天前
@lingex 5/11 = 0.45mA ,确实比典型的 LED 电流要小。
quietjosen
    152
quietjosen  
OP
   354 天前
@xieren58 恩,但凡用脚本语言,开发效率都比 C 高很多。
lingex
    153
lingex  
   354 天前 via Android
@quietjosen LED 还有压降,实际应该比这还要小
L5411
    154
L5411  
   354 天前
刚在少数派上看到
hanguofu
    155
hanguofu  
   353 天前
软件工程师折腾硬件,能做到量产就很牛了~~~ 好奇问问: 楼主做的是智能音箱吗 ?哪里有卖的啊 ?
quietjosen
    156
quietjosen  
OP
   353 天前 via iPhone
@hanguofu 智能音响是给娃用的,号称 [大聪明]

公司的产品在淘宝有售,搜索 它适 智能、它适 加热
xiaomageit
    157
xiaomageit  
   353 天前
@quietjosen 我现在需求每年近百 W 的芯片,现在用最多的是 NXP 的 PCF7926A 。我现在想怎么能降低这个成本,如果自己研发好或者 得到芯片的设计数据然后让工厂代工生产是不是可以降低一些。 不懂说的不对的地方还望见谅 。谢谢回复
quietjosen
    158
quietjosen  
OP
   353 天前
@xiaomageit 你这比我玩得大多了,你这是专业人士问业余玩家啊 😂

以我不专业的了解,一些小的芯片品牌,基本都是公版方案稍微改改、加点内存 Flash ,然后工厂代工的。

但我相信,代工有代工的坑,且起订量肯定不低。
uxff
    159
uxff  
   351 天前
真专业。赞。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2991 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 13:16 · PVG 21:16 · LAX 05:16 · JFK 08:16
Developed with CodeLauncher
♥ Do have faith in what you're doing.