第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具
先随便写写一些思路, 以后再整理.
这段时间笔者做了一些硬件开发, 领悟了一些事情.
1 - 在常规创客的角度上, 硬件开发所需的知识面比较广, 非常广, 但不算太深.
2 - 发现硬件开发由于其特殊环境的原因, 开发难度很大, 难度绝大部分来源于很麻烦, 效率很低.
一般的开发者, 如果他们入门就直接学硬件, 他们是感觉不到这问题的. 没有对比就没有伤害.
但对于一个写惯C#,Java的程序员来说, 会明显感觉到写硬件的那种无力感.
由奢入俭难啊! 无论心理上作出多低的预期, 在实际编程阶段, 心理想的是
1 - 为什么这么多工具链安装都那么的麻烦? 而且还有那么多收费的.
2 - 为什么要花时间去等待编译, 烧录, 启动, 不行再重复再重复, 青春就这样浪费了.
3 - 为什么要花那么多时间去寻找指针出错原因, 为什么写一个小时代码要调试5个小时?
嗯. 这些不是别人的想法, 是我自己的想法.
于是笔者就去找各种脚本方案, JS,Lua,Python,... 但发现,
这些方案不多不少都有各种问题. 不太感到满意.
所以, 笔者当时就计划着自己去实现一个脚本语言.
这并不是随便就去重复做一个轮子, 而是一个有目标的计划:
1 - 要极简单, 简单到, 让笔者不到9岁的儿子都能轻松地学习和测试代码, 感受到代码与硬件的交互关系.
2 - 要极方便, 方便到, 任何用户不需要输入任何命令行, 就能搭配好开发测试环境
3 - 要满足Java,JavaScript,C#开发人员的需要, 垃圾回收, 强类型弱类型, 函数式编程, closure这些都要有.
4 - 要满足C/C++开发人员的需要, 可以随意地实现自己期待的高效率函数或硬件驱动.
5 - 要非常高效, 用极短的代码就能完成创客的想法, 有错误能快速定位, 重新运行代码要在3秒内完成.
所以, 要满足这种目标, 就只能是实现一个脚本解析器, 和配套的开发工具了.
其缺点也是明显的
1 - 内存占用问题, 导致这需要对单片机有一定的要求. 可用内存最少要32K或更高.
2 - 成熟度问题 , 这需要一个过程. 不过也没差, 因为硬件开发者懂的, 说起奇怪的bug各种方案都是半斤八两.
优点和缺点分析了, 针对这种情况, 决定了这种方案只适合以下情况
1 - 教育用途, 这是首要的目的. 尤其对于小学生, 他们理解力很有限, 那么就需要把硬件开发中的各种细节屏蔽掉.
2 - 非专业创客, 如果有一些人, 他们有一些好玩的想法, 那么这个工具就能节省他们非常多的时间和精力.
3 - 快速原型, 传统的用C和用C++做产品原型是相对花很多时间的. 使用此方案则原本需要5天做的原型, 现在只需要1天. (以上为是模糊的经验统计,仅作参考) 这样就可以随时改需求, 随时评估项目可行性.
4 - 小规模生产. 在快速原型的基础上, 如果没发现太大的问题, 对硬件的成本的敏感度不高的情况下, 甚至可以直接把原型当产品做小规模生产了.
不适合的情况:
1 - 对成本苛刻的中等规模或大规模生产 , 生产几千件以上, 选用廉价低内存芯片, 每一件硬件省个10块钱就能覆盖让程序员日日夜夜调试的开销的情况.
2 - 用于关键场合的硬件开发 , 这种场合开发人员的成本已经完全不是问题了, 找一大堆人才去做C/C++开发和极限测试吧.
要支持的硬件优先级
1 - ESP32 , 特点, 成本低, 内存足够, 拿上手就直接可用.
2 - 树莓派 , 特点, 内存超大, 性能更强. 能做USB开发,
3 - STM32 , 特点, 接口超多而全面, 适合做超多部件的场合.
当前进度 , 脚本解释器已能使用, ESP32上GPIO/PWM已实现, 树莓派GPIO已实现, 正在实现TCP部分,HTTP部分
第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具的更多相关文章
- linux-0.11分析:boot文件 bootsect.s 第一篇随笔
boot文件 bootsect.s 第一篇随笔 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ] bootse ...
- 入住cnblogs第一篇随笔 Hello, world!
在网上搜索计算机参考资料时经常看到各位大神的博客,甚是神往.今天我也在这里安家,记录自己的学习过程,也同各位共勉. 第一篇随笔,就用来测试一下这里的文本编辑器吧. //The C language # ...
- 第一篇随笔 - Hello world!
第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello wo ...
- Hello World ! 第一篇随笔
Hello World ! 第一篇随笔 /* * Language: C++ * Code Name: Hello World ! * @author Metak */ #include <io ...
- 新年伊始,.net菜鸟入院的第一篇随笔
学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习 ...
- 【tee小白的第一篇随笔】keystone代码略读
武大信安在读,最近在自学Risc-v架构的可信执行环境. (实验报告多半是为了交差.临时起意写写博客,分享一些自己读代码的心得理解.) 本篇内容由队和我友总结而成,如有错误欢迎指正交流. keysto ...
- 第一篇随笔:用VB.NET搞点简单事情(1)
网络上能搜索到的爬虫文章大多是用python做的,也有少部分是C#做的(小声:所以用VB.NET也可以做爬虫.本文写的是第一步:获取网页) 使用代码前先imports以下内容 Imports Syst ...
- 第一篇随笔!!!THE FIRST BLOOD!!!
注册成功,哈哈 以后就要在这扎窝了,要坚持记录下去,关于生活,关于学习. 选了个皮肤 darkgreen,不错,简洁舒服,喜欢. 好,差不多了,感觉没什么可说的了...==
- 博客里的第一篇随笔!QWQ
这里是一个信息蒟蒻,开始自己的博客之旅!!QWQQQQ
随机推荐
- java笔记--局部内部类认识与理解
java内部类 内部类应用最多的场景是在编写GUI程序时,将大量的事件监听处理放在了内部类中进行 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XH ...
- java 通过调用存储过程获取结果集
一般在java中,数据查询是通过Statement, PreparedStatement获取结果集,今天向大家介绍通过CallableStatement调用存储过程,从而获取结果集. 本 ...
- 传递给数据库 'model' 中的日志扫描操作的日志扫描号无效
状况描述:在服务器的管理中重新启动MSSQLSERVER启动后马上又停止 通过"事件查看器" 发现 错误: ,严重度: ,状态: LSN(::)无效.该 LSN 是传递给数据库 ...
- 安装PHPphp-5.4.4
一.下载PHPphp-5.4.4 [root@aliyun software]# pwd /software[root@aliyun software]# wget http://mirrors.so ...
- HTML5 网页 漂浮窗广告 JavaScript逻辑 - demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 初进MFC的世界,太奇妙。第六次作业----未完待续
又一次的迁徙.我希望能够早些抵达. 第六次作业-未完待续!图形界面,计算器文件 本次的作业是给自己的计算器加一个可视化的窗口,我开始也是很激动和憧憬的,看了很多的界面库,发现并没有想象的那么简单,因为 ...
- 翻译-QPKG开发工具快速开始指南
QPKG开发工具快速开始指南 指导你编译你自己的QPKG软件包 目录 什么是QDK 下载QDK 安装QDK 编译你自己的QPKG软件包 搭建QPKG编译环境 配置QPKG 定制QPKG程序 向QPKG ...
- cogs [HZOI 2015]有标号的二分图计数
题目分析 n个点的二分染色图计数 很显然的一个式子 \[ \sum_{i=0}^n\binom{n}{i}2^{i(n-i)} \] 很容易把\(2^{i(n-i)}\)拆成卷积形式,前面讲过,不再赘 ...
- iOS js 使用与JSContext
JSContext:js执行环境,包含了js执行时所需要的所有函数和对象: js执行时,会在执行环境搜索需要的函数然后执行,或者保存传入的变量或函数: JSContext *jsContext = [ ...
- 2016424王启元 Exp6信息搜集与漏洞扫描
一.原理与实践说明 1.实践内容 本实践的目标是掌握信息搜集的最基础技能.具体有: 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫描技术:主机发现.端口扫描.OS及服务版本探测. ...