BentoGhost

Auteur avatarRenaud | Dernière modification 24/06/2022 par Renaud

Fabrication d'un troisième étage "jeu de massacre" d'une Bento Box
Difficulté
Moyen
Durée
2 jour(s)
Catégories
Électronique, Jeux & Loisirs
Coût
40 EUR (€)

Introduction

Boite fabriquée en suivant la formation de l'IMT basée sur les tutoriels suivants :

  1. S'initier à la fabrication numérique
  2. Imprimer en 3D
  3. Programmer un objet avec Arduino

Video d'introduction

Étape 1 - Fabrication de la BentoBox

Fabrication 3ème étage

1. Fabrication à la découpeuse laser.

2. Découpage et collage des morceaux

  • Bien penser à supprimer les écritures permettant d'identifier les faces avant la découpe
  • Bois utilisé : contreplaqué peuplier 3 mm
  • Réglages utilisés sur la PerezCamp 140 W
    • puissance max : 40 %
    • puissance min : 30 %
    • vitesse : 40 mm / s
  • L'assemblage est expliqué avec les photos BentoGhost02 à BentoGhost04

3. Découpe des fantômes, dans du plexiglas 3 mm

  • Plan à télécharger : BentoGhost_fantomes.svg
  • Remarque : les 4 fantômes découpés dans la boite sont en haut de dessin, mais vous pouvez sélectionner ceux que vous voulez à partir du moment où ils sont


Étape 2 - Branchements électroniques

blabla

Étape 3 - Insérer le code

#include <Servo.h>

////////////////// SERVOS ///////////////////////

Servo myservo1;

//int score_total = 0;

int pos90 = 97; // variable indiquant la position du servomoteur a 90

int pos0 = 0; // variable indiquant la position du servomoteur a 0

///////////////POTAR START GAME/////////////

//const int potarStartGame = A6; // le potar qui active le jeu est sur la broche analogique A6

////////////////// BUZZER///////////////////////

const int pinBuzzer = 13; //le buzzer est sur la broche 13

///////////////// STAND de TIR//////////////////////

//ci-dessous le bouton et sa variable d etat ainsi que la led de la cible1

const int boutB1 = 4; //

int valBoutB1 = 0; //variable de l etat du bouton 1

const int ledB1 = 7; //

//ci-dessous le bouton et sa variable d etat ainsi que la led de la cible2

const int boutB2 = 5;

int valBoutB2 = 0; //variable de l etat du bouton 2

const int ledB2 = 8;

//ci-dessous le bouton et sa variable d etat ainsi que la led de la cible3

const int boutB3 = 6;

int valBoutB3 = 0; //variable de l etat du bouton 3

const int ledB3 = 9;

void setup()

{

Serial.begin(9600); //on etablie la connection avec le moniteur

//myservo1.attach(48); // le servomoteur myservo1 est relie a la broche 7

myservo1.attach(2); // le servomoteur myservo2 est relie a la broche 8

//myservo2.attach(52); // le servomoteur myservo3 est relie a la broche 9

// pinMode(potarStartGame, INPUT); // le potar est une entree

// pinMode(pinBuzzer, OUTPUT);// le buzzer est une sortie

//les led sont declarees en sortie

pinMode(ledB1, OUTPUT);

pinMode(ledB2, OUTPUT);

pinMode(ledB3, OUTPUT);

/*pinMode(ledB4, OUTPUT);

pinMode(ledB5, OUTPUT);

pinMode(ledB6, OUTPUT);

pinMode(ledB7, OUTPUT);

pinMode(ledB8, OUTPUT);

pinMode(ledB9, OUTPUT);

*/

//les boutons sont declares en entree

pinMode(boutB1, INPUT_PULLUP);

pinMode(boutB2, INPUT_PULLUP);

pinMode(boutB3, INPUT_PULLUP);

/* pinMode(boutB4, INPUT);

pinMode(boutB5, INPUT);

pinMode(boutB6, INPUT);

pinMode(boutB7, INPUT);

pinMode(boutB8, INPUT);

pinMode(boutB9, INPUT);

*/

// decompte avant partie


Serial.println("3");

tone(pinBuzzer, 300, 500);

delay(500);

Serial.println("2");

tone(pinBuzzer, 400, 500);

delay(500);

Serial.println("1");

tone(pinBuzzer, 500, 500);

delay(500);

tone(pinBuzzer, 600, 500);

delay(1000);

tone(pinBuzzer, 500, 500);

delay(500);

tone(pinBuzzer, 600, 500);

delay(500);

digitalWrite(ledB1, HIGH);

digitalWrite(ledB2, HIGH);

digitalWrite(ledB3, HIGH);

delay(1000);

myservo1.write(pos90);

Serial.println("pos90");

delay(2000);

myservo1.write(pos0);

Serial.println("pos0");

delay(1000);


}

void loop()

{

int valBoutB1 = digitalRead(boutB1);

digitalWrite(ledB1, !valBoutB1);


Serial.print("ledB1 : ");

Serial.println(ledB1);

Serial.print("valBoutB1 : ");

Serial.println(valBoutB1);

int valBoutB2 = digitalRead(boutB2);

digitalWrite(ledB2, !valBoutB2);

Serial.println("ledB2");

int valBoutB3 = digitalRead(boutB3);

digitalWrite(ledB3, !valBoutB3);

Serial.println("ledB3");

if (valBoutB1 == HIGH)

{ if (valBoutB2 == HIGH)

{ if (valBoutB3 == HIGH)


myservo1.write(pos90);

Serial.println("pos90");

delay(2000);

myservo1.write(pos0);

Serial.println("pos0");

delay(1000);

}

}

}


Commentaires

Draft