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 :
Puis sur le servo fixer l’équere à 90° comme cela à l’aide de deux vis (généralement fourni avec le servo) :
Pour finir fixer « le pied » sur le boitier de pile ou directement votre boitier de raspberry avec de la colle :
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 :
Et avec une camera 5MP :
Et le model nocturne avec 2 led + camera infrarouge :
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).
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
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