Andromie MS es un robot autónomo para competiciones de sumo en la categoría Mini. Usa un microcontrolador Arduino Nano y sensores reflectivos para percibir el entorno y motores para desplazarse. Incluye detalles sobre sus componentes electrónicos como el Arduino, sensores, motores y batería, así como instrucciones para su programación y uso.
Andromie MS es un robot autónomo para competiciones de sumo en la categoría Mini. Usa un microcontrolador Arduino Nano y sensores reflectivos para percibir el entorno y motores para desplazarse. Incluye detalles sobre sus componentes electrónicos como el Arduino, sensores, motores y batería, así como instrucciones para su programación y uso.
Andromie MS es un robot autónomo para competiciones de sumo en la categoría Mini. Usa un microcontrolador Arduino Nano y sensores reflectivos para percibir el entorno y motores para desplazarse. Incluye detalles sobre sus componentes electrónicos como el Arduino, sensores, motores y batería, así como instrucciones para su programación y uso.
Gua de usuario Introduccin Andromie MS es un robot autnomo de morforloga mvil, diseado para competiciones de luchador de sumo en la categora de Min (10 X 10 cm un peso de !00 gramos"# Se trata de un robot de tipo diferencial, su traccin basa en dos motores de corriente directa, alimentado por una batera de $ %oltios# Andromie MS utili&a un microcontrolador de la marca Atmel modelo Atmega'(), con firm*are de Arduino, lo cual facilita su programacin# Contactando con Andromie +ara contactarnos puedes visitar nuestra p,gina *eb- ***#andromie#com# .ambi/n te invitamos a 0ue nos sigas a trav/s de las redes sociales- ***#faceboo1#com2Andromie3obotics ***#t*itter#com2Andromie3obotic +ara la atencin asesora personali&ada puede contactar- 4orreo- contacto5andromie#com S1pe- andromie 6e igual manera nos gustara saber tu opinin e7periencia con Andromie A'# +ara ello accesa a nuestras redes sociales, publica, comenta, comparte eti0uetanos# Advertencias de seguridad y precauciones de uso Andromie MS, Mini8sumo, no es un 9uguete# +uede ser usado por nios 9venes ba9o la supervisin auda de un adulto# :l uso o abuso del producto es responsabilidad del usuario final# Andromie no se hace responsable por daos o lesiones 0ue /ste pueda causar durante su uso# :ste producto no est, diseado para 9ugar, no debe usarse fuera de las condiciones de traba9o# A continuacin se indican las precauciones- Antes de comen&ar por favor lea cuidadosamente el manual# ;tili&a bateras alcalinas o recargables# :n el caso de las alcalinas aseg<rate 0ue sean nuevas, si compras recargables verifica 0ue tengan suficiente carga, de lo contradio al programar lo puedes inutili&ar para siempre# 4ondiciones de traba9o- superficie lisa, de preferencia melamina, interiores con lu& controlada# =o colocar la tar9eta de circuito impreso (+4>" sobre superficies met,licas# :l robot MS esta ensamblado soldado con pie&as 0ue contienen plomo estao, por lo cual es necesario lavarse las manos despu/s de manipularlo# ?os componentes del robot est,n e7puestos, por lo 0ue es importante no tocarlo con las manos mientras est, en funcionamiento# Si nuestras manos est,n mo9adas se puede causar un corto circuito daar uno o varios componentes# +rimeros pasos de Andromie MS @Au/ necesitasB >atera de $%# ;tilice de preferencia bateras alcalinas o recargables# Si traba9ar, durante tiempos prolongados con el robot, le recomendamos usar bateras recargables de =i0uel8 Metal Cidruro, =iMC# =o olvide comprar el cargador correspondiente# 4able A D >, ;S> a Micro ;S># Andromie A' no re0uiere un programador e7terno, todo el hard*are electrnico a se inclue en el robot, pero para la comunicacin entre la computadora el robot se re0uiere dicho cable# 4omputadora# =ecesitas una computadora para programar el robot# +ara ello se utili&a la interfa& de programacin de Arduino, plataforma libre, 0ue funciona en cual0uiera de los siguientes sistemas operativos- Eindo*s Mac ?inu7 Material para pruebas# :s necesario 0ue tenga a mano papel, cartulinas, cartoncillo cinta aislante negra o blanca, para improvisar pistas probar el robot# Conoce ms de Andromie MS Figura 1# %ista frontal de robot luchador de sumo MS Ms es un robot de morfologa mvil de tipo diferencial, es decir se despla&a por medio de dos ruedas con dos motores, uno para cada una# :l cerebro de esta robot es un Arduino =ano, est, encargado de procesar la informacin 0ue le proveen los sensores para reali&ar correccines a trav/s de los motores, ba9o el es0uema b,sico de control# Hardware de MS :n la figura 1 se muestra el hard*are del robot# Gbserve 0ue se cuenta con varios componentes dispositivos electrnicos# @3econoce algunoB, a continuacin se e7plican brevemente# Sensores reflectivos de contraste, son los encargados de percibir la informacin del ambiente, en este caso el contraste, la diferencia entre o blanco lo negro, lo 0ue no brilloso lo opaco# :ste dispositivo se compone de dos partes- emisor receptor# .anto el primero como el segundo traba9an en el rango infrarro9o de la lu&# Hsta no es perceptible por el o9o humano, pero con auda de una c,mara digital se observa# LEDs. 6iodos emisores de lu& por sus siglas en ingl/s, son dispositivos 0ue emiten una lu& al circular una corriente por sus terminales# :n Andromie MS se usan como indicadores son programables por el usuario por medio del Arduino# Driver para motor. >asado en un circuito integrado de +uente C, es el 0ue proveen de potencia a los motores, siendo la interfa& entre el microcontrolador el motor# Botones. Son interruptores de encendido al contacto# :l robot cuenta con (, el primero para reiniciar el microcontrolador (arduino", el segundo como botn de usuario para propsito general# Motorreductores. Son motores de corriente directa (46, como el de las bateras", con una ca9a de engranes adaptada# ?os usados en A' tienen una reduccin de I)-1, esto es, por cada I) vueltas 0ue gire el motor, el e9e del reductor girar, 1 vuelta# 6e este modo se incrementa el tor0ue, fuer&a, se reduce la velocidad# Batera. :s la 0ue provee de energa el/ctrica a todo el robot, arduino, sensores, ?:6s, motores, pulsadores# :s tipo rectangular de $%# Figura (# %ista trasera deAndromie A' Arduino Nano :s una pe0uea completa placa basada en el mirocontrolador Atmega'() 0ue generalmente se usa para hacer prototipos# .iene m,s o menos la misma funcionalidad 0ue el Arduino ;=G, pero con una presentacin m,s compacta# =o posee conector para alimentacin e7terna, funciona con un cable ;S> Mini8> en e& del cable est,ndar# Figura '# Arduino =ano :specificaciones Microcontrolador- Atmega'()# .ensin de operacin (nivel lgico"- ! %oltios# .ensin de entrada (recomendada"- J81( %oltios# .ensin de entrada (lmites"- K8(0 %oltios# +ines :2S digitales- 1I (de los cuales K proveen de salida +EM"# :ntradas Analgicas- ) 4orriente m,7ima por cada +L= de :ntrada2Salida- I0mA Memoria Flash- '(M># S3AM- (M> ::+3GM- 1M># 6imensiones- 1)#! mm 7 ('#( mm# Alimentacin :l Arduino =ano puede ser alimentado usando el cable ;S> Mini8> , con una fuente e7terna no regulada de K8(0% (pin '0", o con una fuente e7terna regulada de !% (pin (J"# ?a fuente de alimentacin es seleccionada autom,ticamente a a0uella con maor tensin# :l chip F.6L F.('(3? 0ue posee el =ano solo es alimentado si la placa esta siendo alimentada usando el cable ;S># como resultado, cuando se utili&a una fuente e7terna (no ;S>", la salida de '#'% (la cual es proporcionada por el chip F.6L" no est, disponible los pines 1 0 parpadear,n si los pines digitales 0 o 1 est,n a nivel alto# Memoria :l A.mega1K) posee 1KM> de memoria flash para almacenar el codigo (de los cuales (M> son usados por el bootloader"N el A.mega '() posee '(M>, (tambi/n con ( M> usados por el bootloader"# :l Atmega1K) posee 1M> de S3AM !1( btes de ::+3GM (la cual puede ser leida escrita con la librera ::+3GM"N el A.mega'() posee ( M> de S3AM 1M> de ::+3GM# Entrada y Salida 4ada uno de los 1I pines digitales del =ano puede ser usado como entrada o salida, usando las funciones pinMode(", digitalErite(", digital3ead("# Gperan a ! voltios# 4ada pin puede proveer o recibir un m,7imo de I0mA poseen una resistencia de pull8up (desconectada por defecto" de (0 a !0 1Ghms# Adem,s algunos pines poseen funciones especiali&adas- Serial- 0 (3X" 1 (.X"# (3X" usado para recibir (.X"usado para transmitir datos ..? va serie# :stos pines est,n conectados a los pines correspondientes del chip ;S>8a8..? de F.6L# Lnterrupciones :7ternas- pines ( '# :stos pines pueden ser configurados para activar una interrupcin por paso a nivel ba9o, por flanco de ba9ada o flanco de subida, o por un cambio de valor# Mira la funcin attachLnterrupt(" para m,s detalles# +EM- pines ', !, K, $, 10, 11# +roveen de una salida +EM de )8bits cuando se usa la funcin analogErite("# S+L- pines 10 (SS", 11 (MGSL", 1( (MLSG", 1' (S4M"# :stos pines soportan la comunicacin S+L, la cual, a pesar de poseer el hard*are, no est, actualmente soportada en el lengua9e Arduino# ?:6- +in 1'# :7iste un ?:6 conectado al pin digital 1'# 4uando el pin se encuentra en nivel alto, el ?:6 est, encendido, cuando el pin est, a nivel ba9o, el ?:6 estar, apagado# :l =ano posee ) entradas analgicas, cada unas de ellas provee de 10 bits de resolucin (10(I valores diferentes"# +or defecto miden entre ! voltios masa, sin embargo es posible cambiar el rango superior usando la funcin analog3eference("# .ambi/n, algunos de estos pines poseen funciones especiales- L(4- +ines I (S6A" ! (S4?"# Soporta comunicacin L(4 (.EL" usando la librera Eire (documentacin en la *eb Eiring"# Ca algunos otros pines en la placa- A3:F# .ensin de referencia por las entradas analgicas# Se configura con la funcin analog3eference("# 3eset# +on esta linea a nivel ba9o para resetear el microcontrolador# =ormalmente se usa para aadir un botn de reset 0ue mantiene a nivel alto el pin reset mientras no es pulsado# Diagrama Pictrico Figura I# 6iagrama pictrico de circuito de Andromie A' Programando en Arduino +ara programa el robot luchador de sumo es necesario contar con el entorno de programacin de Arduino# Si a<n no lo tiene lo puede descargar en- ***#arduino#cc en la seccin de descargas# :s recomendable 0ue la versin de arduino 0ue descar0ue sea igual o posterior a las 1#0# Figura !# 4aptura de pantalla de entorno de programacin Arduino versin 1#0#1 4omponentes de Arduino L6: Figura K# Lcono O%erificarP %erificar# inspecciona el cdigo generado, marca errores posibles soluciones# Figura J# Qcono- O4argarP 4argar- 4uando se presiona este botn se compila ensambla el cdigo contenido en la ventana se descarga a la tar9eta electrnica de Arduino# :ste proceso puede tardar algunos segundos o tal ve& un para de minutos# Figura )# Qcono- O=uevoP# =uevo- crea un nuevo Os1etchP en blanco# Figura $# Qcono- OAbrirP# Abrir- abre un Os1etchP, cdigo, a e7istente# Figura 10# Qcono- ORuardarP# Ruardar- salva las modificaciones reali&adas en el cdigo# Figura 11# Qcono- OMonitor SerialP# Monitor Serial- abre la aplicacin de monitor serial, 0ue puede servir para diferentes propsitos# 3eferencias del lengua9e ?os programas hechos con Arduino se dividen en tres partes principales- :structura, valores (variables constantes", funciones# :l lengua9e de programacin Arduino se basa en 424SS# :structuras ?as dos estructuras principales son las siguientes- setup(", es la estructura donde se configura las entradas, salidas los mdulos# :s llamado tambi/n como Oiniciali&acinP# ?o contenido en esta estructura se e9ecuta slamente una ve& al inicio del programa# loop(", es la estructura donde se escribe el cdigo, se repetir, infintas veces# %alores 4onstantes CLRC, alto, ?GE, ba9o, L=+;., entrada, G;.+;., salida, .rue, verdadero, false, falso, %ariables- boolean, booleando, char, car,cter, bte, ) bits int, entero, unsigned int, entero sin signo, long, entero de '( bits, unsigned long, entero '( bits sin signo, float, punto flotante# Funciones pinMode(", configura si el pin digital ser, salida o entrada, digitalErite(", si el pin ha sido configurado como salida digital, su volta9e de salida ser, 0 o !%# digital3ead(", lectura del valor digital del pin especificado, analog3ead(", lectura del valor analgico del pin especificado, analogErite(", configura la modulacin por anchura de pulso de un pin (+EM", dela(", pausa en milisegundos# Serial, librera incluida para el uso configuracin del mdulo serial# 3evisa la referencia del lengua9e de arduino para aprender m,s acerca de las estructuras, variables funciones de Arduino# El primer programa en Arduino para Andromie MS ;n sencillo programa de demostracin est, disponible en los e9emplos de Arduino, OArchivo2:9emplos201#>asics2>lin1P# Figura 1(# :l primer programa en Arduino :ste sencillo programa prende apaga un ?:6, colocado en la patilla, pin 1'# 2T >lin1 .urns on an ?:6 on for one second, then off for one second, repeatedl# T2 22 +in 1' has an ?:6 connected on most Arduino boards# int led U 1'N 22 the setup routine runs once *hen ou press reset- void setup(" V 22 initiali&e the digital pin as an output# pinMode(led, G;.+;."N W 22 the loop routine runs over and over again forever- void loop(" V digitalErite(led, CLRC"N 22 turn the ?:6 on (CLRC is the voltage level" dela(1000"N 22 *ait for a second digitalErite(led, ?GE"N 22 turn the ?:6 off b ma1ing the voltage ?GE dela(1000"N 22 *ait for a second W Abierto el programa de e9emplo es necesario seleccionar la tar9eta correspondiente, en el caso del robot seguidor de lnea, se trata de un Arduino =ano Atmega'(), para ello dir9ase al men< Cerramientas2.ar9eta2Arduino =ano *2Atmega'()# Figura 1'# Seleccin de tar9eta Arduino =ano *2A.mega'() Ahora se verificar, 0ue el cdigo escrito sea correcto, presione el cono verificar- ?o 0ue har, esta funcin ser, OtraducirP todo lo codificado a un OidiomaP 0ue entienda el micro8 controlador# Gbserve los avisos errores de salida mostrados# Si el programa se compila correctamente, el mensa9e de salida deber, ser como se muestra en la figura- Figura1I# Mensa9es de salida ;na ve& compilado verificado el programa, en vista 0ue no e7isten errores o advertencias, se procede a cargar el programa a la tar9eta de Arduino# +ara ello antes es importante seleccionar el puerto de comunicacin serial O4GMP correcto# +ara ello se puede hacer lo siguiente- Abra el administrador de dispositivos, :n la pestaa O+uertos (4GM ?+."P, verifi0ue el puerto en el cual est, ubicado el Arduino# Reneralmente tiene el nombre de O;S> Serail +ortP# Figura 1!# %erificacin del puerto 4GM del Arduino ;na ve& identificado, se selecciona en el L6:, Cerramientas2+uerto serial24GM7 Figura 1K# Seleccin del +uerto Serial 4argue el programa a la tar9eta de Arduino presionando el cono de cargar# :sta accin puede tardar algunos segundos# Figura 1J# 4arga de programa a tar9eta de Arduino Si la carga fue e7itosa se desplegar, el siguiente mensa9e- Figura 1)# 4arga :7itosa Eemplos y proyectos Ahora 0ue sabe como compilar cargar un prorama a la tar9eta de Arduino es tiempo de aprender a disear codificar programas m,s complicados# 4omen&ar, con los m,s sencillos# :9emplo 1- ?uces estilo el Oserie de navidadP Figura 1$# .ar9eta de MS ?a tar9eta del robot seguidor de lnea inclue ' indicadores ?:6Xs para el propsito Reneral# Hstos se encuentran en los pines digitales $,10, 1' marcados como >I, >!, 3;= en ese preciso orden# ?a secuencia 0ue se 0uiere lograr es la siguiente- Figura (0# ?uces de navidad :l cdigo de este programa se encuentra disponible en la p,gina Eeb- ***#andromie#com en la seccin del blog en la eti0ueta de ?uchador de Sumo MS# 2T 88888888888888888888Lnicio de 4digo88888888888888888888 T2 int runled U 1'N 22Alias para pin 1' int led0 U $N 22Alias para pin $ int led1 U 10N 22Alias para pin 10 void setup(" V 224onfiguracin de entradas salidas pinMode(runled, G;.+;."N 22Salida digital en runled U pin 1' pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ pinMode(led1, G;.+;."N 22Salida digital en led1 U pin 10
224onfiguracin de mdulos W void loop(" V 224digo 0ue se repetir, infititamente digitalErite(led0, CLRC"N 22+uesta en alto de led0, prende digitalErite(led1, ?GE"N 22+uesta en ba9o de led1, apaga 22GYGGGGZ 223un?:6 usa lgica negativa, cuando es ato apaga, cuando es ba9o prende digitalErite(runled, CLRC"N22+ues en alto de 3un?:6 dela((!0"N digitalErite(led0, ?GE"N 22+uesta en ba9o de led0, apaga digitalErite(led1, CLRC"N 22+uesta en alto de led1, prende 22GYGGGGZ 223un?:6 usa lgica negativa, cuando es ato apaga, cuando es ba9o prende digitalErite(runled, CLRC"N dela((!0"N digitalErite(led0, ?GE"N 22+uesta en ba9o de led0, apaga digitalErite(led1, ?GE"N 22+uesta en alto de led1, prende 22GYGGGGZ 223un?:6 usa lgica negativa, cuando es ato apaga, cuando es ba9o prende digitalErite(runled, ?GE"N dela((!0"N W 2T 88888888888888888888Fin de cdigo88888888888888888888 T2 :s un e9emplo sencillo pero auda a comprender el mane9o de los pines digitales como salidas# Eercicio ! 6esarrollo un cdigo para realice la siguiente secuencia de encendido apagado de ?:6s# Eemplo ": Encendido de un LE# con un interruptor sin contacto$ ?a tar9eta de Andromie MS cuenta con ( sensores del tipo reflectivo infrarro9o# :ste tipo est, compuesto de dos componentes un emisor un receptor# :l primero es un ?:6 infrarro9o, lu& 0ue no podemos ver los o9osN el segundo es un fototransistor con filtro de lu& de da# :l funcionamiento es el siguiente- Figura (1# Sensor 3eflectivo sobre superficie refle9ante# 4uando el ?:6 infrarro9o se encuentre emitiendo lu&, si la superfice es refle9ante, por e9emplo blanca, se refle9a una cantidad de lu& 0ue es percebida por el fototransistor, 0ue convierte la seal luminosa en volta9e, permite un flu9o de corriente entre sus terminales por la configuracin de carga de emisor se obtiene un valor# Figura ((# Sensor 3eflectivo sobre superficie opaca +or lo contrario si el la superficie es opaca, por e9emplo negra, se refle9a poca lu&, la cual es percibida por el fototransisto, pero se genera poca corriente en sus terminales por consiguiente poco volta9e# :ste sensor no puede servir como un interruptor sin contacto, se usa com<nmente en muchos procesos de la industra cotidianos, tal es caso de las llaves autom,ticas de agua usadas en los baos p<blicos# ?a intensin es 0ue cuando colo0ue su dedo frente al sensor este active el ?:6# A continuacin se propone el cdigo# 2T88888888888888888888888888888888Lnicio del cdigo88888888888888888888888888888888T2 226eclaracin de variables globales int +iso6erechoN int runled U 1'N 22Alias para pin 1' int led0 U $N void setup(" V 224onfiguracin de entradas salidas pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ 224onfiguracin de mdulos W void loop(" V 224digo 0ue se repetir, infititamente +iso6erecho U analog3ead(A("N 22?ectura del sensor L&0uierdo if (+iso6erecho [ !1(" 22Si la superficie es blanca entonces prende ?:6 V digitalErite(led0, CLRC"N W else 22Sino, es decir, es negro, entonces apaga ?:6 V digitalErite(led0, ?GE"N W
dela(!0"N W 2T88888888888888888888888888888888Fin del cdigo88888888888888888888888888888888T2 :l funcionamiento de este ser, el siguiente, cuando colo0ue su dedo cerca del sensor marcado como OA(P en el +4> del robot el indicador ?:6 marcado como >I se encender,, sino se mantendr, apagado, como se muestra en la siguiente figura# Figura ('# Funcionamiento del programa Eemplo %: Accionar de motores$ +ara probar los motores tenemos 0ue conectarlos en los terminales (verdes con tornillos", marcados como OMotor AP OMotor >P# :n la siguiente figura se muestra a manera de e9emplo la cone7in# Figura (I# 4one7in de motores .ambi/n es necesario conectar la batera con interruptor# Sea cuidadoso al conectar la batera, conecte el cable ro9o del broche de la batera (positivo" en el tornillo del terminal verde marcado con OS%P, el negro (com<n, tierra" con/ctelo al otro lado del terminal, marcado con OR=6P# +uede guiarse de la siguiente figura para conectarlo# 4orte la alimentacin con el interruptor# Figura (!# 4one7in de batera 4opie pegue el siguiente cdigo en la ventana del L6: de Arduino# 2T88888888888888888888888888888888Lnicio del cdigo88888888888888888888888888888888T2 int runled U 1'N 22Alias para pin 1' int led0 U $N 22Alias para pin $ int led1 U 10N 22Alias para pin 10 int motor6erecha0 U KN int motor6erecha1 U 11N int p*m6erecha U !N int motorL&0uierda0 U JN int motorL&0uierda1 U )N int p*mL&0uierdaU 'N int +ro7imidad6erechoN int +ro7imidadL&0uierdoN void setup(" V 224onfiguracin de entradas salidas pinMode(runled, G;.+;."N 22Salida digital en runled U pin 1' pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ pinMode(led1, G;.+;."N 22Salida digital en led1 U pin 10
pinMode(motorL&0uierda0,G;.+;."N pinMode(motorL&0uierda1,G;.+;."N pinMode(p*mL&0uierda, G;.+;."N 224onfiguracin de mdulos W void loop(" V 224digo 0ue se repetir, infititamente 22Adelante digitalErite(motor6erecha0, CLRC"N digitalErite(motor6erecha1, ?GE"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, CLRC"N digitalErite(motorL&0uierda1, ?GE"N digitalErite(p*mL&0uierda, CLRC"N dela(1000"N
22Atras digitalErite(motor6erecha0, ?GE"N digitalErite(motor6erecha1, CLRC"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, ?GE"N digitalErite(motorL&0uierda1, CLRC"N digitalErite(p*mL&0uierda, CLRC"N dela(1000"N 22detenido digitalErite(p*m6erecha, ?GE"N digitalErite(p*mL&0uierda, ?GE"N dela(1000"N W 2T88888888888888888888888888888888Fin del cdigo88888888888888888888888888888888T2 Funcionamiento :l robot deber, ir hacia adelante, despu/s hacia atr,s por <ltimo detenerse# Se repetir, infinitamente# %erifi0ue 0ue la secuencia descrita corresponda con el movimiento del robot# Si alguno de los motores gira en sentido contrario invierta los cables en los terminales de tornillo (verdes"# Eercicio " Acomplete la siguiente tabla# 4on los movimientos propuestos resultantes desarrolle un cdigo en el e9ecuten con una duracin de 1 segundo# Motor i&0uierdo Motor 6erecho Movimiento de 3obot Adelante Adelante Adelante Atr,s Atr,s Atr,s Atr,s Adelante Adelante Atr,s Adelante 6etenido 6etenido 6etenido 6etenido Eemplo &: 'isuali(acin del valor de los sensores en monitor serial$ ;na de las grandes venta9as de las tar9etas de Arduino es su simplicidad para establecer cone7in con una computadora# :sto se reali&a gracias al convertivor ;S> a serial incluido en la tar9eta# A dem,s el entorno de programacin cuenta con una aplicacin, monitor serial, 0ue sirve para visuali&ar, recibir enviar informacin# :l siguiente programa obtiene el valor de los sensores reflectivos analgico, los cuantifica los despliega# ?a cuantificacin es el proceso por el cual se le asigna un valor en bits a una seal# ?os convertidores 4A6, Analgico a 6ecimal, cuantifican las seales, es decir entregan un valor en n<mero dependiendo de la resolucin 0ue posean# :n el caso del microcontrolador 0ue se usa, Atmega'(), la resolucin es de 10 bits, es decir 10(I divisiones en la escala del 0 al !%# ;na buen analoga es la siguiente- Suponga 0ue tiene una escalera de ! metros con 10(I escalones, cada escaln le har, subir 0#00I) metros# Si otra persona le indica 0ue tiene 0ue pintar una linea a (#! metros del piso, @4u,ntos escalones tendr, 0ue subirB, esto puede resolverse por una simple regla de tres- A grosso modo eso es lo 0ue hace un convertidor Analgico a 6igital, convierte un volta9e en un dato 0ue pueda manipular# +ara reali&ar la calibracin los sensores o para obtener informacin de ellos se puede reali&ar un programa 0ue muestre los datos en el monitor serial# A continuacin se propone el cdigo para reali&ar esta tarea# 2T88888888888888888888888888888888Lnicio del cdigo88888888888888888888888888888888T2 int runled U 1'N 22Alias para pin 1' int led0 U $N 22Alias para pin $ int led1 U 10N 22Alias para pin 10 int +iso6erechoN int +isoL&0uierdoN void setup(" V 224onfiguracin de entradas salidas pinMode(runled, G;.+;."N 22Salida digital en runled U pin 1' pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ pinMode(led1, G;.+;."N 22Salida digital en led1 U pin 10
224onfiguracin de mdulos Serial#begin($K00"N 224onfiguracin de baudrate W void loop(" V Dato= 2.5metros1024escalones 5metros =512escalones 224digo 0ue se repetir, infititamente +iso6erecho U analog3ead(A("N 22?ectura analgico del sensor derecho +isoL&0uierdo U analog3ead(A'"N 22?ectura analgica del sensor i&0uierdo
Serial#print(\Sensor de piso derecho- \"N 22Lmpresin de leenda (te7to" Serial#println(+iso6erecho"N 22Lmprime el valor obtenido en la lectura Serial#print(\Sensor de piso i&0uierdo- \"N 22Lmpresin de leenda (te7to" Serial#println(+isoL&0uierdo"N 22Lmprime el valor obtenido en la lectura dela(1000"N W 2T88888888888888888888888888888888Fin del cdigo88888888888888888888888888888888T2 Funcionamiento ;na ve& compilado descargado el cdigo se deber, abrir el monitor serial dentro del L6: de Arduino para ver los datos# Figura (K# 3ecepcin de datos por el monitor Serial :n la figura se puede observar los valores obtenidos sobre una superficie opaca, en la parte superior, en la posterior sobre una superficie refle9ante# :stos datos son importantes para la determinacin del umbral para la deteccin del borde del doho# Eercicio % 6esarrolle el cdigo para un programa 0ue muestre por el monitor serial el valor de los sensores en %olta9e# Sugerencia +ara obtener el valor en volta9e puede emplear la siguiente frmula- Si en el e9emplo anterior se obtuvo el valor de (1J para el sensor de piso derecho su e0uivalente en volta9e se puede obtener la siguiente manera- 1#0! voltios es el valor 0ue se deber, desplegar# Voltaje= ValorObtenidoCAD5Voltios 1024 Voltaje= 2175Voltios 1024 =1.05Voltios Eercicio &: 6esarrolle un cdigo para desplegar el valor obtenido por 4A6 del sensor conectado en la entrada A0# 4olo0ue el robot en una posicin fi9a# 4olo0ue ob9etos a diferentes distancias haga anotaciones# Figura (J# 4arateri&acin del sensor 6istancia (centmetros" %alor Gbtenido en 4A6 (0810(I" %alor en %olta9e (08!%oltios" K0 !0 I0 (0 10 ! A partir de los volta9es obtenidos en cada una de las distancias construa una gr,fica, colocando en el e9e OXP la distancia (centmetros" en el e9e O]P el volta9e# Figura ()# 4urva caracterstica del Sensor SCA3+ R+(]0A(1]M 4ompare sus resultados con los datos caractersticos del sensor mostrados en la figura# Eemplo ): Minisumo * +sico Explicacin del concurso 4onsiste en un combate entre dos robots 0ue discurrir, por una tarima, tambi/n denominada doho o ring, consiste en marcar puntos O]u1ohP# ?os combates se componen de dos asaltos de ' minutos m,7imo, cada uno, m,s un terecer asalto en caso de empate# :l primer competidor en alcan&ar dos puntos de ]u1oh ser, el ganador de la lucha# :l competidor 0ue gane un punto de u1oh en el tercer combate, ser, el ganador# Figura ($# 4ompeticin seguidor de lnea, persecucin Construya una pista para prueas :s importante tener una pista o construir una con los siguientes materiales# 4artulina blanca, cinta de aislar negra, ti9eras# +ara hacer pruebas dibu9e un doho como el 0ue se muestra en la figura# +or facilidad use una cartulina blanca, fondo, la linea 0ue delimite el OringP de color negro# Se propone el siguiente cdigo, copie pegue en el ,rea de cdigo del L6: de Arduino# 2T88888888888888888888888888888888Lnicio del cdigo88888888888888888888888888888888T2 int runled U 1'N 22Alias para pin 1' int led0 U $N 22Alias para pin $ int led1 U 10N 22Alias para pin 10 int motor6erecha0 U KN int motor6erecha1 U 11N int p*m6erecha U !N int motorL&0uierda0 U JN int motorL&0uierda1 U )N int p*mL&0uierdaU 'N int +ro7imidad6erechoN int +ro7imidadL&0uierdoN int +iso6erechoN int +isoL&0uierdoN 22Funciones void adelante("N void atras("N void detenido("N void giroderecha("N void giroi&0uierda("N void setup(" V 224onfiguracin de entradas salidas pinMode(runled, G;.+;."N 22Salida digital en runled U pin 1' pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ pinMode(led1, G;.+;."N 22Salida digital en led1 U pin 10
pinMode(motorL&0uierda0,G;.+;."N pinMode(motorL&0uierda1,G;.+;."N pinMode(p*mL&0uierda, G;.+;."N 224onfiguracin de mdulos W void loop(" V 224digo 0ue se repetir, infititamente +iso6erecho U analog3ead(A("N +isoL&0uierdo U analog3ead(A'"N if(+iso6erecho ^ !1( __ +isoL&0uierdo ^ !1(" V atras("N dela((00"N giroderecha("N dela((00"N W else V adelante("N W W void adelante(" V digitalErite(motor6erecha0, CLRC"N digitalErite(motor6erecha1, ?GE"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, CLRC"N digitalErite(motorL&0uierda1, ?GE"N digitalErite(p*mL&0uierda, CLRC"N W void atras(" V digitalErite(motor6erecha0, ?GE"N digitalErite(motor6erecha1, CLRC"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, ?GE"N digitalErite(motorL&0uierda1, CLRC"N digitalErite(p*mL&0uierda, CLRC"N W void detenido(" V digitalErite(p*m6erecha, ?GE"N digitalErite(p*mL&0uierda, ?GE"N W void giroderecha(" V digitalErite(motor6erecha0, ?GE"N digitalErite(motor6erecha1, CLRC"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, CLRC"N digitalErite(motorL&0uierda1, ?GE"N digitalErite(p*mL&0uierda, CLRC"N W void giroi&0uierda(" V digitalErite(motor6erecha0, CLRC"N digitalErite(motor6erecha1, ?GE"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, ?GE"N digitalErite(motorL&0uierda1, CLRC"N digitalErite(p*mL&0uierda, CLRC"N W 2T88888888888888888888888888888888Fin del cdigo88888888888888888888888888888888T2 ,uncionamiento ;na ve& descargado el cdigo en funcionamiento el robot deber, desli&arse sobre la superficie del OringP, al llegar al borde, lnea negra, deber, regresar hacia atr,s dar vuelta# :n este e9emplo <nicamente se usan los sensores para detectar el borde# Eemplo -: Minisumo Intermedio :n el siguiente cdigo se emplean los sensores de pro7imidad para ubicar al oponente# :l cdigo propuesto 2T88888888888888888888888888888888Lnicio del cdigo88888888888888888888888888888888T2 int runled U 1'N 22Alias para pin 1' int led0 U $N 22Alias para pin $ int led1 U 10N 22Alias para pin 10 int motor6erecha0 U KN int motor6erecha1 U 11N int p*m6erecha U !N int motorL&0uierda0 U JN int motorL&0uierda1 U )N int p*mL&0uierdaU 'N int +ro7imidad6erechoN int +ro7imidadL&0uierdoN int +iso6erechoN int +isoL&0uierdoN 22Funciones void adelante("N void atras("N void detenido("N void giroderecha("N void giroi&0uierda("N void setup(" V 224onfiguracin de entradas salidas pinMode(runled, G;.+;."N 22Salida digital en runled U pin 1' pinMode(led0, G;.+;."N 22Salida digital en led0 U pin $ pinMode(led1, G;.+;."N 22Salida digital en led1 U pin 10
pinMode(motorL&0uierda0,G;.+;."N pinMode(motorL&0uierda1,G;.+;."N pinMode(p*mL&0uierda, G;.+;."N 224onfiguracin de mdulos giroderecha("N W void loop(" V 224digo 0ue se repetir, infititamente +ro7imidad6erecho U analog3ead(A0"N +ro7imidadL&0uierdo U analog3ead(A1"N +iso6erecho U analog3ead(A("N +isoL&0uierdo U analog3ead(A'"N 224ondicin principal if(+iso6erecho [ !1( __ +isoL&0uierdo [ !1(" V atras("N dela((00"N giroderecha("N dela((00"N W if(+ro7imidad6erecho [ '!0 `` +ro7imidadL&0uierdo [ '00" V adelante("N W if(+ro7imidad6erecho ^ '!0 `` +ro7imidadL&0uierdo [ '00" V giroi&0uierda("N W if(+ro7imidad6erecho [ '!0 `` +ro7imidadL&0uierdo ^ '00" V giroderecha("N W W void adelante(" V digitalErite(motor6erecha0, CLRC"N digitalErite(motor6erecha1, ?GE"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, CLRC"N digitalErite(motorL&0uierda1, ?GE"N digitalErite(p*mL&0uierda, CLRC"N W void atras(" V digitalErite(motor6erecha0, ?GE"N digitalErite(motor6erecha1, CLRC"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, ?GE"N digitalErite(motorL&0uierda1, CLRC"N digitalErite(p*mL&0uierda, CLRC"N W void detenido(" V digitalErite(p*m6erecha, ?GE"N digitalErite(p*mL&0uierda, ?GE"N W void giroderecha(" V digitalErite(motor6erecha0, ?GE"N digitalErite(motor6erecha1, CLRC"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, CLRC"N digitalErite(motorL&0uierda1, ?GE"N digitalErite(p*mL&0uierda, CLRC"N W void giroi&0uierda(" V digitalErite(motor6erecha0, CLRC"N digitalErite(motor6erecha1, ?GE"N digitalErite(p*m6erecha, CLRC"N digitalErite(motorL&0uierda0, ?GE"N digitalErite(motorL&0uierda1, CLRC"N digitalErite(p*mL&0uierda, CLRC"N W 2T88888888888888888888888888888888Fin del cdigo88888888888888888888888888888888T2 ,uncionamiento :l robot comen&ar, a rotar sobre su e9e hasta encontrar un ob9eto cercano, con una distancia no maor a (! centmetros# 4uando lo encuentre lo empu9ar, hasta el borde del doho retornar, a /l# Eercicio &: Modifi0ue el cdigo para 0ue el robot comience su funcionamiento ! segundos despu/s de su encendido#