🚀
STI2D Academy
  • Bienvenue !
  • I2D
    • L'énergie dans les systèmes mécatroniques 🔋
      • Cours
        • La chaîne fonctionnelle
        • La chaîne de puissance
        • Puissance et énergie
        • Grandeurs d'effort et grandeurs de flux
        • Rendement
        • Autonomie énergétique
        • Représentation SysML de la chaîne de puissance
        • Engrenages
      • Activités
        • Exercices corrigés ★
        • Pompe centrifuge ★
        • Perceuse sans fil ★★
        • Camper Trolley ★★
        • Scooter électrique ★★
        • Pont Jules Verne à Nantes ★★★
          • DT1. Diagramme des blocs internes
          • DT2. Documentation technique du moteur asynchrone
          • DT3. Documentation technique moteur synchrone
        • AirPod ★★★★
          • DT9 : Caractéristiques techniques du véhicule « AirPod »
          • DT11 : Rendements des constituants et résistance aérodynamique du véhicule
          • DT10 : Classification des véhicules à moteur
          • DR7
      • Synthèse
    • Mécanique : Forces, moments et PFS 🔩
      • Cours & Généralités
        • La modélisation des actions mécaniques
        • Les forces et les moments
        • Le Principe Fondamental de la Statique
      • Activités
        • Exercice Camper trolley 1 ★
          • Correction
        • Pied de biche ★★
          • Correction
        • Activité Camper trolley 2 ★★★
        • Activité grue ★★★
          • Correction activité grue
        • Etude statique de solar impulse 2 ★★★★
        • Nettoyeur plage Statique ★★★★
        • Lame neige Statique ★★★★
        • Synthèse
      • Evaluation à distance
    • La planification de projet ⌛️
      • Activités
        • Planifier son déménagement ★
        • Scooter électrique ★★
        • Maison en paille ★★★
        • Création d'un site Web ★★★★
      • Ressources
      • Cours Gantt
    • Arduino & AppInventor 📱
      • Cours
        • Généralité
        • La programmation de la carte Arduino
        • Les étapes de développement
        • quelques-exercices
          • Le bouton poussoir
          • La LED
      • Activités Arduino
        • Baskets à LED
        • La boite de nuit
        • Projet libre
      • Activités AppInventor
        • Arduino à Android par Bluetooth
        • Android à Arduino, en passant par Bluetooth
  • Architecture et Construction
    • Eclairage et Photométrie 🔅
      • Cours
      • Activités
        • Eclairage d'un cabinet d'architecture
          • Tutoriel FLJ dans Dialux Evo
          • Tutoriel Ajout de luminaires dans Dialux Evo
        • Eclairage d'une table dans une salle de classe
  • IT
    • Mécanique - Les liaisons mécaniques
      • Cours & Activités de découverte
        • Les contacts
        • Les liaisons
        • Le schéma cinématique
      • Activité
        • La perforatrice
        • Le découpe tube
        • Kahoot
        • Fiche de synthèse
        • Le rameur (sujet type Bac)
          • Solution schéma cinématique
        • L'etau de modélisme
    • Mécanique : La Résistance des Matériaux
      • Cours et Généralités
      • Activités sur la découverte matériaux
        • Comment alléger une voiture pour diminuer sa consommation énergétique ?
          • Activité 1
          • Activité 2
          • Ressources
        • Comment absorber un choc lors d'un accident ?
          • Activité 1
          • Activité 2
        • Comment améliorer les performances du système de freinage?
          • Activité 1
          • Activité 2
          • Document réponse
          • Ressources
      • Activités sur la découverte de la Résistance
        • Travail à effectuer
      • Synthèse
      • Evaluation à distance
Powered by GitBook
On this page
  • Présentation
  • Cahier des charges fonctionnel
  • Programmation
  • Modification
  • Modification pour aller plus loin

Was this helpful?

Export as PDF
  1. I2D
  2. Arduino & AppInventor 📱
  3. Activités Arduino

La boite de nuit

Matériel :

  • carte Arduino Uno

  • shield Grove

  • 2 boutons-poussoir Grove, voire 4 si l’intégralité est traitée

  • afficheur LCD Grove

  • relais Grove (en option)

Présentation

Pour des raisons de sécurité, la boîte de nuit« The Sin» ne peut recevoir plus de 250 personnes simultanément. La société au sein de laquelle vous travaillez a été mandatée pour réaliser un système de limitation des entrées.

Cahier des charges fonctionnel

Votre équipe de travail a mis au point un portique d'entrée/ sortie, et c'est vous qui êtes prévu pour en assurer la programmation. Le cahier des charges fonctionnel initial est le suivant :

  • une personne qui est autorisée à entrer reçoit une carte RFID (simulée par un BP). Lorsqu'elle entre, un système ouvre un tourniquet (activation d'un relais pendant 2 s) et affiche le

    nombre de personnes présents dans le bâtiment (incrémentation d'une variable) ;

  • une personne qui sort décrémente le comptage ;

  • lorsque 250 danseurs sont présents, le système n'autorise pas d'entrée ... il faut attendre qu'un client aille fumer (c'est pas bien!) ou quitte l'établissement pour pouvoir accueillir une autre personne ...

  • le système distingue les badges portés par des filles de ceux portés par des garçons ; cela permet de motiver les danseurs à payer une entrée.

  • bien entendu, comme dans la majorité des discothèques, l'entrée est gratuite pour les filles.

Programmation

Le programme pour la gestion des entrées (filles et garçons) ci-dessous a été établi avec les étapes suivantes (avec 1 seul bouton poussoir):

  • réaliser le système de comptage (sans décomptage) ;

  • ajouter le système d'affichage ;

  • ajouter la gestion des limites ;

Modification

Modifier le programme pour faire le décompte des personnes sortant de la boite en t'inspirant de l'exemple pour le comptage.

#include <Wire.h>
#include <SeeedOLED.h>
//
int compteur;
//
void setup() {
// Déclaration boutons poussoirs et valeurs par défaut des variables
// Bouton poussoir sur le pin 7
pinMode(7,INPUT);
compteur = 0;
// Initialisation de l'ecran OLED Display
Wire.begin();
SeeedOled.init();  //initialze SEEED OLED display
SeeedOled.clearDisplay();           //clear the screen and set start position to top left corner
SeeedOled.setNormalDisplay();       //Set display to Normal mode
SeeedOled.setPageMode();            //Set addressing mode to Page Mode
// Déclaration des lignes de textes et leurs positions
SeeedOled.setTextXY(0, 0);          //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Bienvenue au Sin"); //Print the String
SeeedOled.setTextXY(2, 0);          //Set the cursor to 3th Page, 0th Column
SeeedOled.putString("Nbr de personnes");
SeeedOled.setTextXY(3, 0);          //Set the cursor to 3th Page, 0th Column
SeeedOled.putString("dans la boite:");           //Print number
SeeedOled.setTextXY(4, 108);          //Set the cursor to 4th Page, 0th Column
SeeedOled.putNumber(compteur);           //Print number    
SeeedOled.setTextXY(6, 0);          //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Bonne soiree"); 
SeeedOled.setTextXY(7, 0);          //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Amusez-vous"); //Print the String
//
//
}

void loop() {
  if ( digitalRead(7)== HIGH){
    if (compteur<250) {
        compteur = compteur +1;  // Incrémentation du compteur de personnes
        // commande de debuggage
        //Serial.begin(9600);                 // Initialisation du port Serie
        //Serial.println(compteur);
        //
        SeeedOled.setTextXY(4, 108);         //Set the cursor to 0th Page, 0th Column
        SeeedOled.putNumber(compteur);    //recupere la valeur du compteur
        delay(200);      // Tempo pour une incrémentation moins rapide
    }
    else 
      if (compteur=250) {
        SeeedOled.setTextXY(2, 0);          //Set the cursor to 0th Page, 0th Column
        SeeedOled.putString("Capacite Max de ");
        SeeedOled.setTextXY(3, 0);          //Set the cursor to 0th Page, 0th Column
        SeeedOled.putString("250 personnes ");
        SeeedOled.setTextXY(4, 0);          //Set the cursor to 0th Page, 0th Column
        SeeedOled.putString("atteinte!!      "); //Print the String 
      }
  }
}

Le programme de chaque étape sera enregistré sous un nouveau nom..

Faire valider le programme par le professeur

Modification pour aller plus loin

Tu peux rajouter deux boutons poussoir pour faire le comptage des filles et celui des garcons et modifier le programme

Si l'étape précédente t'as paru trop difficile passe à l'actvité suivante. Dans cette partie, le programme devient complexe car il faut déboubler les compteurs pour différencier les filles des garçons mais garder le nombre maximal à 250.

Le programme de chaque étape sera enregistré sous un nouveau nom..

Faire valider le programme par le professeur

PreviousBaskets à LEDNextProjet libre

Last updated 5 years ago

Was this helpful?