Table des matières:

Raspberry PI & Arduino - Blynk Stepper Control : 7 étapes (avec photos)
Raspberry PI & Arduino - Blynk Stepper Control : 7 étapes (avec photos)

Vidéo: Raspberry PI & Arduino - Blynk Stepper Control : 7 étapes (avec photos)

Vidéo: Raspberry PI & Arduino - Blynk Stepper Control : 7 étapes (avec photos)
Vidéo: Motor control with Raspberry Pi | L298N motor driver with Raspberry Pi 2024, Novembre
Anonim
Raspberry PI & Arduino - Contrôle pas à pas Blynk
Raspberry PI & Arduino - Contrôle pas à pas Blynk

Ce tutoriel va vous montrer comment contrôler un moteur pas à pas avec un Arduino, un Raspberry Pi et l'application Blynk.

En bref, l'application envoie des requêtes au Raspberry Pi via des broches virtuelles, le Pi envoie ensuite un signal HAUT/BAS à l'Arduino et l'Arduino s'occupe ensuite du moteur pas à pas.

Je pense qu'il est plus facile d'utiliser cette approche car la plupart des gens sont habitués à travailler avec Arduino et pas beaucoup avec node.js sur le Raspberry Pi.

Composants nécessaires pour cela:

- Raspberry PI (j'utilise le modèle Raspberry Pi 3 b)

- Arduino (j'utilise un Arduino Nano)

- Servomoteur (j'utilise un 28BYJ-48 5VDC avec son contrôleur)

- Quelques fils de liaison

- Source d'alimentation (5VDC 2A.)

L'esquisse Arduino et le code Node.js sont disponibles en téléchargement. Il suffit de rechercher les fichiers.

Étape 1: Création de l'application sur votre téléphone

Création de l'application sur votre téléphone
Création de l'application sur votre téléphone
Création de l'application sur votre téléphone
Création de l'application sur votre téléphone

Téléchargez Blynk depuis l'AppStore ou GooglePlay

Ouvrez l'application et créez un utilisateur ou connectez-vous avec facebook.

- Créer un nouveau projet

Nommez votre projet: MyProject

Choisissez l'appareil: Rasapberry Pi 3 B

Type de connexion: Wifi (ou Ethernet si votre Pi est câblé à votre réseau)

- Cliquez sur Créer

Vérifiez votre e-mail pour votre jeton

(ressemble à ceci 3aa19bb8a9e64c90af11e3f6b0595b3c)

Ce jeton est lié à votre application actuelle. Si vous créez une autre application, vous générerez un autre jeton.

Dans l'application, ajoutez les widgets suivants (voir image)

- Ajouter 3 boutons

- Ajouter 1 écran LCD

- Modifier le bouton

nommez le premier Command1, définissez la broche comme broche virtuelle 1 et définissez le mode sur SWITCH

nommez le second CW, définissez la broche comme broche virtuelle 2 et définissez le mode sur PUSH

nommez le troisième CCW, définissez la broche comme broche virtuelle 3 et définissez le mode sur PUSH

- Modifier l'écran LCD

définissez les broches sur la broche virtuelle 4 et la broche virtuelle 5 et définissez le mode sur PUSH

Étape 2: Préparation du PI

Tout d'abord, vous devez installer Node.js. Avant de mettre à jour Node.js, assurez-vous de supprimer les anciennes versions:

Ouvrez le Terminal et tapez

sudo apt-get purger le nœud nodejs

node.js -ysudo apt-get suppression automatique

Installation automatique de Node.js Ajoutez des référentiels:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

Installer Node.js

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install build-essential nodejs -y

Une fois Node.js installé, installez Blynk

sudo npm installer blynk-library -g

sudo npm installer onoff -g

Étape 3: Création de votre projet

Commencez par changer de répertoire (commande cd) vers le répertoire pi

Ouvrez Terminal et tapez:

cd /accueil/pi/

Ensuite, créez un répertoire où résidera votre projet

mkdir MonProjet

Changez de répertoire en MyProject, tapez ce qui suit dans le Terminal

cd MonProjet

Vérifiez le contenu du répertoire (il doit être vide). Tapez simplement ce qui suit dans le terminal

ls

Ensuite, tapez ce qui suit pour créer la description de votre projet (package.json)

initialisation npm

Tapez simplement le nom du projet, l'auteur, la version, etc…

Une fois cela fait, installez la bibliothèque Blynk, la bibliothèque onoff et la bibliothèque system-sleep dans VOTRE répertoire de projet. Tapez ce qui suit dans votre terminal

npm install blynk-library --save

npm install onoff --save

npm install system-sleep --save

Enfin, créez votre fichier.js (Ce sera là que résidera votre code). Tapez ce qui suit dans le terminal

nano MonProjet.js

Une fois que vous avez exécuté cette commande, nano (éditeur de texte de terminal) s'ouvrira.

Étape 4: MonProjet.js

En nano, écrivez les lignes de code suivantes

var Blynk = require('blynk-library');

var AUTH = ' ****************** '; C'EST VOTRE JETON

var blynk = nouveau Blynk. Blynk(AUTH);

var Gpio = require('onoff'). Gpio,

command1 = new Gpio (18, 'out'), // Sera connecté à Arduino D2

commandCW = new Gpio (23, 'out'), // Sera connecté à Arduino D3

commandCCW = new Gpio(24, 'out'); // Sera connecté à Arduino D4

var sleep = require('system-sleep');

var v1 = nouveau blynk. VirtualPin(1); // ceci est votre bouton Command1 dans l'application

var v2 = nouveau blynk. VirtualPin(2); // ceci est votre bouton CW dans l'application

var v3 = nouveau blynk. VirtualPin(3); // ceci est votre bouton CCW dans l'application

var v4 = nouveau blynk. VirtualPin(4); //c'est votre ligne LCD 1 dans l'application

var v5 = nouveau blynk. VirtualPin(5); //c'est votre ligne LCD 2 dans l'application

v1.on('write', function (param) //Recherchez le bouton Command1 dans l'application

{

if (param == 1) //Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit

{

v4.write("Exécution"); //Ecrire "Executing" sur la première ligne de l'écran LCD

v5.write("Commande"); // Écrivez "Commande" sur la deuxième ligne de l'écran LCD

command1.writeSync(1); //Définir le GPIO18 (qui est la variable command1) à 1 (HIGH)

sommeil(4000); //Attendez 4 secondes

command1.writeSync(0); //Définir le GPIO18 (qui est la variable command1) à 0 (LOW)

v4.write("Terminé"); // Écrivez "Terminé" sur la première ligne de l'écran LCD

v5.write(" "); // Écrivez " " (rien) sur la deuxième ligne de l'écran LCD

v1.write(0); // Écrivez 0 sur votre bouton Command1, cela le réinitialisera à la position OFF

}

});

v2.on('write', function (param) //Recherche le bouton CW dans l'application

{

if (param == 1) //Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit

{

commandCW.writeSync(1); //Définir le GPIO23 (qui est la variable commandCW) à 1 (HIGH)

}

else if (param == 0) //Si le bouton n'est pas enfoncé (ce qui est 0) alors procédez comme suit

{

commadCW.writeSync(0); //Définir le GPIO23 (qui est la variable commandCW) à 0 (LOW)

}

});

v3.on('write', function (param) //Recherchez le bouton CCW dans l'application

{

if (param == 1) // Si le bouton est enfoncé (ce qui correspond à 1), procédez comme suit

{

commandCCW.writeSync(1); //Définir le GPIO24 (qui est la variable commandCCW) à 1 (HIGH)

}

else if (param == 0) //Si le bouton n'est pas enfoncé (ce qui est 0) alors procédez comme suit

{

commandCCW.writeSync(0); //Définir le GPIO24 (qui est la variable commandCCW) à 1 (HIGH)

}

});

Enregistrez-le et quittez nano

- pour enregistrer CTRL+O

- pour quitter CTRL+X

Vous avez terminé avec le Raspberry Pi.

Maintenant, testez-le pour voir s'il y a des erreurs (la plupart du temps, ce sont des fautes de frappe)

Pour le tester, tapez simplement ce qui suit dans votre Terminal

nœud MonProjet.js

Vous devriez obtenir une sortie qui ressemble à ceci

Mode OnOff

Connexion à: blynk-cloud.com 8441

Autorisation SSL…

Autorisé

Étape 5: MyProject dans Arduino

Ok donc maintenant nous avons 2/3 choses terminées !

Il ne nous reste plus qu'à écrire du code pour l'Arduino.

- Créez une nouvelle esquisse Arduino et tapez le code suivant.

#comprendre

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048

//Les connexions des broches doivent être les broches 8, 9, 10, 11 connectées

// vers le pilote de moteur In1, In2, In3, In4

// Ensuite, les broches sont entrées ici dans la séquence 1-3-2-4 pour un séquençage correct

Stepper small_stepper(STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

void setup()

{

pinMode(2, INPUT);

pinMode(3, INPUT);

pinMode(4, ENTREE);

//(La bibliothèque pas à pas définit les broches comme sorties)

}

boucle vide()

{

Command1 = digitalRead(2);

CommandCW = digitalRead(3);

CommandCCW = digitalRead(4);

if(Commande1 == 0)

{

//ne fais rien

}

autre

{

ExecutionFunction();

}

si(CommandeCW == 1)

{

small_stepper.setSpeed(700);

small_stepper.step(-1);

retard(1);

}

if(CommandeCCW ==1)

{

small_stepper.setSpeed(700);

small_stepper.step(1);

retard(1);

}

}

void ExecutionFunction()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotation CCW 1/4 de tour

small_stepper.setSpeed(700);

small_stepper.step(Steps2Take); // Vous pouvez remplacer Steps2Take par n'importe quelle valeur entre 0 et 2048

retard (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Rotation CW 1/4 de tour

small_stepper.setSpeed(700);

small_stepper.step(Steps2Take); // Vous pouvez remplacer Steps2Take par n'importe quelle valeur entre 0 et 2048

retard (2000);

}

Compilez et téléchargez sur votre Arduino.

Maintenant, assurez-vous de tout connecter correctement ! Voir l'étape suivante pour le câblage.

Étape 6: Câblage

Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage
Câblage

Connectez Arduino D3 à RaspberryPi GPIO18 (qui est en fait la broche 12)

Connectez Arduino D4 à RaspberryPi GPIO23 (qui est en fait la broche 16)

Connectez Arduino D4 à RaspberryPi GPIO24 (qui est en fait la broche 18)

Connectez Arduino GND à RaspberryPi GND (broche 6)

Connectez Arduino D8 au contrôleur pas à pas In1

Connectez Arduino D9 au contrôleur pas à pas In2

Connectez Arduino D10 au contrôleur pas à pas In3

Connectez Arduino D11 au contrôleur pas à pas In4

Connectez 5VDC à Arduino, Raspberry Pi et contrôleur pas à pas

Étape 7: C'est tout

Regardez la vidéo, et vous devriez avoir terminé !

Merci et profitez-en!

Conseillé: