meta données pour cette page
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| projets:comptetemps [12/12/2022 20:49] – [étape 3 : mix] laure | projets:comptetemps [28/01/2023 23:10] (Version actuelle) – laure | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Compte - Temps Interactif ====== | + | < |
| + | ===== ⏲️ 🍄 Compte - Temps Interactif ===== | ||
| + | {{tag> | ||
| + | |||
| + | < | ||
| + | On lance l' | ||
| + | |||
| + | <label type=" | ||
| + | <label type=" | ||
| + | <label type=" | ||
| + | <label type=" | ||
| + | <label type=" | ||
| + | <label type=" | ||
| + | <label type=" | ||
| + | |||
| + | </ | ||
| - | < | ||
| - | On lance l' | ||
| ==== étape 1 : du code simple de chaque côté==== | ==== étape 1 : du code simple de chaque côté==== | ||
| Ligne 100: | Ligne 114: | ||
| <WRAP half column> | <WRAP half column> | ||
| - | < | + | < |
| < | < | ||
| <panel title=" | <panel title=" | ||
| Ligne 177: | Ligne 190: | ||
| </ | </ | ||
| </ | </ | ||
| + | C'est tout bête il me faut une carte Uno, un bouton poussoir et là j'ai mis une LED pour témoigner que ça se passe bien... | ||
| </ | </ | ||
| </ | </ | ||
| Ligne 285: | Ligne 298: | ||
| <WRAP half column> | <WRAP half column> | ||
| < | < | ||
| + | * Ajout d'un compteur millisecondes pour que ça aille plus vite (les heures ne sont plus affichées) | ||
| + | * Le bouton physique Arduino arrête le chrono à l' | ||
| + | * Pour relancer le chrono le MJ utilise sa souris de PC | ||
| + | * Possibilité de passer en Plein écran plutôt qu'en 800x600px | ||
| + | * | ||
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | depuis | + | < |
| + | <panel title=" | ||
| + | <file java Compte-Temps2.java> | ||
| + | /* MON PROJET : un compteur de seconde centré dans l' | ||
| + | + Piloté par Arduino et un bouton ( stop / start) | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | |||
| + | // objet global Chrono, déclaration de classe | ||
| + | StopChronoTimer sc; | ||
| + | |||
| + | // Communication avec Arduino | ||
| + | import processing.serial.*; | ||
| + | Serial myPort; | ||
| + | |||
| + | String dt; // Data received from the serial port | ||
| + | float valD; | ||
| + | int btnVal = 0; // une valeur pour l'etat du bouton | ||
| + | |||
| + | int oldBtn = 0; // une valeur pour conserver l' | ||
| + | |||
| + | int cptBtn = 1; // une variable pour compter les appuis | ||
| + | |||
| + | PFont matypo; | ||
| + | |||
| + | void setup() { | ||
| + | // fullScreen(); | ||
| + | size(800, | ||
| + | |||
| + | // printArray(Serial.list()); // utile pour voir le port qui parle | ||
| + | String portName = "/ | ||
| + | myPort = new Serial(this, | ||
| + | |||
| + | sc = new StopChronoTimer(); | ||
| + | sc.start(); | ||
| + | } | ||
| + | |||
| + | void draw() { | ||
| + | while (myPort.available() >0) { | ||
| + | |||
| + | dt = myPort.readStringUntil(' | ||
| + | if (dt !=null) { | ||
| + | // si on lit qqchose on le trasnforme en int avec ces 2 lignes | ||
| + | valD = float(dt); | ||
| + | btnVal = int(valD); | ||
| + | } | ||
| + | } | ||
| + | top(); | ||
| + | } | ||
| + | |||
| + | /// FONCTONS | ||
| + | |||
| + | void top() { // dessine le texte-temps sur l' | ||
| + | background(# | ||
| + | fill(000); | ||
| + | textSize(208); | ||
| + | textAlign(CENTER); | ||
| + | // nf est utile pour transformer des chiffres en string text https:// | ||
| + | text(nf(sc.minutes(), | ||
| + | |||
| + | |||
| + | if (btnVal==0 | ||
| + | /// | ||
| + | } else if (btnVal ==1 && | ||
| + | cptBtn = cptBtn + 1; | ||
| + | oldBtn = 1; | ||
| + | score(); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | void score() { | ||
| + | int[] score = new int[3]; | ||
| + | score[0] = sc.minutes(); | ||
| + | score[1] = sc.secondes(); | ||
| + | score[2] = sc.millisec(); | ||
| + | |||
| + | fill(# | ||
| + | textSize(24); | ||
| + | |||
| + | text(" | ||
| + | noLoop(); | ||
| + | } | ||
| + | |||
| + | |||
| + | // Pour relancer un compteur j' | ||
| + | // mais il ne faut pas cliquer si le compteur n'est pas déjà arrêté | ||
| + | |||
| + | void mouseReleased() { | ||
| + | | ||
| + | oldBtn = 0; | ||
| + | sc.start(); | ||
| + | loop(); | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | // CLASSES | ||
| + | |||
| + | class StopChronoTimer { | ||
| + | int startTime = 0; | ||
| + | int stopTime = 0; | ||
| + | boolean running = false; | ||
| + | |||
| + | void start() { | ||
| + | startTime = millis(); | ||
| + | running = true; | ||
| + | } | ||
| + | |||
| + | void stop() { | ||
| + | stopTime = millis(); | ||
| + | running = false; | ||
| + | } | ||
| + | |||
| + | /* int[] score(int s, int m, int h){ | ||
| + | int s = return secondes(); | ||
| + | int m = return minutes(); | ||
| + | int h = return heures(); | ||
| + | } | ||
| + | */ | ||
| + | |||
| + | void fin() { | ||
| + | stopTime = 0; | ||
| + | startTime = 0; | ||
| + | running = false; | ||
| + | } | ||
| + | |||
| + | int gTempsPasse() { | ||
| + | int tempsP; | ||
| + | if (running) { | ||
| + | tempsP = (millis()-startTime); | ||
| + | } else { | ||
| + | tempsP =(stopTime - startTime); | ||
| + | } | ||
| + | return tempsP; | ||
| + | } | ||
| + | |||
| + | int millisec(){ | ||
| + | return (gTempsPasse()/ | ||
| + | } | ||
| + | |||
| + | int secondes() { | ||
| + | return (gTempsPasse()/ | ||
| + | } | ||
| + | |||
| + | int minutes() { | ||
| + | return (gTempsPasse()/ | ||
| + | } | ||
| + | |||
| + | int heures() { | ||
| + | return (gTempsPasse()/ | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| </ | </ | ||
| Ligne 297: | Ligne 476: | ||
| <WRAP half column> | <WRAP half column> | ||
| < | < | ||
| - | |||
| Je vais donc prendre les dimensions de l' | Je vais donc prendre les dimensions de l' | ||
| + | {{ : | ||
| + | Bon évidemment le premier essai n'est pas au top mais mon fichier FreeCAD est enregistré avec les modif : | ||
| + | * élargissement du diamètre accueil bouton ( de 11,2 mesuré mais trop serrant à 11,5 mm) | ||
| + | * diamètre pied champi fixé à 24 mm | ||
| + | Il faudra regénérer un mesh si on veut le réimprimer | ||
| </ | </ | ||
| <WRAP half column> | <WRAP half column> | ||
| - | depuis Arduino on envoie un signal... | + | Mon premier jet est mal adapté, à bricoler pour que le caps bouton rentre dedans. |
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | ==== étape 5 : montage et miniaturisation === | ||
| + | <WRAP group> | ||
| + | <WRAP half column> | ||
| + | colonnes | ||
| + | </ | ||
| + | |||
| + | <WRAP half column> | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||