Commande Servomoteur Webcam Raspberry via HTML5

Avec la camera 5MP fixé Après pas mal de recherches sur différents sites j’ai enfin réussi à fabriquer un bras de webcam pour Raspberry commandé via interface web HTML5. Je vais reprendre ici pas à pas les différents points pour vous expliquer comment faire. J’ai réaliser ça avec un Raspberry PI2 mais ça doit fonctionner très bien également sur le modèle B+ voir A.

Menu :

  • Matériel
  • Etape 1 : Assemblage des servomoteurs
  • Etape 2 : Branchement des servomoteurs sur le Raspberry
  • Etape 3 : Installation du serveur web Apache
  • Etape 4 : Installation de ServoBlaster
  • Etape 5 : Interface web HTML5
  • Résultat final
  • Améliorations et Évolutions

 

Matériel :

  • votre Raspberry préféré et une webcam pour raspebby
  • deux servomoteurs par exemple : SG90 9G Micro Motor Servo
  • un pack de piles 3xAAA 1,5v et les piles qui vont avec
  • une équerre 90° 4cm x 4cm (dans tout les magasins de bricolage)

Etape 1 : Assemblage des servomoteurs

Pour l’assemblage du support il suffit de coller 2 à 2 les deux servomoteurs comme sur cette photo :

20160125_184606

Coller 2 à deux les servos en s’assurant que leur axes soient perpendiculaires

Puis sur le servo fixer l’équere  à 90° comme cela à l’aide de deux vis (généralement fourni avec le servo)  :

20160125_185021

servo fixer l’équere à l’aide des vis

Pour finir fixer « le pied » sur le boitier de pile ou directement votre boitier de raspberry avec de la colle :

20160125_184859

Coller le « pied » sur le boitier des piles

Je sais, ce n’est pas les explications les plus détaillées que j’ai fourni mais les photos parlent d’elles mêmes… Au final ça donne ça :

20160125_184747

Au final ça donne ça

Et avec une camera 5MP :

20160207_163443

Et le model nocturne avec 2 led + camera infrarouge :

20160325_105330

 

Etape 2 : Branchement des servomoteurs sur le Raspberry

  • Les fils rouges (+Vcc) des servos doivent être connecter au + du pack de piles.
  • Les fils marron (GND) doivent être relié à la borne – du pack de pile qui lui même est relié au GND sur le Raspberry (borne 39).
  • Pour finir, le fils jaune du servo 1 sur la borne 11 (GPIO 17) et le fils jaune du servo 2 sur la borne 13 (GPIO 27).

GPIO-Raspberry

Etape 3 : Installation du serveur web Apache

Cette étape est facultative si votre serveur apache est déjà installé. Sinon pour l’installer :

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2

Vous trouverez sur le site raspbian-france.fr tous les détails sur l’installation et la configuration avancé d’apache pour Raspberry.

Pour pouvoir executer des commande depuis la page html vous devez ajouter l’utilisateur www-data dans le sudoer. Pour cela tapez :

visudo

et ajouter les lignes suivantes :

# User privilege for Servo CMD from apache
www-data ALL=(ALL:ALL) NOPASSWD:ALL

/!\ C’est pas terrible au niveau sécurité, ça veux dire que l’utilisateur apache peux passer root.

Après vos test, et si vous souhaitez commander vos servo en dehors de votre réseau privé vous devriez ajuster le sudoer pour réduire les autorisations. (si vous êtes intéressé dites le moi dans les commentaires je pourrais faire des test et vous dire ici ce qu’il faut exactement).

 

 

Etape 4 : Installation de ServoBlaster

ServoBlaster (voir la doc ici) est une interface qui va vous permettre de commander simplement plusieurs servo moteur avec un raspberry. Il y a pas mal d’articles sur cette interface, par exemple ici avec des bateaux. Pour l’installer :

sudo apt-get install git
git clone git://github.com/richardghirst/PiBits.git
cd PiBits/ServoBlaster
sudo make

Après l’installation vous devriez voir une nouvelle interface dans /dev/ :

ls -l /dev/servoblaster
prw-rw-rw- 1 root root 0 Jan 25 19:23 /dev/servoblaster

Puis pour tester ServoBlaster  et commander vos servos  tapez :

echo P1-11=120 > /dev/servoblaster
echo P1-13=120 > /dev/servoblaster

Réessayer en faisant varier la valeur 120 pour modifier la position de vos servos. Vous pouvez aussi utiliser les % de 0 ) 100% qui corresponde à a position du servo.

Etape 5 : Interface web HTML5

L’interface est vraiment minimaliste, libre à vous de la modifier et de l’adapter à vos besoins et projets.

Les code php est visible ici : https://github.com/Sirus10/servo

mais pour le récupérer sur votre raspberry faites simplement:

cd /var/www/
git clone git://github.com/Sirus10/servo.git
servo

Page HTML5

Pour finir rendez-vous avec votre navigateur web sur l’adresse ip de votre raspberry et amusez vous !

Ex : http://192.168.1.21/servo/ :

 

 

 

Résultat final :

 

Améliorations et Évolutions :

C’est vraiment la base qu’il y a ici, il y a beaucoup de possibilité pour intégrer ça dans une interface webcam par exemple ou autre. C’est juste un début…

  • [FAIT] utiliser du jquery au lieu d’avoir a chaque fois à recharger la page php
  • utiliser un canva  avec HTML5 (voir ici) ?
  • [FAIT] Inverser la commande du servo vertical

 

 

Une réflexion au sujet de « Commande Servomoteur Webcam Raspberry via HTML5 »

Laisser un commentaire

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