NEW 5 years ago
Merci !
Je viens de faire un test et je pense que je ne vois pas bien comment sauvegarder la valeur avec gb.save
Voici mon code :
#include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); } void loop() { while (!gb.update()); gb.display.clear(); if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK(); } gb.display.print(compteur); gb.save.get(compteur); }
J'ai bien ajouté gb.save.get
avec la variable "compteur".
Merci pour le coup de pouce !
NEW 5 years ago
Tu fais une erreur de fonction. Pour sauver, tu dois utiliser gb.save.set et pour lire ce que tu as sauvé, tu utilises gb.save.get
NEW 5 years ago
Merci pour ta réponse. En effet je pensais me tromper, mais j'ai également essayé avec gb.save.set(compteur)
et cela n'a pas fonctionné. Peut-être il s'agit d'une erreur dans l'écriture du code, ou bien l'emplacement dans le void setup()
ou le void loop()
?
Merci !
NEW 5 years ago
En fait tu fais une erreur. Pour gb.save.set, tu peux regarder dans les références, tu dois préciser le bloc dans lequel tu sauvegarde. Pour toi par exemple, ça pourrait donner gb.save.set(0,compteur);
et pour lire, tu utilises alors compteur = gb.save.get(0);
Tu peux regarder le tuto de Sorunome si besoin sur les sauvegarde pour aller plus loin dans les sauvegardes ou pour avoir d'autres exemples (https://gamebuino.com/creations/gamebuino-save-format)
Nicolas
5 years ago
Merci, en effet je comprends un peu plus mon erreur.
Le tuto de Sorunome est très bien, mais il manque un exemple pratique simple pour les débutants :-)
Je viens de tester mon programme avec ce code et la correction des fonctions gb.save.set
et gb.save.get
mais rien ne fonctionne. Quand je quitte le programme, le compteur revient toujours à 0...
include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); } void loop() { while (!gb.update()); gb.display.clear(); if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK(); } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); gb.save.set(0,compteur); gb.save.get(0); }
Il y a quelque chose qui me manque pour comprendre complètement le système de sauvegarde.
NEW 5 years ago
Merci, en effet je comprends un peu plus mon erreur.
Le tuto de Sorunome est très bien, mais il manque un exemple pratique simple pour les débutants :-)
Je viens de tester mon programme avec ce code et la correction des fonctions gb.save.set
et gb.save.get
mais rien ne fonctionne. Quand je quitte le programme, le compteur revient toujours à 0...
include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); } void loop() { while (!gb.update()); gb.display.clear(); if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK(); } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); gb.save.set(0,compteur); gb.save.get(0); }
Il y a quelque chose qui me manque pour comprendre complètement le système de sauvegarde.
NEW 5 years ago
oui, l'erreur est normale. Tu sauve le compteur puis tu le lis.
La valeur du compteur ne change donc pas.
Ce qu'il faut que tu fasses c'est lire la dernière valeur sauvegardée quand tu ouvres ton programme (par exemple dans le setup)
Après tu sauvegarde ta valeur dans ta boucle.
Du coup au début tu charges un seule fois la dernière valeur sauvegardée et tu sauvegarde à chaque fin de boucle la valeur de ton compteur.
Si je ne m'abuse, c'est le comportement que tu attends.
Nicolas
5 years ago
Merci à toi pour tes conseils et ton sens pédagogique ! J'ai compris la procédure et ça fonctionne :-) Je vais pouvoir développer maintenant l'idée avec un compteur un peu plus complexe.
Voici mon code pour ceux que ça peut intéresser :
#include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée } void loop() { while (!gb.update()); gb.display.clear(); //augmenter +1 lorsque l'on appuie sur la touche UP if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK();//un son est joué } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle }
NEW 5 years ago
Merci à toi pour tes conseils et ton sens pédagogique ! J'ai compris la procédure et ça fonctionne :-) Je vais pouvoir développer maintenant l'idée avec un compteur un peu plus complexe.
Voici mon code pour ceux que ça peut intéresser :
#include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée } void loop() { while (!gb.update()); gb.display.clear(); //augmenter +1 lorsque l'on appuie sur la touche UP if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK();//un son est joué } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle }
Sorunome
5 years ago
Hey, using gb.save.get
and gb.save.set
takes quite long, I'd recommend to use them as little as possible! Since you have gb.save.set
inside of loop()
it'd be called quite often. I'd recommend something like this instead:
#include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée } void loop() { while (!gb.update()); gb.display.clear(); //augmenter +1 lorsque l'on appuie sur la touche UP if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK();//un son est joué gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); }
As you can see it only calls gb.save.set
now if the value actually changes!
NEW 5 years ago
Hey, using gb.save.get
and gb.save.set
takes quite long, I'd recommend to use them as little as possible! Since you have gb.save.set
inside of loop()
it'd be called quite often. I'd recommend something like this instead:
#include <Gamebuino-Meta.h> int compteur = 0; void setup() { gb.begin(); compteur = gb.save.get(0); //on lit la dernière valeur sauvegardée } void loop() { while (!gb.update()); gb.display.clear(); //augmenter +1 lorsque l'on appuie sur la touche UP if (gb.buttons.pressed(BUTTON_UP)) { compteur = compteur + 1; gb.sound.playOK();//un son est joué gb.save.set(0,compteur);//on sauvegarde la valeur dans la boucle } gb.display.setFontSize(4); gb.display.setCursor(10,10); gb.display.print(compteur); }
As you can see it only calls gb.save.set
now if the value actually changes!
NEW 5 years ago
simple pour apprendre les boutons UP, BUTTON, RIGHT,LEFT et les opérations courantes
NEW 5 years ago
Merci pour ce tuto, super cool. Me suis bien amuser, j’ai été un peut plus loin pour ma part avec trois variable et trois jauge. Une pour les unités, une pour les dizaines et une pour les centaines. Il me reste des choses à finir comme faire une jauge quand les valeurs on négative, ça j’ai pas trouvé.
Je vous partagerais le code sources et le partagerais dans les créations une fois fini.
NEW 5 years ago
Bravo Loganen. Tu as tout compris: on fait le tuto et après on le triture, on le modifie, on se fait plaisir pour faire ce que l'on veut et c'est là que l'on encre ce que l'on a appris.
NEW 5 years ago
Salut
Donc voilà ma version du compteur, pas tout à fait terminé.
Il me reste des petites choses à faire dessus mais en l'état il marche bien.
#include <Gamebuino-Meta.h> //int counter = 0; // Nouvelle ligne initialisation du conteur (variable) à Zéro int counter_unite = 0; int counter_dizaine = 0; int counter_centaine = 0; void setup() { // put your setup code here, to run once: gb.begin(); } void loop() { // put your main code here, to run repeatedly: while (!gb.update()); gb.display.clear(); // gestion du compteur des unités if (gb.buttons.pressed(BUTTON_A)) { // SI on appuis sur A counter_unite = counter_unite + 1; // On ajoute +1 à la variable gb.sound.playOK(); // On joue un son } // fin de la fontion SI if (gb.buttons.pressed(BUTTON_B)) { counter_unite = counter_unite - 1; gb.sound.playTick(); } // gestion du compteur des dizaines en fonction des unités dans les valeurs positives // gestion incrementation if (counter_unite == 10) { counter_unite = 0; counter_dizaine = counter_dizaine + 1; } //gestion decrementation if ((counter_unite == -1) && (counter_dizaine >= 1)) { counter_unite = 9; counter_dizaine = counter_dizaine -1; } // gestion du compteur des centaine en fonction des dizaines dans les valeurs positives // gestion incrementation if (counter_dizaine == 10) { counter_dizaine = 0; counter_centaine = counter_centaine +1; } // gestion decrementation if ((counter_unite == -1) && (counter_centaine >= 1)) { counter_dizaine = 9; counter_unite = 9; counter_centaine = counter_centaine -1; } // gestion du compteur des dizaines en fonction des unités dans les valeurs negatives // gestion incrementation if (counter_unite == -10) { counter_unite = 0; counter_dizaine = counter_dizaine - 1; } //gestion decrementation if ((gb.buttons.pressed(BUTTON_A)) && (counter_unite == 1) && (counter_dizaine <= -1)) { counter_unite = -9; counter_dizaine = counter_dizaine +1; } // gestion du compteur des centaine en fonction des dizaines dans les valeurs negative // gestion incrementation if (counter_dizaine == -10) { counter_dizaine = 0; counter_centaine = counter_centaine -1; } // gestion decrementation if ((gb.buttons.pressed(BUTTON_A)) && (counter_unite == 1) && (counter_centaine <= -1)) { counter_dizaine = -9; counter_unite = -9; counter_centaine = counter_centaine +1; } // réinitialise tous les variables a 0 if (gb.buttons.pressed(BUTTON_MENU)) { counter_unite = counter_dizaine = counter_centaine = 0; gb.sound.playCancel(); } // affichage des jauges //affichage jauge centaine en haut gb.display.setColor(RED); gb.display.fillRect(0, 0, counter_centaine*5, 20); //affichage jauge dizaine au milieu gb.display.setColor(GREEN); gb.display.fillRect(0, 22, counter_dizaine*9, 20); //affichage jauge unité en bas gb.display.setColor(DARKBLUE); gb.display.fillRect(0, 44, counter_unite*9, 20); // Affichage des infos ecrites //affichage texte et chiffre des centaine en haut gb.display.setColor(ORANGE); gb.display.setFontSize(1); gb.display.setCursor(44,2); gb.display.print(":Centaine"); gb.display.setFontSize(2); gb.display.setCursor(5,5); gb.display.print(counter_centaine); //affichage texte et chiffre des dizaine au milieu gb.display.setColor(LIGHTGREEN); gb.display.setFontSize(1); gb.display.setCursor(48,24); gb.display.print(":Dizaine"); gb.display.setFontSize(2); gb.display.setCursor(5,27); gb.display.print(counter_dizaine); //affichage texte et chiffre des unité en bas gb.display.setColor(LIGHTBLUE); gb.display.setFontSize(1); gb.display.setCursor(56,44); gb.display.print(":Unite"); gb.display.setFontSize(2); gb.display.setCursor(5,47); // max x=0-83 y = 0-47 gb.display.print(counter_unite); // affiche l'état du conteur (variable) }
Je vais partager le projet dans les créations.
Et je le mettrais à jour quand j'ai les bases pour faire ce que je veux ajouter en plus :)
NEW 5 years ago
Bon si tu fais des tutos, je te propose de te relire pour corriger les fautes. Tu seras bientôt meilleur en programmation qu'en orthographe :D Bon pas grave, on est là pour programmer mais bon pour ce qui est création ou tuto, comme ça reste, autant corriger les fautes.
PS: Je te rassure, je vois bien les fautes des autres mais j'en fais plein moi-même alors surtout il ne faut pas que ça te gène pour écrire. :D
NEW 5 years ago
Merci pour l'aide et la correction de la description de l'application / Tuto.
Je sais que je suis un peut une bille en orthographe, je vois pas les miennes.
Je vais me relire tranquille ce soir et corriger ça.