Está en la página 1de 11

Remote Control of DC Motor by Android Applications

Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

CONTROL REMOTO DE UNA MINI PLATAFORMA DE TIJERA ACCIONADO


POR UN MOTOR DC CONTROLADO POR ARDUINO
1. Resumen
El objetivo del proyecto es implementar un control remoto de una mini
plataforma de tijera accionada por un motor de corriente continua, cuyo
dispositivo de control remoto es un teléfono móvil con Android, con canal de
comunicación Bluetooh y con un controlador de motor DC basado en Arduino
UNO R3. El proyecto consta de los siguientes desarrollos:
1) Aplicación Android que implementa el control remoto, descrito en el
documento: Remote Control of DC Motor-Section-I-Android Applications
by AppInventor.pdf
2) Controlador de un motor DC basado en Arduino, descrito en el presente
documento: Remote Control of DC Motor-Section-II-Controller DC Motor
by Arduino.pdf

2. Diagrama de contexto

3. Funciones de los componentes del sistema de control


Cada uno de los componentes del sistema de control cumple funciones claramente
definidos y todos contribuyen con el objetivo de control. A continuación de describe
brevemente las funcionalidades de cada uno de ellas.

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


1 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

El dispositivo móvil tiene las siguientes funcionalidades:


 Conectar y desconectar el canal Bluetooth con Arduino (HC-
06)
 Generar los comandos que serán enviados a Arduino: Subir,
Bajar o detener la mini plataforma que es accionado por un
motor DC.
 Cambiar la velocidad del motor DC (dentro de un rango
predefinido).

El canal de comunicación Bluetooth establece el


enlace de comunicación inalámbrica entre el
dispositivo móvil y el Bluetooth shield de Arduino.

El Bluetooth shield (HC-06) tiene la funcionalidad de recibir los


comandos enviados desde el dispositivo móvil y transferirlo al
controlador Arduino.

El controlador Arduino interpreta los comandos


(Subir, Bajar, detener, aumentar o disminuir la
velocidad del motor) e invoca las funciones del
controlador para que se ejecuten las acciones
correspondientes.

El driver del motor DC (L293D), conocido como puente H, tiene


la función de generar la señal de control PWM con el ciclo de
trabajo definido para controlar el giro del motor, la misma que
se expresa en las acciones de subir, bajar o detener la
plataforma de tijera.

El motor DC es el actuador y tiene la función de


transformar la energía eléctrica en energía mecánica,
específicamente expresada en el movimiento de la mini
plataforma de tijera.

Una plataforma de tijera o mesa elevadora es una


herramienta que permite transportar objetos a cualquier
altura dentro de su rango <altura mínima, altura
máxima>, ejecutando un movimiento vertical.

Las partes básicas de una mesa elevadora son:


 La base
 Las tijeras
 La plataforma

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


2 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

 El accionador (en nuestro caso, un motor DC)


 La unidad de control (en nuestro caso, una placa
Arduino).

4. Protocolo de comunicaciones
Crear y definir un protocolo de comunicación es un aspecto muy importante en
todo proceso de comunicación. En nuestro caso, para el intercambio de
mensajes se define la siguiente sintaxis:

A continuación se detalla la semántica:


Elemento Descripción Valores
StartCommand Identifica el inicio del comando Carácter: *

Velocity Establece el valor de la velocidad del motor, Desde 225 hasta


dentro de un rango predefinido (obtenido de 255
manera experimental). Permite:
 Incrementar la velocidad
 Decrementar la velocidad
Action Expresa las acciones que se pueden ejecutar Subir : 20
sobre la plataforma Bajar : 10
 Subir Parar : 00
 Bajar
 Parar
EndCommand Identifica el fin del comando Carácter: #
Separator Permite separar cada una de los elementos del Carácter: |
comando de control.

Ejemplo:
El motor debe subir a una velocidad de 250.
Comando: “*|250|20|#”

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


3 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

5. Desarrollo del Controlador de Motor DC con Arduino


Proyecto Fritzing: Remote Control of DC Motor by Android Applications
http://fritzing.org/projects/remote-control-of-dc-motor-by-android-
applications

Componentes de Control
Los componentes del sistema de control son:
 Bluetooth shield (HC-06)
 Controlador Arduino
 Driver del motor DC (L293D)
 Motor DC de 12 V

Vista física Diagrama electrónico

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


4 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

Diseño de la maqueta física


El diseño del sistema controlador lo realizamos con Fritzing.

Circuito electrónico del controlador

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


5 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

El sistema de control implementado

Programación del Controlador


El desarrollo del controlador del motor DC se realiza en el IDE Arduino.

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


6 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

Variables y Constantes

En la parte inicial del programa se definen e inicializan las constantes y variables


globales.

setup()

Se inicializan los pines de salida PWM de Arduino para el control del motor DC.

loop()

Es el bloque principal del controlador y realiza las siguientes funciones:

 Recibir la trama del comando enviado por el control remoto (Aplicación basado en
Android).

 Identificar el valor de la velocidad


 Identificar el tipo de acción a ejecutarse

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


7 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

 Enviar el comando y la velocidad al driver del motor DC.

Función del controlador:

void setMotorDriver(int command, int pwmSignal)

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


8 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

Funciones que implementan las acciones: subir, bajar y parar

void downPlatform(int pwmSignal)


void upPlatform(int pwmSignal)
void stopPlatform()

Control de velocidad

El control de velocidad está basado en PWM, cuya técnica reside en modificar el ciclo
de trabajo que se traduce en mayor o menor energía eléctrica que debe aplicarse al
motor DC, en consecuencia, el motor varia de velocidad en función directa a la señal
PWM.

Para el control de velocidad se utiliza la función:

 analogWrite (pin, valor)

que permite escribir un “valor” analógico (señal PWM) a la salida “pin” de Arduino.
Esta funcionalidad nos permite manejar un motor a diferentes velocidades.
Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496
9 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

En nuestro caso, estamos utilizando las salidas D9 PWM y D10 PWM de Arduino y se
aplican al driver L293D.

El driver del motor L293D recibe las dos señales PWM y genera el voltaje resultante
que es aplicado al motor DC; propagando el movimiento mecánico a la plataformatipo
tijera.

Ejecución del controlador

Durante las pruebas del controlador se activó el “Monitor Serie” para verificar la
llegada de los comandos provenientes del control remoto Android.

Los comando enviados desde la aplicación Android (SLT_CONTROL) son correctamente


interpretados y por ende, el controlador ejecuta las acciones correctamente.

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


10 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications
Remote Control of DC Motor by Android Applications
Francisco Marcos Rodríguez Rivera - fran.rodriver@gmail.com

La plataforma desplegada a diversas alturas.

6. Referencias
Proyecto ArduDroid escrito por Hazim Bitar,
http://www.techbitar.com/ardudroid-simple-bluetooth-control-for-arduino-
and-android.html

Control velocidad y sentido de giro de un motor DC


http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/

AppInventor.org
http://www.appinventor.org/

Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496


11 Nombre del Proyecto: SLT_CONTROL

Proyecto Fritzing: Remote Control of DC Motor by Android Applications


http://fritzing.org/projects/remote-control-of-dc-motor-by-android-applications

También podría gustarte