不少工程師在學(xué)生時(shí)代都一定接觸過(guò)樹(shù)莓派,或者是聽(tīng)說(shuō)過(guò)這種世界上最小的卡片式電腦主板。本篇文章將介紹一種通過(guò)樹(shù)莓派主板來(lái)點(diǎn)亮OLED的方法。樹(shù)莓派幾乎相當(dāng)于一個(gè)微縮的電腦,將SD卡內(nèi)存硬盤、USB接口、視頻和電視輸出接口都整合在一張小小的主板上,它能夠執(zhí)行一些簡(jiǎn)單的媒體播放和數(shù)據(jù)處理功能。
OLED與樹(shù)莓派的連接
想要用樹(shù)莓派成功的點(diǎn)亮OLED,就需要找到正確的接口進(jìn)行連接。在樹(shù)莓派的排針當(dāng)中存在一組SPI接口,它們分別是:GPIO9(MISO) ,GPIO10(MOSI), GPIO11(SCL)。
需要特別說(shuō)明的是,本文中用到的OLED驅(qū)動(dòng)芯片是SSD1306,不能采用別的驅(qū)動(dòng)芯片來(lái)代替。接下來(lái)看一下需要連接哪些接口。分別是GND、VCC、D0、D1、RST、DC、CS。
各個(gè)口的功能與樹(shù)莓派的IO口連線分別如下:
GND接樹(shù)莓派的GND, VCC接樹(shù)莓派的3v3 POWER口,就是電源口,不要接到5V。
CS是SPI的片選口,可以多組SPI同時(shí)使用,這里接樹(shù)莓派的GPIO8(CE0)口,第24個(gè)管腳。
DC口是數(shù)據(jù)與命令選擇口,這里接到第13管腳,對(duì)于R1版本的樹(shù)莓派就是GPIO21,本文中涉及的是R2版本(內(nèi)存512MB),對(duì)應(yīng)的是GPIO27。
RST是復(fù)位口,這里接到GPIO17也就是11管腳。
D1(MOSI)口,接到樹(shù)莓派的GPIO10(MOSI)口,也就是21管腳;D0(SCLK)口,接到樹(shù)莓派的GPIO11(SCLK)口,也就是23管腳。
打開(kāi)樹(shù)莓派的spi口
這里需要解釋一下,因?yàn)闃?shù)莓派的SPI和I2C口都是處于默認(rèn)禁用的狀態(tài),所以我們需要在使用之前就打開(kāi)。
首先是ssh登陸到樹(shù)莓派上:
1、vi /etc/modprobe.d/raspi-blacklist.conf
2、#blacklist spi-bcm2708 #使用井號(hào)注釋掉這行。
3、blacklist i2c-bcm2708 #如果要使用i2c就注釋掉這行。
輸入完畢之后,進(jìn)行保存。然后我們重啟樹(shù)莓派。sudo reboot,這樣就會(huì)打開(kāi)樹(shù)莓派的spi口,可以在/dev目錄下看到兩個(gè)文件:spidev0.0、spidev0.1,對(duì)應(yīng)于GPIO口上的SPI口,0和1表示片選管腳CE0和CE1。
使用python開(kāi)始驅(qū)動(dòng)SPI口的OLED
還是用ssh登陸到樹(shù)莓派上,安裝一些并要的軟件,如果因?yàn)榫W(wǎng)絡(luò)安裝不成功,請(qǐng)重復(fù)該命令:
sudo apt-get update
sudo apt-get install build-essential python-dev python-pip
sudo pip install RPi.GPIO
sudo apt-get install python-imaging python-smbus
sudo apt-get install git
#clone
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd Adafruit_Python_SSD1306
sudo python setup.py install