ENIB 2022 - groupe D : Knossos : Différence entre versions
(→Code) |
(→Quel est le projet ?) |
||
Ligne 4 : | Ligne 4 : | ||
== Quel est le projet ? == | == Quel est le projet ? == | ||
[[Fichier:Knossos duotone.png|300px|vignette]] | [[Fichier:Knossos duotone.png|300px|vignette]] | ||
− | Nous avons eu l'idée de faire un labyrinthe. | + | Nous avons eu l'idée de faire un labyrinthe. Le nom, Knossos, provient de l'île sur laquelle se trouvait le labyrinthe du minotaure. |
Deux servo-moteurs contrôlent les axes X et Y de la platforme. | Deux servo-moteurs contrôlent les axes X et Y de la platforme. | ||
Les mouvements sont réalisés par 2 potentiomètres. | Les mouvements sont réalisés par 2 potentiomètres. | ||
Partie non-réalisée: | Partie non-réalisée: | ||
− | Mise en œuvre de la musique et d'un écran pour un retour visuel, avec usage de capteurs. | + | Mise en œuvre de la musique et d'un écran pour un retour visuel, avec usage de capteurs pour le début et la fin du parcours. |
== But du jeu == | == But du jeu == |
Version du 19 janvier 2022 à 21:53
Sommaire
Photo de l'Équipe
Quel est le projet ?
Nous avons eu l'idée de faire un labyrinthe. Le nom, Knossos, provient de l'île sur laquelle se trouvait le labyrinthe du minotaure. Deux servo-moteurs contrôlent les axes X et Y de la platforme. Les mouvements sont réalisés par 2 potentiomètres.
Partie non-réalisée: Mise en œuvre de la musique et d'un écran pour un retour visuel, avec usage de capteurs pour le début et la fin du parcours.
But du jeu
Le but du jeu est d'emmener la bille du point de départ noté D à l'arrivée 1 notée A1 puis à l'arrivée 2 notée A2.
- Solo : Il faut emmener la bille du début à la fin.
- Version co-op: Chacun son potentionmètre.
- Malus potentiel toutes les 30 secs (non realisé)
Liste des composants
- arduino nano
- écran
- bille
- haut parleur 8ohms
- buzzer
- 2 servo-moteurs SG90
- 2 potentionmètres
- des fils
- planche
Sources
Plans découpeuse laser:
- Boîte: https://www.festi.info/boxes.py/
- Labyrinthe: https://adashrod.github.io/LaserCutMazes/designer
Schémas
- Schéma final
Code
- Code final
1 #include <Servo.h>
2
3 #define P1 A0
4 #define P2 A1
5 #define S1 4
6 #define S2 3
7
8 Servo Servo1;
9 Servo Servo2;
10 int val1, val2;
11
12 long compute(long x, long in_min, long in_max, long out_min, long out_max) {
13 long temp = (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
14 if (temp < out_min) return out_min;
15 if (temp > out_max) return out_max;
16 else return temp;
17 }
18
19 void setup() {
20 Servo1.attach(S1);
21 Servo2.attach(S2);
22 }
23
24 void loop() {
25 val1 = analogRead(P1);
26 val1 = compute(val1, 400, 700, 70, 120);
27 Servo1.write(val1);
28 val2 = analogRead(P2);
29 val2 = compute(val2, 400, 700, 30, 60);
30 Servo2.write(val2);
31 }