Etape 6: Montage des servos au RPi
- Connecter le signal de données servos au RPI, tel qu’illustré au diagramme.
- Connecter le + V de deux servos sur un alimentateur séparé de l’IPD (bien sûr, les deux GND doit être connecté). Une fois que vous installerez le mécanisme Pan/Tilt au robot, vous pouvez utiliser la même batterie (9V) qui a été utilisée avec des moteurs à courant continu. Dans ce cas, un régulateur de tension 6V sera nécessaire.
Pour tester les servos, utilisez la commande Servoblaster « echo ». Vous pouvez utiliser les valeurs d’angle ou en pourcentage. Tester la meilleure plage pour votre mécanisme Pan/Tilt :
Plage d’inclinaison Servo :
écho P1 - 11 = 20 % >/dev/servoblaster (regardant vers le bas)
écho P1 - 11 = 60 % >/dev/servoblaster (regarder en avant)
écho P1 - 11 = 90 % >/dev/servoblaster (se levant)
Gamme de Servo de Pan :
écho P1 - 16 = 30 % >/dev/servoblaster (regardant à droite)
écho P1 - 16 = 62 % >/dev/servoblaster (Centre de recherche)
écho P1 - 16 = 90 % >/dev/servoblaster (vers la gauche)
Nous pouvons écrire des scripts bash pour contrôler facilement la position du servo. Avant de commencer, rappelons que c’est une bonne pratique d’avoir un répertoire spécifique pour les programmes utilisés et appelez-le « bin ». Si, pour enregistrer les scripts que nous utiliserons dans le projet, nous allons créer un répertoire qui sera contenant au moins tous les scripts exécutables (fichiers binaires).
Par exemple, Let's move pour notre répertoire de la page Web :
CD/var/www
et sous elle, créez le répertoire avec les scripts, que nous appellerons cgi-bin :
sudo mkdir /var/ www/cgi-bin
Pour les scripts, nous allons utiliser « .cgi » comme l’extension de fichier. CGI signifie « Common Gateway Interface ». C’est un moyen standard pour les serveurs web pour s’interfacer avec des programmes exécutables installés sur un serveur qui génèrent dynamiquement des pages web. Ces programmes sont connus comme les scripts CGI ou simplement de CGI ; ils sont généralement écrites dans un langage de script, mais peuvent être écrits dans n’importe quel langage de programmation. Nous allons créer un répertoire dans/var/www, où seront enregistrées les scripts :
sudo mkdir cgi-bin
Comme nous avons discuté sur la première partie de ce projet, IoT - contrôler un Robot de Pi framboise sur internet avec HTML et shell scripts seulement. fichiers de script sont essentiellement le texte brut. Lorsqu’un fichier texte est tenté d’être exécuté, coquilles analysera à travers eux des indices quant à savoir si ils sont des scripts ou non et comment tout gérer correctement. Pour cette raison, il y a quelques conseils que vous devez savoir.
- Chaque script devrait être avec "#! / bin/bash" (The Hash-Bang Hack}
- Chaque nouvelle ligne est une nouvelle commande
- Les lignes de commentaires commencent par un #
- Commandes sont entourés de ()
Lorsqu’une coquille analyse via un fichier de texte, la plus directe de moyen d’identifier le fichier tel qu’un script est de faire votre première ligne: #! / bin/bash (The Hash-Bang Hack). Si vous utilisez un autre shell, substituer son chemin ici. Les lignes de commentaires commencent par hachages (#), mais en y ajoutant le bang (!) et le chemin d’accès shell après c’est une sorte de hack qui contournera cette règle de commentaire et forcera le script à exécuter avec le shell qui cette ligne pointe vers.
Par exemple, pour créer un script shell pour positionner la caméra « regardant vers l’avant », basé sur le servo ci-dessus varie que vous avez trouvé, nous devons créer le soufflet de fichier (utilisation le meilleur éditeur pour vous. J’utilise NANO pour cela) :
sudo nano cam_view_front.cgi
#! / bin/bash
ECHO, P1 - 11 = 60 % >/dev/servoblaster
P1 - 16 = 62 echo% >/dev/servoblaster
.
Une fois que le script est créé, il faut lui donner permission à exécuter :
sudo chmod 755 cam_view_front.cgi
Maintenant, pour exécuter le script :
./cam_view_front.cgi
Déplacez la caméra pour n’importe quelle position à l’aide de la commande echo et après que qu’exécuter le nouveau script. Vous verrez que la caméra sera empoisonné automatiquement sa position de façade.
Passait, la même idée s’impose pour les autres positions possibles de l’appareil photo.
Pour ma page Web, je choisis de créer 5 positions intermédiaires pour l’inclinaison et 5 positions intermédiaires pour Pan Vous pouvez également choisir d’utiliser « curseurs » pour un changement de position plus continu. C’est à vous.
Comme pour le script « cam_view_front.cgi », en utilisant le même principe, nous allons créer 10 nouveaux scripts :
- leftpan.CGI == > 90 %
- leftcenterpan.CGI == > 76 %
- centerpan.CGI == > 62 %
- rightcenterpan.CGI == > 46 %
- rightpan.CGI == > 30 %
- downtilt.CGI == > 20 %
- downcentertilt.CGI == > 40 %
- centertilt.CGI == > 60 %
- upcentertilt.CGI == > 75 %
- uptilt.CGI == > 90 %