Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Le projet
Conduisez un bras robotisé contrôlé par un smartphone à l'aide d'un périphérique Bluetooth.
Mode bonus: nous avons un bouton qui permet à l'arduino de se souvenir d'une position. Chaque fois que nous voulons, nous pouvons aller à cette position enregistrée avec un autre bouton.
FR
LE PROJET
Commander un bras robotisé construit à partir de carton et de servo-moteurs.
Le bras sera constitué d'une pince qui doit pouvoir prendre et poser un objet.
On commandera le bras par smartphone qui communiquera en bluetooth à l'arduino.
Mode bonus: Un bouton nous permettra de sauvegarder une position du soutien-gorge. Lorsque l'on le souhaite, nous pourrons retourner à la position sauvegardée.
Étape 1: Matériaux dont vous avez besoin
FR
1 Arduino UNO
4 servomoteurs SG90 (9g, couple: 1kg.cm)
1 Moteurs pas à pas 5V 24BYJ48 (couple: 39mN.m)
1 driver pour les moteurs pas à pas DRV8825
1 alimentation 9V + 6V pour les moteurs
1 module Bluetooth HC-06
Pistolet à colle, carton, fil, élastique
FR
1 module Arduino Uno
4 servo-moteurs SG90 9g (couple: 1kg.cm)
1 moteur pas-à-pas 5V (39mN.m) 24BYJ48
1 pilote moteur pap DRV8825
1 alimentation 9V pour l'arduino et 6V pour les moteurs
1 module Bluetooth HC-06 Pistolet à colle, carton, fils connection, élastique
Étape 2: CONFIGURATION
FR
ETAPE 1: Module Bluetooth Le module bluetooth (HC-06) est connecté de la manière suivante:
Rx Tx
Tx Rx
TERRE TERRE
VCC +5V
Il va permettre d'établir la communication entre l'Arduino et le smartphone, via la voie Série (9600).
ETAPE 2: Le moteur pas à pas 24BYJ48
Nous avons connecté le moteur bipolaire pas à pas 24BYJ48 à son pilote associé contenant le circuit ULN2003. Il suffit de connecter les entrées INx (x = 1, 2, 3, 4) aux sorties digitales de l'arduino. On alimente le driver en +5V.
Pour coder, nous utiliserons la bibliothèque Stepper.h, ce qui nous permet de commander facilement le moteur en lui donnant la vitesse: nom.setSpeed(vitesse), ainsi que le pas désiré: nom.step(+ou- pas)
ETAPE 3: Les servo-moteurs SG90
Les servos moteurs se commandent facilement. Il suffit de brancher le fil rouge au +5V, le noir à la masse et le fil restant à une sortie PWM de l'arduino. On choisit ensuite l'angle du servo via la PWM (0 à 255).
Nous utiliserons la bibliothèque servo.h pour commander facilement le servo. Tout d'abord, on initialera le servo par son nom: Servo nom_servo, puis on lui rattachera la commande PWM: nom_servo.attach(pin choisi). Enfin, sur commandera l'angle voulu: nom_servo.write(angle de 0 à 180).
ETAPE 4: Fabriquer le support Le support a été fabriqué en carton. Après avoir réalisé la base sur laquelle va tourner le bras et ou sera mis le moteur pas à pas, nous avons collé les servos moteurs à du carton pour donner la forme finale. La pince à été créée à partir de bâton de glace et fonctionne avec un élastique
Étape 3: Le code
// 2017-02-24 - Program C - Commande de plusieurs servo moteurs dynamiques par smartphone, via bluetooth - App inventor 2 utilisé - Carte Arduino (ici UNO), module Bluetooth// Ce program a pour objectif de: //// Le moteur (fils 1 2 3 4) est branché sur les sorties 8 12 10 11 de l'Arduino (et sur GND, +V) Stepper small_stepper(STEPS, 8, 10, 12, 11); //************************DECLARATIONS****************************** * représentant de mot; // mot envoyé du module Arduino au smartphone int cmd = 3; // variable commande du servo moteur (troisième fil (orange, jaune)) Servo moteur; //on définit notre servomoteur int cmd1 = 5; Servomoteur1; Servomoteur2;Servomoteur3; int cmd2=9; int cmd3=6; int angle2, angle3; angle int; int angle1; pas d'int; entier r, r1, r2, r3; en cours d'enregistrement; mot w; // variable envoyée du smartphone au module Arduino int angle; // angle de rotation (0 à 180) //************************SETUP**************** ****************** void setup() { moteur.attach(cmd); // on s'appuie sur l'objet au pin de commande moteur1.attach(cmd1); moteur2.attache(cmd2); moteur3.attach(cmd3); moteur.write(12); moteur1.write(23); Serial.begin(9600); // permettra de communiquer au module Bluetooth } //************************BOUCLE****************** ******************* void loop() {recevoir(); // on va recevoir une information du smartphone, la variable w if (w==206)reproduire();// va nous permettre de reproduire la position enregistrée if(w==205)enregistrer=1;// va nous permettre d'enregistrer la valeur des servos moteurs lorsque l'on apuiera sur un bouton if (w==204)enregistrer=0; for (int k=100;k<151;k++) { if (w == k) { angle2 = map(k, 100, 150, 0, 180); moteur2.write(angle2); si (enregistrer==1)r2=angle2; } } pour (int j=151;j<201;j++) { if (w == j) { angle3 = map(j, 151, 200, 0, 150); moteur3.write(angle3); si (enregistrer==1) r3=angle3; } } pour (int i=0;i<34;i++) { if (w == i) { angle = map(i, 0, 34, 0, 70); moteur.write(angle); si (enregistrer==1)r=angle; } } pour (int l=34;l<=66;l++) { if (w == l) { angle1 = map(l, 34, 66, 90, 0); moteur1.write(angle1); si (enregistrer==1)r1=angle1; } } pour (int m=67;m<=99;m++) { if (w == m) { if (w86){ small_stepper.setSpeed(80);small_stepper.step(-5);} else small_stepper.step (0); } } } //******************************FONCTIONS****************** ******************** void reproduire()// fonction permettant de reproduire la position sauvegardée { moteur2.write(r2);moteur.write(r);moteur1. écriture(r1);moteur3.écriture(r3); } void recevoir() { // fonction permettant de recevoir l'information du smartphone if (Serial.available()) { w = Serial.read(); Serial.flush(); }} - Connecter le Servo moteur + module bluetooth au module arduino // - Envoyer un mot/phrase/nombre au smartphone // - Recevoir une commande via smartphone // Programme réalisé par Techno_Fabrik // ********* ***********BIBLIOTHEQUES****************************** #include #include// bibliothèque permettant d' utiliser les commandes pour servomoteurs facilement #include
Étape 4: APP pour smartphone (réalisée sur APP Inventor 2)
Étape 5: Réalisation vidéo
Merci d'avoir regardé.!
Pour en savoir plus, consultez notre site Web:
Ou suivez-nous sur Google +:
Merci !