question

Retrouver tous les sujets résolus.
Répondre
quentin

question

Message par quentin » mer. 2 févr. 2022 18:04

Bonjour

désolé mais est ce que vous vous y connaissez en carte microbit... ?

Merci...
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 2 févr. 2022 19:55

Bonjour,
nous ne sommes pas experts en programmation sur micro:bit mais tu peux toujours envoyer ta question et nous verrons si nous pouvons te répondre.
À bientôt
quentin

Re: question

Message par quentin » mer. 2 févr. 2022 20:41

Ok, merci d'avance si vous pouvez.

Le petit problème c'est qu'il y a un truc sur lequel je bloque du coup c'est pénalisant pour tout. Dans ce script par exemple :
from microbit import*
for i in range(0,5,1):
display.set_pixel(i,2,7)
sleep(500)
display.clear()

Je ne comprends pas comment savoir quel led vont s'allumer (je sais juste que c'est grace à la ligne for i in range(0,5,1): que l'on peut savoir) et que la 3e valeur c'est la luminosité...
Si vous pouviez m'expliquez ce serait super.

Merci !!!
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » mer. 2 févr. 2022 21:07

Bonjour,
comme tu ne m'as pas donné l'indentation ton programme peut se comporter de différentes façons selon que les instructions sont dans la boucle for ou non.
D'abord, il faut repérer les leds par leur coordonnées :
Capture d’écran 2022-02-02 205536.png
La première coordonnée x correspond au rang de la colonne (entre 0 et 4) tandis que la deuxième correspond au rang de la ligne (entre 0 et 4).
L'instruction :

Code : Tout sélectionner

display.set_pixel(x,y,valeur)
allume la led située à la colonne de rang x et la ligne de rang y, avec une intensité "valeur", qui est comprise en 0 et 9 (plus c'est grand, plus l'intensité lumineuse est importante).
Dans ta boucle, tu parcours les leds de la ligne 2 (celle du milieu) car l'instruction est

Code : Tout sélectionner

display.set_pixel(i,2,7)
Si toutes les instructions que tu as données sont dans la boucle for :

Code : Tout sélectionner

for i in range(0,5,1):
    display.set_pixel(i,2,7)
    sleep(500)
    display.clear()
Cela signifie que la led (0,2) s'allume à l'intensité 7 pendant 500 millisecondes (sleep(500)), soit 0,5 secondes, avant de s'éteindre (display.clear()) puis de passer à la suivante (led(1,2)), et ainsi de suite.
Si les instructions ne sont pas alignées comme je l'ai fait, cela changera sensiblement le programme.
Pour savoir, tu peux tester ton code sur https://create.withcode.uk/ : sur ce site tu pourras simuler ce qui se passera sur la micro:bit
Bonne continuation
quentin

Re: question

Message par quentin » jeu. 3 févr. 2022 18:35

Merci infiniment ! Juste comment changer le pas ? merci encore
quentin

Re: question

Message par quentin » jeu. 3 févr. 2022 19:39

Vrmt désolé de vous reposer une question alors que l'autre n'a pas eu de réponse mais je bloque depuis un énorme moment sur ca :

from microbit import*
i=0
while i<5:
display.set_pixel(i,2,5)
i=i+1
sleep(500)
display.clear()

Modifiez ce script de manière à ce que seule la Led centrale s’allume très rapidement avec une intensité lumineuse croissante, de manière répétitive.

je n'arrive pas du tout... Merci beaucoooooooup !!!
quentin

Re: question

Message par quentin » jeu. 3 févr. 2022 22:19

SOS 21 ? :'(

Je te réponds directement dans ton message car il est impossible de poster un nouveau message sur le forum actuellement.
Pour répondre à ton premier message voici ma réponse :
tu parles du pas pour ta boucle ?
Tu peux rajouter un paramètre optionnel dans le range :

Code : Tout sélectionner

range(0,5,2)
donnera le parcours des valeurs de i égales à 0, 2, 4, cela allumera alors une led sur deux.
Est-ce cela que tu voulais faire ?
Pour ta deuxième demande, tu peux utiliser le compteur i pour gérer l'intensité du pixel central (de coordonnées (2,2)) en le faisant varier de 0 à 9. Ton programme devient alors :

Code : Tout sélectionner

from microbit import *
i=0
while i<=9:
  display.set_pixel(2,2,i)
  sleep(500)
  display.clear()
  i=i+1
Bonne continuation
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » ven. 4 févr. 2022 11:52

Bonjour,
je t'avais répondu hier directement dans ton message car le forum était bloqué en écriture de nouveaux messages.
Pour répondre à ton premier message voici ma réponse :
tu parles du pas pour ta boucle ?
Tu peux rajouter un paramètre optionnel dans le range :

Code : Tout sélectionner

range(0,5,2)
donnera le parcours des valeurs de i égales à 0, 2, 4, cela allumera alors une led sur deux.
Est-ce cela que tu voulais faire ?
Pour ta deuxième demande, tu peux utiliser le compteur i pour gérer l'intensité du pixel central (de coordonnées (2,2)) en le faisant varier de 0 à 9. Ton programme devient alors :

Code : Tout sélectionner

from microbit import *
i=0
while i<=9:
  display.set_pixel(2,2,i)
  sleep(500)
  display.clear()
  i=i+1
Bonne continuation
quentin

Re: question

Message par quentin » jeu. 10 mars 2022 18:24

Bonjour désolé de revenir sur ce sujet. Enfaite mon controle a été décalé depuis la dernière fois à demain du coup je révise et je ne comprends rien...

Merci d'avance pour votre aide qui est formidable.
Dans ce script
from microbit import*
while True:
display.show(Image.HAPPY)
sleep(500)
display.clear()
sleep(1000)
display.show(Image.SAD)
sleep(250)
display.clear()
sleep(1000)

Pourriez vous me dire a quoi correspondent les instructions, étape par étape ?
Désolé et vivement que ce controle soit passé (et réussi!) parce que ca m'enerve.

MERCI
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » jeu. 10 mars 2022 19:12

Bonjour,
je vais tâcher de répondre même si je ne suis pas expert en micro:bit :
La boucle while se répète tant que la condition spécifiée est vraie ( True ). Dans ce cas, nous avons dit que la condition est vraie. Cela crée une boucle infinie

Code : Tout sélectionner

from microbit import* # on importe toutes les fonctions du module microbit [/color]
while True: # La boucle while se répète tant que la condition spécifiée est vraie ( True ).   Cela crée une boucle infinie qu'on stoppe en appuyant sur la touche reset de la carte
	display.show(Image.HAPPY) # on affiche une image préenregistrée qui allume certaines leds pour former un smiley
	sleep(500) # faire une pause pendant 500 ms soit 0,5 seconde, l'affichage se maintient
	display.clear() # éteindre toutes les leds
	sleep(1000) # faire une pause pendant 1 seconde
	display.show(Image.SAD) # on affiche une image préenregistrée qui allume certaines leds pour former un frowney
	sleep(250) # faire une pause pendant 0,25 seconde, l'éclairage se maintient
	display.clear() # éteindre toutes les leds
	sleep(1000) # faire une pause pendant 1 seconde
#et ces instructions se répètent aussi longtemps que voulu


Tu peux vérifier ton code avec le simulateur en ligne : https://create.withcode.uk/
Bonne continuation
quentin

Re: question

Message par quentin » ven. 11 mars 2022 18:19

Bonsoir,

Bon du coup j'ai passé mon controle tout à l'heure et c'était compliqué. Avec des question sans queux ni tete...

Merci bcp de m'avoir expliqué en tout cas
sos-math(21)
Messages : 10334
Enregistré le : lun. 30 août 2010 11:15

Re: question

Message par sos-math(21) » ven. 11 mars 2022 19:54

Bonjour,
Attends de voir ta note, l’impression à chaud n’est pas toujours la meilleure.
À bientôt sur sos math
Répondre