Está en la página 1de 70
PRoyECTO SABER HA Santana Tecnologia Proyectos tecnoldégicos DISENO, IMPRESION 3D, MONTAJE Y PROGRAMACION SERIE CONSTRUYE Los bros de Tecnologia, para 1%, 2°y 3 curso de Secundaria, son una obra colectiva concebida,clisefiada y creada en el Departamento de Ediciones Educativas de Santilana Eucacion, SL, diigdo por Teresa Grence Ruiz. En su elaboracién ha participado el siguiente equipo: TXT Carlos Lamparero Garci Gabriel Prieto Renieblas avid sanchez Gomez EDITOR EJECUTIVO David sanchez Gomez DIRECCION DEL PROYECTO ‘Antonio Brandi Femandez Lis activa ce esto Hono dehen ser eliza en gin ase ‘vel api ire 9s ables esas yoo recurs qu Sen con odsos para eu el ater los asia as cued 1 Resolucion de un problema técnico. Fase creativa 2. Analisis de las posibles soluciones, 3. Plan de trabajo... 4. Disefto 30 i i 5. Metrologia y parametrizacién. : ; 6, Disefio 3D del radar. 7. Impresi6n 30. 8, Material necesario para el proyecto 9. Montaje del proyecto. Las servos. 10, ProgramactOn....1.0 PROPUESTAS DE MBORA DEL PROYECTO. . Proyecto: robot de concurso. 1. Fase creativa 2. Fase de anilisis... 3. Planificacion 4. Disefio de los elementos en 30. 5. Materiales. 6. Montaje, 7. Conexiones y programacion PROPUESTAS OE MEIORA DEL PROYECTO, ‘Conectando con el mundo... Resolucién de un problema técnico. Fase creativa... A. Medi una magnit y publica en internet Posibles soluciones 22, Anis de as poses soluciones... 43. Plan de trabajo, ‘MA Material necesario para el proyecto. ‘AS. La conexién de Arduino con el mundo. B1. Segunda parte del proyecto: control desde Internet... 82, Material necesario, Montaje y programacién 7 PROPUESTAS DE MEIORA DEL PROYECTO, Doble pagina de Introduccion a la unidad Nos hacemos preguntas. SABER El tiempo que tarda la onda de radio en iry volver * Resolucién de un problema técnico, * Andlisis de les posibles soluciones, * Disefio 3D con Openscad, + Disefio del radar. + El disefio e impresion en 30, + Montaje. ‘+ Programecion, ‘= Evaluacion, SAGER HACER * Utiizar programas de disefio 3D. + Acoplar los elementos mecanicos y electronicos S rnecesarios para el desarrollo ee ee ete eee de un proyecto, : bsticulos reflejan, Como estas ondas se transmniten 7 pela eons | oe inven ‘necesaria para que un objeto a y Lee muy pequefio, por lo que parece que el radar localiza eerien cums ou tuners os objetos de manera instantanea, La orientacién de le onda emitida sirve para Una pantalla muestra determinar la direcoidn en la que se encuentra habitualmente la informacion el obstdculo que localiza el radar ‘numérica obtenida por el radar. NOS HACEMOS PREGUNTAS. ECOmo funciona un radar? Un radar es un aparato capaz, de detectar objetos a distancia. Los radares convencionales emplean ondas de radio, pero existen alternativas para detectar un obstéculo Los barcos, por ejemplo, emplean ondas de sonido (ultrasonidos) para cartografiar el fondo marino, y los coches usan también ultrasonides como asistencia en el aparcamiento. Estos procedimientos tienen algo en connin: se emiten ondas ‘que chocan contra un obstéculo y reqresan al punto de partida aportando informacion sobre la direccién y la distancia a la que se encuentra un objeto, Los radars de aeropuertos Los radares empleados en el tréfico (AemeDalaborasusprevsionescon _permitenarganizareficazmente_rodado permiten conocer : | | datos de los radares meteorolégicos. _el trifico aéreo, a velocidad de los automéviles, Proyecto: Radar «casero» Los radares meteorolégicos Los radares militares intentsn permiten conocer qué zonas se ven _localizar aviones u otros objetos afectadtas por precipitaciones. que penetran en el espacio aéreo de un pas sin permiso, _ INTERPRETA LA IMAGEN WATS! © .Por qué es correcto afirmar que un radar de ‘+ zCudles son las diferentes etapas del proceso un aeropuerto localiza los aviones de una manera ‘tecnologico de resolucion de problemas? casi instanténea? Enuméralas. ‘+ Algunos aviones militares son sinvisibles» al radar, ‘= cEn qué consisto ol disefio en 30? zPor qué es uti {Qué propiedad deben tener los materiales ‘durante la fase de disefio de un producto? Gis fore = ee re + 2Qué forma elegifas para construir un radar? Los sensores son dispositivos. ‘que capten del mundo real, las varlaciones de tuna emagnitud fisican, yy las convierten en variaciones de una «magnituc eléctrican, Una magnitud fisica puede ser la Juz, a temperatura, el sonido, la posicién, la distancia, la velocidad, la presién.. Una magnitud eléctrica puede sor la resistencia, el voltaje 0 la intensidad de corriente. ACTIVIDADES & Resolucién de un problema técnico. Fase creativa Planteamiento Hoy en dfa los aparatos tecnolégicos no tienen un sentido de la vista tan desarrollado como lo tienen las personas y, aunque se est avanzando mucho en evisi6n artificials, todavia es una tecnologia prohibitiva para Jos aparatos tecnologicos comunes. Por eso cuando necesitamos que un robot wea» a su alrededor para esquivar obsticulos o para atraparios, necesitamos utilizar otras tecnologias mas asequibles que permitan de tectar objetos préximos. En este proyecto queremos construir un artilugio tecnolégico que permita detectar y situar objetos préximos en un radio. de accion de un metro y abarque un Angulo de 180°, Posibles soluciones EI punto de partida es elegir un sensor capaz de detectar objetos préximos, Posibilidades: ¢nsor de infrarrojos (A), * Sensor magnético o capacitivo (C). + Sensor de contacto (B), Sensor de ultrasonidos (D). Otro aspecto importante es que el sensor elegido cubra un angulo de 180°, Existen distintas posibilidades: + Utilizando un sensor cuyo campo de deteccién abarque toda la zona deseada, ‘* Montando dos o tres sensores de manera que en conjunto abarquen toda la zona * Moviendo el sensor, monténdolo sobre un servo que gire barriendo esta zona. Y, por iltimo, tenemos que pensar de qué manera vamos a representar los objetos detectados. Algunas posibilidades son estas: * Por la pantalla de un ordenador ‘* Mediante una pequefa pantalla LCD dando las coordenadas X e Y de los objetos detectados. © Por medio de pitidos. ¢Se te ocurre alguna posible solucion més a este ‘ Pon ejemplos de aparatos y maquinas que incluyan problema? alginn tipo de sensor. rodeos a Analisis de las posibles soluciones EI metodo de la tabla dle evaluacién Se trata de rellenar una tabla en la que puntuaremos de 0 (malo) 6 (bueno) cada uno de los factores que consideremos clave. Basta con analizar estos tres factores para ver que el nico sensor que cumple nuestras condiciones es el sensor de ultrasonidos. : 2 2 3 sutures | Yereqivemr | eliaoteene | ose aserce | susan Detacla Sore coreaio minima de accién, ‘contacto con ‘ser magnético. minima, ‘minima son 2.cm. Sos * om |ooame ° 3 é oe suredomésero | Nopede tear | no puotedeecor | nopusdetctr | tint sin Dore ets an ete Geccanewe | cjsiraacirca | djeneodsan, | Obpesadsuce. | acon aide on | | eeroamen a 4 4 5 | 4 erommey | fseinoscra | Temenos | teroincase | seometorin | teremease Lose cea ‘en tomo los 10€, comedide. ‘comedide. ‘conuntrazo de | -comedia jaoadeauina | inmuisen tt ole ie a” El método de las ventajas e inconvenientes Para abarcar 180° cnn este sensor tenemos tres opciones: jo ae sor dulcis ene un cz seleccen obarque toa zona deseo coma no existe elametos moles, rd e vsbn itado que no eg a 1807 ‘Moniat oso ues sensones de meneta coat ce riplicao cuacruplca al tener 8 | fleerratsebaren trier | Mtn dlnobmeriatmecrarete | Sue 04 snes c | teceememctaame um tecrinernunpnyenes | monn ota Unsere que ite barmendo este zone. | el proyecto de implementa La decisién tomada debe tenor en cuenta estos factores: ros « Facilidad de montaje. Cuanto més facil, mejor * Coste, Cuanto mas barato, mejor Un servo esta constituido En este caso nos inclinamos por darle més peso al coste y, por tanto, fn su interior por montaremos un solo sensor de ultrasonidos sobre un elemento mévil = Unmotor, que en su trayectoria semicircular cubra la zona de 180°. + Un sistema de engranejes reductor de velocidad ACTIVIDADES + Un circuito electronice que permite gira el oe del servo. © Realiza un croguis de la otra posibie soluctén, montando dos o tres y posicionario en cualquier sensores. » detrés de la instrucei6n color (, sino detras Para dibujar piezas de distintos colores utliza la instruction de la pleza que queremos colorear. i color delante de la pieza. Observa los ejemplos: \ Goes Crs color("green", 0.5 60/255, 200/255). 0.8) Linder (#20, 120 ~~ fee un parimetoopcenal odoros dfn acotorcon su esago nse, avetenoa | | Expeciea el color con su nombre se transporencia vaorentse dy ._| cada nimeropor 2s, yaad rersprencl. | entre comitas 4, Aplicar transformaciones basicas | rotate ( (90.0.0 eykinder(e1=20, P20) w20, $f! rotate( (90.0.0) eylinder(ri=20, x20, W=20, $fm4 nirror( (0.1.0) | rotate’ !90,0.07) | ouinierisran 12-0, br20, $tn-# ‘traneLave({50,0,0] tube’ 20) Para mover un objeto utiliza translate Y tes nines ent corchetes: dselazanionto en X,enY yen z ara gar un objet riiza rotatey tes nimres ene orcheles que Inccan el érgulo | Lasontoncia ai ror hace una seta en a deci [radoen tomo acariaeje:X.%, | marcada con un«t,Eneste casa ania dreccon¥. | ac IDAD ©) Realiza el dibujo de la derecha 3D. Puedes comenczar asf; Teabace color‘ [1,1,0) sphere(r-20, $f-100, center-isve) cotor( {1.0.01 | rotate( {0,-19,0}) | ‘translate [0,0,401) cylinder 1-30. 12-0, BAS Continda luego con la natiz, tos ojos yla boca. :Puedes _ dibujar tz boca con lo que fas aprendice hasta ahora? 10. Disefiar ef alojamiento del sensor de ultrasonidos De la misma manera que para el caso del microservo, dibujamos nuestro sensor de ultrasonidos en Openscad |. Observa en fa imagen de la derecta el aspecto que tendra la pieza que vas a dseftar 2. Comienza definienco un méciulo para el sensor. wodule SRO4() ( placa placa_A-? placa~3 sensor_R-.4 sensor_H=}2 cransiate([-placa L/2, -placa ~placa 3. Dibujael alojamientoclinarico. color( translate( [sensor R+1, placa A/2, placal) cylinder(rsensor_R, h-sensor_H, $£n~50 translate( [placa_L-sensor_R-1, placa_A/2, placal inder(r-sensor_R, b=sensor_Hl, $fn~50 !. Dibuia el conector, /iConeetor color(“black") translate(!placa 1/2, 2.5/2, 0 cube(|10.5, 2.5, 91, eenter=true) : te{ {placa L/2, -2, -3.5 (110.5,9,2.5], centertrue trans cub. 5. Dibuja la placa y los agujeros, //Placa color("blue") cube((placa_L, placa_A, placal) HMagsjere late( {2.3.2 eylinder(r1.5, hesensor_* placa_L-2.3. place A-2.3 hrsensor_*2, $fn-20 H1SRO4() 8. Guatda ef archivo dibujado. ‘Ahora ya podrés usar este alojamiento en tis proyectos. Como ves, se dejan ios cilindros de los agujeros. No se ha realizado ta resta para que, al utilizar este médulo, ‘marquon la posicion de los tornillos, de montaje. & PRESTAATENCION Dsus | 41. Disefiar el radar completo en 3D 4. Utilize ol Microservo 9g y el sensor de ultrasonidos 2. ‘SROW ya dibujados. Para eso escribe: use use Para la base usa un tronca de cono Ge 30 mm de ‘altura, cle radio inferior 60 mm y radio superior 30 min, 8 Para vaciari por dentro, réstale otro tronco de cone de 25 mm de altura, de radio mayor 55 mm y radio menor 25 ram, i aifference() cylinder(1=60, 12-30, h-30, $n-50) translate([0,0,-1)) cylinder (r1=35, 12°25, 1-25, $£n-S0! La taslacion (0,0,-1] del segundo tronco de cono hhace que el corte se vea limpio en Openscad TRUCO. Haz el aloamiento para el servo restando el propio servo, Para ver en el dsefio donde quedaria el servo, vuelve a copiar esta altima instruccion fuera de la lave que clerrala difference!) | tranzlate([0,0,251) Servot) translate! [0,0,25]) Servo() Para la parabolica utiliza el mismo tronea de cono anterior énele un cubo a un lado que debes trasladar —30 nel eje X para centrario respecto de la parabélica, | Haz también el vaciado igual que con la base. | difference() | cylinder(r1-60. 12-30, 1-30, $err50) ate ({-30,0.0) 60,60, 30]) cube tranglate({0,0,-1)) cylinder (21°55, r2=25. 125, $fnv50): Haz el alojamiento para el sensor de utrasonides, | ‘que hay que dar la vuelta (giro de 180°) y trasladar de la misma forma que se hizo con el servo, Cops | también esta instruccién y ponla fuera de | ) para vor donde laoperacion difference | quedaria el sensor. translate ((0,0,32] gotate((180,0,0]) SRO4O ropes 6B Por titime hay que prever un agujero para introducit cl toro de fijacion del servo. tranglate({0,0,15]) rotate({-90.0,0)) eylinder (r=2, h-70) ara vor la parabolica en su lugar de montaje es necesario rotara y trastadare: J Marabdliea translate([0. -15, 100)) rotate({-90, 0,0) Todo junto quedaria ast oe Hicroservo_9g.sead? use (Ultrasontdos SRO4 .scad> {ease cylindar(ri=60 12°30, H-30, $050): tranglate(|0,0,-1]) tranglave([0,-15,100}) rot aifterence() | cylinder (r1~60, 22-36, b-30, $£n-S0) -a{ {-30,0,0]) cuubot 160,60, 30)) seanslate({0.0.-11) cylinder(r1-55, 12-25, h-25. $f1r50) translate( {0,0,92]) rotave((180,0,0) SROK() translate({0,0,15]) rotate( {-90,0,0]) cylinder (-2,270' tranelate({0,0,32]) rotate({180.0.0}) SRO () ‘Agujeras para el sensor Hueco para cl sensor 1. Se crea una imagen empleando una plicacién de disefio 3D. en un ordenador. 3. El motor de la impresora va desplazando el flamento del ‘material, que se deposita capa ‘a capa formandbo la pieza, 2 @ impresién 3D Una vez que tenemos los elementos disefiados en 3D es necesario gene- rar las piezas reales a partir de ellos. Para ello es necesario usar la téeni- ca de impresi6n en 3D 0 bien fabricar estas piezas «a mano» empleando madera u otros materiales a nuestro alcance. Una Impresora 3D es una maquina que permite realizar una copia tridimensional de diseiios elaborados con aplicaciones 3D ‘en.un ordenador, Permite crear piezas con volumen a partir de un modelo generado con un programa de 2. besarrollo en una aplicacion de disefio 30, 2. Elarchivo 3D se envia ala impresora, 4. La impresién se completa capa a capa hasta que lapieza esta terminade, sefio como OpenSead, SketchUp, etc. 3, impresién 30. 4, Pieza torminada Tecnologia de impresion La impresién 3D es una tecnologia de fabricacién aditiva, en la que se crea un objeto tridimensio- nal mediante deposici6n de sucesivas capas de material, En oposicién con la tecnologia de fa bricacién sustractiva de los tornos y fresadoras que crean los objetos a partir le un tocho al que Je van arraneando material para darle la forma deseada, Las diferentes tecnologias de impresién 3D se diferencian en la manera de construir estas capas: ‘+ Algunos derriten el material para producir las capas: FDM, Fused Deposition Modeling, * Otros depositan materiales liquidos que son curados con aiiferentes técnicas, * Ylos hay que cortan finas capas de material con la forma adecuada y las unen, El proyecto RepRap (Replicating Rapic-prototypen) fue el primero de impresoras 3D de escritorio con tecnologia FDM puesto a disposicion del gran piblico, pues se trata de un proyecto de bajo coste y de cédigo abierto, Como muchas partes de la RepRap estan elaboradas con plas~ tico, la RepRap es capaz de imprimir sus propias piezas, Por tanto, es luna méquina autorreplicante que cualquiera puede construirse en su casa. Existe mas informacin sobre este asunto en oiffeewwereprap.org/wiki/RepBap!es G-codle Una vez que tenemos el fichero STL del objeto a imprimir tenemos que afiletearlon. Esto es, hay que cortarlo en finas capas y definir en cada una su per{metro y su relleno, generando las instrueciones denomina das G-code. Estas indicarén los movimientos del cabezal de la maquina para generar la pieza, Para ello podemos usar los siguientes programas: + Cura: software libre soportado par una empresa de impresoras 3D. + Slic3r: es un software libre soportado por la comunidad que da muy buenas prestaciones. «+ Kisslicer: software gratuito que tiene también una versién de pago. En este proceso se pueden configurar muchos parémetros que afc ala forma de imprimir la pleza, como, por ejemplo: « Altura de la capa: entre 90 y 300 micras. 1 micra = 0,001 mm, * Grosor del perimetro. + Grosor de las capas inferior y superior. * Densidad del relleno: entre 10% y 40%. * Velocidad de impresién: entre 40.y 70 mm/s. + Temperatura de impresidn: segiin el tipo de plistico empleado como materia prima para las piezas. + Afadir material de soporte. ‘+ Mejoras de la adhesién de la pieza a la base. + Didmetro del filamento. Host EL paso siguiente es enviar estos G-code a la impresora para que mueva sus motores y genere la pieza, Para esta communicacién con la maquina se utilizan programas denominados Host. Entre ellos destacan: + Pronterface: es de los primeros que aparecieron y atin se sigue usando. También se le conoce con el nombre de Printrun. « Repetier-Host: software gratuito de una empresa que integra distin- tos fileteadores y control de la impresora en un mismo entorno. + ReplicatorG: software libre muy simple. Firmware Hay que mencionar un iiltimo elemento de software: el firmware. Se descarga en la placa Arduino que controla la impresora 3D después de configurar una serie de parémetros en funcién del tipo de maquina que se quiere controlar: + Sprinter es el més antiguo. + Marlin 0s el mas uttizado. | Elaspecto de Lina impresora 30 ali bastante del de una impresora convencional a PRESTAATENCION Para colocar la pieva que ‘queremos imprimir es importante darse cuenta que la forma de fabricacién es capa a capa, por lo que no se podran imprimir voladizos ni paredes Inclinadas mas de 60°. En estos ‘casos es necesario aftadit material de soporte. ACTIVIDADES LQUE ventajas aporta la impresion 3p, en tu opinion, especto a otras técnicas dd fabricacion con materiales plésticos, por ejemplo? €B LQUé aplicaciones para las impresoras 3D se te ocurren? etabora une lista Busca informacion en internet ¥ completa la lista anterior t a ‘© SABER HACER ze 12, Elaborar el disefio para imprimir | Hueco para acoplar Pata generar los diseios 30 en formato .st para poderles imprimir, dibuja cada pieza el servo dl radar por separado y colocadas de tal manera que sean factibles de Imprimir. 1. Genera la base en Openscad, Eseribe el siguiente cécigo. use (Microservo_9g.scad> use Base ate([0,0,30] jrotate([0, 180, 0} difference cylinder |rI~60, 22°30, 1-20. $fn=50) ‘late ([0,0,-11) cylinder “55, 12 | translate ({0,0,25]) Servo {) 125, $fn-5D) 2. Guarda el archivo en formato st | Parabética 11. Genera la parabélica en Openscad, Escribe et siguiente codigo, use (Microservo_9g.scad> use Utrasomidos SRO4, ecad> | 1 fParabélica | j nslate([0,0,30]) rotate([0,180,0]) | | difference() | | cylinder(rl=60, 230, h=30, $n=50) | translate({-30,0,0]) cube! [60,60,30)) cylinder (55, 12-25, he25, $n-50) ) rorate({180,0,0]) SROAC) : } rotate([-90,0,0)} cylinder (2,470) Hueco para moatar ‘el sensor de ultrasonidos 2. Guarda el archivo en formato st 3. Ve tomando fotos de las diferentes etapas del material eripleado en Ia construccién del proyecto. rye rate aed @ Material necesario para el proyecto. La velocidad del sonido La velocidad del sonido en el are ‘Ademis de las piezas disefiadas en 3D e impresas (0 elaboradas depende de la temperatura, por a mano»), se necesita lo siguiente. Jo que si quisiéramos obtener tuna mayor precisién tendriamos + Sensor de ultrasonidos. * Servo. + Placa Arduinoy cable USB. aque efedr un sensor de temperatura para calcular sensor de ultrasonidos esta velocidad. Este tipo de sensores utilizan sefiales actisticas de frecuencias entre 20 Hz y 400 kHz, por encima del rango de frecuencias que puede captar el ofdo humano. Emiten un pulso de ultrasonidos que rebotard en el objeto y volverd al sensor, Midiendo el tiempo que ha tardado el pulso eniry volver se puede calcular la distancia a la que esta el objeto. Distancia = ¥2! da Tiempo Fijate que es la mitad porque el pulso va y viene. La velocidad es ta del sonido, que a 20°C es de 343 m/s. Como normalmente nos interesa la distancia en centimetros y el tiempo se expresa en microsegundos: 4g. 1000m __1s sm 1000000us distancia = tiempo * 0.0343 / 2.0 ELHC-SR0# es un pequeiio sensor de ultrasonidos que opera a una fre- cuencia de 40 kHz, Detecta objetos situados entre 2.cm y 3 metros, y tiene cuatro pines de conexion: + Voc: se conecta a +5 V. ‘# Feho (recepcién del ultrasonido). # Trig (disparo de! ultrasonido). — * GND. objeto Velocidad del sonido 10343 om/ps CE auincas 13, Medir distancias con uitrasonidos usando Arduino Beer err digi talWeite (TRIGPIN, 10: ine (distancia * 0.0343 /2): 4, Une todo el procedimiento en una funcién (Med in) y padras utiizalo facilmente en tos programas. int distaneis | 4. Genera un puisa de unos 10S en et pin egy 2. Pon alla escucha a pin cho para medi el tempo | digitelWed te (TRIGPIN, LON) ; ‘que tarda el pulso en ir y volver. | delayMicveseconds(2): Float tiempo = pulseIn(ECHOPIN, 11 [2 crea una ntanci por ala servo dl proyecto a Montaje. Los servos En el proyecto que estamos construyendo, el servo va acoplado a la base y a la parabélica del radar, de manera que cuando el microcontro- lador Arduino ordena girar al servo, se mueve la parabélica hacia un lado y otro, En general, los servos tienen un rango de actuacién de 180°. * Sise recibe un pulso de 1 ms, va a la posicién de * Sise recibe un pulso de 2 ms, va a la posicién de 180°, * Y para el resto de posiciones intermedias, habra que mandar pulsos intermedios, Asi, con 1,5 ms iré a la posieién de 90°. La sefial PWM de Arduino proporciona una sefial cuadrada de pulsos a una frecuencia de 416 Hz que simula una salida analégica cuyo valor es Ja media entre el tiempo que la serial estaba en valor HIGH y el tiempo en valor LOA con Ja funeién: 0 a 255) Pero para los servos no queremos eso. Cada ciclo de un servo es de 20 ms. Esto significa que cada 20 ms et servo lee su sefial de entrada y, dependiendo de lo que dure el 1 l6gico (ancho de pulso), calcula la posicién a la que debe ir. Asi, restando los 2 ms del pulso tendré unos 20 ~ 2 ~ 18 ms para alcanzar esa posicién deseada y se puede cambiar de posicién 1000/20 = 50 veces por segundo, rite (valor: servos disponen de tres cables para enviar los pulsos. + Alimentaci6n: Ve. entre +44 Vy +7 Vs rojo. * Masa (GND): negro o marrén, * Seftal de control (pulso enviadlo al servomotor}; amarillo. ‘También podrias leer la posicién (en grados) | en la que esté el servomotor y guarcarl, Por ejemplo, en una variable lamada angts1o, int angulo = myservo ad | (hasta un maximo de ocho) y nombvalas. 6. Esquema de conexiones. Fara tu proyecto ce Seevo myservo ‘dar, conecta los cables segiin el esquema adjunto. Serve my_otro servo + Echo pin7. + Tig pin 8.» Servo pins. Enel setup () debes definir el pin donde Jovas a conectar mediante la sentencla myservo attach (SERVOPIN) : 4. Durante el programa posiciona el ee cel servo fen el angulo indicado (en grads). servo.wrlte(pos) : 4 rrowceoto @ Programacion OR cas | 15. Elaborar el programa de Arduino | Elprograma bésicamente mueve el servo de izquierda a derecha y de derecha a izquierda barriendo tuna zona de 180? Durante este barrido va tomiancio medidas de fos objetos que encuentra mediante | | el sensor do utrasonidos y envi fs resultados pore puerto serie distancia y posicion inelids Weivo 1 /librersa para manejar los servos. | fdofine ECHOPIN 7 JTPines a los que conectanos el sensor y el servo. define TRIGPIN 8 aotine SERVOPIN 9 i {IMaviniento del servo en un sentido. | for(posO ; pos<-180 ; pos~post5) { Seive mjservor [cosmos una Snstancia para nuestro servo. | Tit pos = 0: T/Gsarda Ie posicién dei servo en graios. | «dist; {Guards 1a distancla a un objeto detectado, | youd serup() ¢ Serial sep (@600) //Tntetalizanos el puerto serie. Yyafoue(ECHOPIN, TNCUP) ; //Declaranos las salidas y entradas | | prinode (TRIGPIN, OUTPUT) | | faygervo.cctach (SERVOPIN: I/oeclaranos 1a sala del servo. | ) | void Loop) | nydetvo etic (pea) : [Mover el gorvo a 1a posici6n. dist ~ Medircm(); IMMedix 1a distancia a un objeto. Erint(dist, pos): W/emviar las coordenadas: distancia y posic: delay (20) ; L ‘movimiento det goewe en et otro contido, a PRESTAATENCION, | (inigeeseo «pose: poorest myservo.write(pos) « Para mangjar Un Serve necesitas incluir clertas sentencic dist = Medi en( «+ Crea des variables: pos, donde guardar la posicién actu Print(dist . pos); | del servo en grados, y dist para guardar la distancia | Heer 2 un objoto detectado. 1 + Para enviar datos por el puerto serie debes crear Jafuncién Print () que enviara la distancia al objeto | Titec ame aaa mae detectado y la posicin de! servo en graces separads p it Mediz_ca () ( una coma y con un punto al fra | ewok | + Para’ulizar @tSensoiede tltrasonitos crea la funcion delamicrocecondo(2): | Mediz em (),que dala distancia ala que hay digtelii ite q ue guna man | teneoen comes talWrite(TRIGPIN, LO) + | Floct tiempo = pulsein(RGHOPIN, HIGH) ; | | jot dlatancla ~ Ant (tiempo * 0.0343 / 2); seturn(distancda) + ) d/Buncién pate énviar la distancia a un objeto y 1a posicién del servo. V/Separados por una coma y al final. un punto, | void Print (int R, Ant 7) | t | Serial print (R) ;Serial print (", * Setiul print (Q) Serial printin(’. elay (100): KI Et ay 16, Trabajar con el puerto serie en Processing | Para tomar los datos erviados por Arduino a través del puerto serie y uilizarlos en un programa | | de Processing necesitamos cferentes sentencias. Enel inicio 4. Inclye fe librefa processing. serial. * para poder utilizar un puerto serie ‘en Processing. Inport processing.serial.*; 2. Crea una instancla tipo Sex-ia1, que es como definir una variable to puerto serie ala que puedes lamar mi puerto, Serial mipuerto; Enel setup () |. Para configurar el puerto serie, mi puerto, indica que es un nuevo elemento tipo Serial, + Que fo vamos a usar en este programa: ts ‘* Que lo tenemos conectado al puerto COMI O. + Que la velocided de transmision de datos es de"9600" bps, | observa: mipuerto — new Serial (this, “COMLO 9600) : 4, Lainstruccién buf ferUne 1 () hace que se ejecute la funcién serie lsvent | cuando aparezca un «» (punto) en el puerto serie. mipuerto.bufferuntil(*."): En la funcién serialEvent 5. Eseribe: void serialBvent (Serial mipuerto) ( Esta funcéin se ejecta cada ver que aperece un punto en et puerto serio | y permite: i '* Leer una cadena de caracteres, hasta el punto, y guardarla en la variable datos, | String datos = mipuerto.readStringUntil(*.’); + Quitarel timo carécter,que es el punto. | datos = datos.cubetring(0, datos. length() - 1): poco. + Guardar en la variable index la posiciin dela coma que sepia el dato | della distancia y el de fa posi. 2n radianes. | int index = datos. indexof(","); ‘equivalen a 360° * Extraer el primor dato de la cadena, que es la distancia, y guardarlo | en la variable distancia, | | distancia = float (datos. substring(0, index)); + Extraer ol segundo dato de ia cadena, que es la posiciOn, y guardaro en radlanes enia variable angulo. angulo = radians (float (datos. cubotring(indextl, datos. lenzth())))+ Projet : 47, Usar un array para los objetos detectados 4, Crea una variable tipo array o lista denominada ‘Tendra copacidad para almacenar 100 datos. objetos. £loot{] objetos = now float [100]; En ella guardards las coordenadas de los objetos Define una variable n, que servi para irleyenco | esta lista de objetos detectados. ink n= 0; ‘detectados por el radar y a intensidad con la que leben brilar en la pantalla. | 48. Definir el tamafio de fa pantalla y fa velocidad de reproduccion Como en el cine, fo primero que se define en un programa de Processing es el tamaiho de la pantalla y a velocidad ala que se van a mostrar los distintos fotogramas. 4. Esto se suele hacer en el setup (). Escribe 2. En este caso guarda el tamatio de la pantalla la sigulente sentencia en Processing. en una constante lamada RADIO. i siz0(RADIO*2.RADIO) + ErameRete(5) : | /!Tamafio de la pantalla [Ielocidad de reproduccién. E PRESTAATENCION Las oordenadas En una crcunferencia | cartesianas x,y e radio unidad | | se pueden estas sentencias | expresar a partir rane coFtesponden i | dol éngulo a. Para ala funciones | | aloes necesario mmatemticas cemplear dos reso sen y coseno. i | sentencias: sin observa ¥ con. Observa el esquerna + sin@) <0. ssin@o}=1. — * sin(1809)=0. + c05(0)= 1. + 60S (90") 0. + c08(180") = 49. Emplear la funcion draw() ‘Ahora aborda et bloque principal del programa. En él se llevan a cabo cuatro tareas. | A. Guarda las coordenadas (x, y) y el brillo de cada objeto detectado por el radar 4, Siladistancla a un objeto detectado esté entre cero y 100 cm entonces se guarda, if ((distancia>0) && (distancia¢100)) ( 2. Guarda las coordenadas (, ) del objeto detectado en a lista o array ob;jetos, y para que salga toto algo mas ‘grande, multipiica la distancia por (RADTO/ 100).Esto es como utilizar una escala 3:1 nla pantalla, objetos[n]=int (distancia* (RADIO/100) * coe {angulo)) : /1Coordenada x. objetos [nt1]=int (-distancia* (RADTO/100) *cin(angulo)); — //Coordenada y 9. Guarda también en la lista un torcer valor: el brillo del punto. Inicialmente valdré lo miro: 255. ero a lo largo del programa irés cisminuyendio este valor para que los puntos brillen cada vez menos yacaben por desaparecer gradualmente. objetos[nt2] = 255; //Brillo inicial al maximo. a 4. Como has guardado tres nimeros ty. brillo)ncrementa el indice de Ia lista en 3y as! te preparas para guardar el proximo objeto detectado, /{Incrementanos 1 indice de 1a lista /#84 Vegamos al final volvemos al principio. 8. Dibuja el fondo negro con tres semicirculos y lineas cada 30° |S. Usala funcion fondo Q) void fondo() | 1 | ground (0,0,0) //Borra 1e pantalla. straice (0,255,0); I/olor del trazo: verde. trokeeWei ght (1) 4 WGrosor del trazo: 1 pixel. i noPill( //Sin relieno. | nsslate (RADIO, RADIO) : //Nos colocamos en el centro } | ©11ipse (0,0,RADIO"2, RADIO*2) ; HDibuja los 3 circulos ellipse (0,0, RADIO*4/3,RADTO*4/3) ; { eL}pee (0,0, RADTIO*2/3,RADIO*2/3) ; | for(int a=30 ; a€180 ; amat30) { {/Divuja los 6 sectores de 30° Float angl = radians (a); Line (0,0, RADIO*cos (angl) , -RADIO*=in(angl)) : ) Ya tienes el fondo negro €. Dibuja un triéngulo de color verde claro que indica la zona de visién del radar ‘5, ara no dipujar borde y poner el color en verde carto escibe esto: roke ()s i 511(0,150,0); | 7. Para dibujar el tridngul utiiza la sentencia = ian le (cl yyL.x2.y2.x3.y3) : nella se especiican las coordenadas de los tres puntos que definen el triéngulo. tetangle(0,0,RADIO*:os (angulo) , -RADIO*sin (angulo) , RADIO* eos (angulo+0.3) , -RADIO*=in(angulo¥o.3)) ; ‘Ya esté dibujada la zona de vision del radar, D. Ve recorriendo Ia lista ob jetos mediante un bucle © y dibuja un pequefio circulo de radio 20 en cada pareja de coordenadas + x:objetos [1] + yobjetos [41] 8. scribe esto: | 1 1ipse(objetos [4] ,objevos [i+1] 20,20) ; Para fijar el brill del punto utiliza la funcién £171, en la quel titime parémetro es el de transparoncia, y lo tienes en objetos [4+2] £111(0,255,0, objetos{i+2]) : | 10. Para que la préxima vez el brio del objeto sea mas tenve, dsmindyelo en 10 unidaces: objetos[1+2] = objetos[i#2] - 10; ‘Ahora que se han dibujado los puntos que sefalan la presencia dol objeto detectado, ya ests isto para completar ef proyecto del radar. 8 © SABERHACER 4, Escribe el siguiente c6digo en Processing. rome §B 20. Elaborar el programa completo en Processing ‘Ahora ya puedes completar el programa en Processing que mostreré la informacién en la pantalla del ordenador, Hdafinicién de variables Inport processing.serial.*: | //ulbreria para utilizar el puerto serie. Serial aipuorto; Hezeaios una instancia tipo puerto serie ne RADIO = 300; {anatio de 1a zone de deteccién, float. distancia = 0; | //cuarda 1a distancia a un objeto | Float angulo = 0: {fGuarda el angula en el que apimta el sensor Eloat {] objetos = nev Coat [100]: /[Posicién de todos los objetee Hfexcontrados int n= 0; HHindice para recorrer esta lista: void setap( mipuerto ~ ne Serial (rhi mipuerto.bufferuntit(* spe (RADIO*2 RADIO): frameRste(5) : ‘eaM10", 9600) : ) void draw()( //uacdanos las coordensdas (x.y) 1/y el brille de cada objeto encontrado. j1((Gistancia)0) && (distanciac100) objetos n}~int (distaneda® (RADIO/100) * 08 (angele): ‘ob Jetos [ut1]int (~distancta* (@ADIO/ 100) in (angudo)) + | objetos [ni2] = 255: nent: (m8) } Hibujames el fondo fondo() /iosbajamce 1a zona de visién del radar. oke Qs £111 (0,150.0) 2. Carga o! programa de Arduino en la placa. 3, Ejecuta el programa de Arduino, Jos abjetos sitzados en sus inmediaciones. 1] Presiaatincion 4. Ejecuta ol programa en Processing y observa si el radar detecta triongle(0,0,RADIO*co= (angulo) , sin (angulo) » RADTO*eo= (angulet0.3) In (anguile40.3) J/Dibujanos los objetoe encontrados fide nuestra Lista. for(int 380 ; 1608; 4=i43 1 rostrokeQ £111 (0,255,0.0bjetos[i#2]) clipse (objetos(1] ,objetos [41] , 20,20); ‘abjetos[i+2] = objetos[i+2] ~ 10: ) 1 {Teuncién para leer los datos del puerto Hearte cada vex que aparezca un puto, yoid serialBvent (Serial mipuerto) fi Sting datos = mipuerto. readStringlintt1 ("." datos ng (0, datos. int dndex = datos -indox0t @detaneia = fost’ (datos. Jpoteing(®, andax)) + angulo ~ radians (Float datos. ubstring (indext , dates LengthO))s ) /frumeién que dibuja el fondo de pantalla: void fondo() poekgrouns (0,0,0) (0,255.0); ob eht (1) 4 21 22 (RADTO, RADIO) + =(0,0,RADIO*2,RADIOS2) : :0(0,0,RADIO*4/,RADIO“4/3) 1 Lt pe (0,0, RADIO*2/3 ,RADIO‘2/3) ; Tor (int am30 ; 2180 ; arat30) ( Float angl ~ radisn= (a); Line (0,0, RADTO*coe (angl). RADIO*in(angl)) + | Encontrarés el programa | | completo entre los recursos | digitales que acompatian i | aeste hiro. | @ Realiza una presentacién explicando todo ©) Publica tu presentacion en algin sitio web de © SABERHACER | Competencia cientifica ] Propuestas de mejora del proyecto ‘Al terminar un proyecto es necesario reflejar en un documento aquellos aspectos que se podrian mejorar silo repitiésemos. Algunos ejemplos de aspectos mejorables en este proyecto podrian ser {os siguientes: 1. Se podria haber diseftado la base para que alojara en su interior unas baterias y la placa Arduino, de forma que quedara todo mucho més integrado. 2. Como tiene que estar conectado a un ordenador mediante un Cable USB, habia sido buena idea practicar un agujera a la base: para meter este cable o para sacar el cable que conecta el servo con la placa Arduino. 3, La superficie de apoyo de la base resbala si colocamos el radar on una superficie lisa, Podriamos mejorar esto pegando trocitos de goma en esta superficie, 4. También es muy dit Incorporar un interruptor de facil acceso para encender y apagar el radar. Por ejemplo, ‘en una de las paredes de la base. 5. La parabélica de un radar tiene forma de pardbola y no de tronco de cono, Ademas, las parabdlices suoten tener forma de enrejado, y no maciza como la hemos disefiado nosotros, Por tanto, un diserio mas realista de la parabola daria un mejor aspecto al proyecto, 6. El agujero para introducir el tornillo que fja el eje del servo es ‘demasiado estrecho pata meter un destorillador, seria conveniente haberlo hecho de mayor didmetro. 7. Por tiltimo, el acoplamiento entre la base y la parabolica podrfa ser de tal forma que permitiese moditicar el éngulo de inctinacién «de la parabolica y asi poder colocatla para barrer la zona deseada ‘con mayor precision. @! proceso de disefio y construccién del radar. ) Uitiiza fotos realizadas durante el proceso de construccién det proyecto, ) Explica con detelle aquellos aspectos que hayan supuesto mayor dificulted, ©) Explica aquellos detalles de originalided de vuestta proyecto, almacenamiento de archivos, como Google Drive, Dropbox, ete, Afiade al final cuales son las posibles mejoras que inclurias en el proyecto, {© Comparte reste recurso ontine y envia el enlace ‘correspondiente a algunos compafieros, familiares y amigos. 7 sensor de ultrasonidos Parabélics Ventana mostrada fen Processing objeto detectado Por el radar Sensor de Uultasonidos servo (no visibie) 45 Proyecto elrador 1 Formas de pensar. Analisis cientifico. zCémo usar la impresion 3D de manera practica? una protesis generada con una impresora 3D salva la vida de un bebé Un problema en ja tiquea le provocaba ataques de corazén que impedian que el oxigeno llegara alos pulmones, ‘se la Implantaron cuando tenia solo dos meses, ahora lleva con ella mas de un ato y no le ha provacado rechazo, La intervencién fue realizada en un hospital tde Michigan IEE. UU). £1 New England Jourrat ‘of Medicine ha dado a conocer el caso. Durante el embarazo no se percibieron dificultades respiratorias y, parentemente, ef nio nacerta sin problemas de salud, Sin embargo, cuando tenia solo seis ‘semanas, empez6 a presentar contracciones en el pecho ‘que le impedian alimentarse con normalidad, ‘Alos dos meses, os sintomas empeoraron y necesito, que le intubaran para poder respira. @ CONPRENSION LECTORA. 2Qué quiere decir que la pleza implantada no produjo rechazo en el bebé? 65) @) exeRESION ESCRITA. tnventa un eslogan para una campafla publictaria de una empresa que desarrolla, impresoras 30. @ Contesta: a) 2Qué coracteristica especial tiene el material empleado para la elaboracidn de la pieza implanted enel bebe? b) zCudl es la ventaja que aporta este material frente a otras materiales plasticos mis convencionales ‘empleados en la impresion 30? La impresién 3D puede ‘emplearse para generar Dr6tesis de cistnto tipo ‘con el objetivo de curar ‘alguna enfermedad. El bebe padecia traqueobroncomatacia, una enfermedad respratoria que impide que el oxigeno legue alos pulmones con normalidad y es muy dificil de tratar Los médicas imprimieron una pieza con la forma y tarario de la trdquea del nifto en una impresora 30. Lo hicieron ‘con un material lamado policapolactona, quo es _absorbible por el cuerpo humeno. Calcuian que en. un tiempo estimado de tres aftos habra deseparecido, por o que no necesita ser intervenico otra vez. ‘Taly como explican en of New England Jourmat of Medicine, el caso demuestra que es posible crear implantes espectticas para un determinado paciente ‘comibinando las imagenes de alta resolucion, con el diseito y los biomateriales. Fuente: Elia F Granados, vniww.caclenaser.com. 2013, @ Busca informacion en diferentes portals ce Intemet y elabora una lista con los diferentes campos de aplicacion de ta impresi6n 3D. Con toga la informacion obtenida, elabora: una presentaci6n multimedia para presentar la informacién a tus compaero. Etige uno de los campos de aplicacion y centra tu presentacién en él. a Ey Proyecto: robot de concurso SABER + Resolucién de un problema tecnico Adlisis de las posibles soluciones. El disenio e impresin en 30. Diseto del robot. + Montaje. + Programecion. + evaluacion. SABER HACER ‘+ Montar los elementos Mecéinicos y electrénicos necesarios para el funcionamiento de un robot. + Desarrollar fa programacion necesaria para que un robot ‘cumpla su funcion, Varios cepillos arrastran la suciedad ‘Cuando su averia se agota, algunos robots buscan autométicamente Inestacién de recarga y cergan si bateria para seguir limpiando, Una baterfa recargable proporciona Ia energia neeesaria. iyersos modos de funcionamiento permniten programar al robot. Yor ejemplo, puede ponerse en funcionamiento durante dos horas al di Diversos sensores: permiten al robot realizar su trabajo de manera aulénoma, Las rucdas permiten al robot desplazarse ygirar, NOS HACEMOS PREGUNTAS. 2Para qué podemos usar un robot? Cuando pensamos en robots nos imaginamos habitualmente maquinas con forma humana, Pero ya sabes que esto no siempre es cierto, En la mayorfa de las ocasiones el robot es un simple brazo articulado 0, como ocurre con los robots aspiradores, un disco que puede moverse libremente de manera auténoma por una casa limpiando las diferentes estancias, El mobot aspurador puede situarse sobre ‘una superficie elevada, pues detecta automaticamente los bordes de la mesa para evitar cafdas, "/ INTERPRETA LA IMAGEN + 2Que quiere decir que un robot es programable? Haz una lista con tres 0 cuatro programas titles ppara un rabot aspirador, + 2£n qué zonas del robot aspirador deben situarse los sensores? Justifica tu respuesta, + De dénde obtienen la energia necesaria para su funcionamiento los robots aspiradores, ‘como el de la imagen? Proyecto: Robot luchador de sumo Elzobot detecta obsticulos yy los sorte. Asi puede limpiar ‘por toda la estancia sorteando mesas,sillas u otros muebles, ed SUNT ale tase '+ {Qué tipos de robots conoces? 2Qué forma tienen? ‘+ En qué ambientos es més util sustituir ‘las personas por robots? » 06me obtienen los robots informacion de su entomo? Pon ejemplos de tareas fen los que esta informacion obtenida por el robot sea util. 2 1 | Fase creativa Planteamiento Una competicién de robots es siempre un acontecimiento divertido y fomenta la cultura cientifico-tecnolégica de los participantes. Con un poco de imaginacién se pueden plantear multitud de retos en Jos que los participantes tendrén que estrujar sus neuronas para conse- guir un buen disefio mecénico, un buen funcionamiento electrénico yun buen programa para vencer a sus contrincantes. A continuacién describimos cules pueden ser estos retos. Juego del pafiuelo Cada robot sale de un extremo de una linea negra serpenteante pintada en el suelo. En el centro hay una lata blanca lastrada, y ganaré el robot que consiga seguir la linea hasta la lata, atraparla, y volver con la lata al punto de partic, Laberinto Cada robot dispondré de varios intentos para conseguir encontrar la sa- lida del laberinto y hacerlo en el menor tiempo posible. El laberinto se Puede montar con paredes o simplemente con lineas pintadas en el suelo. Velocidad Se trata de una carrera contra el crono, para ver qué robot tarcla menos, en dar unas cuantas vueltas a un circuito. Igualmente se puede marcar el circuito pintando una linea en el suelo o delimitando los arcenes de la pista. ¥ para darle mas emocién se pueden intraducir obstaculos, Recoge pelotas En el centro de una mesa de ping-pong (sin red} hay un montén de pelotas. Cada robot deberd recoger tantas como pueda y llevarlas a su casillero en el tiempo e: blecido. Recoge tus juguetes Una habitacién esté lena de latas blaneas y latas negras. Cada robot tend que coger solo las latas de un color y colocarlas en su casillero. Ganara el robot que consiga colocar més latas en el tiempo establecido. Sumo En un tatami redondo delimitado por una linea negra se enfrentan dos robots descle sus posiciones de salida ‘Tras encenderlos esperardn cinco segundos y retrocede- rin hasta la circunferencia exterior antes de ponerse a Enel concurso de sumo cada robot intentaré echar aotro buscar al contrario, Ganard el robot que consiga expul- del etataini», como en un combate rea 34 sar al contrincante del tatami en el tiempo establecido, Posibles soluciones En cualquiera de los retos tenemos que disefiar un robot mévil capaz de cambiar de direcci6n en base a las Jecturas de sus sensores. La solucién més sencilla para implantar el cambio de direccién es dis- poner dos motores, uno para cada rueda (opeién A). De esta manera es sencillo conseguir el avance, retroceso giro a am- bos lados del robot. Observa el esquema inferior. Pea o oO O_O. Oo fo Qo = oe a oe | | [exommiece| to erecta | oo 1 io Movimiento: motores La eleccién de los motores depender de los que tengamos disponibles: + Servomotores de rotacién continua. * Motores DC. ‘* Motores paso a paso. Sensores En los retos en los que haya que seguir una linea necesitaremos al me- nos dos sensores de infrarrojos apuntando al suelo para «ver La Ii- nea. En los retos en los que no se pueda salir de un recinto también necesitaremos al menos un sensor para detectar el borde, Por tanto, una buena solucién serfa disponer de dos alojamientos para estos sensores. tra caracteristica comin a muchos de Tos retos es la necesidad de detectar obstéculos 0 paredes mediante el uso de sensores: * Un sensor de contacto de tipo pulsador, * Un sensor de infrarrojos * Un sensor de ultrasonidos. Gadget Por ditimo, cada reto requiere un gadget diferente, a ‘+ EL juego del patiuelo y recoge tus juguetes requieren una especie de pinza. «+ El laberinto necesita un radar para orientar el sensor en distintas di- reeciones. + Elrecoge pelotas y el luchador de sumo necesitan una especie de pala. ACTIVIDADES © Busca o inventa otros retos similares. Define los sensores que deberia llevar tu robot para afrontar cada uno de los retos. 35 nett 2. Disefiar el alojamiento para las baterias Elmédulo de baterlas que vamos a utilizar permite alojar 8 pllas AAA (12). 1. Toma medidas 2. Utilza minkowsl para dibujarlo en 30, Observa el codigo: #/Dimensinne e Jas pila | 4pilas = 50 Waveho de 4 piles | 2pillas ~ 25 JiRlto ds 2 pal | Tpidas ~ 95 Pangitixl de las pilas | pills ~ 6.2 /Radio ¥ 0.2 de toleruncéa | nodule pias) | rotate( 90, 99,0) ‘runslate( (pilas® pilasR, -Lpilas/2)) | Fousepe color ("grey") i | rrinkowske ( cubs | [4pilas--2*pilasR. 2pilas—2\pllaaR, pias -1/ cylinder (e=pilasR, h=1, $£n-50) Heables | color (*zed", 0.3 { eronclate((-pilasR,0,-2]) cube( (4pilas.2pilas~2"pilasR.2) | 3. Disefiar el alojamiento para el sensor de Infrarrojos CNY70 | | Ahora vas. alse el alojamiento donde colocar 2, El dibujo esté formado por tres prismas apilados | los sensores de infrarojos que incorpora el robot. ue representan | 1. Mide con el alive yaflade 0.25 mmy 0.5 mm * Elpropio sensor. | de tolerancia en les dimensiones L_Tr y conx_1. + Los conectores. | para faciitar el montaje del sensor en el chasis. + Unhueca por donde in los cables del sensor. | /Pisensiones del sensor 1 GOY70 | Lar = 7.25 Htato dat sonnee #8 10.25 de toloraneda Air = 6. HAleo del censor 1 | | comet = 5.5 Miada del voneetor + 0.5 de tolerancia | comcH = 1; Halen del coneetoe | ino emy70( | HMSencor 1k | color(“black") translate |0,0,H22/2|) p cube( IL Ie, Ltr, Win! center=irie) iL 41 color “grey translate ( (0,0.1LTr* con #/2] | cube(leomL, com L, conc fl, center truc) Hinseco pura Los cats color(*red", 0.3 translate 0,0.H Te* cone H) cube Icom. cone. 30), eenter™ tcue) | Heny?0() a rrowerebordecorsss BB ‘Ahora vas @ disefar la parte mas compleja del robot: et chasis. | 4. Enel disefto de un robot mévil el punto de partida serdn ios motores: | disponibles. En este caso vas a ublizar unos motores DC con reductora | Como ya ios tenes dlbujadas en OpenScad, basta con incluir este archivo: notorDG. sead y hacer dos llamadas al médulo motor () :.Una para el motor derecho y otra para el lzquierdo, ‘Aibjalos respecto del eje Y la distancia 1._e-je, que es a fongitud del eje de los motores. Al segundo dale una vuelta de 180". /Mokores translate ([0,~TLeje.0!} motor() translate(|0, Leje,0}) rotate’ [0,0,180)} motor) | 2 Acontinucién coloce as baterias. uelmente ya las tenes cibulodas | enopenscad. neuyeelarcivo pias. scad yhaz une amada | | almédulo pitas () :. Hay que movers la distancia eje_motorky un poguito mas para que no queden pegadas al motor. Para elo define Una variable lamada pared que servira para afiadir esta separacion extra, En principio dale el valor 5, aunque al final ajustards estas, | medidas, inclwle fila traneLate( leje_motorX t pared,0, —eje motor¥]) pilas(): Muévelas hacia abajo la distancia ej e_motor¥ para que queden al mismo nivel {que la parte de abajo de los motores. iY 2. ncluye os sensores de Infrarrojos CNYY7O conc archivo cny70. scad. He dos amedes | atmécuio e370 () + que cotocerés por dante dels pas ambien muéves hacia abajo | ndsinea je stor par ue ase miso nel ques plas ys mzaes i include Ceny70.sead> I | Hsercores TR censlat translate’ leje motorX+2pilas+2°pared, Lpilas/?, ~eje motory]) eny70(}s eje motorX+ 2pilas-+2'pared, —Lpilas/2, —eje motor¥]) eny70( | RE prestaarencion - Las variables 2p les y Lpiles estén definidas en el archivo pilas. scad, Representan el grosor de dos plas ANA y la longitud de una pila AAA, respectivamente ee 4. El siguiente paso es crear un chasis que una todos estos elementos. Lo mas seneillo es dibujar un prism all que podemos dar las siguientes medidas, que ajustaras al final. largo = 117 ancho = 75; alto = 26 \ cube( [largo ancho, alto]. center=true) © SABERHACER 5. Para colocario en el ele X debes moverlo hacia la derecha una distancia Igual a Largo/2 y luego hacia le izquierda una distancia | eje motorXtpared. Hchassi translate ( {largo/2—(eje motorX+ pared) ,0,0) cuba( [1argo,ancho,alte], cetr 4. Para colocario centrado respecto ce os motores debes bajar ‘en el eje Z una pequefia distancia dada por ejemotorY — motor¥/2. | translate (largo/2—(eje motorXt pared} .0 ~leje motor’ motor /2) | cibe([largo.ancho.alzol, centert1 7. Ahora resta del chasis todos los elementos con la instruccién | aif ference () para crear los alojamientos. include SmotorDG. scad> include Spiias.sead> include Ceny?0.sead> pared = 5 largo = 117 ancho = 75; alto = 26 difgeren (Chasis translate( largo/2— jeje motorX+ pared) .0, ~ (je motor -motorY/2) |) cubs ((Largo,ancho,alto}, center™ true) Leje.0}) motor | e( (0, Leje.0}) rotate([9,0,180)) motor’) translate( [eje_motorX+pared,0, —eje_motor¥]) pilas(): HSensoves IR one: translate eje motork + 2pilas*2*pared, Lpilas/2, ~eje_motor¥] jeny70 leje motork | 2pilas + 2*pared.—Lpilas/2, ~eje_motor¥] jeny70\); 8, Pensando en los cables de los motores, practica un agujero en el centro para que puedan salir //fueeo para Los cables de los motore: cylinder (r=4, h=10 9. Ya solo falta disefar e! apoyo delantero, Para ello coloca una especie cde moneda de radio 10 mm y del grosor pared en la parte deantera, Primero ciouja el clindro y luego gialo 90" en torno al eje x 46 rroeanscptvecocuso 10. Ena direccion x tendras que desplazarlo la longtud total del chasis Largo menos el trocita ‘que sobresale por la izquierda, que es el eje_motorX + pared, ¥ hacia abajo 10mm de su radio menos la distancia rueda, que se define como la distancia desde el eje del motor hasta e! suelo. 0, lo que 5 10 misma, el que sera el radio Ue tas tuedas. rueda = 25 Hépoyo delantere ‘translate ([largo~(eje_motorX pared}, pared/2, 10-ruedal ) rotate([90,0,0]) cylinder(r=10, h=pared, $fn~ 5 “V1. Puesto que nuestro robot es luchador de sumo, tendré que llevar una pala en la parte delantera para empuiar a sus rivales fuera dal tatarni Taladra el apoyo delantero para dejario preparado para anciar la pala mediante un tornilo. difference HHapoyo delentero translate‘ [largo~ (eje_motorX pared), pared/2, 10~rueda}) rotate( [90,0,0}) cylinder(r=10, h=pared. $n=50) | /Mwladro translate [largo~ (efe motork pared) +5, 0, 10-rueda) rotate(190,0,0)) cylinder (r=2.2, h=20, $£n=50, canter=truc) 42, Comprucba que el disefio del chasis completo con las medidas ajustadas quedarta asi » SmotorDG. sead> ineliwle | includes pared = 4: largo = 110) anche = 75 | alto = 26: rueda = 25 difference(}! | Hohonie ‘translate( [largo/2~(eje motorX+ pared) 0 (eje_mator¥ motor /2)|) cube [Largo.ancho,alto). contor~ rus) + {movores: tranclate({0,Leje.0]) motor ( tronslate/ (0, Leje,0}) retate(|0,0,180)) motor(): fede ‘tranglate| [eje motor tpared,0, —oje motor!) pilas(): {encores TR tranelate( [ejemotorX+2piles+2"pared, Lptlas/2, ~eje motor] jeny70() : translate! eje.motorX t 2pilas+2*pared, ~Lpilas/2, ~eje motor¥] }eny70() Hfiweeo para los cablles de tog metores cylinder (e-4, h=10) i difterencet Hixoyo tranglate( (Largo~ (eje_motork-+pared), pared/2, 10~ruedal ) rorate{ {90,0,0]) eylinder(r~10, h=pared, $én=50) I Maladvo translate [largo (eje notork pared) +5, 0, 10~ruedal) rotate([90,0.0)) cyLinder(r~2,2, h=20, $fn~50, center=t 45 46 Lapala es el elemento que trataré de empuiar al oponente. 4 Diseftar la pala \Vas a partir de las dimensiones de la pala que se definiran mediante cuatro variables: Lpela ~ 100: f/Longitud de La pal H pala = 50; H/stiura de Ja pala Gpala = 5 //Grovor de 1a pala A pala = 15 /hngulo de ta p rotate( {DA pala,o cube([Gpala, Lpala, Hpala+i0], center~ true) Tienes que cortar un trocito por abajo para que sea plana por la parte inferior. Para eso. reéstale un cubo de (30, 120, 30) Pala lifference() rotate(/0,-A pala.0!)} cube([Gpala, Lpala, Hpala+ 10), center= tric) ate({0,0.-15-H_pala/2|) cube({30.120,30], center=tre) En el centro define un prisma triangular que siva para sujetar la pala, Para ello usa un ciindto de tres caras, $£n™3, y de radio pon una décima parte de la longitud de a pala, cylinder (r=L_pala/io, h=H_pala, $€n=3, center=true) Crea un cubo de anclaje. Para ello define una nueva variable 1. anc 1a, que sera el lado de este cubo, y colécalo en la parte de atras y abajo de la pala, Lancla = 1.73*L_pala/10; I finelaje tronslate(|-Lanela,L_ancla/2,-H_pala/2) }cube(L ancla) ‘A bloque creado por estos tres elementos réstale tres objetos Elprimero seré ol sensor de ultrasonidos, para lo que debes incluir ! archivo Ultrasonidos_SRO4. scad creado en el proyecto 1, el del radar. Haz una llamada ‘al médulo SRO4 |) ;, que colocards en la parte de arriba de la pala maviéndolo la altura de a pala menos la altura de la placa del sensor de ultrasonidos, que se define con la variable placa_A. Asique queda: #_pala/2 - placa_A/2, luclude late ({-10,0,H_pala/2~placa_A/2|) rotate({90,0,90})SRO4() ; El segundo objeto a restar es el hueco para el anclaje del chasis, que era una especie de moneda de grosor pared, Aqut le sumamos 1 mm para que el hueco sea un poquito més ancho que el propio anclaje y asi se acopien perfectamente la pala y el chasis, Jidne te( [-I_ancla~ pared, — (pared +1)/2,~H pala/2 cube M_anela,pared+1,L_encla}) ropcorensscncaso EB 7. Yeltercer objeto 4 restar es el taladro, que debe coincidir con el taladro realizado en el anciaje del chasis pera meter un tomnillo de métrica 4 que sujete ambas piezas, Por tanto, tene que estar a 5mm del borde, y por eso debes moverlo en el eje X una cistancla— L_anc.lat5.€n et ejeZ lo tendres que mover una cistancia 10 rueda, que 65 ia altura que pusiste el tala ‘en ei chasis, Pero réstale 2 mm para que la pala quede levantada un poquito y no vaya arrastrando. /{faladco del eje translate(|—L_anclat+5,0,10--rueda~ 2] }rotate([90,0,0) cylinder(r~2.2, bh 50, $fn= 20, center~truch: 8. Por ttm, mueve toca ta pala para que los eles queden centrados respecto del taladro, ‘que serd el punto de unién con el chasis, traneLate([L_ancla~5,0,~10+rueda* 21} 9. Elarchivo completo de la pala en Openscad quectaria asf Ine]\wle {ULtrasonidos_SRO4..sead> Lpala = 100: Fiongitud de La pi Hpala = 50 Hikitura de Ja pale pala = 5 Herosor de la pala pala ~ 15 HSnguto de Ja pala Tanela = 1.73*L_ pala/10 pared ~ 4 rueda = 25 edule pata) color ("praan”) tranglate(IL_ancla~5.0.--10+uedat 2) difference Hala ‘aifterence() | otate( {0.—A pala, 0}) cube [Gpala, L_pala, Hpalatt0!, center~ true) teanglate(|0,0,-15~apala/2)) cube |30,120,30), center= true) #/Pekena Lr langolar eylinder(e=Lpale/10, h=Hpala. $fn~3. center~true) J ihelage translate ance, -Ianele/2.~H_pala/2}} cube, ancla) {UL reaeowides translate({~10,0.H_pala/2~ placa A/21) porate (|90.0.901 1SR040) Hanclage trenslate(| L_anela” pared, ~ (pared *3)/2,-K pala/2i) cube (Ii.ancla,pared 1.1. ancia!) ro del. ej Leanolate(|-Lenelat5,0,10—rueda~2}} —rotate( {90.0.0% cylinder(r=2.2, h=50, $fn-20, center true) HH Palav) ar 6. Di ie ruedas Las ruedas son sencillas de disevar |. Enel disefio de las ruedas vas a unir dos cllindras: uno grande de radio a rueda y grosor anch, y ot’o encima ce radio LO y grasor anch. cylinder (r=rueda, b= anch) ; translave({0,0,anch]) cylinder(r=10, h=anch 2. Aceste bloque hazle tres agujeros. Primero, el agujera del oje del motor, Le de radio 1.3. trje cylinder(r=1.3. h-30, $fn-25, center=crue, 3, Luego, el agujero del alojamiento de una tuerc de métrica W13. Para ello hay que tomar las medidas exactas de una tuerca! //Mojeniento cuere JPwereas y torn lle: translate (2.5,~c_nut/2,anch! } hut = 2.6 cube ( fh nut, mart, put 21); cout = 6 mnut = 3.4 4. Desputs, el del agujero para introducreltomillo pristonero que fe la rueda al ee. S/Mojawianto toxnillo translate([0.0.anch"3/2]} rotate ({0,90,0] cylinder (r=mnut/2. h-10, $n~25 5. Por itimo gra a rueda y pintala de verde, Todo junto quedaria ast: aneh = 5 rueda = 25 {Mucreas y rornitlos bout = 2 enut ~ 6: | minut = 3 vodule rueda color "green" rotata( /90,0.01) Linder (r=rueda. h~ aach) Uranslate((0.0.anch)} cylinder(e=10, h~aneh) cylinder (r=1.3, h=30, 25, tru /Alojaniento tuerea 2.5, nut/2,anch! nut € nue, ¢ ut?) ‘translate’ (0,0,anch'3/2]) rotate {{0,90.0) cylinder(e-m mut/2. h=20. 25) FkuedaQ) See ence tec eer eee eee Provecto-robotde concurs0 a Materiales Para montar tu luchador de sumo necesitaras: © Un chasis, * 2motores de corriente continua (DC) con reductora, © 2 médulos de 4 pilas AAA, G+ 1,5 V = +12 V), * 2 sensores de infrarnojos CNY70. 2 ruedas y 2 gomas a modo de neumaticos. 2 tornillos y tuercas de M3 para fijar las ruedas a los ejes de los motores. + Una pale. 1 sensor de ultrasonidos HC-SRO4, Placa protoboard mini. -2 conectar los sensores. Cables pi 1 tomnillo y tuerca de Ma. 2 resistencias de 220.0 y 2.de 10k. 1 placa Arduino, * 2separadores y 2 tornillos de rosca-chapa. 4 puente HL298D. 4 pulsador. Jucién alternativa a fa impresién 3| En caso de no disponer de una impresora 3D se puede realizar el chasis con otros materiales: 1. El chasis se construiré con una tablita de 1 x 8 em, 2, Los motores se fijardn con pegamento termofusible con bridas 0 con alambre al chasis, prestando especial atencién a que los ejes de am os motores queden alineados. 3, En la parte delantera instalaremos dos sensores de IR CNY70, para lo que fijaremos dos escuadras con tornillos. 4, Para las ruedas podemos utilizar cualquier polea, engranaje 0 pioza de madera redonda de unos 5 cm de didmetro, Para evitar que resbale, podemos utilizar gomas elésticas 0 aros cortados de una recdmara de icicteta a modo de neuunéticos. [La tercera rueda se puede construir con la bola de un desodorante roll-on que también pegaremos al chasis 6, Las baterfas se pueden sujetar con pegamento o con gomas elasticas ena parte superior del chasis, 7. ¥ para fijar la placa Arduino utilizaremos unos separadores de plés- ‘ico y unos tornillos cle M3. 8, La pala se puede realizar con contrachapado y fijarto con tna escua- ira que doblaremos un poco. 9, Para colocar el sensor de ultrasonidos practicaremos dos agujeros en el contrachapacio que hace de pala a9 Ga. ° ntaje 7, Mol robot | Realiza el montaje segtin el esquema siguiente: Placa — Motor oc anchino leeuierdo Powtapias Sensor de ulresonidas| sensor de Intarojos eae | 1. Primero monta los motores en sus alojamientos metiendo los cables por el agujero practicado atal efecto, ‘A continuacién coloca e portapilas con las batetias, Conecta fos cables a los sensores CNY70 y sitalos en sus alojamientos delanteros. | 4. Coloca el sensor de ultrasonidos en su alojamiento de la pala y conéctale sus cuatro cables. | 5. Fifa la pala al chasts con un torilloy una tuerce de MA. | 6. Introduce una tuerca y un tornillo de M3 en cade nieda. Coloca una goma a modo de neumético ppara que no resbale y luego calécalas en los ojos de los matares, 7. Uitiliza separadores y tomillos de rosca-chape para far la placa Arduino al chasis, 8. Conecta los cables de los distntos componentes segtin los esquemas electronicos. £n las sigulenies paginas sabras coma, Proyecto: hot de concurso Conexiones y programacién Elpin 8 os la wAlimentacién de las motores», our2 ours [if ‘ £stablecer las conexiones de los motores Ht Para controlar la inversion de giro de dos motores OC +5V +5V | utiliza un puente H como el integracio L293D, | 1. Coneca spies eentles de ambos adas Loifent2 vf} do! integrado, 4, 5, 12 13, a masa (GND). Bia na lig} Pio 2. Los pines ENABLE 19, junto con epi 1 de jon xref «Alimentacién del integrado para los niveles logicos» } Tanraecr mctnaty seam ened filo awh gy atsv. L-4s]ano eno fia} | | z | ‘que conectaras a la bateria de 12 a través del pin Vi, Zin2 v3 fo de Arduino, También debes alimentar la placa Arduino con estas baterias a través del conector de barr [ [E]%_ N34 [3]}— ‘a través de los pine Vi 0.@ través de los pines GND y' az aaa 4 Conecta los dos motores a los pines 3,6 y 11,14 el integrado 12930. 5. Conecta los pines 2, 7 10, 15a los pines de Arduino 5, 43, 2, respectivamenta. Asi se controla el sontido de gira de cada motor. ‘Observa los esquemes: Iniegpado ‘Motor izquioe wenD ines 2 y3 ‘Motor derecho: pines 45. | 2 9. Programar fos motores Una vez conectados los matores (sin las ruedas) al puente H, vas a realizar una primera comprobacién 4. scribe el siguiente programa en el IDE de la placa Arduino, fldefine PRLMOTOR DOHA 5 //INL pin? del 12930. fdetine PICMETOROCHAZ 4 f/IN2 pin? del L290) faefine PICMOTORIZDAL 3 //IN3 pinl0 del 12930. define PIN MOTOR 12082 2 JING pint dal 12930. define POIENGIA 200 void setup i pede (PN_poroR_powan ,oinroT pinbiode (PIN MOTOR DGHA2 OUTPUT) poe (PEN_sorOR_Tanky TPT piriode (PIN_OTOR_TZDA2 ,OUTPUT Ten en cuenta que los ejes de Jos dos motores deben quedar alineados. H | void Loop) | Y los cables de ambos deben estar situados ‘ || por ta parte de dentro, por lo que un motor | avanza() ; ‘que colocarlo al contrario que el otro. delay (1000): a retrocede() ; delay (1000) : 1 /avance de robot. void avanza() ansLogile'i ve @IN_ MOTOR DCHAL , POTENCTA) : jet (BEN MOTOR_DCHAD 0) : 1 Le(PTN_MOTOR_TZDAI , POTENGTA) ; ssnalog¥irite (PIN MOTOR_TZDA2,0) : » HRetzocese del robot. vold retrocede(){ ana Lop\frive (PIN_MOTOR_DOHAI 0) : ssnalog\tvi ve (PIN MOTOR DOHAZ, POTENGTA) + analog\rive (PIN MOTOR IZDAL 0) : 2, Veritica el programa. Comprueba que neo existen errores de sintaxis. 3. Descarga el programa a la placa Arduino. 4. Observa si mueve los motores de forma que avanzase el robot durante un segundo yluego retrocediese durante otro segundo, 5. Stalgin motor no va en el sentido que deberia, invierte sus cables, ACTIVIDADES © Completa el programa anterior con las funciones para() y gira(), {que permitirén al robot detenerse o girar a un lado u otro. Cuan El componente CNY70 esté formado por un diodo cemisor de luz infrarroja y un fototransistor orientedos fen a misma diracclén, por lo que la uz emitida por el clodo legaré al fototransistor después de ser ‘ellejada por une superficie. Esquema de conexiones Pere = 10. Establecer las conexiones tle tos sensores de IR + Siesta supertieie es blanca, se refiejaré mucha luz (HIGH) * Sies negre, practicamente no se refijaré nada (LOW), La forma de conectatlo se ve en el siguiente esquema: A c : Ys : Low ‘t. Monta primero las cuatro resistencias “Motor izquierdo: | Yebrecas roses » ‘400 _cATODO cATODO COLECTOR | pines 45, Motor derechos proper eb eocoeso » Resistencias Contin 8 ‘Ahora conecia ung de los sensores a sus dos r al pin analégico AA, stencias y a positivo, ademés de canectarlo ‘Moto equierd: cura pines 2y 3 pina ‘Metor derecho: pines 4y'5 Y conecta e! otro sensor de igual manera al pin anal6gico AS, Quedard asf: ator inqurd: cvvae: pines 23 pin a ‘Motor derecha: pines ay 5 CHS uuacaus | | 11. Programar los sensores de IR }4 | define PIVIR DANO AS faefine PINIR_LZD0 A4 int wbral_ doho, ubral_izdo upQ) panko (PENTR_DCHO, INPUT) + | pinlode (PINIRIZD0, INPUT) : | tunbral_deho ~ anslogke: unbral_izdo serial hegin(9600) + 2070) Jnr belle deho = anelogk | int brill dzdo = snaloy) jorial. print (brille 4zdo) alee & print nt deioy (1000) + El programa sive para leer los sensores de infrarojos, defini fos unbrales de luz | ymostrar el color de la superficie sobre la que estén por el Monitor | serie. 2. Veriicalo y cérgalo en la placa Asduina, Pega un trocito de cinta dislante | ‘en un papel blanco y comprueba las lecturas que da el sensor | ‘cuando Io coloces a menos de un centimetro sobre la zona | blanca y sobre la zona negra. | < (PINIR_DCHO) ~ 100; lopRecd (PINIR_IZDO) ~ 100; ‘ead (PINIR_DCHD) ; ford (PTMIR_IZDO) Lt (rite Azdo ¢ unbral_izdo) BEANO": prjecnbetdeomeusa scribe el siguiente programa en el IDE de Arduino. //vines de los sensores TR. /Wariables para definir loc unbrales de Iz. Hbeclarames Loe IX. //eenos los umbrales de luz /Iconfiguranos 1a conexién serie. J flecms los sensores Sovtal print ("Sensor derecho: *): {[Mostranos los resultados. Sern print (beiLle_deho) : if (brille_dcho < unbral_dcho) Seri]. printin(® NEKO"); ‘Lge Serial.peint3n(" BLANCO"); Sorial. print ("Sensor tequierdo: "Vy a penta” MORO") : ACTIVIDADES © onecta el sensor derecho al pin digital 10 y cambia el programa asi. .qué lecturas obtienes ahora en la zona blanca? 2Y en le zona negra? fidefine PINIR_PCHO 10. 0 t je (EINTR_DGHO, IN void Ieop() ‘ inv belle deho = di, Serial. print (“Sensor derecho: "); Serial.print (brill deho) (brilte deho ~~ 0) Serial.println(" NEGRO"); elee Serial.println(” BANOO"); delay (1000) 1 f_O sacrrvacer Echo: pin 8 cenvao: pina 42, Establecer las conexiones del sensor de ultrasonidos SRO4 Motor izquierdo: pines 2y3 1. Conacta un terminal a positivo, Conecta otro terminal a GND 3. Conecta o! pin Trig al pin 9 de Arduino. 4 Conecta el pin Echo al pin 8 de Arduino, Observa el esquoma, Motor derecho: pines 4 y5 £ a “maa Bakery tome 13. Programar el sensor de ultrasonidos SRO4 Escribe el siguiente programa en el IDE de Arduino y cérgelo en la placa, define TRIGPIN 9 #etine RCHOPIN 8 void setup ()1 pinSiode(PRTGPIN, OUTPUT) /ideclaramos los ultraconidos. Bode (RCHOPIN, INPUT); Serie] -beg ti (9600) : /[Configaremos 1a eonexién serie. nt distancia op = Mediz_cm() : al. print Mdistancia:"); 1 println@@ietaneka_ep) : //Buneién para medir 1a distancia a un objeto en centimetros. int Medi em igitaluette (TRIGPIN, LO) ; ‘(/Pmitimos el puso delayificroseeonds(2) ig. tale‘ to(ORIGEIN, BIGH ; delayMicraseconde (10): UigitalWeive(TRIGPIN, LOW) ; float tiempo = polseln(BCROPIN, HIGH); //Galeulanos el tiempo. int distancia = int (tiempo * 0.0343 / 2); //Caleulanos la distancia. return (distancia) ig ping © SABERHACER 14, Conectar un pulsador rojectrebodeconaso BB Por titimo, conecta un pulsador que serviré para indicar al robot que comienza la competicion. Conéctalo a GND y al pin 7 de Arduino. 45. Programar el pulsador Escrine el siguiente programa en el IDE de Arduina. Este programa no hace nada hasta que se presiona re ping Pulsador: pin? cv, pinat Motor izauierdo: panes 293 Motor derecho: pines 45 cl pulsadior En ese momento se onciende el led de la placa Arduino HeEine PINBOTON 7 void setup (1 plnlfede (@ENBOTON, INPUL_PULLA piniods (13 ,QUIPUT digitaliirite (13,10H)s while (digital iurite (13H nid loop) 1M hacemos nada (PINBOTON)) deley (100) s cB): //Pin del pulsador 11°" no pulsade ‘0” pulsado. //ncendenos e1 led. //eieador con pull-up interno, //speramos hasta que se pulse. | 16. Programar el robot Pra cornpetir en el concurso de sumo el programa deberta hacer esto. ‘1. Callbrar los sensores de infrarrojos con el blanco 4. En caso de detectar la linea negra del borde del tatami, y luz ambiente del momento, parar y retroceder, 2. Esperar a que se pulse el botén de inicio. 5. Girar hasta locaiizar al robot contrincante con el senéor 3. Una vez pulsac esperar cinco segundos. de ultrasonidos. 6. Avanzar en esa direccién a ta maxima potenca para intentar echarlo fuera del tatami Diagrama de bloques Programa Lttiza los programas anteriores para escribir ef programa completo que controtaré nuestro setup() Calibrar sensores R robot de sumo; Define los pines a los que has conectado los motores, los sensores de IR, el sensor de uitrasonidos y el pulsador 2. Define dos variables para guardar ios valores i de los umbrates de uz derecho e izquierdo, 3. Declara todos las pines 4. Lee los sensores de infrarrojos que debersn estar sobre la superficie bianca para Espero S segundos ‘que se autocalibren y guarden los valores de los umbrales derecho e izquierdo. Espera hasta que se pulse el bot6n di inicio, ‘Apartir de este momento, se esperan cinco ys Fsperar 100 ms oop) Sensores it ennego segundos y empieza la competicin 6. Lee los sensores y, en funcién de ellos, heise el robot debe retroceder, avanzar o girar ara No sensor gv liamando a sus tespectivas funciones. vitro, 7. Observa el programa completo. gia avanza retrooede ie #klofine PIL MOTOR DGHAL 5 //1N1 ping ded 1293p fldefine PIN MOTOR DCHA2 4 //1N2 pin? del 12920. ttiofine PIN MOTOR IZDAL 3 //1N3 pinto det 12930. ‘WMefine PIN MOTOR TZDA2 2 W/INt pint del 12930, ‘Mefine POTENCTA 200 INelocidad del robot #Hofine PINTRDGHO AS //eines de los sensores de IR, define PINTR_IZDO A4 hiotine TRIGPIN 9 //Pines del sensor de ultrasenidos, define BOHOPIN 8 #Hiofine PINEOTON 7 (/Pin del puleador. int umbral_dcho, usbral_izdo; (Nariables para dofinir los umbrales de luz,

También podría gustarte