ENIB 2020 : Mimic2000

De Les Fabriques du Ponant
Révision datée du 20 janvier 2020 à 14:12 par Fl'eukhs (discussion | contributions) (Liste des composants)
Aller à : navigation, rechercher

Qui sommes nous

Etudiant à l'ENIB

Photoenib2018.jpg

Que fait ce projet ?

Mimic Chest

Recréation Mimic Chest

In the Dungeons & Dragons fantasy role-playing game, the mimic is a type of fictional monster. It is portrayed as being able to change its shape to disguise its body as an inanimate object, commonly a chest. The mimic has a powerful adhesive that holds fast to creatures who touch the creature, allowing the mimic to beat the creature with its powerful pseudopods. The mimic was introduced in the first edition Advanced Dungeons & Dragons game's original Monster Manual. The mimic has appeared in subsequent editions. Several variants of the creature have been introduced, with a variety of abilities and sizes.

Le Coffre est en bois et le haut du coffre est en carton

Dans le coffre il y a un bouton rouge, si une personne appuie dessus le haut coffre se referme sur la main de celle-ci.

Le haut du coffre s'ouvre au bout de quelque seconde.

Liste des composants

  • Résistances(10k Ohms X1 et 220 Ohms X8)
    Résistances(220 Ohms à gauche et 10 kOhms à droite)
  • Bouton
    Exemple de Bouton
  • Micro Servo moteur à Rotation Continue FS90R
    Servomoteur
  • Alimentation Externe
    Exemple d'une alimentation externe
  • Arduino Nano
    Arduino Nano

ou

  • Arduino UNO
    Arduino UNO

Montage

Réalisation du coffre

Nous avons construite notre le coffre en découpant dans des planches les quatre cotés du coffre ainsi que le fond.

Le haut du coffre est fait en carton afin que le servo moteur ne force pas trop.

Afin de cacher la partie électronique, un double fond a été réalisé où le bouton est fixé.

Câblage électronique

Habillage

Code


int button = 13;
int servo_control = 9;
int pause = 1000;
int open_angle = 180;
int close_angle = 180;
bool open_top = false;
bool close_top = false;
bool secure = false;
int time_open = 1000;
int time_close = 1000;
int open_sens = 180;
int close_sens = 0;
int green = 11;
int red = 10;
#include"Servo.h"
#include <Servo.h>

Servo myservo;

void setup() {
  // put your setup code here, to run once:
  pinMode(red, OUTPUT);
  pinMode(green, OUTPUT);
  pinMode(button, INPUT);
  Serial.begin(9600);
  myservo.attach(servo_control);
  green_led(true);
  red_led(false);
  myservo.write(90);
}// end of setup

void green_led(bool command){
  digitalWrite(green,command);
}// end of green_led

void red_led(bool command){
  digitalWrite(red,command);
} // end of red_led


void loop() {
  // put your main code here, to run repeatedly:
  if (digitalRead(button) && secure == false) {
    Serial.println("button is ok");
    delay(100);
    green_led(false);
    red_led(true);
    open_top = true;
    secure = true;
  }

  if (open_top == true && close_top == false) {// open box
    myservo.write(open_sens);
    delay(time_open);
    myservo.write(90);
    open_top = false;
    close_top = true;
  }
  
  if (open_top == false && close_top == true) {// close box
    delay(pause);
    myservo.write(close_sens);
    delay(time_close);
    myservo.write(90);
    close_top = false;
    secure = false;
    red_led(false);
    green_led(true);
  }

}// end of loop

/*
 Micro Servo à Rotation Continue FS90R

DESCRIPTION

Ce servo tourne à 360 degrés vers l'avant ou vers l'arrière au lieu de bouger d'une position à une autre comme un servo classique (servo à rotation continue). 
Vous pouvez utiliser n'importe quel code, hardware ou librairie dédiés à des servos pour le contrôler. 
C'est le servo idéal pour faire des robots mobiles simples. Il est livré avec quatre palonniers et vis de fixation.

Pour contrôler ce servo avec un Arduino, nous vous conseillons de connecter le fil de signal sur les pins 9 ou 10 et d'utiliser la librairie "servo" inclue dans Arduino IDE (voir liens ci-dessous). 
La position "90" correspond à la position "stop" (impulsions de 1500µs), la position "180" correspond à la vitesse max en avant (impulsions de 2000µs) 
et la position "0" correspond à la vitesse max en arrière (impulsions de 1000µs).

Ce servo peut avoir besoin d'une calibration. Il suffit pour cela de choisir la position "90" ou "stop" et d'ajuster le potentiomètre situé proche de la sortie 
du câble jusqu'à ce que le servo soit immobile (le boîtier du servo est perçé à cet endroit pour y avoir facilement accès).
 */


Catégories