Bonjour.
Je cherche à réaliser une 'console 4 joueurs' avec 4 joysticks et une matrice de led centrale. Façon 'hippo glouton', avec des jeux un peu moins frénétiques.
Je souhaite insérer des écrans tft1.8 pour donner des infos de jeu (score, vitesse), et notamment avoir des infos pour améliorer le gameplay.
Actuellement, j ai un jeu de snake à 4 qui fonctionne. Les joysticks sont gérés par un arduino nano, qui envoie des données sur le port série d'un pipico qui gère le jeu.
Ce dernier envoie à nouveau les données à afficher à un autre pipico; et je souhaite raccorder plusieurs écrans (au moins 2, avec des affichages différents si possibles)
Le pipico comporte 2 bus SPI comme l'indique la doc (SPI1 et SPI0), et j ai alors tellement de questions, pour lesquelles je ne serai pas contre un petit coup de pouce
- dans guide du tft display (Guide to 1.8 TFT Display with Arduino | Random Nerd Tutorials) , les ports utilisés sont SDA et SCK, ce qui pour mo est un mélange I2C (SDA ) et SCK (la clock qui régit le SPI)
- Quels bornes utiliser avec le pipico ? (Raspberry Pi Pico Pinout, Features, Programming Options and Peripherals ) il y a plusieurs ports qui semble tolérer les 2 bus SPI , mais dans le code qu'on m'a donné (ci dessous), qui fonctionne avec un seul écran, toutes les bornes utilisées ne sont pas mentionnées ...
- avec un seul bus SPI, puis je faire fonctionner plusieurs écrans ou bien il faut un bus par écran ? en ce cas, comment rédiger cette nouvelle ouverture ? créer un objet spi0 et spi 1 ?
Vu l'étendue de mon ignorance (je ne connaissais pas le nom de SPI la semaine dernière) , j'arrete la mes questions ( et je vais voir les sujets similaires qui viennent d'apparaître sur mon naigateur )
Je remercie chaleureusement les personnes qui prennent le temps pour les autres sur ce forum. J'ai souvent besoin de formuler mes demandes d'aide pour comprendre mes problèmes ![]()
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
// Broches Pico
#define TFT_CS 17 //vert
#define TFT_DC 20 //jaune
#define TFT_RST 16 //bleu
//sck : gris: 18
//sda : blanc :19
#define TFT2_CS 13
#define TFT2_DC 21
#define TFT2_RST 12
// gris 10
//blanc 11
// Créer l’objet TFT
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
Adafruit_ST7735 tft2 = Adafruit_ST7735(TFT2_CS, TFT2_DC, TFT2_RST);
void setup() {
// Démarrage SPI avec vitesse réduite pour Pico
SPI.begin();
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0)); // 2 MHz
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE1)); // 2 MHz
// tft.initR(INITR_BLACKTAB); // Initialisation écran ST7735
// tft.fillScreen(ST77XX_BLACK);
tft2.initR(INITR_BLACKTAB); // Initialisation écran ST7735
tft2.fillScreen(ST77XX_BLACK);
Serial.begin(9600);
Serial1.begin(19200);
// // Test de couleurs
// tft.fillScreen(ST77XX_RED);
// delay(500);
// tft.fillScreen(ST77XX_GREEN);
// delay(500);
// tft.fillScreen(ST77XX_BLUE);
// delay(500);
// Texte de test
// tft.fillScreen(ST77XX_BLACK);
// tft.setTextColor(ST77XX_MAGENTA);
// tft.setTextSize(1);
// tft.setCursor(10, 10);
// tft.print("coucou");
// tft2.fillScreen(ST77XX_BLACK);
// tft2.setTextColor(ST77XX_CYAN);
// tft2.setTextSize(2);
// tft2.setCursor(10, 10);
// tft2.print("coco");
}
void loop() {
// if (Serial1.available()) {
// char clic = Serial1.read();
// tft.print(clic);
// }
}