Tabla de contenido:
- Paso 1: creación de la aplicación en su teléfono
- Paso 2: Preparar el PI
- Paso 3: creación de su proyecto
- Paso 4: MyProject.js
- Paso 5: MyProject en Arduino
- Paso 6: cableado
- Paso 7: ¡Eso es
Video: Raspberry PI y Arduino - Blynk Stepper Control: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
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
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
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:
Control de persianas con ESP8266, integración de Google Home y Openhab y control web: 5 pasos (con imágenes)
Control de persianas con ESP8266, integración de Google Home y Openhab y Webcontrol: en este Instructable, les muestro cómo agregué automatización a mis persianas. Quería poder agregar y quitar la automatización, por lo que toda la instalación se engancha. Las partes principales son: Motor paso a paso Controlado por controlador paso a paso bij ESP-01 Engranaje y montaje
Shadow Light Box - Control por control remoto IR con Arduino: 8 pasos (con imágenes)
Caja de luz de sombra: control por control remoto por infrarrojos con Arduino: esta instrucción le guiará sobre cómo hacer una caja de luz de sombra para la próxima Navidad. Puedes hacerla tú mismo para decorar tu habitación o hacerla para tu amigo como regalo. Esta caja de sombra puede hacer varios tipos de color mezclando colores por rojo, azul, verde col
Control de brillo Control LED basado en PWM mediante botones, Raspberry Pi y Scratch: 8 pasos (con imágenes)
Control de brillo Control de LED basado en PWM usando botones, Raspberry Pi y Scratch: Estaba tratando de encontrar una manera de explicar cómo funcionaba PWM a mis estudiantes, así que me propuse la tarea de intentar controlar el brillo de un LED usando 2 botones. - un botón aumenta el brillo de un LED y el otro lo atenúa. Para programar
Control de 8 relés con NodeMCU y receptor de infrarrojos mediante WiFi, control remoto de infrarrojos y aplicación de Android: 5 pasos (con imágenes)
Control de 8 relés con NodeMCU y receptor de infrarrojos mediante WiFi, control remoto por infrarrojos y aplicación de Android: Control de 8 interruptores de relé con nodemcu y receptor de infrarrojos a través de wifi y control remoto por infrarrojos y aplicación de Android. El control remoto por infrarrojos funciona independientemente de la conexión wifi. AQUÍ
Liberación del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): 6 pasos (con imágenes)
Lanzamiento del cable del control remoto Olympus Evolt E510 (versión 2 con enfoque automático en el control remoto): Ayer construí un control remoto simple de un botón para mi Olympus E510. La mayoría de las cámaras tienen un botón disparador (el que presiona para tomar una foto) que tiene dos modos. Si se presiona suavemente el botón, la cámara se enfocará automáticamente y medirá la luz