Microcontroladores y robots
En el parqueo de un centro comercial de Cartago, la barrera sube sola cuando llega un carro y baja cuando ya pasó. Nadie la maneja y no hay una computadora con pantalla a la vista. ¿Qué la controla? Una placa del tamaño de una tarjeta, igual a la del kit de robótica de su colegio. Con ella usted va a construir semáforos, barreras y robots que perciben lo que pasa a su alrededor. Si ya programó con bloques, reconocerá la idea: problema, algoritmo y código.
El microcontrolador: una computadora diminuta
Una computadora de escritorio sirve para escribir un trabajo, ver videos o navegar: muchas tareas distintas y mucha pantalla. Un microcontrolador sirve para encender un semáforo, abrir una barrera o mover un robot: una sola tarea, repetida sin parar, sin pantalla. Por eso un robot no lleva una computadora dentro: pesaría demasiado, gastaría demasiada batería y haría mucho más de lo que necesita.
Cómo llega el programa a la placa
El programa se escribe en una computadora, en un editor (por texto o por bloques). Al «subirlo» por el cable USB, la computadora lo traduce a un lenguaje que el chip entiende y lo guarda en la memoria de la placa. Esa memoria no se borra al quitar la corriente. Después usted puede desconectar el cable: la placa, con una batería, ejecuta el programa sola, una y otra vez.
Explique qué es un microcontrolador (una computadora completa pero pequeña, dentro de una placa) y dos diferencias con una computadora de escritorio: qué puede hacer…
Explique qué es un microcontrolador (una computadora completa pero pequeña, dentro de una placa) y dos diferencias con una computadora de escritorio: qué puede hacer cada una y para qué se usa.
Explique cómo llega un programa a la placa: dónde se escribe, qué ocurre al «subirlo» por el cable y por qué después la placa funciona sola, sin computadora, ejecutando…
Explique cómo llega un programa a la placa: dónde se escribe, qué ocurre al «subirlo» por el cable y por qué después la placa funciona sola, sin computadora, ejecutando el programa en bucle.
Diga si son verdaderas o falsas estas afirmaciones y justifique cada respuesta: (a) la placa ejecuta el programa tal cual lo escribimos, sin traducirlo antes; (b) los…
Diga si son verdaderas o falsas estas afirmaciones y justifique cada respuesta: (a) la placa ejecuta el programa tal cual lo escribimos, sin traducirlo antes; (b) los pines de la placa aguantan cualquier corriente, así que el LED puede ir sin resistencia; (c) un servo puede colocarse en un ángulo concreto ordenado por el programa; (d) la placa recuerda el último programa aunque se desconecte de la corriente.
Pines de entrada y salida: dónde se conecta todo
Una placa tiene varios grupos de pines: los digitales (para pulsadores, LED, zumbadores), los analógicos de entrada (para leer la LDR o un potenciómetro), los de alimentación (5 V y 3,3 V) y los de GND o masa. El conector USB sirve para subir el programa y también para alimentar la placa desde la computadora.
Para clasificar cualquier elemento, pregúntese quién da la información: si el elemento le cuenta algo a la placa (pulsador, LDR, potenciómetro), va a una entrada; si la placa le ordena algo (LED, zumbador), va a una salida.
La figura muestra una placa microcontroladora con sus grupos de pines rotulados, salvo uno. El pin tapado es la referencia común a la que vuelven todos los circuitos que…
La figura muestra una placa microcontroladora con sus grupos de pines rotulados, salvo uno.
El pin tapado es la referencia común a la que vuelven todos los circuitos que conecte a la placa. Nómbrelo y explique para qué sirve, qué diferencia hay entre los pines digitales (todo o nada) y los analógicos (leen valores continuos) y para qué se usa el conector USB.
Clasifique estos elementos según se conecten a un pin de entrada o a un pin de salida de la placa, y justifique uno de cada tipo: un pulsador, un LED, una LDR, un…
Clasifique estos elementos según se conecten a un pin de entrada o a un pin de salida de la placa, y justifique uno de cada tipo: un pulsador, un LED, una LDR, un zumbador y un potenciómetro.
Sensores y actuadores del robot
En un robot que se desplaza, el «cerebro» es la placa: recibe la información de los sensores y envía órdenes a los actuadores. La batería es la fuente de energía.
| Sensor | Qué mide | Ejemplo de proyecto |
|---|---|---|
| Sensor ultrasónico | distancia | robot esquiva-obstáculos, barrera de parqueo |
| LDR | luz | lámpara que se enciende al oscurecer |
| Temperatura | calor del ambiente | ventilador automático |
| Infrarrojo de línea | claro u oscuro en el piso | seguidor de línea |
| Actuador | Qué hace | Diferencia clave |
|---|---|---|
| LED | emite luz | solo encendido o apagado |
| Zumbador | emite sonido | avisa con un tono |
| Servo | gira hasta un ángulo exacto | se queda quieto en la posición ordenada |
| Motor DC | gira sin parar | solo controlas la velocidad, no el ángulo |
La figura muestra un robot móvil visto desde arriba, con sus elementos rotulados y su «cerebro» tapado con un interrogante. Nombre la pieza tapada, explique qué…
La figura muestra un robot móvil visto desde arriba, con sus elementos rotulados y su «cerebro» tapado con un interrogante.
Nombre la pieza tapada, explique qué información recibe de los sensores y qué órdenes envía a los actuadores, y clasifique los elementos rotulados (ruedas con motor, sensor de ultrasonidos, zumbador, LED, batería) como entrada, salida o fuente de energía.
Indique qué mide cada sensor que puede conectar a la placa y un proyecto en el que lo usaría: sensor de ultrasonidos (distancia), LDR (luz), sensor de temperatura y…
Indique qué mide cada sensor que puede conectar a la placa y un proyecto en el que lo usaría: sensor de ultrasonidos (distancia), LDR (luz), sensor de temperatura y sensor infrarrojo de línea (distingue claro de oscuro en el piso).
Indique qué hace cada actuador conectable a la placa y una diferencia clave entre ellos: un LED, un zumbador, un servo (gira hasta la posición que usted le ordena) y un…
Indique qué hace cada actuador conectable a la placa y una diferencia clave entre ellos: un LED, un zumbador, un servo (gira hasta la posición que usted le ordena) y un motor de corriente continua (gira sin parar a más o menos velocidad).
Los motores de un robot no se alimentan de un pin de la placa, sino de la batería a través de una placa «controladora de motores». Explique por qué (los pines dan muy…
Los motores de un robot no se alimentan de un pin de la placa, sino de la batería a través de una placa «controladora de motores». Explique por qué (los pines dan muy poca corriente y el motor pediría mucha más), qué papel hace la placa controladora y qué relación tiene esto con el relé de los circuitos electrónicos.
Programar con condiciones: leer, comparar, actuar
Usted quiere que un LED se encienda cuando la luz del cuarto baje de cierto nivel. Explique qué pin usa para leer la LDR (uno analógico), qué significa fijar un «umbral»…
Usted quiere que un LED se encienda cuando la luz del cuarto baje de cierto nivel. Explique qué pin usa para leer la LDR (uno analógico), qué significa fijar un «umbral» en el programa y escriba en pseudocódigo las tres líneas clave: leer, comparar y actuar.
La figura muestra el diagrama de flujo del control de una barrera de parqueo con un sensor de ultrasonidos, pero la decisión está tapada. Escriba la condición que debe…
La figura muestra el diagrama de flujo del control de una barrera de parqueo con un sensor de ultrasonidos, pero la decisión está tapada.
Escriba la condición que debe comprobar la placa (si la distancia medida es menor que cierto valor, hay un carro), explique qué hace el bucle mientras no llega nadie y qué ocurriría si la barrera bajara sin esperar unos segundos.
Diseñe un semáforo con la placa: decida cuántos pines de salida necesita y para qué, escriba la secuencia de estados con sus tiempos (verde $4\ \text{s}$, ámbar…
Diseñe un semáforo con la placa: decida cuántos pines de salida necesita y para qué, escriba la secuencia de estados con sus tiempos (verde $4\ \text{s}$, ámbar $1\ \text{s}$, rojo $4\ \text{s}$) y explique por qué el programa se escribe como un bucle que no termina nunca.
Su programa debería encender un LED al presionar un botón, pero ocurre al revés: está encendido y se apaga al presionar. Explique dos causas posibles (la lógica del…
Su programa debería encender un LED al presionar un botón, pero ocurre al revés: está encendido y se apaga al presionar. Explique dos causas posibles (la lógica del programa está invertida o el pulsador está cableado al contrario, «activo a nivel bajo») y cómo comprobaría cada una.
El sensor ultrasónico y el seguidor de línea
Por eso el sensor tiene dos «ojos» cilíndricos: uno emite el pulso y el otro escucha el eco. Puede fallar cuando el eco no vuelve bien: los objetos blandos (una chaqueta, una espuma) absorben el sonido, y las superficies inclinadas lo desvían hacia otro lado.
Robot esquiva-obstáculos
Con el sensor al frente, el robot avanza mientras todo está despejado. Si la distancia baja del umbral, ejecuta una secuencia: parar, girar y comprobar de nuevo. Con un solo sensor mirando al frente no ve lo que hay a los lados: puede golpear una esquina o quedar atrapado.
Seguidor de línea
Los sensores infrarrojos de línea distinguen claro de oscuro en el piso. Con dos sensores sobre una línea negra en piso blanco:
| Sensor izquierdo | Sensor derecho | Acción |
|---|---|---|
| blanco | blanco | avanzar recto (la línea queda en medio) |
| negro | blanco | girar a la izquierda |
| blanco | negro | girar a la derecha |
| negro | negro | marca o cruce: detenerse |
La separación entre sensores importa: debe ser un poco mayor que el ancho de la línea, para que la línea quede entre ellos. Si están más cerca que el ancho de la línea, ambos ven negro a la vez y el robot cree estar en una marca; si están muy separados, se salen de la línea antes de verla.
El sensor de ultrasonidos mide distancias como un murciélago. Explique el principio (emite un pulso de sonido y mide cuánto tarda el eco en volver), por qué tiene dos…
El sensor de ultrasonidos mide distancias como un murciélago. Explique el principio (emite un pulso de sonido y mide cuánto tarda el eco en volver), por qué tiene dos «ojos» (uno emite y otro escucha) y dos situaciones en las que puede fallar: objetos blandos que absorben el sonido y superficies inclinadas que desvían el eco.
Describa el comportamiento de un robot esquiva-obstáculos a alto nivel: qué mide el sensor frontal, qué hace el robot cuando todo está despejado y qué secuencia ejecuta…
Describa el comportamiento de un robot esquiva-obstáculos a alto nivel: qué mide el sensor frontal, qué hace el robot cuando todo está despejado y qué secuencia ejecuta al detectar algo cerca (parar, girar, comprobar de nuevo). ¿Qué pasaría si solo tuviera el sensor mirando al frente?
Usted está diseñando la calibración y el montaje de un robot sigue-líneas que recorre un circuito blanco con una línea negra de 2 cm de anchura. El robot dispone de dos…
Usted está diseñando la calibración y el montaje de un robot sigue-líneas que recorre un circuito blanco con una línea negra de 2 cm de anchura. El robot dispone de dos sensores infrarrojos de reflectancia ($S_I$ y $S_D$) montados en el frente y tracción diferencial con dos motores independientes.
- a) Prediga qué comportamiento erróneo tendrá el robot si monta los sensores separados solo 1 cm entre sí (distancia menor que el ancho de la línea). ¿Y si los separa 6 cm? Justifique cuál debe ser la separación geométrica óptima.
- b) Diseñe la tabla de decisiones del robot indicando el estado de cada motor (marcha adelante, paro o marcha atrás) para cada una de las 4 combinaciones posibles de lectura (Blanco/Negro).
- c) Al llegar a una curva cerrada a la izquierda, si el robot solo apaga el motor izquierdo y mantiene el derecho adelante, tiende a salirse de la línea por inercia. Justifique qué cambio debe hacer en el control de los motores para lograr un giro mucho más cerrado sobre su propio eje.
Diseñar y diagnosticar un robot
Elegir la plataforma
Para un proyecto con varios sensores repartidos por una casa o con actuadores de potencia (persianas con servos), conviene una placa modular con pines de expansión y protoboard: se pueden alargar cables, añadir módulos y cambiar piezas. Una placa «todo en uno» con sensores soldados es compacta, pero los sensores quedan donde está la placa y no se pueden cambiar.
Diagnosticar fallas
Cuando el comportamiento sale al revés, hay dos sospechosos: la lógica del programa (la condición está invertida) o el cableado (el pulsador está conectado de modo que da 0 al presionar, «activo a nivel bajo»). Para separarlos, lea el valor del pin con el pulsador suelto y presionado, y compare con lo que esperaba.
Para mover la barrera de un parqueo puede usar un servo o un motor de corriente continua. Compare ambos: cuál llega a una posición exacta y se queda quieto, cuál gira…
Para mover la barrera de un parqueo puede usar un servo o un motor de corriente continua. Compare ambos: cuál llega a una posición exacta y se queda quieto, cuál gira sin parar, cuál necesita menos electrónica extra en este proyecto y por qué.
Su equipo debe seleccionar la plataforma de hardware para construir un prototipo de domótica que controle persianas mediante servomotores, detecte fugas de gas y…
Su equipo debe seleccionar la plataforma de hardware para construir un prototipo de domótica que controle persianas mediante servomotores, detecte fugas de gas y presencia en tres habitaciones distintas, y muestre el estado en una pantalla LCD.
- a) Compare la idoneidad de usar una placa compacta «todo en uno» (con sensores y pantalla de LEDs integrados en el propio circuito impreso) frente a una placa de desarrollo modular con pines de expansión y placa de prototipado (protoboard). Analice aspectos como la distribución espacial de los sensores por la vivienda y el cableado de actuadores de potencia.
- b) Si durante el montaje un estudiante comete un error y quema el sensor de temperatura por una sobretensión o inversión de polaridad, analice la repercusión técnica y de costo en la placa integrada frente a la modular.
- c) Justifique razonadamente cuál de las dos plataformas elegiría para este proyecto final de robótica domótica y para cuál de ellas reservaría una sesión inicial de dos horas de introducción a la programación.
Un robot móvil programado con Arduino funciona perfectamente mientras está conectado a la computadora mediante el cable USB (las ruedas giran al aire y el programa…
Un robot móvil programado con Arduino funciona perfectamente mientras está conectado a la computadora mediante el cable USB (las ruedas giran al aire y el programa ejecuta toda la secuencia). Sin embargo, al desconectar el USB, alimentarlo con un portapilas de 4 pilas AA (6 V) conectado tanto a la placa como a los motores, y ponerlo en el suelo, ocurre lo siguiente: en el instante exacto en que los motores intentan arrancar para vencer la fricción, el LED de encendido de la placa parpadea levemente, el robot da una pequeña sacudida y el programa se reinicia desde la primera línea en un ciclo continuo.
- a) Interprete y justifique la causa físico-eléctrica de este fallo: ¿qué ocurre con la demanda de corriente de los motores en el momento del arranque y cómo repercute en la tensión que recibe el microcontrolador?
- b) ¿Por qué este problema no se manifestó mientras el robot realizaba las pruebas conectado por USB con las ruedas al aire?
- c) Proponga y justifique dos modificaciones técnicas en el circuito de alimentación para resolver este problema definitivamente y garantizar la estabilidad del microcontrolador.
En un parqueo de 10 espacios controlado por barrera, un estudiante propone este algoritmo: «El sensor de entrada suma 1 a los carros dentro al detectar un vehículo y…
En un parqueo de 10 espacios controlado por barrera, un estudiante propone este algoritmo: «El sensor de entrada suma 1 a los carros dentro al detectar un vehículo y abre la barrera; el sensor de salida resta 1 al salir; si los carros dentro llegan a 10, se enciende la luz de COMPLETO y la barrera no se abre». Durante la primera semana de pruebas, el sistema marca COMPLETO habiendo espacios vacíos, y a veces la barrera golpea el techo de los carros.
- a) Analice e identifique dos situaciones físicas reales por las que el contador se descuadra con el paso de las horas (pistas: vehículos que se arrepienten tras pisar el sensor, paso de peatones, falsas detecciones).
- b) Diseñe la lógica de control completa (especificando condiciones con los sensores de entrada, barrera y salida) para que el conteo sea fiable y no dependa de una sola lectura instantánea.
- c) ¿Qué condición de seguridad debe tener prioridad absoluta en la programación para garantizar que la barrera jamás baje mientras haya un obstáculo o vehículo cruzando?
Usted debe diseñar el sistema de control autónomo para un robot mensajero de biblioteca que transporta libros entre dos puestos (Mesa 1 y Mesa 2) guiándose por una línea…
Usted debe diseñar el sistema de control autónomo para un robot mensajero de biblioteca que transporta libros entre dos puestos (Mesa 1 y Mesa 2) guiándose por una línea en el suelo. El ciclo completo consiste en: esperar la orden de salida mediante un pulsador, seguir la línea hasta encontrar una marca transversal de parada, detenerse y avisar con un zumbador durante 3 s, esperar a que el usuario retire el libro (detectado por un sensor de presencia o peso), y regresar a la Mesa 1 realizando un giro de 180° para quedar listo para el siguiente servicio.
- a) Identifique los sensores y actuadores requeridos, clasificando cada uno según sea de entrada o de salida.
- b) Diseñe la máquina de estados o diagrama de flujo del sistema, indicando con precisión los diferentes estados del robot y qué condición desencadena la transición al estado siguiente.
- c) Añada al diseño un protocolo de seguridad reactiva: ¿qué sensor debe incorporar y cómo debe actuar el bucle principal si un estudiante se cruza a menos de 20 cm del robot en movimiento?
Tiempo, datos y combinaciones
Un buen diseño decide también cuándo esperar, cada cuánto medir y qué condiciones deben cumplirse a la vez.
Para controlar una barrera de acceso con un pulsador de parada de emergencia, un estudiante programa la siguiente secuencia: En las pruebas, al accionar el botón de…
Para controlar una barrera de acceso con un pulsador de parada de emergencia, un estudiante programa la siguiente secuencia:
abrir_barrera();
esperar(5000); // pausa fija de 5 s con delay
cerrar_barrera();
En las pruebas, al accionar el botón de emergencia durante la pausa de 5 s o mientras la barrera desciende, el sistema no responde y continúa su ciclo, provocando un impacto.
- a) Explique a nivel de ejecución del microcontrolador por qué la instrucción de espera fija (
delay) bloquea la capacidad de respuesta ante la emergencia. - b) Diseñe la estructura algorítmica (en pseudocódigo o diagrama) que permita mantener la barrera abierta 5 s pero comprobando continuamente el pulsador de parada para detener el motor de forma instantánea.
- c) Si además necesita que un zumbador emita pitidos intermitentes de 0,5 s mientras la barrera se mueve, justifique por qué este requisito resulta inviable con pausas bloqueantes y cómo se soluciona.
Le encargan diseñar el sistema de control y registro de una estación ambiental para un invernadero del colegio mediante una placa programable. a) Seleccione tres…
Le encargan diseñar el sistema de control y registro de una estación ambiental para un invernadero del colegio mediante una placa programable.
- a) Seleccione tres sensores adecuados para monitorear las condiciones de las plantas, clasifíquelos en analógicos o digitales y justifique la frecuencia de muestreo idónea para cada uno (argumente por qué medir la temperatura cada 10 ms sería un error técnico y por qué medirla una vez al día resultaría insuficiente).
- b) Escriba la condición lógica booleana que active simultáneamente la ventilación y el riego automático si la temperatura supera los 32 °C y la humedad del suelo cae por debajo del 30 %.
- c) Al revisar los datos del registro gráfico diario, usted observa que a las 13:00 la lectura de luminosidad es máxima, pero la sonda de temperatura marca repentinamente 0 °C durante 15 minutos antes de volver a 28 °C. Interprete esta anomalía justificando si se debe a un fenómeno meteorológico o a un fallo instrumental (cableado/sensor).
Un grupo de estudiantes ha programado un semáforo peatonal con pulsador con la siguiente lógica: en cuanto la persona peatona presiona el botón, el semáforo de vehículos…
Un grupo de estudiantes ha programado un semáforo peatonal con pulsador con la siguiente lógica: en cuanto la persona peatona presiona el botón, el semáforo de vehículos pasa de verde a rojo de forma instantánea y el de peatones se pone en verde durante 15 s. Tras probarlo en una maqueta vial, observan frenazos bruscos de los vehículos y atascos continuos si varios peatones pulsan repetidamente el botón.
- a) Justifique dos fallos de seguridad y fluidez vial que presenta este programa inicial.
- b) Diseñe el diagrama de flujo o la secuencia temporal corregida (indicando entradas, salidas y tiempos recomendados) para resolver ambos problemas, incorporando una fase de transición (ámbar) y garantizando un tiempo mínimo de verde continuo para carros antes de atender otra llamada peatonal.
- c) Si quiere añadir un avisador acústico intermitente para personas con discapacidad visual durante los últimos 3 s del verde peatonal, ¿cómo debe modificar la temporización de esa salida?
Vuelva al principio: la barrera del parqueo la controla un microcontrolador que lee el sensor ultrasónico, compara con un umbral y ordena a un servo subir o bajar, todo dentro de un ciclo que nunca termina.