Blynk + ESP8266 : piloter un mini kit Pan-Tilt PTZ SG90 en WiFi avec un smartphone ou tablette

Dans ce tutoriel nous allons apprendre comment assembler un mini kit PTZ (Pan-Tilt) à base de servo moteur SG90. Nous utiliserons Blynk pour piloter la tourelle PTZ en WiFi. Si vous disposez d’un compte Blynk vous pouvez directement passer à l’étape d’assemblage. Pour obtenir une meilleure performance, il est conseillé d’installer un serveur Blynk local. En effet, même si le transfert est très rapide, les ordres vont transités par les serveurs de blynk.cc. En installant un serveur local, vous éliminerez le temps de latence. En plus d’une meilleure performance, vous ne serez plus limité en énergie.

Préparer un serveur Blynk local

Pour ce projet, vous pouvez utiliser votre compte Blynk officiel (et utiliser un peu d’énergie) ou installer un serveur Blynk local et profiter d’une énergie illimitée et réduire les latences. En fonction de votre environnement, suivez le tutoriel qui correspond pour installer et configurer votre serveur local privé

Assemblage du mini kit PTZ SG90

On trouve des kits PTZ à partir de 4€ en chine. Si vous avez déjà 2 servos SG90, vous pouvez acheter uniquement le kit nu pour moins d’un euro (à condition d’être patient pour le délai de livraison) ! Le kit est composé de 6 pièces en plastique moulé ainsi que la visserie nécessaire. Comme il n’y a aucune documentation, j’ai du faire quelques recherches sur internet. Pour vous éviter ça, voici comment assembler le kit étape par étape.

mini ptz pan tilt kit sg90 parts

Assemblage de la base (PAN)

On va commencer par assembler la base. Voici les pièces nécessaires.

mini ptz kit pan tilt sg90 base assembly

Suivez les étapes suivantes pour assembler la base

mini ptz kit pan tilt sg90 Insérer le servomoteur dans le logement

Assurez-vous que l’arbre d’asservissement se trouve du côté opposé au point de pivotement du support d’inclinaison

mini ptz kit pan tilt sg90 Assembler le deuxième côté du support du PAN pour enfermer le servo
mini ptz kit pan tilt sg90 Terminer l’assemblage en vissant les 2 cotés ensemble avec 2 vis courtes
mini ptz kit pan tilt sg90 Visser la croix à quatre branches à l’aide d’une vis courte
Utiliser une vis assez courtes pour fixer la base à l’arbre servo. Une vis de montage trop longue peut endommager le servo elle est vissée trop loin.
mini ptz kit pan tilt sg90 base assembled Enfin, terminer en fixant le socle à la croix à quatre branches à l’aide de 4 mini vis

Assemblage du support d’inclinaison (Tilt)

Pour le support d’inclinaison, vous aurez besoin des pièces suivantes. Vous pouvez remplacer les 2 vis courtes par les 2 vis longues avec entretoise et écrou. C’est plus solide, surtout au moment de l’assemblage du support d’inclinaison (Tilt) sur la base (Pan).

mini ptz kit pan tilt sg90 top

Suivez les étapes suivantes pour assembler le support d’inclinaison

mini ptz kit pan tilt sg90 top Visser le servo sur la base. L’arbre du servo doit être à l’opposé du trou du pivot
mini ptz kit pan tilt sg90 arbre lateral Insérer l’arbre d’asservissement à une branche dans son logement
mini ptz kit pan tilt sg90 fixation arbre lateral Fixer le à l’aide de 2 mini vis depuis l’intérieur

Assemblage final

Maintenant il ne reste plus qu’à assembler le support d’inclinaison sur le socle

mini ptz kit pan tilt sg90 montage dessus Insérer l’axe du servo dans le logement de l’arbre d’asservissement
mini ptz kit pan tilt sg90 clips axe Insérer le support sur le pivot

Ne vissez pas encore l’arbre d’asservissement du support d’inclinaison.

Circuit et code

Avant de terminer l’assemblage, nous allons réaliser le câblage et téléversé le programme dans l’ESP8266. cela va nous permettre de positionner chaque servo moteur à sa position d’origine. Ensuite nous pourrons les fixer définitivement

Matériel utilisé

Je vous propose donc ici de piloter en WiFi le mini kit Pan/Tilt. Vous pouvez utiliser n’importe quel ESP8266.

Circuit

mini kit pan tilt servo wemos d1 mini wifi blynk

Projet Blynk

Lancez Blynk. Si vous disposez d’un serveur local, connectez vous sur celui-ci.

blynk create account local server

Créer un nouveau projet. Ajoutez un slider pour le PAN et attribuez lui la broche virtuelle V0. Modifiez la limite supérieure à 180 (degrés). Cochez Send Value on Release Only.

 blynk virtual pin Pan servo

Puis un second slider pour le Tilt (V1). Modifier la limite supérieure à 180 (degrés). Cocher Send Value on Release Only.

blynk virtual pin tilt servo

Blynk est prêt. Activez le projet en appuyant sur la flèche dans le coin supérieur droit de l’écran.

blynk virtual pin tilt servo

Code Arduino

Dans le tutoriel précédent nous avons vu comment utiliser un servomoteur avec un Arduino et le piloter à l’aide d’un potentiomètre. Ici, le programme n’est pas si différent. On va récupérer sur le serveur Blynk la position de chaque servomoteur sur deux broches (PIN) virtuels.

Lancez l’IDE Arduino et créez un nouveau croquis, collez le code ci-dessous et modifiez les paramètres suivants :

  • SSID du votre réseau Wi-Fi
  • Mot de passe du réseau Wi-Fi
  • Le Token du projet Blynk reçu par email
  • Choisissez le mode de connexion au serveur Blynk parmi ces trois possibilités :
    • Connexion à un compte officiel : Blynk.begin(auth, ssid, pass)
    • Connexion à un compte en spécifiant le serveur : Blynk.begin(auth, ssid, pass, “blynk-cloud.com”, 8442)
    • Connexion à un serveur Blynk local : Blynk.begin(auth, ssid, pass, IPAddress(xxx,xxx,xxx,xxx), 8442)
  • Vérifiez le Pin sur lequel chaque servo est attaché. Ici Pan est sur D5, Tilt est sur D6
  • Le servo Pan sera piloté par la broche virtuelle V0. Le servo Tilt sera piloté par la broche virtuelle V1

Enfin, téléversez le programme

/*
 * Mini Kit Pan/Tilt SG90 + Wemos + Blynk
 * - Use private or official Blynk server
 * - Use Blynk Joystik widget to drive Pan/Tilt kit 
 * - Use a WiFi connexion 
 * - Use 2 sliders or 1 joystick : Pan (V0: 0..180), Tilt (V1: 0...180)
 * 
 * How to 
 * - Install Private Blynk server on Raspbery PI
 * - Install private Blynk server on Orange Pi (Armbian) 
 * 
 * *******************
 * - Utilisez un serveur local pour une meilleure performance 
 * - Utiliser le widget joystick pour piloter le kit Pan/Tilt
 * - Utiliser la connexion WiFi 
 * - Utiliser 2 sliders ou un joystick : Pan (V0: 0..180), Tilt (V1: 0...180)
 * 
 * Tutoriels
 * - Comment installer un serveur Blynk local sur Raspberry Pi : https://www.projetsdiy.fr/blynk-installer-serveur-local-prive-raspberry-pi3-energie-illimitee/
 * - Installer un serveur local sur Orange Pi (Armbian) : https://www.projetsdiy.fr/blynk-installer-serveur-local-prive-orange-pi-armbian-ubuntu-16-04lts/
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 * 
 * Licence : MIT
 * Copyright (C) 2017 : www.projetsdiy.fr and www.diyprojects.io
 */

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Servo.h>

// Vos paramètres de connexion WiFi - Your WiFi credentials.
char ssid[] = "yourSSID";
char pass[] = "yourPASSWORD";

// Jeton Blynk - Blynk Token
char auth[] = "yourTOKEN";

Servo pan;
Servo tilt;

BLYNK_WRITE(V0)
{
  Serial.print("move Pan to ");
  Serial.println(param.asInt());
  pan.write(param.asInt());
}

BLYNK_WRITE(V1)
{
  Serial.print("move Tilt to ");
  Serial.println(param.asInt());
  tilt.write(param.asInt());
}

void setup()
{
  Serial.begin(115200); // See the connection status in Serial Monitor
  //Blynk.begin(auth, ssid, pass); // You can also specify server 
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442);
  Blynk.begin(auth, ssid, pass, IPAddress(xxx,xxx,xxx,xxx), 8442);
  pan.attach(D5);
  tilt.attach(D6);
}

void loop()
{
  Blynk.run();
}

Réglage des origines

Retournez sur l’application Blynk et avancez le slider Tilt sur 90 (degrés). Assurez vous que le support d’inclinaison est en position correcte. Terminez l’assemblage est vissant l’arbre d’asservissement sur l’axe du servo.

servo tilt 90 degrees

Vérifier que la base est correctement fixée en la positionnant à 0° puis 180°.

pan servo 180 degree

Piloter le kit Pan/Tilt avec un Joystick depuis Blynk

Blynk propose un joystick. C’est moins précis que les slider, mais c’est plus sympa à utiliser. Passez le projet en édition (carré dans la barre supérieure) et supprimé les deux sliders. Glissez les sliders vers le haut de l’écran. Vous pouvez aussi aller sur dans la page du widget. Vous y trouverez un bouton Delete en bas de page.

Ajoutez un Joystick. Choisissez V0 et V1 pour les deux broches. Modifiez les valeurs maxi à 180 (degrés). Mettez sur OFF l’option Auto Return si vous ne voulez pas que les servos reviennent à la position d’origine.

pan tilt blynk joystick configuration pan tilt blynk joystick servo sg90

Lancez le projet et amusez vous bien ! Dans le prochain tutoriel, nous ajouterons une caméra au montage. Une petite vidéo pour résumer tout ça.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

Tags :

2
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
daniel clair

bonjour j’essaie de faire fonctionner le projet WEMOS+BLYNK+PAN J’ai chargé ESPEasy sur le Wemos, j’ai fait le montage avec les servos, J’ai construit l’application Blynk sur mon téléphone j’ai chargé le sketch Arduino et IL NE VEUT PAS SE COMPILER et je ne comprend pas les lignes suivantes DANS LA DESCRIPTION DU PROJET: Choisissez le mode de connexion au serveur Blynk parmi ces trois possibilités : Connexion à un compte officiel : Blynk.begin(auth, ssid, pass) Connexion à un compte en spécifiant le serveur : Blynk.begin(auth, ssid, pass, “blynk-cloud.com”, 8442) Connexion à un serveur Blynk local : Blynk.begin(auth, ssid, pass, IPAddress(xxx,xxx,xxx,xxx),… Lire la suite »

Bonjour Daniel. Pour votre projet, vous aurez besoin :
– D’un serveur Blynk https://www.projetsdiy.fr/blynk-installer-serveur-local-prive-raspberry-pi3-energie-illimitee/ ou d’un compte blynk créé depuis l’application iOS/Android
– D’un ESP8266 sur lequel vous allez téléverser le code.
Si vous avez votre propre serveur blynk sur un Raspberry Pi (conseillé pour avoir des points illimités et une réponse rapide), il faut décocher la 3ème ligne et remplacer les xxx par l’adresse IP du Raspberry Pi. Pour la connaître, il faut ouvrir un terminal et exécuter la commande ifconfig. Voilà, j’espère que ça ira maintenant. Bon courage.

Domotique et objets connectés à faire soi-même