- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 全息广告机上的POV扇形取模的一种简单实现方式
如果你在网上用google搜索“POV led”一词(POV即persistancd of vision),会找到世界各地的各种LED旋转屏的制作介绍。那些摇晃出的空中图案,漂浮在车轮上的动画,以及形态各异的时钟,一定给你留下深刻印象。其实他的实现原理很简单,通过视觉暂留现象,让显示的内容在人脑中呈现出连贯的图像。而难点在于常规的图片像素点是在直角坐标下描述的,而旋转LED设备是典型的极坐标体系,需要将常规图片转换成极坐标上的像素点,才能正常显示,本文介绍了一种使用python实现的简单的方法将图像...
2020-07-24 16:43:51
3291
2
原创 高维投影假说:从克隆到集体意识,一个统一解释的尝试
本文提出"高维投影假说",将意识视为高维空间(a空间)的波动在三维世界的投影。该模型解释了一系列现象:克隆复制的是三维硬件而非灵魂信号;集体潜意识是a空间中的相干驻波;灵感闪现是与a空间的共振;曼德拉效应是时间切片的扰动。文章指出道家思想中早有类似洞见,并建议通过冥想、气场感知等简单实验验证假说。最后提出人生的意义在于让意识波动更清晰有序,从被动投影变为主动存在。这一假说为意识研究提供了统一的理论框架。
2026-03-28 13:29:15
338
原创 第六篇:技术、文明与未来的投影解释
尼克·博斯特罗姆的“模拟假说”认为:如果文明能够运行高度逼真的模拟,那么被模拟的“宇宙”数量将远超真实宇宙,因此我们很可能生活在模拟中。在柏拉图洞穴比喻中,囚徒只能看到影子。一个囚徒挣脱锁链,走出洞穴,看到了太阳。我们就是那些囚徒——被三维投影所困。科学是解读影子的学问。灵性是感知洞外实物的直觉。技术是走出洞穴的工具。人类的终极命运:不是永远做囚徒,而是走出洞穴,成为创造者——操控a空间波动,创造新的投影世界,让宇宙通过我们,认识自己。第六篇完a空间存在,三维世界是投影。
2026-03-28 07:17:23
225
原创 波粒二象性与高维投影假说——一种统一解释的尝试
双缝实验中的光子,在a空间里是一个具有一定宽度的波动结构,它的不同部分可以同时经过两条缝,然后在后屏上重新叠加,产生干涉条纹。在中断的瞬间,意识波动得以暂时脱离三维投影的束缚,直接感知a空间中的其他波动——其他时间切片上的自己(回顾一生),其他灵魂的波动(遇见故人),以及a空间背景本身的波动(那道光)。光子既是粒子,又是波,或者说,它既不是纯粹的粒子,也不是纯粹的波,而是某种我们无法用日常经验描述的存在。如果万物都是a空间里的波动,那么一块石头、一棵树、一个零件,都有它自己的频率、自己的相位。
2026-03-28 07:16:57
619
原创 第五篇:生命、死亡与轮回的投影解释
在本理论中,生死不是对立的两极,而是同一意识波动在不同状态下的表现。生:意识波动与三维载体耦合,体验投影世界。死:耦合中断,意识波动回归a空间,回归本源。我们不是三维中的过客,而是高维中的永恒旅者。每一次生命,都是一次投影;每一次死亡,都是一次回归。生,是投影;死,是回家。
2026-03-28 06:10:33
304
原创 第四篇:意识、精神与灵性的投影解释
在本理论中,意识不是偶然的副产品,而是a空间波动自我认识的必然结果。宇宙通过无数投影(生命),不断创造意识,让意识认识自己。我们每个人,都是宇宙认识自己的一个视角。修行,就是提升这个视角的清晰度、广度、深度,最终让宇宙通过我们,看清自己。这不是神秘主义,而是物理学的自然延伸——只要接受a空间的存在,意识就必然出现在其投影中。我们不是三维中的过客,我们是高维中的永恒旅者。
2026-03-28 06:10:10
469
原创 第三篇:宇宙学与意识的投影解释
在柏拉图洞穴比喻中,囚徒只能看到墙上的影子,并以为那是全部实在。一个囚徒挣脱锁链,走出洞穴,看到了太阳(真理),然后返回洞穴,告诉其他囚徒真相——但没人相信他。洞穴 = 三维世界影子 = 三维投影洞外实物 = a空间波动太阳 = a空间基态(终极实在)挣脱的囚徒 = 修行者、科学家、先知返回洞穴 = 圣者教化众生三维世界是a空间波动的投影,我们是波动中最活跃的部分,是宇宙认识自己的眼睛。科学不是真理,而是三维投影中对真理的逼近。灵性不是迷信,而是对高维实在的直觉。
2026-03-27 06:49:56
416
原创 第二篇:量子力学与相对论的投影解释
量子力学与相对论的世纪矛盾,在本理论中找到了和解的方式。它们不再是对立的,而是同一高维实在在不同投影方向上的表现。量子力学是a空间波动在三维投影中的统计表现。相对论是a空间波动在三维投影中的几何表现。两者在a空间波动中统一。这就像光既是粒子又是波的统一:不是矛盾,而是同一实体在不同条件下的不同表现。当我们理解了这一点,量子力学的“诡异”和相对论的“弯曲”就不再令人困惑——它们都是高维世界在低维屏幕上的影子。而那个高维世界,就是我们一直在寻找的“万有理论”的故乡。
2026-03-27 06:49:33
336
原创 第一篇:理论基础——从三维投影到高维实在
在几何学中,两个维度正交意味着它们彼此垂直,互不依赖。三维空间的三个维度(x, y, z)彼此正交你可以在x方向移动而不改变y或z坐标。x方向上的向量在y方向上的投影为零。a空间与三维空间正交在a空间中移动,不会改变你在三维空间中的坐标。三维空间中的任何向量,在a空间中的投影为零。a空间中的任何向量,在三维空间中的投影为零。这意味着什么?这意味着a空间和三维空间是“垂直”的,就像一条直线垂直于一个平面。平面上的点可以在平面内自由移动,但无法“感知”垂直于平面的方向;
2026-03-26 16:02:49
336
原创 高维投影理论:导论——从洞穴到星空
在柏拉图洞穴中,那个挣脱锁链的囚徒,走出洞穴,看到了太阳。他回到洞穴,告诉其他囚徒真相——但没人相信他。我们就是那些囚徒。三维世界是我们的洞穴,a空间是洞外的世界。本理论是那个囚徒的呼喊——不一定正确,但值得一听。现在,请翻开第一篇,开始你的旅程。记住:我们不是三维中的过客,我们是高维中的永恒旅者。“如果你想知道宇宙的奥秘,就用能量、频率和振动来思考。——尼古拉·特斯拉(可能)
2026-03-26 16:02:16
479
原创 NumWorks 移植到 ESP32-S3 全局概述
本文档旨在从全局视角介绍将 NumWorks 图形计算器操作系统(Epsilon)移植到 ESP32-S3 平台的整体架构、关键步骤及核心挑战。通过一幅清晰的架构框图,结合分阶段说明,帮助读者快速理解移植工作的全貌。在深入移植细节之前,有必要先了解 NumWorks 的软件分层结构。应用层:包含计算器、函数绘图、统计等内置应用。数学引擎 Poincaré:负责表达式解析、符号计算、数值计算。图形库 Kandinsky:提供 2D 绘图接口,基于帧缓冲。Python 解释器。
2026-03-16 11:55:08
769
原创 移植numworks图形计算器:13.移植总结与未来展望
经过一系列的努力,我们成功地将 NumWorks 图形计算器的核心软件(Epsilon)移植到了 ESP32-S3 平台上。从最初的开发环境搭建,到最后的运行时调试,每一步都充满了挑战与收获。本篇将对整个移植工作进行系统性的总结,回顾我们所做的工作、遇到的困难以及解决思路,并展望未来可能的优化方向,希望能为其他嵌入式移植项目提供有价值的参考。将 NumWorks 移植到 ESP32-S3 是一次充满挑战但也极具成就感的旅程。
2026-03-16 11:54:41
669
原创 移植numworks图形计算器:12.移植调试实战——运行时问题排查与解决
通过这一系列调试实践,我们不仅解决了具体问题,更积累了宝贵的嵌入式调试经验。GDB 硬件观察点是追踪内存非法修改的利器。分区表配置直接影响程序稳定性,务必根据实际固件大小调整。显示同步需要硬件支持,充分利用 TE 信号可以避免撕裂。数据类型转换需格外小心,尤其是涉及负数和无符号类型时。边界检查和断言能提前捕获潜在的内存错误。希望这些记录能帮助你在未来的移植项目中少走弯路。下一篇文章,我们将对整体移植工作进行总结,并展望未来可能的优化方向。
2026-03-15 07:50:46
433
原创 移植numworks图形计算器:11.编译问题汇总与解决方案(二)
构建系统差异导致的手动代码生成与硬编码。类型严格性引发的显式转换需求。MicroPython 模块命名不一致的调整。底层汇编的暂时禁用。这些问题的解决进一步推进了移植工作的完成。目前,NumWorks 的核心功能已经能够在 ESP32-S3 上编译并运行,后续我们将进行更全面的功能测试和性能优化。希望本系列文章能为同样进行嵌入式移植的开发者提供有益的参考。如有任何疑问或建议,欢迎交流讨论。
2026-03-15 07:50:06
481
原创 移植numworks图形计算器:10.编译问题汇总与解决方案
NumWorks 原代码依赖于许多平台相关的宏定义,我们需要为 ESP32-S3 明确定义它们。在项目的顶层 CMakeLists.txt 或通过 target_compile_definitions 添加:cmake说明启用断言(调试用)。定义屏幕分辨率,需与硬件匹配。定义键盘矩阵大小,若使用扩展芯片可保持原样。告诉代码我们正在编译设备版本(而非模拟器)。在包含可能冲突的头文件之前,使用#undef取消宏定义:cpp#undef I通过上述调整,我们成功解决了移植过程中遇到的主要编译问题。
2026-03-14 07:44:00
480
原创 移植numworks图形计算器:9.存储模拟——实现 Ion::Storage 的持久化
在项目根目录下创建文件:csvstorage分区:这是我们为 SPIFFS 预留的分区,标签为"storage",类型data,子类型spiffs。大小:这里设为 1MB,可根据实际需求调整。偏移量留空:ESP-IDF 会自动计算偏移地址,确保各分区不重叠。cpp#define STORAGE_BASE_PATH "/storage" // SPIFFS 挂载路径通过本文,我们在 ESP32-S3 上使用 SPIFFS 成功模拟了 NumWorks 的内部存储。
2026-03-14 07:43:37
422
原创 移植numworks图形计算器:8.按键扫描——用74HC595和74HC165扩展GPIO实现矩阵键盘
芯片功能特点74HC5958位串行输入/并行输出移位寄存器用于输出,可级联,带有输出锁存器74HC1658位并行输入/串行输出移位寄存器用于输入,可级联通过使用74HC595和74HC165串行扩展芯片,我们成功地将ESP32-S3的键盘接口从16个GPIO减少到5个GPIO,为其他外设留出了充足的空间。硬件设计简单可靠,软件扫描算法清晰,易于集成到NumWorks的Ion层中。
2026-03-13 07:03:08
570
原创 移植numworks图形计算器:7.移植LCD驱动——添加到numworks中
通过将LCD驱动封装到NumWorks的Ion层,我们成功地将ESP32-S3的硬件显示能力与NumWorks的图形库对接起来。现在,所有Kandinsky的绘图命令都会经过pushRect等函数更新帧缓冲,并在时通过高效的DMA传输刷新到屏幕。这为后续移植键盘、存储等其他模块打下了坚实的基础。在下一篇文章中,我们将开始处理输入部分——将ESP32-S3的GPIO按键映射到NumWorks的事件系统,让计算器能够响应用户操作。
2026-03-13 07:02:37
863
原创 移植numworks图形计算器:6.移植LCD驱动——为ESP32-S3启用I8080并口模式
与SPI相比,I8080并口最大的优势在于传输速度快,因为它使用多条数据线(通常是8条或16条)并行传输数据。ST7789支持8位或9位/16位的I8080并行接口。为了达到最佳性能和与原版NumWorks内存布局的兼容性,我们选择8位并口 + RGB565颜色格式。这意味着每个像素的16位颜色数据需要通过两次8位传输来完成(即写两次),但这对上层是透明的,我们只需要专注于正确配置总线即可。引脚名称功能说明连接至ESP32-S3VCC电源3.3V供电3.3VGND地电源地GND。
2026-03-12 07:27:04
686
原创 移植numworks图形计算器:5.从 Makefile 到 CMake —— 提取模块依赖并集成到 ESP-IDF
从 Makefile 到 CMake 的转换,本质上是将原有的、针对特定平台的构建信息重新组织成 ESP-IDF 能够理解的组件形式。这个过程虽然繁琐,但为后续的硬件适配扫清了障碍。下一步,我们将深入Ion 硬件抽象层的移植,真正让屏幕亮起来、键盘动起来。敬请期待第五篇:点亮屏幕 —— 移植 Ion 显示驱动。
2026-03-12 07:26:27
520
原创 移植numworks图形计算器:4.使用 CLion + ESP-IDF 编译,添加模块并集成编译出 bin 文件
CLion + ESP-IDF 编译 NumWorks 移植指南 本文详细介绍了如何使用 CLion 配置 ESP-IDF 项目,将 NumWorks 计算器代码移植到 ESP32-S3 平台。主要内容包括: 通过 CLion 向导创建 ESP-IDF 项目 将 NumWorks 代码模块化为 ESP-IDF 组件结构 编写适配 ESP32-S3 的主程序入口 配置各模块的 CMakeLists.txt 文件 编译流程及生成 bin 文件的方法 可选的多 bin 文件合并步骤 该指南提供了从代码组织到编译生
2026-03-11 07:11:34
485
原创 移植numworks图形计算器:3.ESP32-S3 硬件资源分析及 NumWorks 原版运行需求
ESP32-S3移植NumWorks可行性分析 本文对比了ESP32-S3硬件与NumWorks计算器原版STM32F4/F7芯片的关键参数。ESP32-S3配备240MHz双核CPU、512KB SRAM和8MB PSRAM,资源远超原版256KB RAM和100MHz单核CPU的需求。重点探讨了内存分配策略,建议将Poincaré数学引擎内存池、MicroPython堆和帧缓冲区等大内存需求组件放置在8MB PSRAM中,保留SRAM用于关键任务。移植主要挑战在于合理配置链接脚本和优化PSRAM访问性能
2026-03-11 07:10:52
495
原创 移植numworks图形计算器:2.下载 NumWorks 代码并分析目录结构
本文介绍了NumWorks计算器开源代码的目录结构与核心模块功能。代码采用C++编写,基于Makefile构建,主要分为硬件抽象层(ion)、图形库(kandinsky)、数学引擎(poincare)、Python解释器(python)和应用程序(apps)等模块。重点分析了ion模块作为硬件接口层的实现方式,以及各模块间的依赖关系。文章指出移植工作的核心在于适配ion模块的硬件接口,包括显示、按键、存储等功能的ESP32-S3实现,同时需要调整内存布局和启动流程。最后强调了理解代码结构对后续移植工作的重要
2026-03-10 18:24:41
473
原创 移植numworks图形计算器:1.使用 CLion 和 ESP-IDF 搭建 ESP32-S3 开发环境
本文详细介绍了如何在Windows系统上使用CLion和ESP-IDF搭建ESP32-S3开发环境。主要内容包括:安装ESP-IDF开发框架,配置CLion工具链和调试环境,创建LED闪烁示例项目,以及编译、烧录和调试流程。文章还提供了常见问题的解决方法,为后续移植NumWorks图形计算器到ESP32-S3平台奠定了基础。通过这套开发环境,开发者可以充分利用CLion的代码编辑和调试功能,结合ESP-IDF的底层支持,高效进行ESP32-S3开发。
2026-03-10 18:24:11
450
原创 使用C语言实现面向对象程序设计
C语言语法简单但精通难,因其"低级"特性导致初学者容易滥用全局变量,代码可读性差。然而这也正是其优势所在:语法简洁、上手容易、执行效率高,特别适合嵌入式等资源受限场景。虽然缺少面向对象语法支持,但通过合理设计仍能实现面向对象编程,在某些方面甚至优于高级语言。C语言简单高效的特点使其成为不可替代的编程语言。
2025-10-09 15:43:23
721
原创 使用opengl实现梯形矫正
在某些显示场景,比如投影仪,由于投影的墙体或者幕布距离投影源并不是最理想的环境,就会出现画面呈现出近大远小的梯形,想要欣赏一个完整的画面,就需要对画面做梯形矫正。下面介绍一种使用opengl的方法针对画面进行梯形矫正。
2025-06-16 18:09:20
452
原创 使用opengl实现极坐标取模转换
如果需要针对视频做实时的极坐标转换,比如直接获取摄像头的数据做转换,使用上述python或者opencv来实现,效率有一些低,延迟会很大,尤其是在使用手机取模时,下面介绍一种直接使用opengl来实现极坐标转换的方法,直接使用gpu,不占用cpu资源,可以做到低延迟快速取模。
2025-06-16 16:56:04
1542
原创 Pov取模Android端实现
取模原理是使用opencv 实现极坐标到直角坐标系点的转换,然后再将图片的像素点按照一定的顺序排列,生成单片机需要的数据,可参考上一篇文章。链接:https://pan.baidu.com/s/1odQ6ynysXtrhAu4nJ7oNKQ?复制这段内容打开「百度网盘APP 即可获取」通过百度网盘分享的文件:MyPov.ap…如上图所示是Android端的效果。
2024-08-11 09:08:06
646
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅