Introduction: Raspberry Pi Pico - CircuitPython - ILI9341
I decided to write another tutorial on the Raspberry Pi Pico, mainly because the card is very recent and there is still not much documentation on its use. Although CircuitPython is extremely easy to use, most of the examples on the Adafruit website are not yet adapted for the new card.
So I decided to do my part.
This version of the TFT LCD display that I purchased here in Brazil does not come with the CS pin, which is used in many libraries. This offered me some challenge. At the end of the day, I indicated a pin on the nameplate in the call to the driver, but there is no connection made between the CS pin (absent in the display) and the Raspberrry Pi Pico.
---
Eu resolvi escrever mais um tutorial sobre a Raspberry Pi Pico, principalmente porque a placa é muito recente e ainda não existe muita documentação sobre o seu uso. Embora o CircuitPython seja extremamente fácil de ser utilizar, a maioria dos exemplos no site da Adafruit ainda não estão adaptados para a nova placa.
Então eu resolvi fazer a minha parte.
Essa versão do display LCD TFT que eu adquiri aqui no Brasil não vem com o pino CS, que é utilizado em muitas bibliotecas. Isso me ofereceu algum desafio. No final das contas, eu indiquei um pino da plaquinha na chamada para o driver, mas não existe conexão alguma feita entre o pino CS (ausente no display) e a Raspberrry Pi Pico.
Supplies
1x Raspberry Pi Pico -
https://www.filipeflop.com/produto/raspberry-pi-pi...
1x Display LCD TFT 3.2" 240x320 - ILI9341 -
Step 1: The Conection and the Code
The connection between the raspberry pi pico and the display looks like this:
-----
A conexão entre a raspberry pi pico e o display ficou assim:
PICO > DISPLAY
3V3 OUT (Pin 36) > VCC
Any GND > GND
SPI0SCK(Pin 4) > SCK
SPI0TX (Pin 5) > MISO
SP0RX (Pin 6) > MOSI
SPI0CS (Pin7) > RES (This display doesn´t have a CS Pin)
PIN 9 > DC
PIN10 > BLK
import board
import busio
import displayio
import terminalio #Just a font
import adafruit_ili9341
from adafruit_display_text import label
dc=board.GP5
rst=board.GP6
blk=board.GP7
cs=board.GP8 #My display does not have it...
spi = busio.SPI(clock=board.GP2, MOSI=board.GP3, MISO=board.GP4)
displayio.release_displays()
display_bus = displayio.FourWire(spi, command = dc, chip_select=cs, reset=rst)
display = adafruit_ili9341.ILI9341(display_bus, width=320, height=240)
splash = displayio.Group(max_size=10)
display.show(splash)
# Draw a green background
color_bitmap = displayio.Bitmap(320, 240, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0x00FF00 # Bright Green
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)
# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(280, 200, 1)
inner_palette = displayio.Palette(1)
inner_palette[0] = 0xAA0088 # Purple
inner_sprite = displayio.TileGrid(inner_bitmap, pixel_shader=inner_palette, x=20, y=20)
splash.append(inner_sprite)
# Draw a label
text_group = displayio.Group(max_size=10, scale=3, x=57, y=120)
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=0xFFFF00)
text_group.append(text_area) # Subgroup for text scaling
splash.append(text_group)
If you are typing each of these lines in the REPL, you will be able to see what each one does.
-----
Se você for digitando cada uma dessas linhas no REPL, vai poder ir vendo o que cada uma delas faz.