UselessBox29
Sommaire
UselessBox29
Le Projet
Le principe est le suivant:
Un support de portable qui fait du bruit quand il n'a pas de portable sur lui et qui arrête de faire du bruit lorsque l'on pose un portable dessus, mais qu'il jette au bout d'un certain temps;
Un bouton poussoir détecte la présence du portable (le prendre le plus petit possible).
Deux servomoteur effectuent la rotation du support.
Un buzzer est utilisé pour faire du bruit.
Le tout est géré par une carte arduino uno alimentée à l'aide d'une batterie externe.
Les 3 sous parties
Il y a 3 parties globales pour ce projet:
Le gabarit de la boite
Fabriquer une boite ou réutiliser une boite sans couvercle, vide (ex: boite à vin).
Découper la forme d'une "porte" dans la boite (un rectangle simple).
Fabriquer un "support" qui tourne par rapport à son axe horizontal , donc avec un axe au milieu, et avec aussi un pied pour retenir le portable.
On fera une encoche pour mettre le bouton poussoir au niveau du pied du support.
L'axe doit avoir des encoche pour les servomoteurs de chaque coté.
Ce support doit pouvoir passer dans la forme découpé dans la boite.
Découper dans une planche plus ou moins fine de bois deux rectangles qui formeront les cotés du support et qui cacheront l'intérieur de la boite, il faut aussi penser à faire un trou dans chaque pour pouvoir faire passer l'axe du support.
La réalisation du code
Il y a différentes variantes possible pour l'éjection du portable, nous avons fait en sorte que le portable soit éjecté vers l'arrière par la rotation du support grâce à deux servomoteur.
le code :
- include <Servo.h>
- include "pitches.h"
const int buzzer = 8 ; //pin 8 int pushButton = 2;
Servo monServomoteur; // create a servo object Servo monServomoteur2; // notes in the melody: int melody[] = {
NOTE_C4, 0, 0, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
// note durations: 4 = quarter note, 8 = eighth note, etc.: int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
}; void setup() {
// put your setup code here, to run once: // initialize serial communication at 9600 bits per second: Serial.begin(9600); // make the pushbutton's pin an input: pinMode(pushButton, INPUT); digitalWrite(pushButton, HIGH);
monServomoteur.attach(9); monServomoteur.write(120); monServomoteur2.attach(10); monServomoteur2.write(0);
}
void loop() {
// put your main code here, to run repeatedly: int buttonState = digitalRead(pushButton); while (digitalRead(pushButton) == 1) { Serial.println(digitalRead(pushButton)); for (int thisNote = 0; thisNote < 8; thisNote++) {
// to calculate the note duration, take one second divided by the note type. //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int noteDuration = 1000 / noteDurations[thisNote]; tone(8, melody[thisNote], noteDuration);
// to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pauseBetweenNotes = noteDuration * 1.30; delay(pauseBetweenNotes); // stop the tone playing: noTone(8); } } delay(500); monServomoteur.write(0); monServomoteur2.write(120); delay(500); monServomoteur.write(120); monServomoteur2.write(0);
}
pitches.h :
code disponible sur le site arduino: [https://www.arduino.cc/en/Tutorial/toneMelody
test avec le montage suivant :
L'assemblage
Il faut ensuite assembler l'électronique avec la mécanique!
Pour cela il faut monter la boite de cette manière :
On fixe les cotés du support au pistolet à colle et on place ensuite le support en faisant passer son axe par les trous des cotés.
On fait rentrer le circuit et les composants, on alimente par une batterie externe la carte arduino (attention on contrôle 2 servomoteurs donc il faut une bonne alimentation).
On place et on fixe les composants là où ils doivent être: les servomoteurs sur les bouts de l'axe du support, le bouton poussoir en bas du support.
Puis on vient câbler de manière à garder le montage montré plus haut.