Подключение PiTFT 2.8″ (ILI9341) к Raspberry Pi

447_image

Схема: V2.1

raspberry_pi_pitftschem

Прежде чем все это поставить необходимо включь 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)

OLED Display 0.96″ I2C/SPI 128 X 64

oled-dimension

oled-main

Разрешение: 128*64
Угол обзора: > 160 градусов
Ультра-низким энергопотреблением: 0.08 Вт
Рабочее напряжение: 3-5 Вольт
Рабочая температура: от-30 до 70 градусов Цельсия
Размер: 27.0 мм * 27.0 мм * 4.1 мм
I2c/интерфейс
SSD1306

Arduino Library. (backup download:OLED_I2C)

SPI

oled128x64spi

Библиотеки для микроконтроллеров (Arduino, и.т.д.)

u8glib – https://code.google.com/p/u8glib/

Для Arduino

D/C =>11, RST=>13,SDA=>9,SCL=10

U8GLIB_SSD1306_128X64 u8g(10, 9, 12, 11,13);

12=Не подключаем.

VCC = 3.3v !!! ( На этом модуле нет преобразователя 3.3в )

U8GLIB_SSD1306_128X64 u8g(10,9,12,11,13); // Arduino Fio