Table des matières:

Plate-forme contrôlée par capteur gyroscopique pour labyrinthe : 3 étapes
Plate-forme contrôlée par capteur gyroscopique pour labyrinthe : 3 étapes

Vidéo: Plate-forme contrôlée par capteur gyroscopique pour labyrinthe : 3 étapes

Vidéo: Plate-forme contrôlée par capteur gyroscopique pour labyrinthe : 3 étapes
Vidéo: Navigation inertielle : Comment garder le cap ! 2024, Juillet
Anonim
Plate-forme contrôlée par capteur gyroscopique pour labyrinthe
Plate-forme contrôlée par capteur gyroscopique pour labyrinthe

Cette instructable a été créée pour répondre aux exigences du projet du cours Make à l'Université de Floride du Sud (www.makecourse.com)"

Ce projet simple s'inspire d'une plate-forme d'auto-équilibrage qui prend le retour du capteur de l'accéléromètre. Vérifiez-le si vous ne l'avez pas déjà fait.

Le projet utilise l'Arduino UNO - Un microcontrôleur facile à utiliser que vous pouvez obtenir sur les sites Web d'achat en ligne ! Dans cette instructable, je vais vous montrer comment vous pouvez créer votre propre plate-forme inclinable programmable - du processus de conception à l'approvisionnement en pièces, en passant par les fichiers d'impression 3D, l'assemblage et la programmation. Tenez bon et avançons !

Étape 1: Composants requis et pièces imprimées en 3D

Composants requis et pièces imprimées en 3D
Composants requis et pièces imprimées en 3D
Composants requis et pièces imprimées en 3D
Composants requis et pièces imprimées en 3D
Composants requis et pièces imprimées en 3D
Composants requis et pièces imprimées en 3D

La liste des composants utilisés pour le projet:

1. Microcontrôleur Arduino UNO.

2. Breadboard avec des fils de liaison.

3. Une boîte.

4. plate-forme circulaire

5. Labyrinthe.

6. Liens - 3 non

7. A Base pour le montage de trois servos.

8. Capteur gyroscope/accéléromètre. (MPU6050)

Fils de 9,1 mm² (500 cm) - 4 non

10. Billes en acier de 3 mm de diamètre.

La plupart des pièces utilisées pour le projet sont imprimées en 3D et j'ai joint le stl. fichiers prêts à être imprimés.

Assemblez toutes les pièces comme indiqué sur les figures. Le labyrinthe est collé à chaud sur la plate-forme circulaire pour ressembler à l'image. Les trois servos doivent être collés à chaud sur la base imprimée en 3D qui est montée sur le couvercle de la boîte. La boîte contient l'Arduino UNO et la planche à pain assemblés comme indiqué sur la figure. La configuration de la maquette sera discutée à l'étape suivante.

Après assemblage, le prototype final devrait ressembler à la dernière photo.

Étape 2: Configuration de la planche à pain

Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain
Configuration de la planche à pain

Après l'assemblage, l'Arduino, capteur accéléromètre, les servos sont connectés comme décrit ci-dessous.

Les rails positif et négatif de la maquette sont respectivement connectés à 5V et GND d'Arduino. Le capteur est connecté à l'Arduino à l'aide des fils d'un demi-mètre qui doivent être soudés au capteur de telle sorte que les broches VCC et GND du capteur soient connectées aux rails +ve et -ve sur la planche à pain respectivement. Les broches SCL et SDA du capteur à connecter aux broches analogiques A5 et A4 d'Arduino. Les broches PWM des trois servos sont connectées respectivement à 2, 3, 4 broches de l'Arduino et les broches +ve et -ve de tous les servos sont connectées aux rails +ve et -ve de la maquette. avec cela, nos connexions sont faites.

Étape 3: Coder le projet

vous pouvez télécharger les bibliothèques MPU6050 et Servo sur Internet et les utiliser pour le projet. Compilez et téléchargez le code suivant sur l'Arduino et le projet est prêt. Inclinez le capteur et vous pouvez voir le labyrinthe s'incliner dans la même direction ! Il faut un certain temps pour résoudre le puzzle car c'est un peu difficile mais c'est amusant de jouer avec.

#comprendre

#comprendre

#comprendre

Servo Servo1;

Servo Servo2;

Servo Servo3;

capteur MPU6050;

int servoPos1=90;

int servoPos2=90;

int servoPos3=90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

void setup ()

{

Servo1.attache (2);

Servo2.attache (3);

Servo3.attache (4);

Fil.commencer ();

Serial.begin (9600);

}

boucle vide ()

{

sensor.getMotion6 (&ax, &ay, &az, &gx, &gy, &gz);

hache = carte (hache, -17000, 17000, 0, 180);

ay = carte (ay, -17000, 17000, 0, 180);

Serial.print ("ax=");

Serial.print (ax);

Serial.print (" ay=");

Serial.println (ay);

si (ax < 80 && ay < 80){

Servo1.write(servoPos1++);

Servo2.write(servoPos2--);

Servo3.write(servoPos3--); }

si (axe 120){

Servo1.write(servoPos1--);

Servo2.write(servoPos2++);

Servo3.write(servoPos3--); }

si (ax > 120 && ay > 0){

Servo1.write(servoPos1--);

Servo2.write(servoPos2--);

Servo3.write(servoPos3++); }

si (ax == 90 && ay == 90){

Servo1.write(0);

Servo2.write(0);

Servo3.write(0);

}

}

Conseillé: