分类 未分类 下的文章

硬件产品(除了PCB以外)有些问题是最让人担心的, 一旦发生, 就可能导致产品部分或者推翻重来:

  • 干涉. 不同部件空间上相互插入.
  • 强度/力度不够.
  • 表面处理无法达到目标效果

    干涉

    干涉的问题并不总在设计阶段能发现. 导致干涉难以发现的原因包括:

  • 如果产品并非方方正正的造型, 那么在3D图上可能不能找到一个特定的角度观察到干涉.
  • 产品带有转动机构, 在3D图上未能发现在一个特定的角度干涉
  • 产品的部分组件不是结构工程师完全设计, 导致这部分组件在结构设计时不能完全呈现, 以至于发现不了干涉. 这其中尤其是PCB. 上面设计的LED灯/触摸弹簧/电容都可能与结构设计发生干涉.

PCB与产品结构干涉包括:

  • LED指示灯干涉. LED指示灯一般要通过结构透光出来, 结构上为了透光会做一定的设计, 如套筒等, 这要求LED的位置与结构套筒位置精确匹配, 包括焊点在内不能与LED灯产生干涉. 此时, 最好由结构设计师明确圈出LED灯的摆放位置
  • 触摸弹簧干涉. 触摸弹簧有一定的高度, 并且在结构中需要被略微压缩, 并保证压缩后不偏位, 因此触摸弹簧同样需要结构有套筒套住. 结构设计师也需要明确指出套筒摆放位置
  • 结构投影PCB干涉. 在结构工程师指出LED和触摸弹簧位置时, 可能由于结构件出模方向与PCB板不垂直, 导致结构设计师指出的LED和触摸弹簧位置是垂直投影位置而不是出模方向的投影位置, 进而导致干涉. 应设计为出模方向的投影位置.
  • 电容等有高度的器件干涉. 在PCB设计完成前, 结构工程师不知道电容的高度和布局, 导致实物干涉. 现在电容多采用贴片电容, 最高高度有10.5mm之多, 结构设计师设计时经常把PCB简化成一张薄板, 导致设计出的成品与PCB干涉. 由于PCB与结构设计同步开发, 这一步可能在开模后才能发现, 导致巨大损失. 结构工程师应为大功率器件区域预留相当高度(至少10mm空间), 并且功率越高的预留应越高空间. 提前与电子工程师沟通电容/电感/线圈等大个头器件布线位置和需要预留的高度, 在结构设计中用立方体占位.

干涉还可以在组装环节发现, 包括结构样机组装和T0开模样机的组装.

  • 结构样机组装可以发现大部分干涉问题, 但由于结构样机的不精确, PCB设计未完善, 包材未完成设计打样不能做跌落测试等问题不能发现干涉.
  • T0样机组装. 这一步应完成包材设计, 并做跌落实验. 跌落实验后检查损伤, 可以及发现强度/力度不够和干涉的问题.

强度/力度不够

产品较重或者有配重/旋转机构的时候, 需要注意:

  • 产品正常跌落和运输跌落的时候, 产品的结构能不能保护产品
  • 产品的旋转结构所用的阻尼件(转轴/螺丝/扭簧等)能不能在关节位置有效撑起产品. 不能有效撑起时需要对结构甚至外观做重大修改, 导致延期和模具损失

表面处理CMF

表面处理是在某一指定材质上, 展现指定颜色/图案/光洁度的工作. 所指定的颜色/图案/光洁度都受到材质本身和工艺的影响. 错误的设计导致指定效果完全不能达到或者成本极高, 导致产品失败.
设计师要明白, 在特定材质上能实现的颜色/图案/光洁度都是有限的, 并非什么颜色都能做, 什么图案都能印, 什么光洁度都能实现.

看到央视转发腾讯医典的文章,确实这些年都用错了. 当然也可能是医学不断有新知, 跟计算机一样,旧的知识过期很快.
参考: https://mp.weixin.qq.com/s/ynM7asQa445TbMG9vgnEIg
现在开放伤口消毒的唯一推荐就是碘伏. 伤口冲洗推荐是清水.

类型 成分 用途 禁忌
医用酒精 乙醇+水 皮肤消毒 不可用于开放性伤口消毒
碘伏 碘络合物+水 伤口消毒 碘过敏和甲亢禁用
碘酒 碘/碘化钾/乙醇 皮肤消毒 碘过敏和甲亢禁用
双氧水 过氧化氢 伤口冲洗 对组织高毒性,结痂期禁用
红霉素软膏 1%红霉素/液蜡/凡士林 治疗和预防皮肤感染 超过1周使用会耐药

另外,百多邦喷雾中主要有效成分是苯扎氯铵, 杀菌效果很好,但长期大量使用(如消毒巾中使用)会导致哮喘等过敏性疾病, 孕妇使用导致胎儿畸形 参考文档

已禁用的消毒剂:

  • 红药水: 汞溴红, 含汞, 会引起汞中毒, 并且没什么消毒作用, 不知道这玩意儿怎么用了这么多年
  • 紫药水: 甲紫/龙胆紫, 有一点点消毒作用, 可以使皮肤提前结痂, 但安全性同样有问题, 吸收后可致癌
    另外, 酒精已经是一类致癌物了, 甚至还是癌症的主要原因.

如题。
参考文献:
https://blog.csdn.net/u013014254/article/details/122045331
https://blog.csdn.net/qq_29654777/article/details/122903558

国内替代如下,以vuetify资源搜索为例:
bootcdn, 问题是不知道怎么找历史版本
字节cdn,虽然界面简陋了点但是很好用,速度快且支持历史版本
基于七牛的staticfile,搜索比较慢,也找不到历史版本
ban了以后才知道jsdelivr有GitHub加速功能。

参考: https://stackoverflow.com/questions/3378560/how-to-disable-gcc-warnings-for-a-few-lines-of-code
http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
示例如下:

#pragma GCC diagnostic error "-Wuninitialized"
    foo(a);         /* error is given for this one */

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
    foo(b);         /* no diagnostic for this one */
#pragma GCC diagnostic pop

    foo(c);         /* error is given for this one */
#pragma GCC diagnostic pop 

    foo(d);         /* depends on command line options */

pip install pyttsx3

我在MacOSX上安装的,是python2, 有很多语音,需要找到对应的语音。

engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
  if voice.languages == [u'zh_CN']:
    engine.setProperty('voice', voice.id)
    break

engine.say(u'The quick brown fox jumped over the lazy dog.中华人民共和
国。')
engine.say(u'我爱北京天安门,天安门上太阳升。')
engine.runAndWait()

用js的netcat库写的, 很简单, 只是记录一下收到的消息, 用了一个很不常见的socket. 开了半年多, 发现几乎每天都能收到一点攻击.如下:

windows上我用bat做编译,烧录, 复制文件等等操作. 所以好奇make和bash(Linux上更强大的bat)究竟有什么区别?
参考这篇文章, 高赞回答似乎是说make主要是能节省完全重编译的时间, 方法是通过检测编译所需要文件的更新日期, 并且只编译其中较新的文件.这在有成千上万个文件需要重新编译的时候会很节省时间.
所以大体上来说, makefile文件和bash脚本文件功能差不多, 只是makefile多了上面的能力.
当然, 据说makefile的语法非常令人讨厌,不如bash语法那么爽。

make与cmake的区别
参考这篇文字, cmake是与make配合使用的,它其实是生成makefile的工具,不止如此,还能visual studio工程或其他工程, 简单来说就是跨平台的工程文件生成工具。所以,make是编译系统(build system),而cmake是编译系统的构建器(build system generator).

ninja与make的区别
ninja是一个make的替代产品, 主要是解决make启动缓慢和功能复杂(过于强大)的问题

三十年河东三十年河西。兔国初代目追求平等社会三十年,搞钱实在不太行。次代目让有条件的兔子先搞钱,政策至今也四十多年了,基尼系数大得不行。如今大概新的三十年又要开始了,基尼这玩意儿得要降,理想是最好没有。这个怎么搞?是不是学习初代目?兔子们很平等,一样有钱也一样没钱。当然初代目手里没多少底牌,当代目手里底牌要多一些,是不是可以实现?比如按需分钱?太有钱的还不服管的兔子,是不是坚决干掉?如何让普通兔子都同样有钱?

早上忽然想到的,金融本质上是提供和扩大流动性的工具。而金融的本性是将流动性无限扩大。而金融的监管是对金融本性的监管,其防止流动性可能导致灾难的无限扩大。
这里流动指的是物权的变化,即物主改变。流动性就是物权变化的速度。流动性大就是物权变化的速度快。物权有所有权和使用权。金融也会对这两种不同的权利进行流动。
比如,金融的诞生就是货币的诞生。货币的诞生为物物交换提供了非常大的流动性。在要交换的物物中间,以货币为媒介,就好像为这种交换抹了润滑油一样,使交换速度大大加快。
以金融的这个属性来说,不仅银行、保险和证券公司是金融体系,广义来讲讲产品销售体系也是金融体系的一种,因为产品销售体系加快了产品向消费端流动,以及资金反向向生产者的流动。

人生过半,才慢慢发现一些从小种在我心中、就像真理一样从不怀疑的信念,其实是鸡汤式的谎言。日常总结一下。

  1. 努力就有回报。类似的话包括: 付出就有收获, 一分耕耘一分收获。在这个题目下从小到大被灌输的字句和文章多到无法计数。各种文艺作品包括小说、电影电视剧、动画漫画……甚至都在不断诉说这个主题。而实际上这是一个鸡汤谎言。事实是:回报需要努力,但努力不一定有回报。努力只是一个必要条件,前提还要有正确的方向。问题是正确的方向并不是容易判断的,常常还需要运气。但中国人尤其喜欢这种不管不顾的努力,于是就有了加班文化、奋斗文化、996/007……某种意义上,努力就有回报是老师、上级、领导等统治者给我们灌输的鸡汤谎言,为了实现统治者们自己所定义的方向。这个方向对吗?有时候对,有时候不对。但是这种把命运交给别人,自己只管努力就好了确实能很省心地获得一种满足感,直到发现方向不对的那一天。
  2. 追求"老婆孩子热炕头"是贪图安逸的想法。"老婆孩子热炕头"现在好像比较少提了,以前在一些正规的媒体渠道,包括报纸、电影、电视上,会唾弃这种追求“老婆孩子热炕头”的思想。这个应该属于上一条努力就有回报的延伸,既然要努力,就应该不计一切代价的努力,然后会塑造出一批努力到废寝忘食抛妻弃子的伟光正形象,算是比上一条毒鸡汤更毒的鸡汤谎言。且不说真实世界中每一位在各自方向上成功的人,是否都要努力到抛妻弃子,就说“老婆孩子热炕头”本身,也不失是一种合适且并不容易的努力目标。妻子代表组建家庭,仅此一项,就实现了马斯洛需求理论中的生理、安全、爱河归属的需求,良好的婚姻关系甚至还能帮助实现尊重和自我实现需求。孩子还实现了对人类种族最重要的繁衍需求。热炕头排在最后代表了对家庭和后代的付出以后,自己还能满足的其他生理和安全需要。所以,对普通打工人的这一思想唾而弃之的,大概还是上级阶层出于实现他们的目标的需要,担心我们为他们奋斗地不够努力吧。

形成前

一颗超新星爆炸的尘埃->聚合形成太阳->太阳形成时候的爆炸和引力->重元素粉尘靠近太阳, 轻元素远离太阳->粉尘聚集形成陨石再形成行星->靠近太阳为固态金属核或重元素核的行星,远离的为轻元素核的行星->金属核心的地球形成

冥古宙

这一时期主要是各种陨石轰击地球与地球结合, 但有两个重大事件:

  1. 熔融态金属内核流动形成电流乃至形成磁场, 屏蔽太阳风和宇宙射线, 为生命形成打造防护罩.
  2. (争议假说)一颗与火星大小相仿, 与地球几乎同轨道的行星Theia(提亚/忒伊亚)与地球相撞, 最初形成地球环, 之后聚集成月球, 月球形成后仍受到大量陨石轰击, 称之为后期重轰炸期.
    分为隐生代/原生代/酒神代/雨海代. 这儿认为在原生代出现了最早的细菌生物

    太古宙

    分为 初/古/中/新四个太古代
    这一时期细菌和蓝菌等原核生物, 并制造了微量的氧气.

    元古宙

    分为 古/中/新三个元古代

    显生宙

    分为 古生代/中生代/新生代
    古生代分为寒武纪/奥陶纪/志留纪/泥盆纪/石炭纪/二叠纪
    中生代分为三叠纪/侏罗纪/白垩纪
    新生代分为第二纪(古近纪)/第三纪(新近纪)/第四纪

为将基于不同MCU/不同编译环境/不同产品功能的嵌入式项目能统合在一起编译, 提出这个分层模型.

层级 层名 解释 硬件相关性 产品型号相关性
8 编译层 为方便项目快速编译而开发的批处理文件(如.bat), 可进行dev/build/release等操作,不同产品通过f5y_config.bat配置文件修改 (多数)有
7 配置层 用于配置产品型号,版本,功能等信息,C语言统一为proj_conf.h
6 功能层 提供各种产品的各种功能,与硬件解耦, 分功能子层func.c/h和驱动测试子层driver_tester.c/h -
5 驱动层 上驱动层driver.c/h对功能层提供标准驱动接口, 下驱动层修改必要的SDK示例内容以实现不同产品功能的兼容
4 项目层 为编译使用的项目文件, uv5.proj文件或.mk文件等 (多数)有
3 SDK层 为原生SDK, 可能在硬盘的其他位置 (多数)无
2 编译器层 为编译器文件, 如uv4.exe, gcc.exe等, 在硬盘其他位置安装
1 硬件层 为基于不同MCU的实际硬件, 如C51的某型号产品PCB, ESP8266某型号PCB等

项目生成的固件一般放置在firmware目录中
4~8层在一个集合目录中, 3层SDK看实际情况放置