一个运行在Arduino上的操作系统,写这个系统是为了好玩,旨在压榨Arduino的每一滴性能!
系统随缘更新,可能一天好几次更新,也可能好几个月一次更新,主要看心情😃
Arduino可以作为很便宜的计算机来使用(国产兼容版¥10左右,非常便宜),如果能在上面 看小说、打游戏、写程序 ,那不得比某某派(¥200-300左右)划算多了!
-
先引入底层驱动,支持访问硬件:
- 屏幕显示
- SD卡
- 屏幕触摸感应
- 串口键盘
-
实现类似MSDOS一样的文件操作系统,可以创建删除文件和文件夹,可以查看BMP图片,可以看英文小说。
-
编写一个2D卷轴引擎(打算取名
Scrollrino
,就是Scroll + Arduino
),可以通过Page Scrolling实现流畅的界面滚动滑动体验。 -
导入中文字库到SD卡,实现中文显示,可以看中文小说(最好支持Unicode,支持各个国家语言,如果不行,GB2312编码也是一个可以接受的备选项)
-
实现一个简单的C/C++编译器(类似gcc,打算取名
Compino
,就是Compile + Arduino
),可以直接用Arduino编译C/C++二进制程序。 -
实现一个文本编辑器(类似vim),可以直接连接键盘,在Arduino上愉快地敲代码!
-
实现一个C/C++运行时(类似Java JVM,打算取名
Runmino
,就是Runtime + Arduino
),可以在Arduino上运行编译好的C/C++二进制程序。(Arduino并不采用冯诺伊曼结构,而是哈佛结构,所以编译好的二进制程序不经过烧写,是无法被CPU直接读取到的。这注定了Arduino自己编译的程序,即使是二进制,也许要套一层运行时。)冯诺伊曼结构,也称普林斯顿结构:是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
哈佛结构:是一种将程序指令储存和数据储存分开的存储器结构。
-
为C/C++运行时实现虚拟内存,用SD卡的存储空间,补充Arduino仅有的2KB运行内存。(真的想吐槽,2KB内存是什么鬼,太抠门了,还不如1980s的老电脑!)
-
为C/C++运行时实现多线程支持,同时运行多个程序,实现一边做A,一边做B。
Tomatino (Tomato + Arduino)
:运行在Arduino上的番茄钟软件。Rhymino (Rhyme + Arduino)
:DuinoOS的拼音输入法。The Adventure
:运行在Arduino上的2D开放世界游戏。Lumino (Illumination + Arduino)
:运行在Arduino上的3D光线追踪渲染引擎,渲染漂亮的3D图像,各种玻璃球,折射反射,天空盒子!(估计渲染一张图片会用10min以上吧,哈哈哈,不过无所谓,反正支持多线程,可以一边看小说😃)Neurino (Neural Network + Arduino)
:运行在Arduino上的PyTorch Compatible的神经网络运行时,可以运行AI模型,实现手写输入识别。(估计慢得要死,但是很好玩啊!哈哈哈)Bottino (Bottle + Arduino)
:运行在Arduino上的因特网服务器,类似python的bottle库。Chromino (Chrominum + Arduino)
:运行在Arduino上的因特网浏览器,类似Chrome,可以渲染HTML/CSS页面,运行JavaScript脚本。Gittino (Git + Arduino)
:运行在Arduino上的版本管理软件。
-
Arduino UNO 开发板一块(国产兼容版¥10左右,非常便宜)
-
微雪 3.5inch TFT Touch Shield 触摸屏一块(¥136.35,很便宜的屏幕,毕竟HDMI小显示器动不动就要¥500以上,上不封顶)
驱动芯片:ILI9486(LCD控制)、XPT2046(触摸);分辨率:480x320
购买链接:https://www.waveshare.net/shop/3.5inch-TFT-Touch-Shield.htm
声明:我和微雪官方没有任何商业合作和关联,放这个链接只是为了让大家不要买错型号。
本操作系统只支持这个型号的显示屏,如果你使用其他屏幕,基本上肯定无法正常工作,除非你运气好。
为什么不支持更多屏幕?因为我懒得写几百个驱动,我只想写一个。
如果你想要用不同的显示屏,欢迎联系我获取开发技术资料,然后你自己可以修改代码来支持它们。
-
8GB microSD 卡一张,插入到触摸屏底部的TF卡槽中,用于内存扩容(¥15左右)
合计:¥161.35(相对一台电脑来说,非常便宜)