正在做 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部分

 

目录
相关文章
|
Linux Python Windows
STM32和树莓派串口透传
STM32和树莓派串口透传
STM32和树莓派串口透传
|
6月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
476 2
|
5月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
799 0
|
7月前
|
传感器
STM32标准库ADC和DMA知识点总结-1
STM32标准库ADC和DMA知识点总结
|
6月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
539 4
|
6月前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
802 2
|
6月前
|
存储 数据采集 数据安全/隐私保护
使用STM32F103读取TF卡并模拟U盘:使用标准库实现
通过以上步骤,你可以实现用STM32F103将TF卡内容变成U盘进行读取。这种功能在数据采集、便携式存储设备等应用中非常有用。如果你有更多的需求,可以进一步扩展此项目,例如添加文件管理功能、加密存储等。希望这篇博客能帮到你,如果有任何问题,欢迎在评论区留言讨论!
271 1
|
6月前
|
开发者
【经典案例】使用HAL库配置STM32F407的SPI外设
在嵌入式系统开发中,STM32F407是一款广泛应用的微控制器,而SPI(Serial Peripheral Interface)是一种常用的通信接口。本文将详细介绍如何使用STM32的硬件抽象层(HAL)库配置STM32F407的SPI外设,并提供完整的代码示例。
649 1
|
5月前
|
传感器 编解码 API
【STM32开发入门】温湿度监测系统实战:SPI LCD显示、HAL库应用、GPIO配置、UART中断接收、ADC采集与串口通信全解析
SPI(Serial Peripheral Interface)是一种同步串行通信接口,常用于微控制器与外围设备间的数据传输。SPI LCD是指使用SPI接口与微控制器通信的液晶显示屏。这类LCD通常具有较少的引脚(通常4个:MISO、MOSI、SCK和SS),因此在引脚资源有限的系统中非常有用。通过SPI协议,微控制器可以向LCD发送命令和数据,控制显示内容和模式。
208 0