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
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 | 1° | |
PIN/Pasador (motor 2-junta rotacional) | 4 | 1° | |
PIN/pasador (el chasis se divide en dos el cual encierra la electrónica y el power bank como un sandwich) | 6 | 0° | |
PIN/pasador (motor 3-junta rotacional) | 4 | 1° |
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.
B |
A |
A |
A |
B |
A |
A |
A |
A |
A |
A |
A |
A |
A |
A |
A |
B |
B |
A |
A |
A |
Bv |
A |
Cv |
Bv |
A |
Bv |
Bv |
Bv |
A |
A |
A |
A |
A |
Bv |
Bv |
A |
A |
Av |
Av |
Bv |
Bv |
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 |
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
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
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
Publicar un comentario