Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Chronomètre slot car au laser + écran GLCD – Mesure de temps au tour précise

Composants

Arduino Mega 2560 (plus de RAM/broches pour GLCD) 1
Module laser KY-008 (650 nm, 5V) 1
Récepteur laser KY-008 (phototransistor, sortie digitale) 1
Écran GLCD 128x64 (contrôleur KS0108, interface parallèle 8 bits) 1
Fils, plaque d'essai, supports 1 jeu

Logiciels

Principe

Une barrière laser traverse la piste de slot cars. À chaque passage de voiture, le faisceau est coupé → le récepteur détecte la transition → l'Arduino mesure le temps entre deux coupures (temps au tour). Affichage temps réel sur GLCD : tour courant, dernier tour, meilleur tour, compteur de tours.

Câblage

Alignement critique

Le défi principal : aligner laser et récepteur face à face de part et d'autre de la piste (largeur ~5-8 cm). Supports rigides, réglage fin. Tout désalignement = pertes de détection.

Code complet (chronomètre avec anti-rebond)

#include <openGLCD.h>

// Variables temps
unsigned long currentRunStart = 0;
unsigned long lastLapTime = 0;
unsigned long bestLapTime = 0;
int lapCount = 0;
unsigned long savedMillis;

// Zones d'affichage GLCD
gText tLaps;    // Compteur tours (gros chiffres)
gText tLast;    // Dernier tour
gText tBest;    // Meilleur tour

// Capteur laser
const int GATE_PIN = 2;
int gateState = HIGH;
int lastGateState = HIGH;
unsigned long lastDebounce = 0;
const int DEBOUNCE_MS = 50;

void setup() {
  pinMode(GATE_PIN, INPUT);
  delay(50); // Laisser laser/récepteur stabiliser

  GLCD.Init(NON_INVERTED);

  // Zones texte
  tLaps.DefineArea(textAreaTOP, lcdnums14x24);           // Haut, police large
  tLast.DefineArea(0, GLCD.CenterY, 8, 2, fixednums7x15); // Bas-gauche
  tBest.DefineArea(GLCD.CenterX, GLCD.CenterY, 8, 2, fixednums7x15); // Bas-droite
  tBest.SetFontColor(WHITE);
  tBest.ClearArea();

  // Étiquettes fixes
  GLCD.SelectFont(System5x7);
  GLCD.CursorTo(1, 4); GLCD.print("DERNIER");
  GLCD.CursorTo(11, 4); GLCD.print("MEILLEUR");

  // Reset
  currentRunStart = lastLapTime = bestLapTime = 0;
  lapCount = 0;
}

void loop() {
  int reading = digitalRead(GATE_PIN);

  // Anti-rebond
  if (reading != lastGateState) {
    lastDebounce = millis();
  }
  if ((millis() - lastDebounce) > DEBOUNCE_MS) {
    if (reading != gateState) {
      gateState = reading;
      // Front descendant = faisceau coupé
      if (gateState == LOW) {
        savedMillis = millis(); // Horodatage précis

        if (lapCount > 0) {
          lastLapTime = savedMillis - currentRunStart;
          if (lastLapTime < bestLapTime || bestLapTime == 0) {
            bestLapTime = lastLapTime;
          }
        }
        currentRunStart = savedMillis;
        lapCount++;
      }
    }
  }
  lastGateState = reading;

  // Affichage temps réel
  unsigned long now = millis();
  int sec, milli;

  // Tours
  tLaps.CursorTo(0, 0);
  tLaps.Printf(F("%02d"), lapCount);

  // Tour en cours
  if (lapCount > 0) calcTime(now - currentRunStart, &sec, &milli);
  else calcTime(0, &sec, &milli);
  tLaps.CursorTo(3, 0);
  tLaps.Printf(F("%02d.%03d"), sec, milli);

  // Dernier tour
  calcTime(lastLapTime, &sec, &milli);
  tLast.CursorTo(1, 1);
  tLast.Printf(F("%02d.%03d"), sec, milli);

  // Meilleur tour
  calcTime(bestLapTime, &sec, &milli);
  tBest.CursorTo(1, 1);
  tBest.Printf(F("%02d.%03d"), sec, milli);
}

// Conversion ms → secondes + millisecondes
void calcTime(unsigned long ms, int *sec, int *milli) {
  *sec = ms / 1000;
  *milli = ms - (*sec * 1000);
}

Fonctionnalités clés du code

Résultat

Chronomètre précis, affichage clair, coût modique. Idéal pour pistes slot cars maison, courses entre amis, analyse performances voitures/moteurs.

Évolutions possibles

Processus de fabrication

  1. Guide expert du marquage laser sur aluminium : précision, durabilité et applications industrielles
  2. Guide complet du marquage laser : types, avantages et applications
  3. Marquage laser fibre : précision, vitesse et polyvalence pour industries modernes
  4. Pointeur laser : conception, fabrication et aperçu de la sécurité
  5. Montagnes russes : Des luges sur neige aux géants d'acier
  6. Lasers à semi-conducteurs : Génération de lumière de précision pour la technologie moderne
  7. Le sablier : histoire, artisanat et attrait moderne
  8. Comment Installer l'Écran TFT 3,5″ Kuman sur RetroPie — Guide Étape par Étape
  9. Rpibot : Robot mobile low-cost et extensible pour apprentissage systèmes embarqués