Promo !

Micro servo 9g SG90 Moteur pour modèles RC hélicoptères avions robotique amateur arduino

Le prix initial était : 6,46 €.Le prix actuel est : 4,00 €. Hors TVA

Micro servo 9g SG90 Moteur pour modélisme RC hélicoptères avions robotique amateur arduino

31 en stock (peut être commandé)

Domande su questo prodotto? Scrivi a Lana su WhatsApp

Catégories : ,

🎬 Le produit en vidéo

Description


🛠 Description complète du Micro Servo 9g SG90

Le Micro Servo SG90 9g est un petit moteur servo utilisé couramment dans le modélisme RC (hélicoptères, avions), la robotique amateur, les projets avec Arduino et l’automatisation DIY. Il est apprécié pour sa légèreté, son faible coût et sa simplicité d’utilisation.

✅ Caractéristiques techniques :

Spécification Valeur
Modèle SG90 Micro Servo
Poids 9g
Couple 1,8 kg/cm (à 4,8V)
Tension d’exploitation 4.8V – 6V
Angle de rotation Environ 180° (limité mécaniquement)
Vitesse 0,12 s/60° (à 4,8V)
Type de contrôle PWM (modulation en largeur d’impulsion)
Connecteurs 3 broches: GND (marron), VCC (rouge), signal (orange)
Matériau des engrenages Nylon

📦 Contenu typique de l’emballage:

  • 1x Micro Servo SG90
  • 3x Bras (cornes)
  • 3x Vis

🔌 Connexion du Micro Servo SG90 avec Arduino

Servo Arduino UNO
GND (marron) GND
VCC (rouge) 5V
Signal (orange) Pins numériques (par exemple D9)

⚠️ Note : Pour plusieurs servomoteurs ou charges lourdes, utilisez un alimentateur externe (5V) pour éviter de surcharger l’Arduino.


🔧 Bibliothèque nécessaire

Arduino dispose d’une bibliothèque officielle appelée Servo.h qui simplifie beaucoup l’utilisation des servomoteurs.

📦 Installation (si elle n’est pas déjà présente) :

  • Ouvrez l’IDE Arduino
  • Allez à : Sketch > Inclure la bibliothèque > Gérer les bibliothèques…
  • Recherchez “Servo” et installez celle officielle d’Arduino

🧪 Exemple de code de base

🎯 Objectif : Faire tourner le servomoteur de 0° à 180° et retour

#include <Servo.h>

Servo mioServo; // Crea un oggetto servo

void setup() {
  mioServo.attach(9); // Collega il servo al pin 9
}

void loop() {
  for (int angolo = 0; angolo <= 180; angolo++) {
    mioServo.write(angolo);      // Imposta l'angolo
    delay(15);                   // Attendi che il servo si muova
  }
  delay(500);
  for (int angolo = 180; angolo >= 0; angolo--) {
    mioServo.write(angolo);
    delay(15);
  }
  delay(500);
}

💡 Exemples d’utilisation avancée

📍 Contrôle via potentiomètre

#include <Servo.h>

Servo mioServo;
int potPin = A0; // Potenziometro collegato ad A0

void setup() {
  mioServo.attach(9);
}

void loop() {
  int lettura = analogRead(potPin);          // Legge il valore (0–1023)
  int angolo = map(lettura, 0, 1023, 0, 180); // Lo converte in gradi
  mioServo.write(angolo);
  delay(10);
}

🎮 Contrôle via série

#include <Servo.h>

Servo mioServo;

void setup() {
  Serial.begin(9600);
  mioServo.attach(9);
  Serial.println("Inserisci un angolo tra 0 e 180:");
}

void loop() {
  if (Serial.available() > 0) {
    int angolo = Serial.parseInt();
    if (angolo >= 0 && angolo <= 180) {
      mioServo.write(angolo);
      Serial.print("Angolo impostato a: ");
      Serial.println(angolo);
    } else {
      Serial.println("Valore non valido. Inserisci 0-180.");
    }
  }
}

📚 Conseils d’utilisation

  • Ne forcez pas le servomoteur au-delà de ses limites mécaniques (généralement 0°–180°).
  • Évitez d’alimenter plusieurs servos directement à partir du 5V d’Arduino, utilisez un alimentateur externe de 5V/2A pour la stabilité.
  • I les servos SG90 ne sont pas adaptés pour une rotation continue: si vous avez besoin d’un moteur qui tourne librement, envisagez les servos à rotation continue ou les réducteurs de moteur.

⚙️ Applications courantes

  • Contrôle de gouvernail/ailettes sur modèles RC
  • Mouvement de bras robotiques
  • Verrous électroniques
  • Mécanismes animatronics
  • Pointage de capteurs ou de caméras (pan/tilt)

Parfait ! Élargissons la guide pour inclure :

  1. ✅ Contrôle sans fil avec Bluetooth (HC-05)
  2. ✅ Contrôle via Wi-Fi avec ESP8266/ESP32
  3. ✅ Contrôle de plusieurs servos simultanément
  4. ✅ Intégration avec des capteurs (ex. distance ultrasons HC-SR04)

🟦 1. Contrôle sans fil avec Module Bluetooth HC-05

🎯 Objectif:

Commander le servo SG90 via Bluetooth à partir d’une application sur le smartphone (par exemple, une application comme Serial Bluetooth Terminal sur Android).

🔌 Connexion HC-05:

HC-05 Arduino UNO
VCC 5V
GND GND
TXD Pin 10
RXD Pin 11 (⚠️ avec un partageur de tension à 3.3V)

⚠️ Utilisez un partageur résistif (1kΩ + 2kΩ) pour réduire le signal de 5V à 3.3V vers le RXD du module HC-05.

🔧 Code Arduino avec SoftwareSerial:

#include <Servo.h>
#include <SoftwareSerial.h>

Servo mioServo;
SoftwareSerial BT(10, 11); // RX, TX

void setup() {
  mioServo.attach(9);
  BT.begin(9600);
}

void loop() {
  if (BT.available()) {
    int angolo = BT.parseInt();
    if (angolo >= 0 && angolo <= 180) {
      mioServo.write(angolo);
    }
  }
}

🔄 Test: Envoyez un nombre entre 0 et 180 depuis l’application mobile.


🌐 2. Contrôle Servo par Wi-Fi (ESP8266 ou ESP32)

⚠️ Si vous utilisez ESP8266 ou ESP32, NE PAS utiliser Arduino UNO. Les broches sont différentes et le servo doit être alimenté avec soin.

🧠 Exemple avec ESP8266 (NodeMCU):

  • Servo → alimenté par une source externe 5V et GND partagé
  • Signal → connecté à D1 (GPIO 5)

🔧 Code de base pour un serveur web qui contrôle le servo:

#include <ESP8266WiFi.h>
#include <Servo.h>

Servo mioServo;
const char* ssid = "TuaReteWiFi";
const char* password = "PasswordWiFi";

WiFiServer server(80);

void setup() {
  mioServo.attach(D1); // GPIO 5
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  server.begin();
}

void loop() {
  WiFiClient client = server.available();
  if (client) {
    String req = client.readStringUntil('r');
    client.flush();

    if (req.indexOf("/angle=") != -1) {
      int angolo = req.substring(req.indexOf("=")+1).toInt();
      if (angolo >= 0 && angolo <= 180) {
        mioServo.write(angolo);
      }
    }

    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: text/html");
    client.println("");
    client.println("<html><body>");
    client.println("<h1>Controllo Servo</h1>");
    client.println("<form>Angolo (0-180): <input type='number' name='angle'><input type='submit'></form>");
    client.println("</body></html>");
  }
}

💻 Accédez à l’adresse IP attribuée (par exemple, 192.168.1.42) dans le navigateur.


⚙️ 3. Contrôler Plusieurs Servo Simultanément

#include <Servo.h>

Servo servo1, servo2, servo3;

void setup() {
  servo1.attach(9);
  servo2.attach(10);
  servo3.attach(11);
}

void loop() {
  for (int ang = 0; ang <= 180; ang++) {
    servo1.write(ang);
    servo2.write(180 - ang);
    servo3.write(ang / 2);
    delay(15);
  }
}

✅ Chaque Servo est connecté à une broche différente. Arduino UNO peut gérer jusqu’à 12 servo, mais avec des limites d’alimentation!


📏 4. Contrôle Servo avec Capteur de Distance HC-SR04

🎯 Objectif:

Faire bouger le servo en fonction de la distance lue par le capteur ultrasons.

🔌 Connexions:

Capteur HC-SR04 Arduino
VCC 5V
GND GND
Trig D7
Echo D6

🔧 Code:

#include <Servo.h>

Servo mioServo;
const int trigPin = 7;
const int echoPin = 6;

void setup() {
  Serial.begin(9600);
  mioServo.attach(9);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Invio impulso
  digitalWrite(trigPin, LOW); delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  long durata = pulseIn(echoPin, HIGH);
  float distanza = durata * 0.034 / 2;

  int angolo = map(distanza, 5, 100, 0, 180); // Da 5 cm a 100 cm
  angolo = constrain(angolo, 0, 180);

  mioServo.write(angolo);
  delay(100);
}

🔚 Conclusion et Possibles Extensions

✅ Maintenant, vous pouvez:

  • Contrôler le servo par Bluetooth, Wi-Fi ou capteurs
  • Gérer plusieurs servos pour la robotique ou les bras articulés
  • Intégrer des entrées à distance ou de l’environnement (par exemple, distance, potentiomètres)

Parfait ! Explorons les deux aspects pour un robot avec un bras articulé contrôlé par des servos SG90:


🦾 1. Synchronisation des mouvements servo (Membre robotique)

🎯 Objectif:

Coordonner plusieurs servo (par exemple, épaule, coude, poignet) pour faire effectuer des mouvements fluides et synchronisés à un membre robotique.

🎮 Exemple: 3 DOF (degrés de liberté)

🔌 Connexions:

Partie du membre Servo Pin Arduino
Épaule servo1 9
Coude servo2 10
Poignet servo3 11

🔧 Code synchronisé:

#include <Servo.h>

Servo servoSpalla;
Servo servoGomito;
Servo servoPolso;

void setup() {
  servoSpalla.attach(9);
  servoGomito.attach(10);
  servoPolso.attach(11);
}

void loop() {
  // Esegui una sequenza sincrona
  for (int ang = 0; ang <= 90; ang++) {
    servoSpalla.write(ang);
    servoGomito.write(90 - ang);
    servoPolso.write(ang / 2);
    delay(20); // Tempo per il movimento fluido
  }

  delay(1000); // Pausa

  for (int ang = 90; ang >= 0; ang--) {
    servoSpalla.write(ang);
    servoGomito.write(90 - ang);
    servoPolso.write(ang / 2);
    delay(20);
  }

  delay(1000);
}

✅ Tous les servomoteurs se déplacent de manière coordonnée et les relations peuvent être modifiées pour créer des mouvements articulés.


💾 2. Mémorisation des positions servo

🧠 Objectif:

Sauvegarder des « poses » du bras robotique en mémoire (EEPROM) ou à envoyer en série, pour les réappeler avec une commande.


📦 Solution 1: Mémoriser dans l’EEPROM (persistante après redémarrage)

#include <Servo.h>
#include <EEPROM.h>

Servo s1, s2, s3;

void setup() {
  s1.attach(9);
  s2.attach(10);
  s3.attach(11);

  // Carica posizione salvata all'avvio
  int a1 = EEPROM.read(0);
  int a2 = EEPROM.read(1);
  int a3 = EEPROM.read(2);

  s1.write(a1);
  s2.write(a2);
  s3.write(a3);
  delay(1000);
}

void loop() {
  // Sposta braccio in nuova posizione
  s1.write(60);
  s2.write(120);
  s3.write(90);
  delay(2000);

  // Salva questa "pose" nella EEPROM
  EEPROM.write(0, 60);  // s1
  EEPROM.write(1, 120); // s2
  EEPROM.write(2, 90);  // s3

  while (1); // Ferma il loop
}

💾 Lorsque vous redémarrez l’Arduino, le bras reviendra dans la position sauvegardée.


📦 Solution 2: Envoyer des poses depuis le Serial Monitor et les sauvegarder en RAM

#include <Servo.h>

Servo s1, s2, s3;
int pos[3];

void setup() {
  Serial.begin(9600);
  s1.attach(9);
  s2.attach(10);
  s3.attach(11);

  Serial.println("Invia tre valori separati da virgole (es. 30,90,120):");
}

void loop() {
  if (Serial.available()) {
    String input = Serial.readStringUntil('n');
    input.trim();

    int idx1 = input.indexOf(',');
    int idx2 = input.lastIndexOf(',');

    if (idx1 > 0 && idx2 > idx1) {
      pos[0] = input.substring(0, idx1).toInt();
      pos[1] = input.substring(idx1 + 1, idx2).toInt();
      pos[2] = input.substring(idx2 + 1).toInt();

      s1.write(pos[0]);
      s2.write(pos[1]);
      s3.write(pos[2]);

      Serial.println("Posizione eseguita.");
    } else {
      Serial.println("Formato errato. Usa: ang1,ang2,ang3");
    }
  }
}

📱 Vous pouvez envoyer des poses depuis PC ou Bluetooth. Exemple: 45,90,135


➕ Extension Avancée (Optionnelle)

✅ Mémoriser plusieurs poses dans l’EEPROM avec des boutons pour les réappeler
✅ Sauvegarder des séquences animées pour le playback
✅ Interface web (ESP32) pour programmer des mouvements depuis le navigateur
✅ Joystick pour contrôler le bras en temps réel et ensuite « enregistrer »


🔚 Conclusion

Avec ces solutions, vous pouvez:

  • Faire bouger le bras comme un système articulé
  • Mémoriser des poses ou séquences personnalisées
  • Intégrer avec des commandes à distance (Bluetooth, Wi-Fi ou série)

Tutoriel : Comment utiliser le micro servo SG90

Le micro servo SG90 est un petit moteur idéal pour des projets de robotique et de modélisme RC tels que des hélicoptères, des avions et des voitures radio-commandées. Avec une masse de seulement 9g, ce servo est parfait pour les débutants qui souhaitent commencer avec Arduino.

Ce qu’il faut

  • Arduino Uno ou compatible
  • Câble USB
  • Connexion 5V
  • Connexion GND
  • Connexion de données

Étapes

  1. Connectez le servo SG90 à l’Arduino en utilisant les câbles spécifiés.
  2. Chargez le sketch Arduino fourni pour contrôler le servo.
  3. Modifiez l’angle de mouvement du servo en modifiant les lignes du sketch.
  4. Testez la rotation complète du servo de 0° à 180°.

Exemple de code

void setup() {
  pinMode(9, OUTPUT);
}

void loop() {
  for(int pos = 0; pos <= 180; pos += 1) {
    servos.write(pos);
    delay(15);
  }
}

Mini-projet

Créez un bras robotique avec deux SG90 qui se déplacent en synchronisation pour prendre des objets.

Erreurs courantes

  • Ne pas vérifier la tension d’alimentation du servo.
  • Brancher le servo sans protection contre les courants induits.
  • Utiliser un angle de mouvement non conforme aux spécifications du datasheet.
  • Omettre l’installation de la bibliothèque Servo pour Arduino.

Accessoires conseillés

  • Connecteur JST
  • Alimentation RC 5V-6V
  • Batterie LiPo 3S
  • Carte de protection contre les courants induits

Questions fréquentes

Quelle est la tension d’alimentation du servo SG90?
Vérifiez le datasheet.

Combien pèse le servo SG90?
Le poids est de 9g.

Ai-je besoin d’une bibliothèque spéciale pour contrôler ce servo avec Arduino?
Oui, utilisez la bibliothèque Servo.

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Micro servo 9g SG90 Moteur pour modèles RC hélicoptères avions robotique amateur arduino”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *