Схема: V2.1
Прежде чем все это поставить необходимо включь SPI
#sudo raspi-config
Выбираем: Advanced options
Затем выбираем: Enable SPI
И отвечаем на все вопрсы YES
После этого лучше перегрузиться.
Для установки к этому дисплею необходимо поставить следующие пакеты:
sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip python-imaging python-numpy
sudo pip install RPi.GPIO
git clone https://github.com/adafruit/Adafruit_Python_ILI9341.git
cd Adafruit_Python_ILI9341
sudo python setup.py install
Для проверки работоспособности:
cd examples
sudo python image.py
Скорее всего ничего не заработает.
А дело в том что сигнал D/C расположен не там где должен быть.
D/C – Data or Command pin. В этой версии TFT он находиться на GPIO 25
Это легко определить по схеме.
Короче, открываете пример: image.py
И вносите следующие исправление.
Было:
# Raspberry Pi configuration.
DC = 18
RST = 23
SPI_PORT = 0
SPI_DEVICE = 0
Нужно:
# Raspberry Pi configuration.
DC = 25
RST = 23
SPI_PORT = 0
SPI_DEVICE = 0
Небольшой пример того что можно сделать: Нужно доставит
apt-get install python-matplotlib
#!/usr/bin/python
import RPIO
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import random as random
import Adafruit_ILI9341 as TFT
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.SPI as SPI
import matplotlib
matplotlib.use(‘Agg’) # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
RPIO.setup(18, RPIO.IN)
RPIO.setup(18, RPIO.IN, pull_up_down=RPIO.PUD_UP)
input_value = RPIO.input(18)
# Raspberry Pi configuration.
DC = 25
RST = 23
SPI_PORT = 0
SPI_DEVICE = 0
# Create TFT LCD display class.
disp = TFT.ILI9341(DC, rst=RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=64000000))
# Initialize display.
disp.begin()
# Clear the display to a red background.
# Can pass any tuple of red, green, blue values (from 0 to 255 each).
disp.clear((255, 255, 255))
# Get a PIL Draw object to start drawing on the display buffer.
draw = disp.draw()
my_dpi=96
fig = plt.figure(figsize=(320/my_dpi, 240/my_dpi), dpi=my_dpi)
# fig = plt.figure()
items = [1, 2, 3, 4, 5, 6, 7]
while (input_value == 1):
disp.clear((255, 255, 255))
input_value = RPIO.input(18)
random.shuffle(items)
plt.plot(items)
fig.savefig(‘/var/ramdisk/temp.png’,dpi=my_dpi)
image = Image.open(‘/var/ramdisk/temp.png’)
image = image.rotate(90).resize((240, 320))
disp.display(image)