硬件准备:树莓派3,安装rasbian系统的内存卡(这里用rasbian举例),支持IIC协议的OLED屏幕,杜邦线
硬件连接 :
树莓派 OLED
GPIO.1(3V3) --------------------------> VCC
GPIO.6(0V) --------------------------> GND
GPIO.5(SCL) --------------------------> SCL
GPIO.5(SDA) --------------------------> SDA
大家可以通过指令查询引脚
$ gpio readall
首先打开IIC接口(rasbian默认关闭)
$ sudo raspi-config 进入图形配置界面
键盘移动选择Interfacing Options------>I2C------>Yes------->OK------->finsh 搞定
把屏幕接上去测试一下是否检测到IIC设备
$ sudo i2cdetect -y -a 1
看到圆圈中的3c表示IIC打开成功,这个是它的地址
到此,硬件平台搭建成功,继续接下来的操作。
树莓派控制GPIO有很多种库可以使用,玩过单片机的可以使用wiringPi库来操作树莓派,这个库使用C语言进行开发,而且集成了IIC、SPI|单总线等驱动,编程风格类似Arduino,熟练python的可以使用python库,但是GPIO的python没有集成上述总线的驱动,因此要驱动IIC协议的OLED屏幕,需要安装第三方python库。本文使用python库
从github下载OLED的驱动代码,https://github.com/rm-hull/ssd1306 下载luma.oled.master.zip解压
$ unzip luma.oled.master.zip
$ cd luma.oled.master
这里有个小技巧,可以发现运行这个驱动代码需要什么module
我们继续进入tests
$ cd tests
然后运行一个驱动试试
$ python test_ssd1306.py
这时我的终端提示缺少mock module 然后我顺理成章的安装它
$ sudo pip install -U mock
好了安装成功后继续运行一下驱动代码
$ python test_ssd1306.py
这时我的终端又提示缺少pytest module 一样的套路,继续
$ sudo pip install -U pytest
继续运行一下驱动代码,这时运行成功了,说明你的模块已经安装好了
这个时候你就可以返回上一个目录安装setup.py了
$ sudo setup.py install
这时我开始进入examples文件夹寻找例程跑一下,发现这个里面只有一份readme文件,打开这份文件你会发现他给了你一个网址,然后我们可以选择打开这个网址,但是我直接进入https://luma-oled.readthedocs.io/en/latest/index.html这个网站,然后我们会发现一个Installation选项,我们点进去,这个是最新版驱动模块的安装方法,我们按照官方提示安装一下也无妨
$ sudo apt-get install python-dev python-pip libfreetype6-dev libjpeg-dev
$ sudo -H pip install --upgrade pip
$ sudo apt-get purge python-pip
$ sudo -H pip install --upgrade luma.oled
提示:如果执行这4条指令中的任何一条指令提示出错,重复执行这条指令,因为可能是网络问题导致安装失败,实在安装不上就放弃它!!
然后我们的目的是为了找到例程测试驱动是否能用,我们接着点击网页左上角Python usage ,拉到最下面Examples那里,然后点击底下留有的连接luma.examples,然后下载里面的压缩包,继续解压。
$ unzip luma.examples
$ cd examples
然后你会发现很多历程,随便执行一个看看效果
$ python runner.py
然后观察OLED就能看见如图效果了
此时,使用IIC协议的OLED屏幕驱动成功!
Now enjoy youself~