Subido por individuoramirez

ControlBrazoRobot - SistemasEmbebidos

Anuncio
TRABAJO DE LABORATORIO FINAL
Docente: Matias Loiseau
Alumnos:
 Christian Boullon
 Nicolas Morsolin
 Matias Ramirez
Carrera: Ingeniería en Informática
Universidad Nacional de Avellaneda
ÍNDICE
1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.2
2. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.2
3. Componentes utilizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.2
3.1. EDU-CIAA-NXP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.2-4
3.2. Servo motor SG-90 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.4-6
3.3. Módulo Joystick doble . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.7-8
3.4. Objetos de Secuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.8-9
4. Desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.10-12
4.1. Conexión de los componentes . . . . . . . . . . . . . . . . . . . . . . pág.11
4.2. Secuencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.11-12
4.3. Armado del brazo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.12
4.4. Programación del código en la EDU-CIAA . . . . . . . . . . . . . . pág.12
4.4.1. Identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.12
4.4.2. Configuración de la placa . . . . . . . . . . . . . . . . . . . . . . . . pág.12
4.4.3. Configuración de los servos . . . . . . . . . . . . . . . . . . . . . . . pág.13
4.4.4. Conversor de señal analógica a digital . . . . . . . . . . . . . . . pág.13
4.4.5. Inicialización de los botones de los joysticks . . . . . . . . . . pág.13
4.4.6. Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.13
4.4.7. Lectura de las señales analógicas . . . . . . . . . . . . . . . . . . pág.14
4.4.8. Selector de modalidad . . . . . . . . . . . . . . . . . . . . . . . . . pág.14
4.4.9. Implementación del modo manual . . . . . . . . . . . . . . pág.14-16
4.4.10. Implementación del modo secuencial . . . . . . . . . . . . pág.16-19
4.4.11. Leds identificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.20
5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.20
6. Mejoras a desarrollar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.20
7. Bibliografía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pág.21
1
1. Objetivo
En este Trabajo de Laboratorio Final se diseñará un Brazo Robot que pueda ser capaz de
recrear distintas secuencias de movimiento y además poder ser controlado manualmente por el
usuario. Para ello:
 Con el uso de un Módulo Joystick doble, controlaremos los movimientos del brazo de
forma manual.
 A partir de los pulsadores integrados de la EDU-CIAA, se configurarán dos secuencias de
movimiento automáticas, las cuales podrán identificarse gracias al encendido de los
LEDS de la placa.
2. Introducción
El presente Trabajo de Laboratorio se desarrolla en la materia de Arquitectura de Sistemas de
Elaboración de Datos II y corresponde al Trabajo de Laboratorio final.
Haremos uso de la placa EDU-CIAA-NXP, la cual será el núcleo del sistema y se encargará de
controlar los servomotores que mueven el brazo, así como también recibir los datos analógicos
enviados por nuestro modulo joystick doble al ejecutar el modo manual.
Para desarrollar el código con el que trabajará la placa utilizaremos el Embedded IDE, el cual
nos permite la programación en lenguaje C. También utilizaremos la librería SAPI, que nos
incluye un gran número de funciones para facilitarnos la programación.
El movimiento del brazo será controlado por 4 servomotores SG-90 de la siguiente forma:
•
•
•
•
Servo
Servo
Servo
Servo
base: permite que el brazo se mueva hacia izquierda y derecha.
hombro: mueve el brazo hacia adelante y hacia atrás.
codo: mueve el brazo hacia arriba y hacia abajo.
mano: abre y cierra la mano o pinza.
3. Componentes utilizados
Antes de meternos de lleno con el código desarrollado para este trabajo, es importante conocer
que componentes utilizaremos para realizar esta práctica.
3.1 EDU-CIAA-NXP
Este componente es el núcleo de nuestro sistema embebido, al cual conectaremos el resto de
los componentes y se encargará de realizar lo solicitado.
La EDU-CIAA-NXP es una versión de bajo costo de la CIAA-NXP 1 pensada para la enseñanza
universitaria, terciaria y secundaria. Al igual que su versión industrial, ésta también consta del
microcontrolador LPC4337 (dual core ARM Cortex-M4F y Cortex-M0).
2
Los datos más importantes a resaltar de este microcontrolador son:
 Frecuencia de trabajo: 204 MHz
 Memoria en chip
o Hasta 1 MB de memoria flash de doble banco en chip con acelerador flash.
o Memoria de datos EEPROM de 16 kB.
o 136 kB SRAM para código y uso de datos.
o Múltiples bloques SRAM con acceso de bus separado. Dos bloques SRAM pueden
ser apagado individualmente.
o ROM de 64 kB que contiene el código de arranque y los controladores de
software en el chip.
o 64 bit + 256 bit de memoria programable única (OTP) para uso general.
 Un DAC de 10 bits compatible con DMA y una tasa de conversión de datos de 400
kSamples/s.
 Hasta ocho canales de entrada por ADC.
 Oscilador de cristal con un rango de operación de 1 MHz a 25 MHz.
 Oscilador RC interno de 12 MHz ajustado al 3 % de precisión sobre la temperatura y
tensión (1,5 % de precisión para T. ambiente = 0 °C a 85 °C).
La placa EDU-CIAA-NXP cuenta con los siguientes módulos:
•
•
•
•
•
2
4
4
1
2
puertos micro-USB (uno para aplicaciones y debugging, otro para alimentación).
salidas digitales implementadas con leds RGB.
entradas digitales con pulsadores.
puerto de comunicaciones RS 485 con bornera.
conectores de expansión:
o P1:
 3 entradas analógicas (ADC0_1,2y3),
 1 salida analógica (DAC0),
 1 puerto I2C,
 1 puerto asincrónico full duplex (para RS-232).
 1 puerto CAN,
 1 conexión para un teclado de 3×4,
o P2:
 1 puerto Ethernet,
 1 puerto SPI,
 1 puerto para Display LCD con 4 bits de datos, Enable y RS.
 9 pines genéricos de I/O.
1
La CIAA-NXP es la primer CIAA (Computadora Industrial Abierta Argentina) en ser diseñada, probada y
producida en serie. Pensada para utilizarse en (pero no limitada a) equipos de automatización industrial.
3
Para una mejor visualización podemos chequearlo con el diagrama en bloques de la Figura 1.
Figura 1
Utilizaremos un entorno de desarrollo integrado (Embedded IDE) para programar las funciones
necesarias para el correcto funcionamiento del vehículo. Este editor de código cuenta con varias
herramientas que permite una buena organización de los proyectos que se creen. Nos permite
programar en lenguaje C haciendo que los códigos tengan mayor portabilidad. El repositorio de
dicho IDE se encuentra en GitHub [2]. Antes de comenzar con el código se requerirá instalar
dependencias y bajar la librería SAPI que está presente en IDE. Vamos a explicar en qué
consiste esta librería a continuación.
Dicha biblioteca implementa una API (Application Programming Interface) la cual actúa como
un HAL (Hardware Abstraction Layer) para la programación de microcontroladores. La misma
surge de la necesidad de manejar los periféricos directamente desde una VM de Java para el
desarrollo de Java sobre la CIAA y corresponde a la parte de bajo nivel de las clases de
periféricos en Java que básicamente bindea a funciones escritas en C. Luego se extendió la
misma para facilitar el uso de la EDU-CIAA-NXP a personas no expertas en la arquitectura del
LPC4337 facilitando el uso de esta plataforma [3].
3.2 Servo motor SG-90
Primeramente, debemos conocer de qué hablamos cuando mencionamos un servo motor, los
cuales utilizaremos para controlar el movimiento del brazo.
Un servomotor es un actuador rotativo o motor que permite un control preciso en términos de
posición angular, aceleración y velocidad. Constan de una combinación de piezas específicas,
4
que incluyen un motor de corriente continua o alterna, y son adecuados para su uso en un
sistema de control de bucle cerrado. La señal de control es la entrada, ya sea analógica o
digital, que representa el comando de posición final para el eje.
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 posició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.
Los servomotores se controlan enviando un pulso eléctrico de ancho variable, o modulación de
ancho de pulso (PWM), a través del cable de control. Hay un pulso mínimo, un pulso máximo y
una frecuencia de repetición.
Por lo general, un servomotor sólo puede girar 90° en cualquier dirección para un movimiento
total de 180° (aunque también los hay de 360°). La posición neutra del motor se define como
la posición en la que el servo tiene la misma cantidad de rotación potencial tanto en el sentido
de las agujas del reloj como en el sentido contrario.
El PWM enviado al motor determina la posición del eje, y se basa en la duración del pulso
enviado a través del cable de control; el rotor girará a la posición deseada.
El servomotor espera ver un pulso cada 20 milisegundos (ms) y la longitud del pulso
determinará hasta dónde gira el motor. Por ejemplo, un pulso de 1.5ms hará que el motor gire
a la posición de 90°.Si el tiempo es inferior a 1,5 ms, se mueve en sentido contrario a las
agujas del reloj hacia la posición de 0°, y si el tiempo es superior a 1,5 ms, el servo girará en
sentido de las agujas del reloj hacia la posición de 180°.
Cuando se les ordena a los servos que se muevan, estos se moverán a la posición y
mantendrán esa posición. Si una fuerza externa empuja contra el servo mientras el servo
mantiene una posición, el servo se resistirá a salir de esa posición.
La cantidad máxima de fuerza que puede ejercer el servo se denomina par de torsión del servo.
Sin embargo, los servos no mantendrán su posición para siempre; el pulso de posición debe
repetirse para indicar al servo que se mantenga en posición.
Los servos incluyen tres componentes principales: un motor, un variador (también conocido
como amplificador) y un mecanismo de retroalimentación. También se incluye típicamente una
fuente de alimentación y un servocontrolador capaz de controlar un solo eje o coordinar el
movimiento de varios ejes. Todos ellos se aprecian en la Figura 2:
5
Figura 2
Los servomotores pueden ser de tipo CA o CC, siendo los servomotores CA los más adecuados
para aplicaciones de velocidad constante y los servomotores CC para aplicaciones de velocidad
variable.
El servo controlador (también conocido como controlador de movimiento) puede ser
considerado como el cerebro del sistema del servomotor. Aquí es donde reside el perfil de
movimiento, incluyendo la aceleración, velocidad y deceleración deseadas.
En nuestro caso, el modelo que utilizaremos será el SG-90.
En la Figura 3, se puede observar la función de cada uno de los cables que posee:
Figura 3
6
3.3 Módulo Joystick doble
En el modo manual, controlaremos el brazo con un módulo doble stick, de esta manera
podemos usar el eje X y el eje Y de cada stick (4 ejes en total) para controlar cada uno de los
cuatro servomotores.
Para hablar de este módulo tengamos en cuenta que, tal cual lo indica el nombre se trata de
dos Módulos KY-023 Joystick. Por ende, para explicar el funcionamiento hablemos de manera
individual mencionando sus funciones y características.
El módulo KY-023 cuenta con un posicionamiento de eje dado por valores entre 0 a 1023 y
conforme lo movamos su valor ira variando y dando las coordenadas de cada eje, este valor lo
podemos imprimir en el monitor serial. Por lo cual su posición de reposo será en 512 (espere
pequeñas variaciones debido a pequeñas imprecisiones de los resortes y el mecanismo).
Cuando mueva el joystick, verá que los valores cambian de 0 a 1023 dependiendo de su
posición. A continuación, se plasma dicha explicación de forma gráfica, en la Figura 4, para
mejor entendimiento del lector:
Figura 4
Joystick en Reposo (central):
 X = 512 (Salida 2.5V)
 Y = 512 (Salida 2.5V)
Joystick hacia arriba:
 X = 1023 (Salida 5V)
 Y = 512 (Salida 2.5V)
Joystick hacia abajo:
7
 X = 0 (Salida 0V)
 Y = 512 (Salida 2.5V)
Joystick hacia la Derecha:
 X = 512 (Salida 2.5V)
 Y = 1023 (Salida 5V)
Joystick hacia la Izquierda:
 X = 512 (Salida 2.5V)
 Y = 0 (Salida 0V)
Volviendo a lo que vamos a utilizar en nuestro trabajo, las características del módulo doble stick
son:
•
•
•
•
•
•
•
•
•
Tamaño: 91 x 51 x 32 mm
Agujeros de montaje: 3 mm
Agujero: 2000 * 1600mil (50.8 * 40.64mm)
Voltaje: 3.3V, 5V
Puerto: cada balancín 2 voltaje analógico nivel 1 digital
Plataforma: Arduino, MCU, ARM, Raspberry Pi
Salida X, Y-axis como dos potenciómetros, el ángulo de desviación puede ser leído por el
convertidor AD
Se aplica a dos grados de libertad, u otro control remoto proporcional de control de PTZ
Dos módulos de joystick a bordo, adecuados para el desarrollo y prueba de plataformas
móviles
3.4 Objetos de secuencia
En esta sección se explicará los objetos que utilizaremos para que nuestro brazo pueda realizar
las distintas secuencias. Los objetos utilizados serán un recipiente, al estilo de vaso o cubilete y
3 cubos de cartón corrugado. Elegimos este material ya que es flexible y sobre todo liviano, un
8
punto clave debido a la limitación de tener servos que no posean mucha potencia. Los cubos
fueron diseñados por nosotros en base a un template.
Lo que se quiere lograr es que el brazo agarre dichos cubos, que se encuentran en una posición
inicial y los desplace hacia otra posición.
9
4. Desarrollo
El desarrollo se dividirá en cuatro subsecciones:
•
•
•
•
En la primera mostraremos las conexiones entre la EDU-CIAA y los distintos
componentes empleados, los cuales son: los servos colocados en el brazo para permitir el
movimiento de las distintas partes y el módulo doble stick que permite controlar el brazo
en el modo manual.
En la segunda indicamos en qué consistes las secuencias que implementamos en el
modo automático.
En la tercera explicamos como fue diseñada la estructura del brazo, comentando los
materiales utilizados.
En la cuarta mostramos el desarrollo del código que programamos en el software
Embedded-IDE para que el sistema cumpla con lo solicitado.
4.1 Conexión de los componentes
Vamos a ver y a contar brevemente del conexionado de cada componente con la placa EDUCIAA.
Empecemos por cada uno de los servomotores, los cuales se pueden apreciar en la Figura 5.
Figura 5
Para el conexionado de los servos utilizamos una plaqueta armada por nosotros, en la cual
tenemos identificada las conexiones para cada una de las partes del brazo. Los 4 servos serán
10
alimentados con una fuente de PC a la cual le conectaremos los VCC y las GND de cada uno de
ellos. A esta ultimas también las conectaremos a la EDU-CIAA para que todos los componentes
compartan la misma tierra. Finalmente, los cables naranjas (que reciben la señal de control)
estarán conectados como se indica a continuación:




Servo
Servo
Servo
Servo
base  T_FIL1
hombro  T_COL0
codo  T_FIL2
mano  T_FIL3
En lo que respecta al módulo joystick doble hay que considerar que cada stick presenta 4 pines:
la alimentación, la tierra, el eje X, el eje Y, como también el eje K (el cual hace referencia al
pulsador del stick). Como se puede apreciar en la Figura 6, los VCC de ambos sticks estarán
conectados a los 5V de la EDU-CIAA, los GND se comparten entre sí con la tierra de la placa, los
pines S-X y S-Y del primer stick y el S-X del segundo stick; se conectan a los pines analógicos
CH1, CH2 y CH3, respectivamente. Los pines S-K de ambos sticks van a estar conectados a los
GPIO1 y GPIO2, con estos dos pulsadores controlamos la apertura y el cierra de la pinza. Esto
lo hacemos de esta forma debido a que falta una cuarta entrada analógica para conectar los
cuatro ejes del doble stick.
Figura 6
4.2 Secuencias
El brazo, en su modo automático, nos permitirá realizar dos secuencias de movimiento. Los
objetos que intervendrán en ambas, serán los cubos que explicamos en la sección de objetos de
secuencias. De forma resumida, vamos a explicar en qué consisten dichas secuencias que
desarrollamos.
11
 Secuencia 1
El brazo comenzará en una posición inicial definida en el código. Los cubos estarán ubicados
equidistantes en el sector derecho de la base. El brazo tomará cada uno de estos cubos y los
moverá al otro extremo de la base.
 Secuencia 2
El brazo comenzará, como en el caso anterior, en una posición inicial. Los cubos se situarán
también en el sector derecho de la base. El brazo deberá tomar cada uno de estos cubos,
desplazarlos hacia el lado izquierdo y guardarlos dentro de un recipiente.
4.3 Armado del brazo
Para realizar el diseño de nuestro brazo, nos basamos en un modelo de internet (de
instructables.com). En nuestro caso, el material que utilizamos para armar cada una de las
piezas es el chapadur, que es el nombre comercial de un tablero duro de fibras,
internacionalmente conocido como Hardboard, cuya densidad está comprendida entre 0.90 y
1.10g/cm3, elaborado en base a fibra de madera de Eucaliptus [9] . Al ser un material
resistente y liviano, nos daba la posibilidad de armar una estructura compacta. Para unir cada
una de las piezas utilizamos tornillos M3 de diferentes medidas y tuercas.
4.4 Programación del código en la EDU-CIAA
En esta sección vamos a explicar, paso a paso, el desarrollo del código que ejecutará nuestro
sistema.
Tal cual hicimos en los trabajos anteriores, comenzamos incluyendo las librerías necesarias para
trabajar, la cual es la librería sapi.
4.4.1 Identificadores
Luego de esto, definimos los identificadores para facilitarnos el código:
Definimos los servos en función a la pieza del brazo que moverá y los pines de entradas según
correspondan el eje de cada analógico.
12
4.4.2 Configuración de la placa
Para inicializar y configurar la EDU-CIAA, utilizamos la siguiente función:
Ésta evalúa la configuración del reloj, calcula el reloj central actual, y los puertos GPIO que
utilizaremos que son los pulsadores como entrada y los leds como salida.
4.4.3 Configuración de los servos
Ahora creamos una función para habilitar e inicializar los servos como salida a los pines que
definimos previamente.
4.4.4 Conversor de señal analógica a digital
Ahora habitamos la configuración ADC ya que trabajamos con entradas analógicas, esta función
activa el periférico ADC con una resolución de 10 bits, por lo que la entrada tomara valores
desde 0 hasta 1023.
4.4.5 Inicialización de los botones de los joysticks
El botón que tiene incorporado cada joystick es digital, por lo que lo conectaremos en el GPIO1
y GPIO2 que lo definimos como entrada. Como ya mencionamos en el apartado de las
conexiones, estas entradas controlaran la mano de nuestro brazo.
4.4.6 Variables
13
La variable modoManual estará por defecto en true para entrar primero a esta modalidad.
4.4.7 Lectura de las señales analógicas
Ya dentro del ciclo, con la función adcRead le pasamos al parámetro el pin de entrada analógica
que retornara un valor digital (0-1023), y la guardara en la variable correspondiente.
4.4.8 Selector de modalidad
Con los pulsadores incorporados en el EDU-CIAA (TEC1 y TEC2) cambiaremos el valor de la
variable modoManual para poder seleccionar la modalidad del brazo, dentro del if negaremos la
condición ya que dichos pulsadores son PULL-UP ósea que establece un estado HIGH por
defecto y negándolo estará en LOW, y por último pondremos un anti-rebote para una mejor
respuesta en los pulsadores.
Ahora en función del valor que seleccionemos en la variable modoManual entraremos en alguna
de las 2 modalidades.
4.4.9 Implementación del modo manual
Para estas funciones usaremos las variables en donde guardamos los valores analógicos
convertidas a digital y dependiendo del valor que este tenga sumaremos o restaremos el Angulo
al servo mediante las variables que inicializamos antes y los ángulos que determinamos
mediante las pruebas con el brazo.
La implantación queda de la siguiente manera:
14
Si el valor leído por el periférico ADC es menor a 200 irá restando de a uno el ángulo de la base
para escribirlo en el servo, en caso de que sea mayor a 800 ira sumando, y será lo mismo para
las demás piezas.
15
En el caso de la mano, lo hará de manera automática cuando pulsemos algunos de los
pulsadores del joystick.
Estas funciones simplemente le asignan un ángulo de 100° al servo que maneja las pinzas para
abrirla, y de 145° para cerrarla.
4.4.10 Implementación del modo secuencial
El modo secuencia es la modalidad en la cual el brazo realiza movimientos de forma
automática. Ésta la hemos configurado previamente.
Con los pulsadores TEC3 y TEC4 de la EDU-CIAA podremos elegir entre las 2 secuencias que
hemos programado, también con su anti-rebote.
16
Para cada una de las secuencias crearemos 2 funciones en el cual le pasaremos un Angulo
inicial y otro final, un delay y el servo que queremos modificar, esto lo que hace es aumentar o
disminuir en Angulo del servo secuencialmente.
Entonces de acuerdo a lo que queremos que haga el brazo iremos usando estas 2 funciones
con diferentes ángulos, piezas y delay.
Estas son las secuencias que hemos implementado:
17
18
19
4.4.11 Leds identificadores
Para finalizar el código, prenderemos los leds de la EDU-CIAA que estén cerca del pulsador
correspondiente, para identificar rápidamente si estamos en el modo manual o en el modo
secuencia.
Si nos encontramos en el modo manual se prendera el led verde, en cambio sí estamos en el
modo secuencia estará prendido el LED1 y junto con dicho led se encontrará también prendido
el LED2 si está en la secuencia 1 o el LED3 si está en la secuencia 2.
5. Conclusiones
En principio cuando alimentamos el brazo con los 5V de la EDU-CIAA este no suministraba la
suficiente corriente para que realice los movimientos correctamente, esto lo hemos solucionado
alimentando los servos del brazo con una fuente de PC.
En modo automático, el brazo realiza las secuencias de forma correcta cuando los objetos que
el brazo debe mover están colocados en la posición exacta en la que estaban cuando se
configuraron los movimientos del brazo. De no ser así, es probable que falle al querer tomar un
objeto.
20
En modo manual al principio no realizaba los movimientos correctamente, de hecho, se movía
solo sin que nadie estuviera manejando el joystick. Esto se debía a que asumimos que cuando
el stick estaba en reposo, el valor analógico que leería la EDU-CIAA luego de convertirlo a
digital sería el valor intermedio entre 0 y 1023, es decir aproximadamente 512. Pero no era así,
el valor que leía la placa era cercano a 700. Luego de considerar este valor como intermedio el
brazo comenzó a responder de forma correcta.
6. Mejoras a desarrollar
Una de las mejores que podría realizarse es el intercambio de los servos SG-90 por servos más
potentes, para lograr tener un brazo que sea capaz de mover o agarrar objetos de mayor peso
(para ello obviamente habría que modificar su estructura).
Otra mejora es adicionar un display LCD 16x2 que notifique en que modalidad se encuentra el
brazo robótico, y que en el caso de que sea el modo secuencial indique en cual de las 2
secuencias que implementamos se encuentra.
7. Bibliografía
[1] Epernia, (2020). Obtenido de: https://github.com/martinribelotta/embedded-ide.
Consultado el 20 de abril de 2022.
[2] Epernia, (2017). Obtenido de:
https://github.com/epernia/sAPI/blob/master/documentation/docs/assets/pdf/sAPI-01Introducci%C3%B3n.pdf. Consultado el 20 de abril de 2022.
[3] Módulo KY-023 Sensor JoyStick, Obtenido de: https://uelectronics.com/producto/moduloky-023-sensor-joystick/ . Consultado el 20 de junio de 2022.
[4] CONFIGURACIÓN DEL MÓDULO BLUETOOTH HC-05 USANDO COMANDOS AT, Obtenido
de: https://naylampmechatronics.com/blog/24_configuracion-del-modulo-bluetooth-hc-05usando-comandos-at.html . Consultado el 14 de mayo de 2022.
[5] Pinout HC-05, especificaciones, hoja de datos y conexión Arduino HC05, (2021). Obtenido
de: https://www.etechnophiles.com/hc-05-pinout-specifications-datasheet/ . Consultado el 14
de mayo de 2022.
[6] Qué es un Servomotor y para qué sirve, Obtenido de: https://www.cursosaula21.com/quees-un-servomotor/ . Consultado el 20 de junio de 2022.
[7] Epernia, (2017). Obtenido de:
https://github.com/epernia/sAPI/blob/master/documentation/docs/assets/pdf/sAPI-03-API.pdf.
Consultado el 20 de abril de 2022.
[8] Phenoptix. Obtenido de: https://www.instructables.com/Pocket-Sized-Robot-Arm-meArmV04/ . Consultado el 25 de junio de 2022.
[9] Fiplasto, (2018). Obtenido de: http://fiplasto.com.ar/productos/chapadur/ . Consultado el
25 de junio de 2022.
21
Descargar