Araña robótica BT-Hc(06)

 


Adelanto final del proyecto integrado de aula

(Araña robótica)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Sánchez Javier, Sanchez Galvis Jose, Agresot Carlos,

Figueroa Ricardo y López Sebastián

Dibujo mecatrónico

Ingeniería Mecatrónica

Universidad Simón Bolívar

Barranquilla /Atlántico

 

Noviembre del 2020

 

 

 

 

 

 

         TABLA DE CONTENIDO

Hoja de presentación………………………………………………………………

 

1

 

Tabla de contenido…………………………………………………………………...

 

 

2

 

Introducción………………………………………………………………

 

3

 

Diseño mecánico……………………………………………………………………

 

 

4

 

Selección de motores……………………………………………………………………

 

 

8

 

Autonomía………………………………………………………………...

 

12

 

Comunicación y control……………………………………………………………………...

 

 

15

 

Anexos……………………………………………………………………...

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

INTRODUCCIÓN

 

Este será el tercer informe sobre el proyecto integrador de aula por los estudiantes de ingeniería mecatrónica de segundo semestre U. Simón Bolívar. Este informe tendrá como propósito demostrar la finalización del proyecto robótico con todo el diseño, programación y proyección finalizada sobre la araña robótica demostrando su plena funcionalidad y desarrollo.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.     Diseño Mecánico(Que compone la araña y sus medidas)

Nuestro proyecto consta de una araña de 4 patas, tiene tres servomotores por pata y como electrónica tiene un Arduino nano

Como un proyecto a mayor escala puede ser usada en la industria para transporte de mercancías o productos dentro de una fábrica o para el rescate de heridos en los ejércitos o accidentes naturales

Los componentes y sus dimensiones son

Arduino Nano V3 Atmega328: 18 mm x 44 mm

Bluetooth: Módulo Bluetooth HC06: 4.4 cm x 1.6 cm x 0.7 cm

Servomotor Tower Pro SG92R: Rango de rotación: 180° P. Dimensiones: 23.1 x 12.2 x 27 mm.

Power Bank: Dimensiones: 23×12.2x27mm.

Regleta hembra: Espaciado entre pines: 2.54mm.Longitud Pines a soldar: 12.2mm.

 

 

 


                            135°

180°

110°

Las anteriores imágenes muestran los grados de movimientos que puede realizar

 

 

 

 

 

 

 

1.1. Juntas (Partes para tener el chasis pegado)

Se piensan usar tornillos de 1-2mm de diámetro en cada una de las juntas que posibilitan a los servos sg92r un mayor rendimiento y estabilidad en sus uniones con las otras piezas, pero se utilizan tornillos de 5cm entre la pata y base con intención de que haga mayor presión y sea más estable.

 

TIPO DE JUNTA

CANTIDAD DE JUNTAS

GRADOS DE LIBERTAD

REPRESENTACIÓN GRÁFICA

PIN/Pasador (motor 1-junta rotacional)

4

PIN/Pasador (motor 2-junta rotacional)

4

PIN/pasador (el chasis se divide en dos el cual encierra la electrónica y el power bank como un sandwich)

6

PIN/pasador (motor 3-junta rotacional)

4

 

 

 

 

 

 

 

 

 

1.2. Tolerancias (Lo que aguanta una parte en funcionamiento)

Para asegurar el movimiento y eficiencia del robot se mantuvo una holgura relativa entre 1 a 3 mm.

Todas las tolerancias de las piezas son tolerancias dimensionales.

 

B

A

A

en esta pieza se tiene una tolerancia de 1 mm para los puntos A y una tolerancia de 3mm para los puntos B.

A

B

A

 

 

 

 

 

 


A

En esta pieza se tiene una tolerancia de 1mm para los puntos A

A

A

A

 

 

 

 

 

 

 

 

 


A

En esta pieza se tiene una tolerancia de 3mm para los puntos A

 

A

A

A

 

 

 

 

 

 


A

En esta pieza se tiene una tolerancia de 2mm para los puntos A y 3mm para el punto B

 

 

A

B

 

 

 

 

 

 

 

 

 

 

 


B

A

en esta pieza se tiene una tolerancia de 1 mm para los puntos A y una tolerancia de 3mm para los puntos B.

A

A

Bv

A

 

 

 

 

 

 


Cv

Bv

A

Bv

Bv

Bv

A

A

A

En esta pieza se tiene una tolerancia de 1 mm para los puntos A y una tolerancia de 3mm para los puntos B y 2mm para el punto C.

A

A

Bv

Bv

A

 


A

 

 


Av

Av

Bv

Bv

En esta pieza se tiene una tolerancia de 3 mm para los puntos A y una tolerancia de 2mm para los puntos B.

Bv

Av

Av

Av

Av

Bv

 

 


Bv

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


2.     Selección de motores (Propiedades del servo escogido)

Se pretende usar Servomotores Tower Pro SG92R los cuales tienen Rango de rotación: 180° Peso: 9 g. Dimensiones: 23.1 x 12.2 x 27 mm, es más efectivo que un sg90 en lo que respecta peso y torque que puede hacer, llegando a ser hasta más barato.

 

2.1.    Pesos y centros de masa (Condición estática)

Cantidad

Componente

Peso/Unidad

Peso total

1

Módulo de bluetooth Hc-06

4g

4g

1

baquelita

0,7g

0,7g

1

Arduino Nano V3

7g

7g

1

Chasis

1000gr~

1000g~

12

Servomotor sg92r

9g

108g

1

Power bank

4,5g

4,5g

17

Todos

1.032,2

1.124,2

 

 

 

2.2. Posición de análisis

1.124,2 g

 


 

 

281,1 g X 2

281,1 g X 2

 

 

 


 

 

 


Fuerza

d

        Para esta posición el eje de M1 es paralelo a la línea de acción de la fuerza ejercida por ¼ del peso de la araña. Por lo tanto el motor M1 no soporta ninguna carga.

 

        Para esta posición M3 no soporta carga. La línea de acción de la fuerza aplicada por 1/4 peso del la araña pasa por el eje de M3

 

 

El peso total de la araña adicionando todas las piezas es de 1.124,2 g = 1,1242 Kg

 

Se mide el motor 1: 16 mm = 0,016 m

Torque de los servos sg92r = 2,5kg/cm= 0,245 N*m

Torque a soportar cada servo

 con respecto al motor 1

 

Se mide la pata 1: 48 mm = 0,048 m

Torque de los servos sg92r = 2,5kg/cm = 0,245 N*m

Torque a soportar cada servo

 con respecto a la pata

 

Se puede concluir que los motores pueden soportar el peso de todas los componentes de la araña solo con posiciones predeterminadas.

 

2.3. Selección de motores (porque el servo que escogimos)

Los servos sg92r por su composición y torque son más ligeros y hacen la misma fuerza que un sg90, pudiendo con sus propios pesos y el total del peso dividido entre ellos ya que los sg90 pesan más que sg92r y consiguen el mismo torque.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.wecl.com.hk/distribution/PDF/Robotics_IoT/58-01-9024.pdf

http://www.wecl.com.hk/distribution/PDF/Robotics_IoT/58-01-9024.pdf

 


3.       Autonomía (control de los límites del prototipo)

ya el peso total de la araña si es soportado con 12 grados de libertad en las articulaciones, puesto que al ser 3 servos pueden aguantar más peso, además de mayor movilidad o movimientos posibles a realizar y la velocidad de comunicación se configura a través del módulo bluetooth HC06 con 9600 baudios.

 

3.1. Consumo de energía (cuanto se necesita)

Cantidad

Componente

Consumo amperios

Consumo voltaje

1

Módulo de bluetooth Hc-06 Hc06

30 mAh a 40 mA

3.6 V a 6 V

1

Arduino Nano V3

Max 33.4 mA

5 V

12

Servomotor sg92r

2400 mAh -6000 mA

4.8V - 6V

14

Total

6100 mA

5V~

Power Bank=1unidad/2600mAh       3.3v un potenciador incorporado lo lleva a 5v

 

3.2. Selección de baterías (Porque la batería que escogimos)

Teniendo en cuanta el consumo ya visto se ha seleccionado una power Bank con conexión USB para la alimentación del Arduino y de los servos, este power Bank tiene una entrada de 5V/500maH y una salida de 5V/1; la capacidad total de cada batería seria de 2600 maH lo cual le permitirá a la araña funcionar por un total de 25 minutos aproximadamente.

 

 

 

 

 

 

 

 

           

http://www.wecl.com.hk/distribution/PDF/Robotics_IoT/58-01-9024.pdf

 

 


 

 


Características:

1.     Especificación bluetooth v2.0 + EDR (Enhanced Data Rate)

2.     Modo esclavo (Solo puede operar en este modo)

3.     Puede configurarse mediante comandos AT (Deben escribirse en mayúscula)

4.     Chip de radio: CSR BC417143

5.     Frecuencia: 2.4 GHz, banda ISM

6.     Modulación: GFSK (Gaussian Frequency Shift Keying)

7.     Antena de PCB incorporada

8.     Potencia de emisión: ≤ 6 dBm, Clase 2

9.     Alcance 5 m a 10 m

10.   Sensibilidad: ≤ -80 dBm a 0.1% BER

11.   Velocidad: Asincrónica: 2 Mbps (max.)/160 kbps, sincrónica: 1 Mbps/1 Mbps

12.   Seguridad: Autenticación y encriptación (Password por defecto: 1234)

13.   Perfiles: Puerto serial Bluetooth

14.   Módulo montado en tarjeta con regulador de voltaje y 4 pines suministrando acceso a VCC, GND, TXD, y RXD

15.   Consumo de corriente: 30 mA a 40 mA

16.   Voltaje de operación: 3.6 V a 6 V

17.   Dimensiones totales: 1.7 cm x 4 cm aprox.

18.   Temperatura de operación: -25 ºC a +75 ºC

 

https://www.electronicoscaldas.com/es/modulos-rf/482-modulo-bluetooth-hc-06.html

http://www.metal-service.net/pdf/BAQUELITA.pdf

http://www.agspecinfo.com/pdfs/M/MB0016.PDF

Microcontrolador: ATmega328.

Tensión de Operación (nivel lógico): 5 V.

Tensión de Entrada (recomendado): 7-12 V. Tensión de Entrada (límites): 6-20 V.

Pines E/S Digitales: 14 (de los cuales 6 proveen de salida PWM.

Entradas Analógicas: 8. Corriente máx por cada PIN de E/S: 40 mA.

Memoria Flash: 32 KB (ATmega328) de los cuales 2KB son usados por el bootloader.

SRAM: 2 KB (ATmega328).

EEPROM: 1 KB (ATmega328).

Frecuencia de reloj: 16 MHz.

Dimensiones: 18.5mm x 43.2mm

ESPECIFICACIONES DEL LAMINADO FENOLICO INDUSTRIAL

BASE PAPEL KRAFT “BAQUELITA”

Voltaje minimo de ruptura (kv) 40

Permitividad Maxima (1 Mhz) 5.5

Resistencia a la flexion (Mpa) 150

Resistencia a la traccion (Mpa) 120

Resistencia a la flexion (lengthwise) 15

Resistencia a la flexion (Ksi) crosswise 14

Densidad (g/cm3) 1.34

Maxima absorción de agua (%) 0.85

Dureza Rockwell 105

Temperatura maxima de operación (C°) 140



4.     Comunicación y control (Manejo del prototipo y conexiones)

4.1. Selección de tecnología de comunicaciones. (Metodo de comunicación con el prototipo)

Para la comunicación se pretende usar un Módulo Bluetooth HC-06 que funcionara como medio para controlar la araña robótica a través del celular con una aplicación predeterminada. El módulo viene de fábrica por defecto a 9600 baudios y con el PIN 1234 pero podemos modificarlo mediante comandos AT, que se envían por el puerto serie Rx Tx.

 

La razón por la que escogimos el módulo bluetooth es porque su ventaja con respecto a los demás métodos radica primordialmente en su facilidad de uso a la hora de programar y que cumple con estándares satisfactorios en señal, pero respectivamente el rango de señal es muy corta aproximadamente 5 metros y un ultra bajo consumo de batería.

 

 

 

http://codigoelectronica.com/blog/esp8266-esp01-datasheet

 

 

 

 

 

 

 

 


https://spanish.alibaba.com/product-detail/2-4ghz-nrf24le1-nrf24l01-mcu-wireless-transceiver-module-60696553676.html

 

                                           

 

 

 

 

 

 

 

 

 

 

4.2. Protocolo de comunicación (Forma de control a la comunicación)

El protoclo de comunicación se desarrollo con ayuda de la app inventor MITT, por medio de la codificación o programación por bloques como se puede observar en la siguiente imagén.

 

 

en primer lugar, insertamos una lista, la cual llamara al cliente bluetooth, nos mostrara los dispositivos disponibles y nos permitira vincular nuestrotelefono modulo, cuando  este se vincule nos aparecera un texto un texto que dira  ´´conectado´´, ademas tendra un boton para desincronizar el dispositivo.

 

Posterior a esto , nos encontramos con 12 deslizadores que referenciaran a los 12 servomotores, los cuales al momento de accionarlos enviaran un texto al arduino, lo cual este señalara el servomotor o deslizador indicado para permitirle moverse.

 

Y por ultimo, se tiene las opciones alternativas que seria guardar la ultima posición registrada, realizar las posiciones guardadas y borrar las posiciones guardadas, que en ordén también se úeden llamar guardar, correr y reiniciar.

 

 

4.3. Control (forma en que se hará)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.     Anexos

5.1. Planos

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.2. Diagramas esquemáticos.

 

5.3. Placas PCB

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5.4. Códigos

1.    // modified by Javier for spider project

2.    #include <Servo.h>

3.     

4.    Servo servo1;

5.    Servo servo2;

6.    Servo servo3;

7.    Servo servo4;

8.    Servo servo5;

9.    Servo servo6;

10.  Servo servo7;

11.  Servo servo8;

12.  Servo servo9;

13.  Servo servo10;

14.  Servo servo11;

15.  Servo servo12;

16.  int servo1Pos, servo2Pos, servo3Pos, servo4Pos, servo5Pos, servo6Pos, servo7Pos, servo8Pos, servo9Pos, servo10Pos, servo11Pos, servo12Pos;                                              //Current position

17.  int servo1PPos, servo2PPos, servo3PPos, servo4PPos, servo5PPos, servo6PPos, servo7PPos, servo8PPos, servo9PPos, servo10PPos, servo11PPos, servo12PPos;                                  //Previous position

18.  int servo1SP[45], servo2SP[45], servo3SP[45], servo4SP[45], servo5SP[45], servo6SP[45], servo7SP[45], servo8SP[45], servo9SP[45], servo10SP[45], servo11SP[45], servo12SP[45];          //For storing positions/steps

19.  int speedDelay1 = 50;

20.  int speedDelay2 = 500;

21.  int speedDelay3 = 1000;

22.  int index = 0;                                                                                                                                                                        //Se utiliza a la hora de repetir movimiento

23.  String dataIn = "";                                                                                                                                                                     //Es el buffer que le da el dato al Bluetooth

24.   

25.  void setup() {

26.    servo1.attach(2);

27.    servo2.attach(3);

28.    servo3.attach(4);

29.    servo4.attach(5);

30.    servo5.attach(6);

31.    servo6.attach(7);

32.    servo7.attach(8);

33.    servo8.attach(9);

34.    servo9.attach(10);

35.    servo10.attach(11);

36.    servo11.attach(12);

37.    servo12.attach(13);

38.   

39.    Serial.begin(9600);                                                                                                                                                                   //Comunication with the host computer

40.    delay(20);

41.   

42.    servo1PPos = 90;

43.    servo1.write(servo1PPos);

44.    servo2PPos = 45;

45.    servo2.write(servo2PPos);

46.    servo3PPos = 0;

47.    servo3.write(servo3PPos);

48.    servo4PPos = 90;

49.    servo4.write(servo4PPos);

50.    servo5PPos = 45;

51.    servo5.write(servo5PPos);

52.    servo6PPos = 0;

53.    servo6.write(servo6PPos);

54.    servo7PPos = 90;

55.    servo7.write(servo7PPos);

56.    servo8PPos = 45;

57.    servo8.write(servo8PPos);

58.    servo9PPos = 0;

59.    servo9.write(servo9PPos);

60.    servo10PPos = 90;

61.    servo10.write(servo10PPos);

62.    servo11PPos = 45;

63.    servo11.write(servo11PPos);

64.    servo12PPos = 0;

65.    servo12.write(servo12PPos);

66.    

67.  }

68.   

69.  void loop() {

70.    if (Serial.available());

71.    {

72.      dataIn = Serial.readString();                                                                                                                                                    //Read the data as string

73.      Serial.println(dataIn);

74.      if (dataIn.startsWith("s1"));{                                                                                                                                                      //If slider has changed value, move servo 1 to position

75.       String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                              //Extract only the number. E.g. from "s1120" to "120"

76.        servo1Pos = dataInS.toInt();                                                                                                                                                      //Convert the string into integer

77.                                                                                                                                                                                          //We use for loops so we can control the speed of the servo

78.        if(servo1PPos>servo1Pos);{                                                                                                                                                        //If previous position is bigger then current position   

79.          for(int j = servo1PPos; j >= servo1Pos; j--){                                                                                                                                   //Run servo down

80.            servo1.write(j);

81.            delay(50);                                                                                                                                                                    //Define the speed at wich the servo rotates

82.          }

83.        }

84.       if(servo1PPos>servo1Pos);{                                                                                                                                                         //If previous position is smaller then current position

85.        for(int j = servo1PPos; j <= servo1Pos; j++){                                                                                                                                     //Rum servo up

86.         servo1.write(j);

87.         delay(speedDelay1);                                                                                                                                                              //Define the speed at wich the servo rotates

88.        }     

89.      }

90.      servo1PPos = servo1Pos;                                                                                                                                                             //Set current position as previous position

91.    }

92.    

93.    if(dataIn.startsWith("s2"));{

94.     String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

95.      servo2Pos = dataInS.toInt();                                                                                                                                                      

96.                                                                                                                                                                                          

97.      if(servo2PPos>servo2Pos);{                                                                                                                                                           

98.       for(int j = servo2PPos; j >= servo2Pos; j--){                                                                                                          

99.        servo2.write(j);

100.                    delay(50);                                                                                                                                                                           

101.                    }

102.                  }

103.                  if(servo2PPos>servo2Pos);{                                                                                                                                                        

104.                   for(int j = servo2PPos; j <= servo2Pos; j++){                                                                                                                                 

105.                    servo2.write(j);

106.                    delay(speedDelay1);                                                                                                                                                                    

107.                    }

108.                  }

109.                  servo2PPos = servo2Pos;

110.                }

111.                if(dataIn.startsWith("s3"));{

112.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

113.                  servo3Pos = dataInS.toInt();                                                                                                                                                      

114.                                                                                                                                                                                                      

115.                  if(servo3PPos>servo3Pos);{                                                                                                                                                           

116.                   for(int j = servo3PPos; j >= servo3Pos; j--){                                                                                                          

117.                    servo3.write(j);

118.                    delay(50);                                                                                                                                                                    

119.                    }

120.                  }

121.                  if(servo3PPos>servo3Pos);{                                                                                                                                                        

122.                   for(int j = servo3PPos; j <= servo3Pos; j++){                                                                                                                                 

123.                    servo3.write(j);

124.                    delay(speedDelay1);                                                                                                                                                                    

125.                    }

126.                  }

127.                  servo3PPos = servo3Pos; 

128.                }

129.                if(dataIn.startsWith("s4"));{

130.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

131.                  servo4Pos = dataInS.toInt();                                                                                                                                                      

132.                                                                                                                                                                                                      

133.                  if(servo4PPos>servo4Pos);{                                                                                                                                                           

134.                   for(int j = servo4PPos; j >= servo4Pos; j--){                                                                                                          

135.                    servo4.write(j);

136.                    delay(50);                                                                                                                                                                    

137.                    }

138.                  }

139.                  if(servo4PPos>servo4Pos);{                                                                                                                                                        

140.                   for(int j = servo4PPos; j <= servo4Pos; j++){                                                                                                                                 

141.                    servo4.write(j);

142.                    delay(speedDelay1);                                                                                                                                                                     

143.                    }

144.                  }

145.                  servo4PPos = servo4Pos; 

146.                }

147.                if(dataIn.startsWith("s5"));{

148.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

149.                  servo5Pos = dataInS.toInt();                                                                                                                                                      

150.                                                                                                                                                                                                      

151.                  if(servo5PPos>servo5Pos);{                                                                                                                                                           

152.                   for(int j = servo5PPos; j >= servo5Pos; j--){                                                                                                           

153.                    servo5.write(j);

154.                    delay(50);                                                                                                                                                                   

155.                    }

156.                  }

157.                  if(servo5PPos>servo5Pos);{                                                                                                                                                        

158.                   for(int j = servo5PPos; j <= servo5Pos; j++){                                                                                                                                  

159.                    servo5.write(j);

160.                    delay(speedDelay1);                                                                                                                                                                    

161.                    }

162.                  }

163.                  servo5PPos = servo5Pos; 

164.                }

165.                if(dataIn.startsWith("s6"));{

166.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

167.                  servo6Pos = dataInS.toInt();                                                                                                                                                     

168.                                                                                                                                                                                                      

169.                  if(servo6PPos>servo6Pos);{                                                                                                                                                            

170.                   for(int j = servo6PPos; j >= servo6Pos; j--){                                                                                                          

171.                    servo6.write(j);

172.                    delay(50);                                                                                                                                                                   

173.                    }

174.                  }

175.                  if(servo6PPos>servo6Pos);{                                                                                                                                                        

176.                   for(int j = servo6PPos; j <= servo6Pos; j++){                                                                                                                                  

177.                    servo6.write(j);

178.                    delay(speedDelay1);                                                                                                                                                                    

179.                    }

180.                  }

181.                  servo6PPos = servo6Pos; 

182.                }

183.                if(dataIn.startsWith("s7"));{

184.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

185.                  servo7Pos = dataInS.toInt();                                                                                                                                                     

186.                                                                                                                                                                                                      

187.                  if(servo7PPos>servo7Pos);{                                                                                                                                                            

188.                   for(int j = servo7PPos; j >= servo7Pos; j--){                                                                                                          

189.                    servo7.write(j);

190.                    delay(50);                                                                                                                                                                    

191.                    }

192.                  }

193.                  if(servo7PPos>servo7Pos);{                                                                                                                                                        

194.                   for(int j = servo7PPos; j <= servo7Pos; j++){                                                                                                                                  

195.                    servo7.write(j); 

196.                    delay(speedDelay1);                                                                                                                                                                    

197.                    }

198.                  }

199.                  servo7PPos = servo7Pos; 

200.                }

201.                if(dataIn.startsWith("s8"));{

202.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

203.                  servo8Pos = dataInS.toInt();                                                                                                                                                     

204.                                                                                                                                                                                                      

205.                  if(servo8PPos>servo8Pos);{                                                                                                                                                            

206.                   for(int j = servo8PPos; j >= servo8Pos; j--){                                                                                                          

207.                    servo8.write(j);

208.                    delay(50);                                                                                                                                                                    

209.                    }

210.                  }

211.                  if(servo8PPos>servo8Pos);{                                                                                                                                                        

212.                   for(int j = servo8PPos; j <= servo8Pos; j++){                                                                                                                                  

213.                    servo8.write(j);

214.                    delay(speedDelay1);                                                                                                                                                                    

215.                    }

216.                  }

217.                  servo8PPos = servo8Pos; 

218.                }

219.                  if(dataIn.startsWith("s9"));{

220.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

221.                  servo9Pos = dataInS.toInt();                                                                                                                                                     

222.                                                                                                                                                                                                      

223.                  if(servo9PPos>servo9Pos);{                                                                                                                                                            

224.                   for(int j = servo9PPos; j >= servo9Pos; j--){                                                                                                          

225.                    servo9.write(j);

226.                    delay(50);                                                                                                                                                                    

227.                    }

228.                  }

229.                  if(servo9PPos>servo9Pos);{                                                                                                                                                       

230.                   for(int j = servo9PPos; j <= servo9Pos; j++){                                                                                                                                  

231.                    servo9.write(j);

232.                    delay(speedDelay1);                                                                                                                                                                     

233.                    }

234.                  }

235.                  servo9PPos = servo9Pos; 

236.                }

237.                if(dataIn.startsWith("s10"));{

238.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                             

239.                  servo10Pos = dataInS.toInt();                                                                                                                                                     

240.                                                                                                                                                                                                      

241.                  if(servo10PPos>servo10Pos);{                                                                                                                                                            

242.                   for(int j = servo10PPos; j >= servo10Pos; j--){                                                                                                          

243.                    servo10.write(j);

244.                    delay(50);                                                                                                                                                                   

245.                    }

246.                  }

247.                  if(servo10PPos>servo10Pos);{                                                                                                                                                       

248.                   for(int j = servo10PPos; j <= servo10Pos; j++){                                                                                                                                  

249.                    servo10.write(j);

250.                    delay(speedDelay1);                                                                                                                                                                     

251.                    }

252.                  }

253.                  servo10PPos = servo10Pos; 

254.                }

255.                

256.                if(dataIn.startsWith("s11"));{

257.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                            

258.                  servo11Pos = dataInS.toInt();                                                                                                                                                      

259.                                                                                                                                                                                                      

260.                  if(servo11PPos>servo11Pos);{                                                                                                                                                           

261.                   for(int j = servo11PPos; j >= servo11Pos; j--){                                                                                                           

262.                    servo11.write(j);

263.                    delay(50);                                                                                                                                                                    

264.                    }

265.                  }

266.                  if(servo11PPos>servo11Pos);{                                                                                                                                                       

267.                   for(int j = servo11PPos; j <= servo11Pos; j++){                                                                                                                                 

268.                    servo11.write(j);

269.                    delay(speedDelay1);                                                                                                                                                                     

270.                    }

271.                  }

272.                  servo11PPos = servo11Pos; 

273.                }

274.                if(dataIn.startsWith("s12"));{

275.                 String dataInS = dataIn.substring(3,dataIn.length());                                                                                                                             

276.                  servo12Pos = dataInS.toInt();                                                                                                                                                      

277.                                                                                                                                                                                                      

278.                  if(servo12PPos>servo12Pos);{                                                                                                                                                           

279.                   for(int j = servo12PPos; j >= servo12Pos; j--){                                                                                                           

280.                    servo12.write(j);

281.                    delay(50);                                                                                                                                                                    

282.                    }

283.                  }

284.                  if(servo12PPos>servo12Pos);{                                                                                                                                                       

285.                   for(int j = servo12PPos; j <= servo12Pos; j++){                                                                                                                                 

286.                    servo12.write(j);

287.                    delay(speedDelay1);                                                                                                                                                                     

288.                    }

289.                  }

290.                  servo12PPos = servo12Pos; 

291.                }

292.                if(dataIn.startsWith("Save"));{

293.                 servo1SP[index] = servo1PPos;                                                                                                                                                        //Save position into the array                                                                                                       

294.                 servo2SP[index] = servo2PPos;

295.                 servo3SP[index] = servo3PPos;

296.                 servo4SP[index] = servo4PPos;

297.                 servo5SP[index] = servo5PPos;

298.                 servo6SP[index] = servo6PPos;

299.                 servo7SP[index] = servo7PPos;

300.                 servo8SP[index] = servo8PPos;

301.                 servo9SP[index] = servo9PPos;

302.                 servo10SP[index] = servo10PPos;  

303.                 servo11SP[index] = servo11PPos;

304.                 servo12SP[index] = servo12PPos;

305.                  index++;                                                                                                                                                                            //Increase the array index                                                                                                                                                 

306.                }                                                                                                                                                                                     

307.                   if(dataIn.startsWith("Run"));{                                                                                                                                                     //If button "Run" is preased

308.                    Serial.print("int servo1[] = {");

309.                    for(int i = 0; i < index; i++){

310.                      Serial.print(servo1SP[i]);                                                                                                                                                    

311.                      Serial.print(servo2SP[i]);

312.                      Serial.print(servo3SP[i]);

313.                      Serial.print(servo4SP[i]);

314.                      Serial.print(servo5SP[i]);

315.                      Serial.print(servo6SP[i]);

316.                      Serial.print(servo7SP[i]);

317.                      Serial.print(servo8SP[i]);

318.                      Serial.print(servo9SP[i]);

319.                      Serial.print(servo10SP[i]);

320.                      Serial.print(servo11SP[i]);

321.                      Serial.print(servo12SP[i]);

322.                        Serial.print(",");

323.                      }

324.                    }

325.                    if ( dataIn == "Reset"){                                                                                                                                                                   

326.                    memset(servo1SP, 0, sizeof(servo1SP));                                                                                                                                            //Clear the array data the 0

327.                    memset(servo2SP, 0, sizeof(servo2SP));

328.                    memset(servo3SP, 0, sizeof(servo3SP));

329.                    memset(servo4SP, 0, sizeof(servo4SP));

330.                    memset(servo5SP, 0, sizeof(servo5SP));

331.                    memset(servo6SP, 0, sizeof(servo6SP));

332.                    memset(servo7SP, 0, sizeof(servo7SP));

333.                    memset(servo8SP, 0, sizeof(servo8SP));

334.                    memset(servo9SP, 0, sizeof(servo9SP));

335.                    memset(servo10SP, 0, sizeof(servo10SP));

336.                    memset(servo11SP, 0, sizeof(servo11SP));

337.                    memset(servo12SP, 0, sizeof(servo12SP));

338.                    index = 0;

339.                    }

340.                  }

341.                 {

342.                servo2.write(180);                                                   //Saludar

343.                delay(1500);

344.                servo1.write(180);

345.                delay(500);

346.                servo3.write(90);

347.                servo3.write(0);

348.                delay(200);

349.                servo3.write(90);

350.                servo3.write(0);

351.                servo3.write(90);

352.                servo3.write(0);

353.                servo3.write(90);

354.                servo3.write(0);

355.                delay(100);

356.                servo3.write(90);

357.                servo3.write(0);

358.                delay(200);

359.                servo1.write(90);

360.                delay(500);

361.                servo2.write(90);

362.                delay(100);

363.                

364.                

365.                servo9.write(45);                                                    //Sentarse y saludar

366.                servo12.write(135);

367.                delay(1500);

368.                servo9.write(90);

369.                servo12.write(90);

370.                servo2.write(180);

371.                servo1.write(180);

372.                delay(500);

373.                servo3.write(90);

374.                servo3.write(0);

375.                delay(200);

376.                servo3.write(90);

377.                servo3.write(0);

378.                servo3.write(90);

379.                servo3.write(0);

380.                servo3.write(90);

381.                servo3.write(0);

382.                delay(100);

383.                servo3.write(90);

384.                servo3.write(0);

385.                delay(200);

386.                servo1.write(90);

387.                delay(500);

388.                servo2.write(90);

389.                delay(100);

390.                servo9.write(45);

391.                servo12.write(135);

392.                delay(1500);

393.                servo9.write(0);

394.                servo12.write(180);

395.                delay(500);

396.               }

397.              }

 

Comentarios