Bonjour,
L'inscription sur ce forum et les premiers messages sont modérés par un Administrateur.
Ce n'est pas très convivial mais malheureusement nécessaire suite au spam intensif de nos amis russes.
Cordialement,
Dominique

Help: Objectif quiz!

Concerne la réalisation de projets Makers / Electroniques autour d'une carte MicroPython.
Règles du forum
La PYBStick est supporté par MC Hobby (MicroPython) et Garatronic (Arduino IDE).
Merci de suivre les recommandations suivantes.
Pensez à:
  • Titre claire: permettant d'identifier le produit et le problème
  • Contenu complet: schema, message d'erreur, etc (tout ce qui permet d'aider à distance).
  • Fichier joint: Max 300 Ko
  • Courtoisie et précision
totorock
Messages : 6
Inscription : lun. 11 oct. 2021 15:02

Help: Objectif quiz!

Message par totorock »

Bonjour a tous!
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 : Tout sélectionner

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
Maintenant voila les problèmes de ce code:
- 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
Répondre