Dans le cadre d'un petit projet de création de quiz pour enfant, j'ai commencé un petit programme qui me donne du fil a retordre.
L'objectif étant a l'aide d'une carte RPi Pico, d'un écran GC9A01, et d'un bouton momentanée, de réalise un quiz affichant des photos jpg. Le tout prendra place dans un boîtier imprimé en 3d. Je vous rajouterai les 3ds au format STL quand je les aurais validés IRL.
Bref rentrons dans le vif du sujet!
Voici le "prototype" de code détaillé:
Code: Select all
import utime
import machine
import gc
button = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_UP) #déclaration bouton
import gc9a01 #import librairie écran
gc.enable()
gc.collect()
def gpio_set(pin,value): #détection appui bouton
if value >= 1:
Pin(pin, Pin.OUT).on()
else:
Pin(pin, Pin.OUT).off()
def main(): #activation écran et déclaration de ses branchements
spi = SPI(1, baudrate=60000000, sck=Pin(14), mosi=Pin(15))
tft = gc9a01.GC9A01(
spi,
240,
240,
reset=Pin(11, Pin.OUT),
cs=Pin(13, Pin.OUT),
dc=Pin(12, Pin.OUT),
backlight=Pin(10, Pin.OUT),
rotation=2) # ecran 180deg, mettre 0 pour normal
# initialisation ecran
tft.init()
while True:
GC9A01.on()
print('question1')
tft.jpg("q1.jpg", 0, 0, gc9a01.SLOW)#affichage image 1
utime.sleep_ms(180000) #blocage du bouton pour 3minutes
while True:
if not button.value():
print('question2')
tft.jpg("q2.jpg", 0, 0, gc9a01.SLOW)
utime.sleep_ms(180000)
while True:
if not button.value():
print('question3')
tft.jpg("q3.jpg", 0, 0, gc9a01.SLOW)
utime.sleep_ms(180000)
while True:
if not button.value():
print('question4')
tft.jpg("q4.jpg", 0, 0, gc9a01.SLOW)
utime.sleep_ms(180000)
GC9A01.off()
break
break
break
break
- 1: il semblerait que la déclaration des pins de l'écran interfère avec la détection du bouton. Les 2 commandes fonctionnent seules, mais quand je les rassembles dans le programme ça ne fonctionne plus, et je ne trouve pas de solutions.
-2 : le montage des photos en arborescence avec les "N" break a la fin est compliqué pour l'utilisation d'un grand nombre de photos.
Comme on le dit par chez moi, je pédale dans la semoule, donc si l'un de vous qui lisait ce poste, aurais des idées a partager, je suis preneur!
Au plaisir de solutionner ça avec vous.
Bye