前几天一个做硬件的老同学给我打电话,说他想做个智能花盆,想法在脑子里转了快半年,就是不知道从哪下手。我问他你动手做了啥,他说还在看教程。我当时就笑了,因为我太理解这种状态了,我自己第一回搞科技产品研发的时候,光是一个电路图就研究了两个礼拜,最后发现方向全错了。
所以今天咱们不聊虚的,就说说一个完全没基础的人,怎么把脑子里的想法变成一个能摸得着的原型。我踩过的坑,你大概率也会踩,提前知道能省不少时间。
很多人一上来就想做个完美的产品,功能要全,外观要好看,还要能联网。说实话,这种想法我第一次也有,结果三个月过去了,连个能亮灯的板子都没做出来。
原型的核心任务只有一个,就是验证你那个最核心的想法到底行不行。比如你想做智能花盆,核心就是土壤湿度能不能被准确检测,然后自动浇水。其他的什么手机远程控制、数据记录、自动补光,统统可以先放一边。
我后来的做法是,拿一张纸画三个框:用户输入是什么,处理逻辑是什么,输出结果是什么。智能花盆的输入是土壤湿度,逻辑是判断是否低于某个值,输出是启动水泵。就这么简单。这三个框画不出来,说明你的想法还不够清楚,别急着动手。
提示:如果你画完三个框发现中间的逻辑自己也说不通,那大概率是这个想法本身有问题,换个方向比硬撑更划算。
我见过太多人,还没开始做就把一堆高级设备买齐了,什么高精度传感器、专业级开发板,加起来花了小两千,结果发现根本用不上。新手最大的浪费不是买错东西,是买太贵的东西,因为你不确定自己会不会中途放弃。
我的建议是,第一版原型的硬件成本控制在两百块以内。你需要的东西其实不多:一块入门级开发板,某宝上三十来块的那种就够用;几个基础传感器,按你的需求选,湿度、温度、光线这些都很便宜;再加一些杜邦线和面包板,方便连接和调整;最后准备一个万用表,测电压通断,二十几块的就行。
软件方面,开发环境选最傻瓜的那种,别一上来就折腾复杂的框架。我一开始用的是一个比较专业的开发工具,光配置环境就花了一整天,后来换了一个更简单的,半小时就能跑起来。工具是拿来用的,不是拿来学的。
第一步真的就是点亮一盏发光二极管。别觉得这事儿太简单,它能验证三件事:你的开发板是好的,你的开发环境是通的,你知道怎么把代码传到板子上。这三件事听起来基础,但我见过不少人卡在这里就放弃了。
第二步是接传感器。拿湿度传感器来说,你把它接到开发板上,然后在代码里读它的数值。这时候你会发现一个问题,读出来的数字可能一直在跳,不太稳定。这很正常,传感器的精度、接触的松紧、电源的波动都会影响读数。我的做法是连续读十次取平均值,虽然不够精确,但够用了。
第三步是加执行器。比如一个小水泵,你要让它在你设定的湿度阈值下启动。这里有个坑,水泵的电流通常比开发板能提供的要大,直接接上去可能会烧板子。你需要一个继电器模块来隔离控制,这东西很便宜,几块钱一个,但能救你的开发板一命。
第四步是把它们串起来。传感器读数据,开发板判断,继电器控制水泵。到这一步,你的核心功能就通了。整个过程顺利的话,一个周末就能搞定,不顺利的话,可能要多花几天排查问题。
说说我自己做第一个原型时的经历。当时我要做一个环境监测的小盒子,想法很简单,就是测温度和湿度,然后在屏幕上显示出来。
硬件连接花了大概两个小时,代码调试又花了三个小时。终于屏幕上出现数字了,我特别兴奋,拿着盒子在家里到处走。然后我发现一个问题,数字一直不变。我以为是代码的问题,改了半天,最后才发现是传感器没插紧,接触不良。
这事说起来挺蠢的,但新手阶段就是这样,你会把大量时间花在这种看起来很简单的问题上。后来我养成了一个习惯,每次调试之前先检查所有的连接,用手按一按,拔一拔,确认没问题再通电。这个习惯至少帮我省了一半的排查时间。
还有一个教训是关于电源的。我有一次用电池供电,测试的时候一切正常,装进盒子以后就不工作了。查了半天,原来是电池盒的线太细,电流不够。这种问题看教程根本不会提到,只有自己踩过才知道。
需要,但不用学太深。能看懂基本的变量、判断语句和循环就够了。现在的开发环境都有大量现成的示例代码,你改改参数就能跑。我见过完全没学过编程的人,照着教程三天就做出了能用的原型。关键不是编程能力,是解决问题的耐心。
说到最后,我想起那个智能花盆的朋友。他听完我说的这些,沉默了一会儿,然后说那他先买个开发板试试。我也不知道他后来有没有真的动手,反正我该说的都说了。
其实科技产品研发这事,最难的不是技术,是开始。你脑子里想了一百遍,不如动手接一根线。第一版原型一定是丑的、不稳定的、功能残缺的,但那又怎样呢。我到现在做的原型也没几个能看的,可每次看到那个简陋的板子真的动起来了,心里还是会咯噔一下。