Étape 3: Commande de moteurs avec Pi framboise et WiringPi
À ce stade, la bibliothèque WiringPi est installée et vous pouvez contrôler toute GPIO directement à partir de la ligne de commande à votre moniteur de RPi. L’étape suivante consiste à créer une logique permettant de commander les moteurs. Pour ce faire, nous utiliserons un pont en H, la L-293-D. Ce pont en H peut commander 2 moteurs. Il y a pour chaque moteurs, 3 entrées :
- Moteur gauche: « activer » ; « moteur + » et « moteur-»
- Moteur droit: « activer » ; « moteur + » et « moteur-»
Les deux entrées « moteurs permet » vont être reliés entre eux et seront contrôlée par GPIO.18. Cette broche sera responsable du contrôle de vitesse. Si vous ne voulez pas de contrôler la vitesse, on laisse ces broches en haut, par exemple. nous en discuterons plus loin dans cette étape.
Nous allons faire une convention qui si nous voulons que le moteur gauche à courir vers l’avant, que nous devons configuration moteur + aussi haut et moteur-aussi bas. Pour exécuter sur la direction opposée, nous devons faire le contraire : moteur-haute et moteur + aussi bas.
La meilleure façon de réellement définir les entrées correctes pour le contrôle de la direction du moteur, est de les tester lorsque le moteur réel est Assemblée.
Nous allons assignés les GPIO pour entrées H-ponts :
- Moteur gauche +: GPIO.5
- Moteur gauche -: GPIO.6
- Moteur droit +: GPIO.13
- Moteur droit -: GPIO.19
Selon les hypothèses ci-dessus, une table de logique peut être construite avec les niveaux possibles à assigner à la GPIO (voir photo de la table). L’étape suivante consiste à créer des scripts shell pour exécuter les moteurs
Chaque fichier de script est essentiellement du 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 exécuter les moteurs « Forward », basée sur le tableau ci-dessus, nous devons créer le soufflet de fichier (utilisation le meilleur éditeur pour vous. J’utilise NANO pour cela) :
sudo nano forward.cgi
#! / bin/bash
GPIO -g écrire 5 1
GPIO -g écrire 6 0
GPIO -g écrire 13 1
GPIO -g écrire 19 0
.
Une fois que le script est créé, il faut lui donner permission à exécuter :
sudo chmod 755 forward.cgi
Maintenant, pour exécuter le script :
sudo./forward.cgi
4 LEDs ont été utilisés pour tester les scripts, les moteurs réels seront ajoutés sur un peu plus loin. Si les œuvres, le correspondant LEDs doit être sur (voir photo).
Notez que j’utilise .cgi comme 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.
Passait, la même idée s’impose pour les autres possibilités du tableau précédent :
sudo nano stop.cgi
#! / bin/bash
GPIO -g écrire 5 0
GPIO -g écrire 6 0
GPIO -g écrire 13 0
GPIO -g écrire 19 0
.
sudo nano reverse.cgi
#! / bin/bash
GPIO -g écrire 5 0
GPIO -g écrire 6 1
GPIO -g écrire 13 0
GPIO -g écrire 19 1
.
sudo nano left.cgi
#! / bin/bash
GPIO -g écrire 5 0
GPIO -g écrire 6 1
GPIO -g écrire 13 1
GPIO -g écrire 19 0
.
sudo nano right.cgi
#! / bin/bash
GPIO -g écrire 5 1
GPIO -g écrire 6 0
GPIO -g écrire 13 0
GPIO -g écrire 19 1
.
Une fois les scripts créés vous devez accorder les autorisations pour être exécutée, même comme l’a fait avec forward.cgi
sudo chmod 755 stop.cgi
sudo chmod 755 reverse.cgi
sudo chmod 755 left.cgi
sudo chmod 755 right.cgi
Maintenant, exécutez des tests pour vérifier que tout fonctionne :
./Forward.cgi
./Left.cgi
./Reverse.cgi
./Right.cgi
./Stop.cgi
C’est une bonne pratique que nous avons un répertoire spécifique pour les programmes utilisés et appelez-le « bin ». Donc, pour enregistrer les scripts que nous utiliserons dans le projet, nous devons créer un répertoire comme cgi-bin contenant au moins tous les scripts exécutables (fichiers binaires). Par exemple, /var/ www/cgi-bin.
Donc, nous allons créer le répertoire www dans var, où se situera le notre page Web et application, le répertoire cgi-bin avec les scripts :
sudo mkdir/var/www
sudo mkdir /var/ www/cgi-bin
Maintenant, nous allons déplacer tous les fichiers vers ce nouveau répertoire :
sudo mv /*.sgi /var/ www/cgi-bin
CD /var/ www/cgi-bin
À l’aide de la ligne commande ls, vous pouvez voir les fichiers créés (voir photo).
LS
Une dernière chose avant de passer à une autre étape. Si vous redémarrez le RPi, le GPIO retournera à leur état par défaut qui est entrée. Donc, nous devons changer le script /etc/rc.local qui est exécuté au démarrage de toute la framboise. Juste avant la dernière commande du script == > sortie 0, nous devons inclure les commandes du mode GPIO :
sudo nano /etc/rc.local
…
mode de GPIO -g 5 out
GPIO mode de g - 6 out
mode de GPIO -g 13 out
mode de GPIO -g 19 out
...
Exit 0
Maintenant, n’importe quand que cela commence à l’IPD, il sera prêt à contrôler les produits conçus.