Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ÍNDICE
LISTA DE FIGURAS Y ACRÓNIMOS
2 Brazo 1 B1
3 brazo 2 B2
4 Brazo 3 B3
5 Base garras BG
6 Engranaje Izq EI
7 Engranaje ED
Der
8 Pinza PZ
9 Arista diente AD
16 MG99R MGC
Codo
20 Rueda Izq RI
21 Rueda der RD
Arduino AM 2560
Mega2560
22
23 DRV8825 DRV8
24 Módulo HC05
Bluetooth
HC-05
BRAZO ROBÓTICO MÓVIL
OMNIDIRECCIONAL
INTRODUCCIÓN
El problema de estos brazos robóticos clásicos, es que tienen una gran envergadura y están
instalados en un espacio reservado, lo que hace imposible utilizarlos en otras áreas requeri-
das o tampoco llevarlos a trabajos externos.
La robótica colaborativa trajo un nuevo estilo de robots al ver este tipo de inconvenientes. Y
llevo a cabo el desarrollo de robots sin posición fija, que convierten a los robots en una herra-
mienta más, que se lleva con el usuario.
Esta es la motivación para el desarrollo del brazo robótico móvil. El construir una herramienta
que pueda ser utilzada en el lugar que el trabajador necesite, que tenga además libertad de
movimiento y que además pueda realizar trabajos de manera programable.
ANTECEDENTES
Un robot omnidireccional, también conocido como holonómico, es un tipo de robot móvil con
ruedas, cuya configuración le permite desplazarse en cualquier dirección sin la necesidad de
alcanzar previamente una orientación específica. Es decir, es capaz de realizar movimientos
en cualquiera de las componentes del plano, bien sean traslaciones (hacia adelante, en rever-
sa, laterales) o rotaciones, a partir de un estado de movilidad. Todo ello, a expensas de un
mayor grado de complejidad en su manejo.
Para un robot omnidireccional es imperativo contar con al menos tres ruedas activas en su ha-
ber. Es entonces un punto importante del diseño la decisión de cuántas ruedas emplear. Cada
una de las ruedas proporciona al robot una fuerza normal al eje del motor y paralela a la su-
perficie sobre la cual se desplaza. La suma de ellas permite la traslación y rotación de la es-
tructura. Por lo general, presentan una configuración mecánica de tres o cuatro ruedas. El pri-
mero es mecánicamente más simple que el segundo. No obstante, este último permite una
mayor aceleración al robot.
Los robots de cuatro ruedas tienen más tracción que los de tres, pues se adiciona la potencia
entregada por el motor adicional. Lo cual se traduce a menos deslizamiento en las ruedas si el
peso de la carga se encuentra distribuido uniformemente sobre ellas, un mayor consumo de
energía, costo y posiblemente, la necesidad de incorporar un sistema de suspensión para dis-
tribuir las fuerzas sobre las ruedas.
A la vez un brazo robótico es un tipo de brazo mecánico, normalmente programable, con fun-
ciones parecidas a las de un brazo humano; este puede ser la suma total del mecanismo o
puede ser parte de un robot más complejo. Las partes de estos manipuladores o brazos son
interconectadas a través de articulaciones que permiten tanto un movimiento rotacional (tales
como los de un robot articulado), como un movimiento transicional o desplazamiento líneo.
En este proyecto se combinarán ambos tipos de funciones para crear un robot colaborativo
móvil.
JUSTIFICACIÓN
El presente trabajo se realiza con un propósito didáctico en la carrera de Ingeniería Electrome-
cánica en la Universidad Mayor de San Simón. Para las materias de Robótica Industrial y Me-
catrónica. Podrían utilizar el sistema presentado para proyectos, clases y demostraciones. La
elección del tema referente a diseño, construcción y programación de un sistema automatiza-
do, tiene bases en los conocimientos y afinidades de quienes lo realizan. La problemática que
se pretende satisfacer, es la necesidad de generar diseños propios u originales de sistemas
de brazo robótico movible que puedan ser empleados en la enseñanza y en la investigación
.
OBJETIVO GENERAL
OBJETIVOS ESPECÍFICOS
MARCO TEÓRICO
ROBOT MOVIL
Un robot móvil es una máquina automática capaz de trasladarse en cualquier ambiente dado.
Los robots móviles tienen la capacidad de moverse en su entorno y no se fijan a una ubica -
ción física. En contraste, existen robots industriales fijos, que consisten en un brazo articula-
do (manipulador de multi-ligado) y una pinza de montaje (o efector de extremo) que está unida
a una superficie fija.
Los robots móviles son un foco importante de la investigación actual y casi de cada universi-
dad importante que tenga uno o más laboratorios que se centran en la investigación de robots
móviles. Los robots móviles se encuentran también en la industria y los servicios.
BRAZO ROBÓTICO
Definimos qué es un brazo robótico como un brazo mecánico que utiliza tecnología robótica y
que es totalmente programable en sus funciones. Los brazos manipuladores son autónomos y
han sido diseñados con el fin de imitar las capacidades de un brazo humano y la sensibilidad
de la mano de una persona. Los más extendidos son los robots articulados que se caracteri-
zan por trabajar sin fatiga en diferentes posturas y ángulos.
Destacan los robots de seis ejes en sus manipulaciones, capaces de realizar movimientos
rotacionales y de traslación. En este artículo encontraras información sobre modelos, fabri-
cantes y empresas instaladoras de brazos robóticos industriales en España.
Se utilizan principalmente para simular o amplificar la capacidad del brazo humano durante un
proceso de trabajo. Están especialmente indicados para automatizar procesos de trabajo me-
cánicos y repetitivos, y a poder ser con un gran volumen de trabajo mensual. Pueden trabajar
de manera independiente o pueden formar parte de un equipo en una línea de montaje, ya
sea con humanos o con otros robots.
Este tipo de programaciones suelen incorporar el sistema ROS, siendo uno de los más exten-
didos entre los desarrolladores.
Dentro de las ruedas especiales se encuentra la rueda de tipo Mecanum (Figura 13). Estas
son similares a las mostradas en la figura 11 con la salvedad que los rodillos poseen una rota -
ción de cierto ángulo, por lo general de 45o , respecto de la circunferencia exterior de la rue-
da.
Debido a la disposición de los rodillos en la rueda principal, la fuerza emitida sobre la rueda,
en la dirección de ésta, produce una fuerza sobre la superficie que se descompone en dos
vectores de fuerza: uno perpendicular al eje del rodillo y el segundo paralelo al eje del rodillo
(ver gura 14) [17].
A partir de la descomposición de la fuerza en las componentes A y B en la gura 14, se obser-
va que solamente la componente A brinda un momento al robot ya que la componente B brin-
da únicamente un momento al rodillo produciendo su rotación. Esto concluye en que el mo-
mento que esta rueda brinda al vehículo posee una dirección con un ángulo respecto de la
rueda. [22] En la gura se puede observar la disposición de estas ruedas en un robot de cuatro
ruedas. Controlando individualmente la rotación de cada una de las ruedas, mediante la com-
binación lineal de las fuerzas resultantes, se puede obtener cualquier dirección de desplaza-
miento de forma instantánea, tal como lo muestra la gura 16. [22]
Si bien esta descomposición permite realizar desplazamientos omnidireccionales, se produce
una pérdida de fuerza cualquiera sea la dirección de desplazamiento del robot, incluso al des-
plazarse en una trayectoria no omnidireccional. Esta inevitable pérdida de fuerza sobre las
ruedas en el sentido de sus rotaciones, conlleva a una disminución de la velocidad máxima al-
canzable respecto a la utilización de ruedas no omnidireccionales, para el caso de robots cu-
yas ruedas se encuentran situadas de forma similar a un automóvil. Para eliminar la pérdida
de fuerza, se proponen dos diseños alternativos posibles sobre el robot: 1) a través de un mé-
todo mecánico simple para evitar pérdida de fuerza al desplazarse en línea recta y 2) mecáni-
camente más complejo, que permite a los rodillos exteriores variar su ángulo de orientación
respecto a la rueda principal . El primer rediseño supone la existencia de un dispositivo que
bloquea los rodillos exteriores cuando se debe realizar una trayectoria en la dirección de de la
rotación de las ruedas y los desbloquea cuando la trayectoria tiene una componente de des-
plazamiento lateral no nula. Claramente este rediseño no elimina la pérdida de fuerza cuando
la trayectoria es omnidireccional, dando paso al segundo rediseño. En el segundo rediseño,
más efectivo pero mas complejo que el anterior, se cuenta con un dispositivo que permite alte-
rar el ángulo de orientación respecto a la rueda principal además de permitir bloquear los rodi-
llos. Éste, permite que los rodillos sean ajustados desde una posición perpendicular a la rueda
principal (los rodillos son bloqueados para evitar desplazamientos laterales cuando el plano
posee una inclinación) hasta una posición en la que se obtiene un ángulo de 135o entre la
orientación de los rodillos y la rueda principal, para así obtener una menor pérdida de fuerza
cuando el desplazamiento es diagonal. En la gura 17, se ilustran las dos rotaciones máximas
antes explicadas. En la parte superior de la gura, se observa el diseño tradicional actuando en
trayectorias denidas. En la parte inferior, se observa el diseño mejorado para las mismas tra-
yectorias. Para el primer caso, los rodillos son rotados de forma que los ejes de éstos posean
una dirección paralela a la rotación de la rueda. Esto permite que la fuerza ejercida sobre la
rueda se descomponga totalmente en la componente con dirección la del desplazamiento de-
seado, lográndose así la velocidad máxima. Para el segundo caso, se observa que el diseño
tradicional permite obtener un desplazamiento diagonal aplicando una fuerza a dos ruedas,
mientras que las restantes solamente reciben una pequeña fuerza de rozamiento. Para lograr
la máxima velocidad en esta trayectoria se rotan los rodillos 90o (resultando en un ángulo de
135o respecto de la rueda principal). Esto resulta en que al aplicarse una fuerza a cada una
de las ruedas, se obtenga una componente de fuerza con la dirección deseada para cada rue-
da permitiendo obtener la velocidad máxima en ese caso. Los detalles de estos rediseños, ta-
les como materiales, consumo de energía, etc., no serán ampliados ya que escapa al alcance
del proyecto. Para profundizar sobre los mismos, referirse a [12].
MOTORES PAP
El motor paso a paso es un motor de corriente continua sin escobillas en el que la rotación se
divide en un cierto número de pasos resultantes de la estructura del motor. Normalmente, una
revolución completa del eje de 360° se divide en 200 pasos, lo que significa que se realiza una
sola carrera del eje cada 1,8°. También hay motores donde la carrera del eje se realiza cada
2; 2,5; 5, 15 o 30°. Debido al hecho de que la rotación completa del eje se divide en ciertas
secciones discretas, el motor paso a paso no gira suavemente, sino que realiza saltos y cruza
estados intermedios, por lo que el funcionamiento del motor paso a paso se acompaña de un
sonido y vibración característicos.
El motor paso a paso está compuesto por rotor y estator. El estator es una parte estacionaria,
mientras que el rotor montado en el eje con un cojinete gira siguiendo el campo magnético gi-
ratorio creado alrededor del estator. El estator, hecho de acero u otro metal, es el marco de un
conjunto de electroimanes, que son bobinas montadas en lugares específicos alrededor del
rotor. Cuando la corriente fluye a través de las bobinas del estator, se crea un campo magnéti-
co a su alrededor. Los flujos magnéticos particulares tienen una dirección e intensidad que de-
penden de la intensidad y la dirección de la corriente que fluye a través de una bobina deter-
minada.
Pero, los servomotores no son en realidad una clase específica de motor, sino una combina-
ción de piezas específicas, que incluyen un motor de corriente continua o alterna, y son ade-
cuados para su uso en un sistema de control de bucle cerrado.
Por otro lado, el codificador o encoder sirve como sensor, proporcionando retroalimentación
de velocidad y posición. En la mayoría de los casos, sólo se informa de la posición. La posi-
ción final se informa al controlador y se compara con la entrada de posición inicial, y luego, si
hay una discrepancia, se mueve el motor para llegar a la posición correcta micropaso
ARDUINO
Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada
en hardware y software libre, flexible y fácil de utilizar para los creadores y desarrolladores.
Esta plataforma permite crear diferentes tipos de microordenadores de una sola placa a los
que la comunidad de creadores puede darles diferentes tipos de uso.
Para poder entender este concepto, primero vas a tener que entender los conceptos de har-
dware libre y el software libre. El hardware libre son los dispositivos cuyas especificaciones y
diagramas son de acceso público, de manera que cualquiera puede replicarlos. Esto quiere
decir que Arduino ofrece las bases para que cualquier otra persona o empresa pueda crear
sus propias placas, pudiendo ser diferentes entre ellas pero igualmente funcionales al partir de
la misma base.
El software libre son los programas informáticos cuyo código es accesible por cualquiera para
que quien quiera pueda utilizarlo y modificarlo. Arduino ofrece la plataforma Arduino IDE (En-
torno de Desarrollo Integrado), que es un entorno de programación con el que cualquiera pue-
de crear aplicaciones para las placas Arduino, de manera que se les puede dar todo tipo de
utilidades.
MATRIZ DE TRANSFORMACIÓN
MODELO CINEMÁTICO
El modelo cinemático es una metodología que describe las relaciones estáticas entre las po-
siciones de las articulaciones de un robot, las coordenadas cartesianas y la posición de su ac-
tuador final. El modelo cinemático de un robot es usado para su simulación y control. Los mo-
delos tienen como base las transformaciones matriciales compuestas de sistemas de referen-
cia y resultan más complejos a medida que se agregan grados de libertad al robot. El modelo
cinemático directo de un robot es el que permite conocer la posición y orientación final del ro-
bot en función de las variables de las articulaciones. El modelo cinemático inverso es el que
permite calcular las variables articulares del robot en función de la posición y orientación del
efector final deseadas. El modelo cinemático inverso involucra la resolución de sistemas de
ecuaciones no lineales que involucran senos y cosenos. Al momento de resolver este sistema
de ecuaciones se debe primero determinar si existen soluciones dentro del espacio de trabajo
del robot. Existen algunos casos en los que existe más de una solución aceptable
IMPRESIONES 3D
La impresión 3D es un avance muy importante de tecnologías de fabricación por adición don-
de un objeto tridimensional es creado mediante la superposición de capas sucesivas de mate-
rial.12 Las impresoras 3D son por lo general más rápidas, más baratas y más fáciles de usar
que otras tecnologías de fabricación por adición, aunque como cualquier proceso industrial,
están sometidas a un compromiso entre su precio de adquisición y la tolerancia en las medi-
das de los objetos producidos. Las impresoras 3D ofrecen a los desarrolladores de un produc-
to la capacidad para imprimir partes y montajes hechos de diferentes materiales con diferen-
tes propiedades físicas y mecánicas, a menudo con un simple proceso de ensamble. Las tec-
nologías avanzadas de impresión 3D pueden incluso ofrecer modelos que pueden servir como
prototipos de producto.
DESARROLLO DEL PROYECTO
Fuerza
Fricción
Fuerza Normal
Valores:
Masatotal =2.450 kg
Masa=1.225 kg
Masa Ruedas=0.200 kg
Condición:
N=13.965 N
Fr=N∗μ
Fr=13.965∗0.3
Fr=4.1895 N
F> 4.1895 N
El radio de la rueda es de 4 cm
τ =0.16758 N−m
Para el cálculo de una carga de 150 g, se asumirá el peso de los servomotores de 10 g para
las últimas 3 articulaciones del robot y de 50 g por motor para las articulaciones del brazo
5,1433684 9.4
Brazo 1 MG996R
8
3,0864242
brazo 2 MG996R 9.4
7
0,5392015
Brazo 3 SG90 2.5
8
en-
0,4597574
granaje SG90 2.5
1
garras
DISEÑO
Se utilizó como modelo base el siguiente robot
Se implementó secciones para la posición de los motores y se personalizó el diseño para que
sea ergonómico y atractivo.
Parte de la base
Ensamblaje Completo
CÁLCULOS
ACÁ ROMAN
ELECTRÓNICA
DRV8825
El driver DRV8825 permite controlar motores motores paso a paso bipolares de hasta 2.5A.
Basado en el chip DRV88225 de Texas Instruments, es una mejora o evolución comparado al
chip A4988. Ampliamente utilizado con placas de control de impresoras 3D y Máquinas CNC
Open Source, como: RAMPS y CNC Shield. El Driver DRV8825 es pin-compatible con el Dri-
ver A4988, lo que significa que puede usarse como reemplazo directo de mejor rendimiento.
Permite regular la corriente máxima de salida por medio de un potenciómetro. Además posee
seis resoluciones diferentes de microstepping (máx. 1/32). Trabaja con voltajes de alimenta-
ción entre 8.2V a 45V, puede suministrar 1.5A por bobina sin usar ventilación forzada o un di -
sipador y soporta picos de corriente de hasta 2.5A. Para manejar el driver solo son necesarios
2 pines, uno para la dirección de giro (DIR) y otro para dar el paso (STEP). El pin Enable debe
estar conectado a Tierra (GND) para que el motor funcione. El microstepping se configura con
los pines MS1, MS2 y MS3 de acuerdo a la tabla del fabricante.
MÓDULO BLUETOOTH HC-05
El módulo Bluetooth HC-05 nos permite conectar nuestros proyectos con Arduino a un smar-
tphone, celular o PC de forma inalámbrica (Bluetooth), con la facilidad de operación de un
puerto serial. La transmisión se realiza totalmente en forma transparente al programador, por
lo que se conecta en forma directa a los pines seriales de nuestro microcontrolador preferido
(respetando los niveles de voltaje, ya que el módulo se alimenta con 3.3V). Todos los paráme-
tros del módulo se pueden configurar mediante comandos AT. La placa también incluye un re-
gulador de 3.3V, que permite alimentar el módulo con un voltaje entre 3.6V - 6V. Este módulo
es el complemento ideal para nuestros proyectos de robótica, domótica y control remoto con
Arduino, PIC, Raspberry PI, ESP8266, ESP32, STM32, etc.
DISPOSICIÓN DE LAS PIEZAS
NEMA 17 IZQ -
NEMA 17 IZQ +
SERVO
SG 90
Bateria 12 v
SERVO
SG 90
SERVO
SG 90
NEMA 17
DERA HC-05 NEMA 17 DER-
DIAGRAMA PCB
CÓDIGO DE ARDUINO
#include <SoftwareSerial.h>
#include <AccelStepper.h>
#include <Servo.h>
Servo servo01;
Servo servo02;
Servo servo03;
Servo servo04;
Servo servo05;
Servo servo06;
void setup() {
//VALORES INICIALES DE LOS MOTORES PASO A PASO
LeftFrontWheel.setMaxSpeed(3000);
LeftBackWheel.setMaxSpeed(3000);
RightFrontWheel.setMaxSpeed(3000);
RightBackWheel.setMaxSpeed(3000);
servo01.attach(5);
servo02.attach(6);
servo03.attach(7);
servo04.attach(8);
servo05.attach(9);
servo06.attach(10);
Bluetooth.begin(38400);
Bluetooth.setTimeout(5);
delay(20);
Serial.begin(38400);
//POSICION INICIAL DE NUESTRO ROBOT
servo1PPos = 90;
servo01.write(servo1PPos);
servo2PPos = 100;
servo02.write(servo2PPos);
servo3PPos = 120;
servo03.write(servo3PPos);
servo4PPos = 95;
servo04.write(servo4PPos);
servo5PPos = 60;
servo05.write(servo5PPos);
servo6PPos = 110;
servo06.write(servo6PPos);
}
if (Bluetooth.available() > 0) {
dataIn = Bluetooth.read();
void loop() {
// CODIGO PARA IR REVISANDO LOS DATOS OBTENIDOS
if (Bluetooth.available() > 0) {
// LEER LOS DATOS
dataIn = Bluetooth.read();
if (dataIn == 0) {
m = 0;
}
if (dataIn == 1) {
m = 1;
}
if (dataIn == 2) {
m = 2;
}
if (dataIn == 3) {
m = 3;
}
if (dataIn == 4) {
m = 4;
}
if (dataIn == 5) {
m = 5;
}
if (dataIn == 6) {
m = 6;
}
if (dataIn == 7) {
m = 7;
}
if (dataIn == 8) {
m = 8;
}
if (dataIn == 9) {
m = 9;
}
if (dataIn == 10) {
m = 10;
}
if (dataIn == 11) {
m = 11;
}
if (dataIn == 12) {
m = 12;
}
if (dataIn == 14) {
m = 14;
}
if (dataIn == 16) {
m = 16;
}
if (dataIn == 17) {
m = 17;
}
if (dataIn == 18) {
m = 18;
}
if (dataIn == 19) {
m = 19;
}
if (dataIn == 20) {
m = 20;
}
if (dataIn == 21) {
m = 21;
}
if (dataIn == 22) {
m = 22;
}
if (dataIn == 23) {
m = 23;
}
if (dataIn == 24) {
m = 24;
}
if (dataIn == 25) {
m = 25;
}
if (dataIn == 26) {
m = 26;
}
if (dataIn == 27) {
m = 27;
}
if (m == 0) {
stopMoving();
}
//SELECCIONAMOS UNA VELODICAD PARA LAS RUEDAS
while (m == 16) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo01.write(servo1PPos);
servo1PPos++;
delay(speedDelay);
}
//PARA MOVER EL SERVO 1 EN DIRECCION NEGATIVA
while (m == 17) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo01.write(servo1PPos);
servo1PPos--;
delay(speedDelay);
}
//PARA MOVER EL SERVO 2 EN DIRECION POSITIVA
while (m == 19) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo02.write(servo2PPos);
servo2PPos++;
delay(speedDelay);
}
//PARA MOVER EL SERVO 2 EN DIRECCION NEGATIVA
while (m == 18) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo02.write(servo2PPos);
servo2PPos--;
delay(speedDelay);
}
while (m == 20) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo03.write(servo3PPos);
servo3PPos++;
delay(speedDelay);
}
//PARA MOVER EL SERVO 3 EN DIRECCION NEGATIVA
while (m == 21) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo03.write(servo3PPos);
servo3PPos--;
delay(speedDelay);
}
//PARA MOVER EL SERVO 4 EN DIRECION POSITIVA
while (m == 23) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo04.write(servo4PPos);
servo4PPos++;
delay(speedDelay);
}
//PARA MOVER EL SERVO 4 EN DIRECCION NEGATIVA
while (m == 22) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo04.write(servo4PPos);
servo4PPos--;
delay(speedDelay);
}
//PARA MOVER EL SERVO 5 EN DIRECION POSITIVA
while (m == 25) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo05.write(servo5PPos);
servo5PPos++;
delay(speedDelay);
}
while (m == 24) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo05.write(servo5PPos);
servo5PPos--;
delay(speedDelay);
}
while (m == 26) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo06.write(servo6PPos);
servo6PPos++;
delay(speedDelay);
}
//PARA MOVER EL SERVO 6 EN DIRECCION NEGATIVA
while (m == 27) {
if (Bluetooth.available() > 0) {
m = Bluetooth.read();
}
servo06.write(servo6PPos);
servo6PPos--;
delay(speedDelay);
}
//MOVIMIENTO DE LAS RUEDAS
void moveForward() {
LeftFrontWheel.setSpeed(wheelSpeed);
LeftBackWheel.setSpeed(wheelSpeed);
RightFrontWheel.setSpeed(wheelSpeed);
RightBackWheel.setSpeed(wheelSpeed);
}
// MOVIMIENTO PARA RETROCEDER
void moveBackward() {
LeftFrontWheel.setSpeed(-wheelSpeed);
LeftBackWheel.setSpeed(-wheelSpeed);
RightFrontWheel.setSpeed(-wheelSpeed);
RightBackWheel.setSpeed(-wheelSpeed);
}
// MOVIMIENTO PARA LATERAL DERECHO
void moveSidewaysRight() {
LeftFrontWheel.setSpeed(wheelSpeed);
LeftBackWheel.setSpeed(-wheelSpeed);
RightFrontWheel.setSpeed(-wheelSpeed);
RightBackWheel.setSpeed(wheelSpeed);
}
// MOVIMIENTO PARA LATERAL IZQUIERDO
void moveSidewaysLeft() {
LeftFrontWheel.setSpeed(-wheelSpeed);
LeftBackWheel.setSpeed(wheelSpeed);
RightFrontWheel.setSpeed(wheelSpeed);
RightBackWheel.setSpeed(-wheelSpeed);
}
// MOVIMIENTO PARA GIRAR DERECHA
void rotateLeft() {
LeftFrontWheel.setSpeed(-wheelSpeed);
LeftBackWheel.setSpeed(-wheelSpeed);
RightFrontWheel.setSpeed(wheelSpeed);
RightBackWheel.setSpeed(wheelSpeed);
}
// MOVIMIENTO PARA GIRAR A LA IZQUIERDA
void rotateRight() {
LeftFrontWheel.setSpeed(wheelSpeed);
LeftBackWheel.setSpeed(wheelSpeed);
RightFrontWheel.setSpeed(-wheelSpeed);
RightBackWheel.setSpeed(-wheelSpeed);
}
// MOVIMIENTO PARA LA DERECHA ADELANTE
void moveRightForward() {
LeftFrontWheel.setSpeed(wheelSpeed);
LeftBackWheel.setSpeed(0);
RightFrontWheel.setSpeed(0);
RightBackWheel.setSpeed(wheelSpeed);
}
// MOVIMIENTO PARA LA DERECHA EN RETROCESO
void moveRightBackward() {
LeftFrontWheel.setSpeed(0);
LeftBackWheel.setSpeed(-wheelSpeed);
RightFrontWheel.setSpeed(-wheelSpeed);
RightBackWheel.setSpeed(0);
}
// MOVIMIENTO PARA LA IZQUIERDA ADELANTE
void moveLeftForward() {
LeftFrontWheel.setSpeed(0);
LeftBackWheel.setSpeed(wheelSpeed);
RightFrontWheel.setSpeed(wheelSpeed);
RightBackWheel.setSpeed(0);
}
// MOVIMIENTO PARA LA IZQUIERDA EN RETROCESO
void moveLeftBackward() {
LeftFrontWheel.setSpeed(-wheelSpeed);
LeftBackWheel.setSpeed(0);
RightFrontWheel.setSpeed(0);
RightBackWheel.setSpeed(-wheelSpeed);
}
// MOVIMIENTO PARA DEJAR DE MOVERSE
void stopMoving() {
LeftFrontWheel.setSpeed(0);
LeftBackWheel.setSpeed(0);
RightFrontWheel.setSpeed(0);
RightBackWheel.setSpeed(0);
}
APK
PRUEBAS Y EVALUACIONES
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
RECOMENDACIONES