IoT - contrôler un Robot de Pi framboise sur internet avec HTML et shell scripts seulement (3 / 9 étapes)

É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.

Articles Liés

Sans fil contrôler un Robot en utilisant Arduino et Modules RF !

Sans fil contrôler un Robot en utilisant Arduino et Modules RF !

/*Edit 05/05/2016Hé les gars, j'ai été occupé avec le Collège et ne pouvait pas répondre aux commments. La plupart de vous tous voulait le code et schémas faits un peu mieux alors j'ai fait les schémas sur Eagle 7.2.0 et téléchargées tout sur Github.
Comment utiliser une Wiimote pour contrôler un Robot de Lego Mindstorms NXT

Comment utiliser une Wiimote pour contrôler un Robot de Lego Mindstorms NXT

Tutoriel : comment utiliser une Wiimote pour contrôler un Lego Robot - les plus drôles vidéos clips sont ici cette vidéo va vous montrer comment utiliser une wiimote pour contrôler un Robot Lego Mindstorms NXT.Voici le lien vers Glovepie : http://car
Contrôler n’importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi)

Contrôler n’importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi)

Contrôler n'importe quel appareil électrique ou lumineux avec vous tablette ou smartphone (wifi) à l'aide d'arduino, Billy et un wemos / ESP8266 ConseilDans ce tutoriel nous allons faire quelque chose j'ai appeler un wifi contrôlée ac switch. (Mais i
Contrôler un Robot avec une télécommande Wii

Contrôler un Robot avec une télécommande Wii

Il s'agit d'un amusant petit projet qui utilise un Pi de framboise, un Robot de Finch et une télécommande Wii (Wiimote AKA), pour montrer certaines des choses que vous pouvez faire avec un pi framboise et/ou une Wii remote. Il utilise Python et la bi
Comment contrôler un Robot en utilisant une connexion série

Comment contrôler un Robot en utilisant une connexion série

Voici les instructions sur comment faire une connexion série entre un Pi de framboise et Arduino à l'aide d'un câble USB.  Lorsqu'une connexion série a été établie, il peut être utilisé pour contrôler tout ce que vous pouvez inventer.  Dans ce cas, j
Application Android pour contrôler un Robot 3DPrinted

Application Android pour contrôler un Robot 3DPrinted

Cette instructables est faite pour expliquer comment contrôler l'un de mes EEZYbotARM ou EEZYbotDELTA à l'aide d'un Smartphone (ou une tablette). Cela se fait par carte Arduino équipé d'un module bluetooth et une application Android fait avec MIT App
Contrôler toute distance d’une framboise Pi (et Echo Amazon!)

Contrôler toute distance d’une framboise Pi (et Echo Amazon!)

Station météo de ma femme avait été s'écraser parfois, et nous nous dirigeons sur les vacances d'été bientôt, donc elle m'a demandé un moyen d'allumer à distance le contrôleur de station météo. Je possède déjà quelques prises de commutateur intellige
Contrôler un Robot NXT avec Android et HTML5

Contrôler un Robot NXT avec Android et HTML5

le but de ce projet consiste à connecter un vieux smartphone Android (p. ex. HTC Magic) à un robot Lego NXT, afin d'obtenir un robot de caméra WIFI GPRS UMTS disponible global.La meilleure façon de surveiller votre maison où que vous soyez dans le mo
JOUER avec le PORT parallèle (créer votre propre interface graphique avec TURBO C pour contrôler votre ROBOT

JOUER avec le PORT parallèle (créer votre propre interface graphique avec TURBO C pour contrôler votre ROBOT

Cette instructable fait partie de mon livre, jouant avec le port parallèle. dans ce instructable nous allons aller pour en savoir plus sur Turbo c communication avec le port parallèle. permet de démarrer...Partie requis1. LED (diodes électroluminesce
Contrôle JavaScript robotique et basée sur un navigateur Arduino

Contrôle JavaScript robotique et basée sur un navigateur Arduino

vos connaissances en développement web et JavaScript permettent de contrôler les projets d'Arduino et même robots (nœud + robots = nodebots) !Ceci est rendu facile avec node.js, Firmata et Johnny-cinq. Let's get started ! Johnny-cinq logo par Mike Sg
Bibliothèque PIC de Microchip pour contrôler une 20 de 4 LCD sur I2C

Bibliothèque PIC de Microchip pour contrôler une 20 de 4 LCD sur I2C

Ce Instructable présente une bibliothèque de « C » pour contrôler un seul 20 par 4 LCD basée sur le contrôleur LCD HD44780 sur I2C à l'aide de l'extenseur de IO 8 bits NXP PCF8574 distant. L'écran LCD est configuré pour l'interfaçage de 4 bits et peu
Contrôler un pêne dormant électronique de Schlage avec un arduino !

Contrôler un pêne dormant électronique de Schlage avec un arduino !

Cette instructable vous guidera dans le processus de démantèlement et de piratage d'un pêne dormant électronique de Schlage afin de le contrôler avec un arduino.Etape 1: Acheter le verrou et le décompresser j'ai eu le mien en vente pour 99 $ à Lowe.R
ITO : Raspberry Pi Robot avec commande à distance caméra Pan/Tilt et de Streamer de la vidéo sur internet

ITO : Raspberry Pi Robot avec commande à distance caméra Pan/Tilt et de Streamer de la vidéo sur internet

(Si vous aimez ce Instructable, n'oubliez pas de voter là-dessus - au-dessus : drapeau de coin à droite. Il est en concurrence sur l'INTERNET des objets et des concours d'automatisation. Merci beaucoup! ;-)Il s'agit d'une deuxième partie de mon précé
ESP8266 de contrôle de la voix (WEMOS D1mini) sur Internet (sans MQTT)

ESP8266 de contrôle de la voix (WEMOS D1mini) sur Internet (sans MQTT)

J'aime faire des choses simples...Voici un moyen simple de contrôler vos ESP de via internet sans déconner avec trop de code ou lente MQTT courtiersÉtape 1: pièces :1. Wemos d1 mini2. TP Link routeur3. n'importe quel smartphone (j'ai utilisé iphone 5