【教程】给贝壳云NAS添加OLED屏幕
本帖最后由 wdmomoxx 于 2020-11-2 10:17 编辑贝壳云一款基于RK3328的矿难遗产
其拥有一个千兆网口及4个USB3.0接口
已可运行Linux系统而广受NAS圈小众看好
在nas主机中带上一款显示屏幕会显得特别高大上
本教程即给贝壳云添加一块精致的OLED小屏幕,可作为nas信息屏使用
显示效果如下:
此方法来源于ken大佬提供程序,在此感谢ken大佬
一. 硬件部分
用原来的红白色 LED 接口,改接 OLED 屏,用 GPIO 来模拟 I2C 时序,驱动 I2C 接口的OLED屏进行显示。LED接口图 :
某宝上 128*64 的 OLED 屏大多采用 SH1106/SSD1306 等驱动 IC。它们的 I2C 命令大多数都是兼容的,所以都可以用贝壳云来折腾。但 Demo 采用的 sysfs 方式来驱动 GPIO 的,经实测,I2C速率仅能达到50K左右。因此,此方式不能快速刷屏,仅支持显示变化不大的图形/字符信息
注:使用有些SH1106屏,显示会偏位,需要修改软件设置,见软件部分
二. 软件部分
1.软件安装
软件由python2.7完成,需要安装软件
A>python : apt-get install python-dev
B>pip: apt-get install python-pip
C>PIL: apt-get python-pil
D>python psutil模块 pip install psutil或pip2 install psutil
如果安装PIL/psutil失败,出现setup tools, egg_info错误时,请先安装setuptools
pip install setuptools或pip2 install setuptools
然后重新执行C和D步骤安装PIL/psutil
安装完成后检验一下
不报错就是安装成功,可以继续下一步
2.修改dts,禁用LED
将现在使用的dtb反编译成dts,在dts中找到leds
将status = “okay”改为status = “disabled”,然后编译成dtb。
附件有改好的dtb,参数与原版android固件相同,放心使用
3.编译
解压源码,scp 传入贝壳云,进入源码目录,编译 bky_oled_drv.so动态链接库。
假设路径为/home/beikeyun
cd /home/ beikeyun
gcc -o bky_oled_drv.so -shared -fPIC bky_oled_drv.c
编译完成后执行python bky_linlcd.py如果软硬件正常,OLED出现显示
注意:有些SH1106屏,显示会偏位,需要修改bky_linlcd.py 将 bky_oled.Init(0)改为 bky_oled.Init(2)
4.开发
Demo文件包括
bky_oled.py是对bky_oled_drv.so的包装,提供下面的函数
Init(offset):初始化OLED,参数offset是OLED屏显示的偏移 SSD1306设置0,SH1106设置为2
Display(on):OLED屏显示开关 on=0时显示关闭,on=1时显示
Draw(image):将图像发送给OLED 显示,图像大小必须为 128*64
beikeyun OLED Demo.rar下载:
**** Hidden Message *****
教程可能相对比较复杂,这里提供一份已经安装好OLED屏幕环境的系统下载:
https://yun.baidu.com/s/1yvQewynsgjqXtbGZ32daZA
**** Hidden Message *****
感觉步骤略微复杂,先收藏了,后边慢慢看
大神就是不一样,看着就很有内容的样子{znds8}{znds8} {znds6}{znds6}{znds6}申请给楼主加精,好帖!
这个图像好熟悉啊,感觉经常看到
感谢楼主分享,感觉很复杂的样子。 那么这个搞完后有什么效果呢? 看看内容,感谢分享 盒子的用户体验 发表于 2020-11-2 10:33
想看看影藏里面有什么
是隐藏,好吗{znds1} 十年孤独 发表于 2020-11-2 10:29
感谢楼主分享,感觉很复杂的样子。 那么这个搞完后有什么效果呢?
这个需要一定基础的,小白还是谨慎操作,看个新鲜就好