Tabla de contenido:

Raspberry PI y Arduino - Blynk Stepper Control: 7 pasos (con imágenes)
Raspberry PI y Arduino - Blynk Stepper Control: 7 pasos (con imágenes)

Video: Raspberry PI y Arduino - Blynk Stepper Control: 7 pasos (con imágenes)

Video: Raspberry PI y Arduino - Blynk Stepper Control: 7 pasos (con imágenes)
Video: How to control Nema17 stepper motor with L298n motor driver. 2024, Noviembre
Anonim
Raspberry PI y Arduino - Blynk Stepper Control
Raspberry PI y Arduino - Blynk Stepper Control

Este tutorial le mostrará cómo controlar un motor paso a paso con un Arduino, un Raspberry Pi y la aplicación Blynk.

En pocas palabras, la aplicación envía solicitudes a la Raspberry Pi a través de Pines virtuales, la Pi luego envía la señal ALTA / BAJA al Arduino y el Arduino luego se ocupa del motor paso a paso.

Creo que es más fácil usar ese enfoque ya que la mayoría de la gente está acostumbrada a trabajar con Arduino y no mucho con node.js en la Raspberry Pi.

Componentes necesarios para esto:

- Raspberry PI (estoy usando el modelo b de Raspberry Pi 3)

- Arduino (estoy usando un Arduino Nano)

- Servomotor (estoy usando un 28BYJ-48 5VDC con su controlador)

- Algunos cables de puente

- Fuente de alimentación (5VDC 2A.)

El boceto de Arduino y el código de Node.js están disponibles para descargar. Solo busca los archivos.

Paso 1: creación de la aplicación en su teléfono

Creación de la aplicación en su teléfono
Creación de la aplicación en su teléfono
Creación de la aplicación en su teléfono
Creación de la aplicación en su teléfono

Descarga Blynk desde AppStore o GooglePlay

Abra la aplicación y cree un usuario o inicie sesión con facebook.

- Crea un nuevo proyecto

Nombra tu proyecto: MyProject

Elija dispositivo: Rasapberry Pi 3 B

Tipo de conexión: Wifi (o Ethernet si su Pi está conectado a su red)

- Haga clic en Crear

Verifique su correo electrónico para su Token

(se parece a esto 3aa19bb8a9e64c90af11e3f6b0595b3c)

Este token está vinculado con su aplicación actual. Si hace otra aplicación, generará otro token.

En la aplicación agregue los siguientes widgets (ver imagen)

- Agregar 3 botones

- Agregar 1 LCD

- Editar el botón

nombre el primero Command1, establezca el Pin como Pin virtual 1 y establezca el Modo como INTERRUPTOR

nombre el segundo CW, configure el Pin como Virtual Pin 2 y configure el Modo como PUSH

nombre el tercero CCW, configure el Pin como Virtual Pin 3 y configure el Modo como PUSH

- Editar la pantalla LCD

configure los Pines como Virtual Pin 4 y Virtual Pin 5 y configure el Modo en PUSH

Paso 2: Preparar el PI

Primero, debe instalar Node.js. Antes de actualizar Node.js, asegúrese de eliminar las versiones anteriores:

Abra Terminal y escriba

sudo apt-get purge node nodejs

node.js -ysudo apt-get autoremove

Instalación automática de Node.js Agregue repositorios:

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

Instalar Node.js

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

sudo apt-get install build-essential nodejs -y

Una vez que Node.js esté instalado, instale Blynk

sudo npm instalar blynk-library -g

sudo npm install onoff -g

Paso 3: creación de su proyecto

Comience cambiando el directorio (comando cd) al directorio pi

Abra Terminal y escriba:

cd / inicio / pi /

Luego, crea un directorio donde residirá tu proyecto

mkdir MyProject

Cambie el directorio a MyProject, escriba lo siguiente en la Terminal

cd MyProject

Verifique el contenido del directorio (debe estar vacío). Simplemente escriba lo siguiente en la Terminal

ls

A continuación, escriba lo siguiente para crear la descripción de su proyecto (package.json)

npm init

Simplemente escriba el nombre del proyecto, el autor, la versión, etc.

Una vez hecho esto, instale la biblioteca Blynk, la biblioteca onoff y la biblioteca system-sleep en SU directorio de proyecto. Escriba lo siguiente en su terminal

npm install blynk-library --save

npm install onoff --save

npm install system-sleep --save

Finalmente, cree su archivo.js (aquí será donde residirá su código). Escriba lo siguiente en la Terminal

nano MyProject.js

Una vez que ejecute ese comando, se abrirá nano (editor de texto de terminal).

Paso 4: MyProject.js

En nano, escribe las siguientes líneas de código

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

var AUTH = '******************'; ESTA ES TU TOKEN

var blynk = nuevo Blynk. Blynk (AUTH);

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

command1 = new Gpio (18, 'out'), // Se conectará a Arduino D2

commandCW = new Gpio (23, 'out'), // Se conectará a Arduino D3

commandCCW = new Gpio (24, 'out'); // Estará conectado a Arduino D4

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

var v1 = nuevo blynk. VirtualPin (1); // este es su botón Command1 en la aplicación

var v2 = nuevo blynk. VirtualPin (2); // este es su botón CW en la aplicación

var v3 = nuevo blynk. VirtualPin (3); // este es su botón CCW en la aplicación

var v4 = nuevo blynk. VirtualPin (4); // esta es su línea LCD 1 en la aplicación

var v5 = nuevo blynk. VirtualPin (5); // esta es su línea LCD 2 en la aplicación

v1.on ('write', function (param) // Busca el botón Command1 en la aplicación

{

if (param == 1) // Si se presiona el botón (que es 1), haga lo siguiente

{

v4.write ("Ejecutando"); // Escriba "Ejecutando" en la primera línea de la pantalla LCD

v5.write ("Comando"); // Escribe "Comando" en la segunda línea de la pantalla LCD

command1.writeSync (1); // Establezca el GPIO18 (que es la variable command1) en 1 (HIGH)

dormir (4000); // Espera 4 segundos

command1.writeSync (0); // Establezca el GPIO18 (que es la variable command1) en 0 (LOW)

v4.write ("Listo"); // Escriba "Listo" en la primera línea de la pantalla LCD

v5.write (""); // Escribe "" (nada) en la segunda línea de la pantalla LCD

v1.write (0); // Escriba 0 en su botón Command1, que lo restablecerá a la posición OFF

}

});

v2.on ('write', function (param) // Busca el botón CW en la aplicación

{

if (param == 1) // Si se presiona el botón (que es 1), haga lo siguiente

{

commandCW.writeSync (1); // Establecer GPIO23 (que es comando variable CW) a 1 (ALTO)

}

else if (param == 0) // Si el botón no está presionado (que es 0), haga lo siguiente

{

commadCW.writeSync (0); // Establecer GPIO23 (que es comando variable CW) a 0 (LOW)

}

});

v3.on ('write', function (param) // Busca el botón CCW en la aplicación

{

if (param == 1) // Si se presiona el botón (que es 1), haga lo siguiente

{

comandoCCW.writeSync (1); // Establezca GPIO24 (que es el comando variable CCW) en 1 (ALTO)

}

else if (param == 0) // Si el botón no está presionado (que es 0), haga lo siguiente

{

commandCCW.writeSync (0); // Establezca GPIO24 (que es el comando variable CCW) en 1 (ALTO)

}

});

Guárdalo y sal de nano

- para guardar CTRL + O

- para salir CTRL + X

Ha terminado con la Raspberry Pi.

Ahora pruébelo para ver si tiene algún tipo de error (la mayoría de las veces son errores tipográficos)

Para probarlo, simplemente escriba lo siguiente en su Terminal

nodo MyProject.js

Debería obtener una salida que se vea así

Modo OnOff

Conectando a: blynk-cloud.com 8441

Autorización SSL…

Autorizado

Paso 5: MyProject en Arduino

¡Bien, ahora tenemos 2/3 cosas completadas!

Ahora solo necesitamos escribir un código para Arduino.

- Cree un nuevo boceto de Arduino y escriba el siguiente código.

#incluir

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Las conexiones de los pines deben ser los pines 8, 9, 10, 11 conectados

// al controlador del motor In1, In2, In3, In4

// Luego, los pines se ingresan aquí en la secuencia 1-3-2-4 para una secuencia adecuada

Paso a paso small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

configuración vacía ()

{

pinMode (2, ENTRADA);

pinMode (3, ENTRADA);

pinMode (4, ENTRADA);

// (Stepper Library establece pines como salidas)

}

bucle vacío ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

si (Command1 == 0)

{

//hacer nada

}

demás

{

ExecutionFunction ();

}

si (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

retraso (1);

}

si (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

retraso (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Gire CCW 1/4 de vuelta

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Puede reemplazar Steps2Take con cualquier valor entre 0 y 2048

retraso (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Gire CW 1/4 de vuelta

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Puede reemplazar Steps2Take con cualquier valor entre 0 y 2048

retraso (2000);

}

Compile y cargue en su Arduino.

¡Ahora asegúrate de conectar todo correctamente! Vea el siguiente paso para el cableado.

Paso 6: cableado

Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado
Alambrado

Conecte Arduino D3 a RaspberryPi GPIO18 (que en realidad es el pin 12)

Conecte Arduino D4 a RaspberryPi GPIO23 (que en realidad es el pin 16)

Conecte Arduino D4 a RaspberryPi GPIO24 (que en realidad es el pin 18)

Conecte Arduino GND a RaspberryPi GND (pin 6)

Conecte Arduino D8 al controlador paso a paso In1

Conecte Arduino D9 al controlador paso a paso In2

Conecte Arduino D10 al controlador paso a paso In3

Conecte Arduino D11 al controlador paso a paso In4

Conecte 5VDC a Arduino, Raspberry Pi y controlador paso a paso

Paso 7: ¡Eso es

¡Mira el video, y deberías haber terminado!

Gracias y disfruta!

Recomendado: