+ All Categories
Home > Documents > Remote Control of DC Motor by Android Applications

Remote Control of DC Motor by Android Applications

Date post: 06-Jan-2017
Category:
Upload: duongbao
View: 224 times
Download: 2 times
Share this document with a friend
13
1 Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected] 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 presente 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 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.
Transcript
Page 1: Remote Control of DC Motor by Android Applications

1Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

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

presente 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

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.

Page 2: Remote Control of DC Motor by Android Applications

2Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

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

Page 3: Remote Control of DC Motor by Android Applications

3Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

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, dentro de un rango predefinido (obtenido de manera experimental). Permite: Incrementar la velocidad Decrementar la velocidad

Desde 225 hasta 255

Action Expresa las acciones que se pueden ejecutar sobre la plataforma Subir Bajar Parar

Subir : 20 Bajar : 10 Parar : 00

EndCommand Identifica el fin del comando Carácter: #

Separator Permite separar cada una de los elementos del comando de control.

Carácter: |

Ejemplo:

El motor debe subir a una velocidad de 250.

Comando: “*|250|20|#”

Page 4: Remote Control of DC Motor by Android Applications

4Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

5. Desarrollo del Control Remoto con AppInventor

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

Nombre del Proyecto: SLT_CONTROL

Diseñando los componentes

Para nuestra aplicación SLT_CONTROL (Scissor Lift Table Remote Control)

tenemos que crear y definir el comportamiento de componentes visibles y no

visibles.

Componentes no visibles

Tipo de Componente

Paleta Nombre Propósito

BluetoothClient Connectivity BluetoothClient1 Conectar al Arduino

Notifier User Interface Notifier1 Mostrar los mensaje de alerta, error o informativo

Componentes visibles

Se crean los componentes visibles de la interfaz gráfica del usuario.

Tipo de Componente

Paleta Nombre Propósito

VerticalArrangement Layout VerticalArrangement1 Contenedor visual.

ListPicker User Interface

connectListPicker Seleccionar el dispositivo “Bluetooth” de Arduino y conectar el dispositivo.

Image User Interface

connectedImage Mostrar el estado “Conectado” del Bluetooth.

HorizontalArrangement Layout HorizontalArrangement2 Contenedor visual

Button upButton Elevar la plataforma

HorizontalArrangement Layout HorizontalArrangement1 Contenedor visual

Button User Interface

leftVelocityButton Disminuir la velocidad del motor

Button User Interface

stopButton Detener el movimiento del motor

Button User Interface

rightVelocityButton Incrementar la velocidad del motor

HorizontalArrangement Layout HorizontalArrangement3 Contenedor visual

Button disconnectButton Desconectar el Bluetooth.

Page 5: Remote Control of DC Motor by Android Applications

5Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Visor del proyecto en AppInventor

Añadiendo el comportamiento de los componentes

En esta sección se debe programar el comportamiento de cada uno de los

componentes, permitiendo que el usuario:

se conecte a la aplicación del controlador Arduino, mediante la

selección del Bluetooth HC-06 .

se desconecte de la aplicación del controlador.

ejecute las acciones de subir, bajar o detener la plataforma.

Incremente o disminuya la velocidad del motor.

Variables

Las variables definidas, creadas e inicializadas para el manejo del protocolo de

comunicaciones son:

velocityMin

separator

startCommand

velocityMax

endCommand

Page 6: Remote Control of DC Motor by Android Applications

6Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

command

action

velocity

Procedimientos

Los procedimientos definidos y creados para la generación de la trama del

comando y controlar los límites de la velocidad del motor, son:

generateCommand

velocityLimit

Page 7: Remote Control of DC Motor by Android Applications

7Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

ListPicker – Muestra los dispositivos Bluetooth

Bloque connectListPicker.BeforePicking presenta la lista de dispositivos

Bluetooth disponibles y el usuario debe seleccionar el Bluetooth

correspondiente al HC-06 de Arduino.

ListPicker – Establece la conexión del dispositivos Bluetooth

Bloque connectListPicker.AfterPicking permite establecer la conexión al HC-06

de Arduino. En caso de error, se presenta el mensaje de alerta “Unable to make

a Bluetooth connection”.

Page 8: Remote Control of DC Motor by Android Applications

8Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Bloque para subir la plataforma

El bloque upButton.Click permite establecer el valor del elemento Action= '20'

que significa “Subir (UP)”, generar la trama del comando con el procedimiento

generateCommand y, finalmente, se envía la trama por el Bluetooth.

Bloque para bajar la plataforma

El bloque downButton.Click permite establecer el valor del elemento Action=

'10' que significa “Bajar (DOWN)”, generar la trama del comando con el

procedimiento generateCommand y, finalmente, se envía la trama por el

Bluetooth.

Bloque para detener la plataforma

El bloque stopButton.Click permite: establecer el valor del elemento Action=

'00' que significa “Detener (STOP)”, generar la trama del comando con el

procedimiento generateCommand y, finalmente, se envía la trama por el

Bluetooth.

Page 9: Remote Control of DC Motor by Android Applications

9Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Bloque para incrementar la velocidad del motor

El bloque rightVelocityButton.Click permite: incrementar la velocidad del

motor, con paso incremental igual a 2, valida que la velocidad no se encuentre

por encima del rango permitido (255), generar la trama del comando con el

procedimiento generateCommand y, finalmente, se envía la trama por el

Bluetooth.

En caso que la velocidad configurada supere la velocidad máxima del motor, se

presentara un mensaje de alerta:

Y se establece la velocidad del motor al valor máximo permitido (255).

Bloque para decrementar la velocidad del motor

El bloque leftVelocityButton.Click permite: decrementar la velocidad del motor,

con paso decremental igual a 2, valida que la velocidad no se encuentre por

debajo del rango permitido (225), generar la trama del comando con el

procedimiento generateCommand y, finalmente, se envía la trama por el

Bluetooth.

En caso que la velocidad configurada sea menor que la velocidad mínima del

motor, se presentara un mensaje de alerta:

Y se establece la velocidad del motor al valor mínimo permitido (225).

Page 10: Remote Control of DC Motor by Android Applications

10Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Bloque para desconectar el Bluetooth

El bloque disconnectButton.Click permite realizar la desconexión del Bluetooth

HC-06.

6. Ejecución del Control Remoto

Pantallas del Control Remoto en el teléfono inteligente

Icono en la pantalla del smart-phone.

Pantalla principal del control remoto, con los botones para el control del motor.

Page 11: Remote Control of DC Motor by Android Applications

11Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Selección del Bluetooth HC-06 de Arduino.

Pantalla, después de conectarse al Bluetooth.

Para el control remoto del motor DC se debe accionar los botones de control:

Botón/Imagen Acción

Seleccionar el Bluetooth de Arduino y conectar el

dispositivo.

Subir (el motor gira en sentido horario)

Bajar (el motor gira en sentido anti horario)

Parar (el motor se detiene)

Incrementar la velocidad del motor

Decrementar la velocidad del motor

Desconectar el Bluetooth Arduino

Page 12: Remote Control of DC Motor by Android Applications

12Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

Componentes del controlador

Arduino, Driver del motor DC y el Motor DC (actuador)

La plataforma desplegado a diversas alturas.

Page 13: Remote Control of DC Motor by Android Applications

13Proyecto AppInventor: http://ai2.appinventor.mit.edu/#5199644048490496 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 - [email protected]

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


Recommended