这东西不错,不用学硬件知识,直接像正常写代码一样来开发硬件

2016-01-20 15:34:46 +08:00
 jerkzhang

最近做了个小玩意儿,纯属玩玩儿……
暂时只做好了 python 和 ruby 的 api 接口,欢迎内测。

http://adamsolo.com
http://evepi.cc

复杂而苦力的连线与焊接,令人头疼的电路知识,对于想要涉足硬件开发的码农来说,这些都是噩梦。 纵使有 arduino 让抽象层次变得更高,但依然还是具有硬件色彩的复杂繁琐。 这个时代,也许需要一个更高的抽象层次,需要一种新的硬件开发思想。
那就是夏娃派(下文称之为 Evepi )—— “硬件即对象, PC 即 MCU ,提高开发的抽象层以让硬件开发变得更加人性与高效”。
利用 Evepi ,硬件即对象,硬件被抽象成程序中的一个个对象或函数, 开发者不需要学习任何电子硬件的知识、不需要管硬件层面的任何事情, 所有硬件的事情全都是一个黑箱子,开发者不需要知道; 开发者只需要利用任何自己所熟悉的编程语言,就像正常写程序一样写程序,来调用该硬件的 api 接口即可。
“硬件即对象”是直观的开发思想,而实质的架构核心是“ PC as MCU ”(电脑即微控制器)。 以往的硬件里,广义上的 MCU 是大脑,而未来, MCU 只是抽象高层到抽象底层的中间的承上启下的一个工人,以及处理有限的必要的逻辑。 而复杂的逻辑层则是放在 PC 层面去解决, PC 层具有完善且亲和大众的操作系统,不管是 windows 还是 linux 发行版本,或是 Mac OS , 对于大众来说,都是亲和与人性化的,以及更加适合处理复杂的逻辑。 随着抽象层的提高,虽然性能与成本会受到影响,但开发效率倍增; 而在众多实际情况中,前者并非瓶颈,后者却意义重大。

4492 次点击
所在节点    分享创造
35 条回复
am241
2016-01-20 19:26:59 +08:00
循环是有效状态机的宿命
Shy07
2016-01-20 20:33:16 +08:00
@mlhorizon 写过游戏的表示,很正常啊
qhxin
2016-01-20 22:13:38 +08:00
@jerkzhang 当然趋势是你说的这样的,要具体情况具体分析,毫无疑问的,有 C 我肯定不会写机器指令,有 java 我肯定不会写 C ,因为人都有惰性,不过话说回来,懒惰也是推动社会进步的一个因素。还有能多报点造价多拿点预算也是挺滋润的。。不过如果按照你这样封装的话,我觉得最多就是一个学习工具了。或者你可以尝试做成中间件,这样底层硬件可根据不同需求自己定制,也方便开发人员。
jinsongzhao
2016-01-20 22:14:16 +08:00
讲得别人看不明白是因为楼主进入了一个丰富和绚丽的世界,但是还没走出来,等能用大白话就能讲明白的地步,就是更高级的境界了。这个世界的描述,让我想起个术语叫物理引擎,通过软件就能模拟出物体的碰撞,压力,弹力,阻力。如果这个物理引擎能计算成千上万的,甚至上亿的物体;如果除了物理引擎,还可模拟温度,流体等,那我们用软件模拟出来的零件,如果可以组成机器人;如果这些软件模拟的零件,在现实世界里能制造出来,那么我们在这个虚拟世界里组成的机器人,实际上就已经成品了,将这些代码从虚拟世界里提取出来,灌入到真实的零件里,就是真实的机器人了。
wadahana
2016-01-20 23:12:17 +08:00
@jerkzhang 首先我个人是非常支持你的想法和付出的劳动,前两年搞智能家居的案子玩弄了上百种传感器、通讯模块,每次拿到一个新的模组都想尽各种办法把传感器飞到 STM32 上写 demo 测试评估功耗性能,有你这样的平台,评估模块是会相当方便的。
jerkzhang
2016-01-20 23:34:47 +08:00
@qhxin 确实是一个中间件,而这样的封装,就是为了把逻辑层全放在 miniPC 上,不同的硬件组件都接入 miniPC 中,有一些场景是不需要不同的组件必须封装在一个有限的空间里,比如停车场的闸道系统是分散式的,用 miniPC 去统筹不同的硬件更加合适,以及 miniPC 内会有更加复杂的逻辑,比如假设 opencv 进行车牌识别或者针对该客户而加入更多定制化的功能。 这东西就是玩意儿,也不必太在意,说实话,我只是觉得目前很多的硬件模组缺乏统一严明的 api 接口,经常各种模块的资料都是不全,有时找到厂家厂家都可能没有,对方直接说他没有文档,但他可以电话上跟你说。我其实是觉得非常有这些方面的需求而已。
acalarolo
2016-01-20 23:42:51 +08:00
超大循环 + 很多计数器 + 很多定时器
Arduino 的实时性已经比较差了。最近图省事用了它,目前有些后悔。
jerkzhang
2016-01-20 23:51:12 +08:00
@wadahana 终于找到理解的人了,你说到了我的心坎上了,我也是对这个有非常大的需求,才搞了搞,个人能力与劳动是有限的,我其实更希望是这种思想可以影响到各种硬件模块的开发者或者厂商,如果这些模组能有像普通的软件层面的开源社区里的详细的 tutorial 、 reference 甚至是 cookbook ,那会方便很多,否则大家都要重新在 XX 模块上付出学习成本。我做这个不是去替代真正的硬件工程师做的硬件开发,它使想针对硬件被应用的层面上。换句话说,他不是去开发硬件,而是利用硬件去开发。前者做的是底层,后者做的是应用层。为了相对来说不影响硬件模组的性能(必定会影响),基本上都是采用共享内存的方式去做。 (这东西是业余做的,加在一起花了一两周的时间,都是同学朋友一起互相帮忙的,朋友里也有纯做硬件的,确实是和纯粹做硬件不是一样的,甚至相斥,所以做这个也势必会有争议,今晚本来很郁闷,饭后恍然发现还是有支持与主动参与开发的人,瞬间就有精神了。)
jerkzhang
2016-01-21 00:00:18 +08:00
@acalarolo 对的, arduino 实时性确实是有问题,那就是一个单线程的程序,按照顺序来回大循环。用这个能否解决实时性问题,我没测过,虽然说应该不如 arduino 的实时性,但如果你大循环的时间主要耗费在的计算或者说你的实时性问题是协同性问题的话,我觉得可以尝试着利用这种方式去做,只是不能完全用我的这个 api ,要按照这种方式重新从底层写,而且要解决 PC 层的内存管理、进程间通信等问题,还是有点麻烦。个人从你的描述“很多”感觉应该是协同性的问题,我觉得可以利用这种思想来试试。把“循环”的限制脱掉。
zjqzxc
2016-01-21 09:25:54 +08:00
其实觉得 arduino 已经够简单的了。。想用什么模块基本都有现有的库,直接搜索-下载-调用就行了。。
大概看了一遍,感觉好像是 传感器-Evepi-计算机 这么个架构
然后 evepi 充当串口转换(广义,指一切信号想办法都转换成串口)的功能
不过好像大部分情况下程序的逻辑都没有复杂到必须要上一台 x86 的电脑吧。

之前 tb 上买过一个 usb 接口的 ds18b20 ( ch340 串口芯片, mcu 型号不清楚,没拆),串口直接 cat 能得到温度值,大概就是楼主说的这个意思了吧。。

另:“我就是把电路板层面的事情都做完了打包成模块了”:目前 tb 上打包成模块的传感器一把一把的,零件方式大概有 iic , spi,onewire ,直接输出模拟信号的;少数器件自己定义传输方式( DHT11 , 22 );然而 arduino 都提供了现成的库,直接调用即可。。想要用计算机控制: Serial.begin 然后 Serial.print
传感器模块和 arduino 连接就几根杜邦线就搞定
所以说,并没有感觉到这个东西和 arduino 相比有什么优势;
价格:我见过的最便宜的 arduino digispark 好像 7 块钱左右, arduino uno r3 大概 18 块钱,不知道 evepi 准备卖啥价
mx1700
2016-01-21 10:40:45 +08:00
赞同楼上, arduino 已经非常简单了,只要有编程基础,很快就能上手。
jerkzhang
2016-01-21 14:42:47 +08:00
@zjqzxc 对 arduino 很快,只是我很懒,我想要更快,我要的是用元件而直接得到结果或者实现某个动作,连线与烧进 arduino 是很上手快,但依然费时间, arduino 已经打破了软硬的隔离,为何不可更进一步。至于价钱,成本是多少就多少,不指望这个赚钱。
jerkzhang
2016-01-21 15:12:12 +08:00
@zjqzxc 如果抱着学习硬件,肯定还是最好直接用 arduino ,如果是抱着只是想快速实现一些什么,肯定是有更现成的模组更好。目前很多社会上的模组,都缺乏标准的接口说明与调试与应用的 sdk ,这样所有的人都要在这些环节耗时间,如果硬件的模组的厂家都养成标准化的习惯,那很多人都会受益。并不打算卖这个赚钱,只是希望进一步让更多人意识到这种必要性。
wule
2016-01-23 04:15:05 +08:00
楼主这东西和 Arduino 没多大差别吧,相当你于把硬件做了,接口做了,剩下就都是软件的事了,都按一定的标准来做就好了,相当于把底层包装了。不过真正想玩的,或者想做和硬件相关的东西, lz 的想法也满足不了大多数的需求,所以这个只能玩玩而已。
jerkzhang
2016-01-27 15:21:19 +08:00
@wule 对的,满足不了全部的需求,满足需要满足的需求即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/252122

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX