Ascenseur fou

De Les Fabriques du Ponant
Révision datée du 18 janvier 2019 à 12:52 par G6gicque (discussion | contributions) (Page créée avec « catégorie:Enib2019 catégorie:Enib ==Description du projet== Durant le « GASTHON », nous avons pensé à réaliser un ascenseur qui forcerai ces futurs utilis... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Description du projet

Durant le « GASTHON », nous avons pensé à réaliser un ascenseur qui forcerai ces futurs utilisateurs à prendre les escaliers

Conception

Réalisation des pièces

  • Le socle

Le matériel

-2 équerres

-4 vis a bois

- une planche de bois

Protocole

Couper la planche environs aux 3/4.

Positionner les planches et visser les équerres


  • Les poulies

Le matériel

- du carton

-2 bouchons de bouteille

- 2 allumettes

- colle

Protocole

Couper le carton afin de faire des gros cercles plus grand que les bouchons.

Percer un cercle puis le bouchon et enfin un autre cercle afin de position l'allumette comme un axe.

Coller les différentes couches sans coller les allumettes.

  • La cage de l'ascenseur

Le matériel

- du carton

- un fil

Protocole

Découper 2 carrés en carton. Découper 4 petits rectangle en carton Coller le tout pour former une petite boite Coller le fil sur le haut de la cage

Notre pièce finale

Nous avons placer les poulies de façon à que le moteur soit au niveau bas du socle Nous l'avons coller à la poulie qui n'a pas d’allumette en son centre.

L'électronique

  • Le matériel

- fils

- arduino uno

- capteur de distance SHARP 2Y0A21 F 7X

- capteur de distance avec ultrason HC-SR04

- cerveau moteur à rotation continue FS90R

  • Cablage

Code

#include <Servo.h> //bibliotheque standart pour controler les cerveaux moteurs
Servo moteur;

void go_up(Servo moteur) // fonction qui fait monter
{
  moteur.write(0);
  delay(1000);
  moteur.write(90);
}

void go_down(Servo moteur) // fonction qui fait descendre
{
  moteur.write(180);
  delay(1000);
  moteur.write(90);
}




//constante pour ultrason
const unsigned long MEASURE_TIMEOUT = 5000UL; //mesure a laquelle on ne prend plus les valeurs

const float SOUND_SPEED = 340.0/1000; //vitesse su son en mm/µs    

//initialisation de la carte
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  //entree analog du capteur laser
  pinMode(A0,INPUT);
  //liaison capteur distance ultrason
  pinMode(6,INPUT); //echo
  pinMode(8,OUTPUT);  //trigger
  digitalWrite(8,LOW); //securite
  // cerveau moteur
  moteur.attach(4);
  moteur.write(90); //arret du moteur
}

//initialisatin de variable hors boucle
int infraDist;
float distance_mm;
int Is_Up = 0; //l'assenceur est considere en bas

void loop() {
  // put your main code here, to run repeatedly:
  infraDist = analogRead(A0);
  //ultrason
  //impulsion
  digitalWrite(8,HIGH);
  delayMicroseconds(10);
  digitalWrite(8,LOW);
  //Retour
  long measure = pulseIn(6,HIGH,MEASURE_TIMEOUT);

  float distance_mm = measure /(2.0*SOUND_SPEED);  //on a le temps d'un aller retour

  if ((infraDist>500)&&(Is_Up == 0)) //distance a changer si besoin
  {
   go_up(moteur);
   Is_Up = 1;
  }
  if ((distance_mm>100)&&(Is_Up== 1)&&(distance_mm<1500)) //distance a changer si besoin
  {
    go_down(moteur);
    Is_Up=0;
  }
  delay(500); // 0.5 sec entre chaque prise de valeur
}

The team