fischertechnik ROBOTICS

Base Set y ADD ONs - Perfectamente adecuado para la enseñanza.

Primeros pasos

Para que sea lo más fácil posible empezar, tenemos un pequeño tutorial que te familiarizará con los primeros pasos.
Haga clic aquí

Explicación ROBO Pro Coding

Los fundamentos importantes y cómo trabajar con ROBO Pro Coding se pueden ver en este documento
Haga clic aquí para ver la guía del estudiante

Instrucciones de uso TXT 4.0 Controller

Para que te resulte lo más fácil posible empezar con el kit de construcción, hemos creado un pequeño tutorial que te muestra los primeros pasos.
Manual de instrucciones

Planes de clase ya preparados ROBOTICS Base Set

Hay planes de clases ya preparados. Si quiere saber más sobre el contenido de aprendizaje, cómo se relaciona con el plan educativo y cómo descargar las hojas de tareas y las soluciones, siga el siguiente enlace.
Haga clic aquí

Planes de clase ya preparados ADD ON Omniwheels

Hay planes de lecciones ya preparados. Si desea obtener más detalles sobre los contenidos de aprendizaje, la relación con el plan educativo y las descargas de las hojas de tareas y soluciones, siga el siguiente enlace.
Haga clic aquí

Planes de clase ya preparados ADD ON IoT

Hay planes de lecciones ya preparados. Si desea obtener más detalles sobre los contenidos de aprendizaje, la relación con el plan educativo y las descargas de las hojas de tareas y soluciones, siga el siguiente enlace.
Haga clic aquí

Planes de clase ya preparados ADD ON Autonomous Driving

Hay planes de lecciones ya preparados. Si desea obtener más detalles sobre los contenidos de aprendizaje, la relación con el plan educativo y las descargas de las hojas de tareas y soluciones, siga el siguiente enlace.
Haga clic aquí

Download ROBO Pro Coding App

Antes de empezar, tienes que descargar la aplicación. Sólo tiene que seleccionar el sistema operativo adecuado y hacer clic en el enlace:

Google Play Store

Microsoft Store

Apple App Store

Linux

 

Download Voice Control

Dígale al robot dónde tiene que ir de largo. Descargue nuestra aplicación de control por voz y dé al robot órdenes individuales:

Google Play Store

Apple App Store

Introducción al tema

Ya no es posible imaginar nuestro mundo moderno sin ordenadores. Nos rodean no solo en forma de PC, portátil o tablet: Los llevamos también como teléfonos inteligentes en el bolsillo, son parte de nuestros coches, de los lavavajillas y lavadoras, del mando de la calefacción, de las bicicletas eléctricas y las máquinas de café.

Año tras año se vuelven más potentes y, a su vez, más pequeños y compactos. Así también se incrementan sus ámbitos de aplicación, ya que ahora pueden personalizarse para la aplicación correspondiente e incorporarse a ella como «sistemas integrados» (embedded systems). Ellos detectan y «estudian» el entorno con sensores y controlan motores, LED y otros actuadores. A través de las técnicas modernas de radiocomunicación, como wifi o Bluetooth, es posible conectarse en red e intercambiar datos entre sí o con un centro de control.

¿Pero cómo funcionan estos sistemas integrados y su respectivo «corazón», el microprocesador? ¿Qué es un microcontrolador y cómo se lo utiliza para registrar y evaluar los datos de los sensores? ¿Cómo se controlan los sistemas móviles, por ejemplo, los robots o los vehículos? ¿Cómo pueden comunicarse entre sí los sistemas e intercambiar datos?

Esta unidad de aprendizaje se centra en la explicación de los microcontroladores y su aplicación. Se explican los fundamentos centrales y se profundiza en su aplicación práctica en los ejercicios (tareas). Además, se presentan varios ámbitos de aplicación importantes de los microcontroladores: Medición, comunicación, codificación y cifrado, control y regulación, robótica y desplazamiento autónomo. 
 

Definición

Un microcontrolador es un sistema de control compuesto por un microprocesador y una serie de entradas y salidas. A las entradas se conectan sensores o memorias; a las salidas se conectan actuadores como, por ejemplo, motores, LED o pantallas. Los microcontroladores cuentan con una memoria de trabajo volátil (RAM), que se borra al apagar y, por lo general, también una EEPROM, en la que se pueden almacenar programas y datos de forma permanente. A diferencia de los ordenadores portátiles y los PC, no hay un teclado como unidad de entrada ni una pantalla como unidad de salida; deben manejarse por separado. 

Los más conocidos y extendidos de este tipo de microcontroladores son, por ejemplo, Arduino, BBC micro:bit, Calliope Mini y TXT Controller de fischertechnik.

El corazón del microcontrolador es el microprocesador. Un microprocesador es un circuito integrado (CI) que carga comandos y datos de una memoria (temporal) – llamada memoria de acceso aleatorio (RAM) – en los registros del CI, los procesa en una unidad de cálculo y almacena el resultado nuevamente en la RAM. Un microprocesador está compuesto, principalmente, por transistores – «interruptores» electrónicos, que conocen exactamente dos estados: «encendido» y «apagado». Estos transistores pueden utilizarse para construir circuitos lógicos, como conexiones «and», «or» y «not». Los resultados se almacenan en un «flip-flop», un conmutador estable (más detalles en el kit Education sobre «Electrónica»). 

Un cristal de cuarzo determina el ritmo del microprocesador, es decir, la velocidad a la que el microprocesador procesa los comandos y los pasos de cálculo internos. Los comandos se expresan en un código de máquina (que varía según el tipo de microprocesador) y se componen de una orden (por ejemplo, «sumar dos valores») y, en función del comando, de varios parámetros (por ejemplo, los dos valores a sumar o los registros en los que se almacenan los valores). 

El rendimiento del microprocesador está determinado por la velocidad de reloj, el ancho de datos en bits (que indica el tamaño que pueden tener las direcciones y valores que puede procesar el microprocesador en un solo paso) y el propio código de máquina: Cuanto más complejos sean los comandos que puede ejecutar el CI, por lo general, más rápido será el procesamiento de los datos. Para acelerar los accesos a la memoria RAM, hoy en día, muchos microprocesadores contienen su propia memoria caché para almacenar temporalmente los comandos y los datos durante el procesamiento. 

Los microprocesadores que contienen actualmente los ordenadores portátiles y los PC pueden procesar datos de 64 bits (valores, direcciones de la RAM), contienen varios miles de millones de transistores y se sincronizan con varios GHz (miles de millones de vibraciones por segundo). Pueden dividir el trabajo («multinúcleo») y disponen de muchos megabytes de memoria caché. En los microcontroladores actuales suelen utilizarse microprocesadores con un tamaño de palabra de 32 bits y una frecuencia de reloj inferior a un GHz – esto es más que suficiente para las tareas de un microcontrolador.
 

Historia

Desde la antigüedad los seres humanos han experimentado con autómatas – construcciones que, impulsadas por energía eólica o hidráulica, realizan trabajos de forma autónoma, permiten la ejecución de secuencias predeterminadas de movimientos tras una orden o incluso producen música. En el siglo XV d. C., Leonardo da Vinci (1452-1519) creó numerosas máquinas que impresionaron al pueblo y a la nobleza en teatros y cortes. Wolfgang von Kempelen (1734-1804) construyó en 1791 un sintetizador de voz. El primer «autómata programable» fue el sistema de control de tarjetas perforadas para telares mecánicos, desarrollado en 1805 por Joseph-Marie Jacquard (1752-1834).

Sin embargo, el éxito en el desarrollo de sistemas de control de uso flexible llegó con el desarrollo del ordenador. La invención del circuito integrado (CI) en 1958/1959 por parte de Jack Kilby (1923-2005) y Robert Noyce (1927-1990) y el desarrollo del microprocesador en el año 1971, inventado y patentado por los ingenieros de la empresa Texas Instruments posibilitaron controles muy flexibles, ligeros, rápidos y sin desgaste, pero especialmente programables. El primer microprocesador, el TMS1000, contenía 8000 transistores. Desde entonces, el número de transistores de un microprocesador se ha duplicado aproximadamente cada 18 meses. Esta evolución también se conoce como «Ley de Moore» en honor a Gordon Moore (*1929), quien dedujo esta relación en el año 1965 a partir del desarrollo de los circuitos integrados de los años previos. Los microprocesadores actuales constan de varios miles de millones de transistores – y son apenas más grandes que el TMS1000.
 

Fundamentos

A continuación se explicarán algunas relaciones y antecedentes básicos necesarios para los correspondientes kits de construcción Education y que son profundizados en las tareas correspondientes.
 

¿Cómo se programa un microcontrolador?

Por lo general, el microcontrolador no se programa en el mismo microcontrolador, sino en un entorno especial de programación o desarrollo (integrated development environment, IDE) en un PC, un ordenador portátil, un tablet o incluso un teléfono inteligente. Los programas creados se transfieren a la memoria del microcontrolador a través de una interfaz de comunicación, por ejemplo, USB, wifi o Bluetooth, y se ejecutan allí. 

De la misma manera se programa el TXT 4.0: Los programas se desarrollan en ROBO Pro Coding en un PC, ordenador portátil o tablet en el lenguaje de programación Blockly o Python y después se transfieren al TXT 4.0, donde se ejecutan. 
 

¿Qué es un «autómata finito»?

Un «autómata finito» es un sistema cuyo comportamiento puede describirse como un conjunto finito de estados. La transición de un estado a otro es causada por condiciones (por ejemplo, eventos, como cambios en los valores de los sensores), cada una de las cuales va seguida de una acción. Por ello, los autómatas finitos también se conocen como «máquinas de estado» y se describen mediante diagramas de transición de estados. 

Los autómatas finitos desempeñan un papel importante en la descripción de los microcontroladores: Casi todos los sistemas integrados (por ejemplo, el controlador de un ascensor o un robot) pueden entenderse como un sistema con un número finito de estados. La representación como diagrama de transición de estados generalmente facilita en gran medida la comprensión del sistema y simplifica la programación (en especial sin errores). Esto es porque en cada estado solo deben considerarse los eventos que conducen a un cambio de estado, por ejemplo, la solicitud de una señal «verde» en un semáforo de peatones con pulsador (véase el ejemplo a continuación).
 

¿Qué es la concurrencia?

La concurrencia es la capacidad de un sistema de ejecutar diferentes procesos de forma simultánea (o «en paralelo»). La concurrencia se ejecuta (técnicamente) dividiendo los procesos en varios microprocesadores («multinúcleo») o utilizando la capacidad multitarea del microprocesador, que ejecuta progresivamente los procesos, de modo que se crea la impresión de un auténtico paralelismo.

Los procesos concurrentes son especialmente adecuados para programar procesos o eventos independientes, sobre todo si uno o varios de los procesos dependen del tiempo y se producen a un ritmo fijo (como una luz intermitente). Para coordinar (sincronizar) los procesos concurrentes se utilizan los «semáforos»: Normalmente son variables accesibles para ambos procesos, a través de cuyo valor los procesos, por ejemplo, comparten su estado o se esperan.
 

¿Qué son los datos analógicos y digitales?

Los microcontroladores solo pueden procesar estados de «encendido» y «apagado», es decir, valores binarios que pueden asumir dos estados diferentes. La evaluación de los sensores que también conocen solo dos estados, como un pulsador, un interruptor reed switch (interruptor magnético) o un fototransistor, por lo tanto, es muy sencilla y el estado del sensor puede almacenarse como un dato digital en un bit.

Pero en la realidad, lógicamente, no solo existen los estados binarios. Otros factores, como la luminosidad, la temperatura o las distancias pueden arrojar valores muy diferentes. Estos datos analógicos también pueden medirse a través de sensores, por ejemplo, una fotorresistencia, un termistor (termistor NTC) o un sensor de distancia por ultrasonido. Sin embargo, para que nuestro microcontrolador pueda procesar estos valores analógicos, debe convertirlos en cifras, es decir, en datos digitales. Estos son valores más complejos que los valores binarios que arrojan los sensores digitales: Partiendo de los estados binarios, el microprocesador puede representar todos los valores numéricos utilizando el sistema dual (y, mediante una codificación adecuada, también otros caracteres, como las letras, pero se tratará más adelante).

La conversión del valor analógico del sensor en una cifra (es decir, un dato digital más complejo) la lleva a cabo un microcontrolador a través de un convertidor analógico/digital (A/D): Para ello, se «escanea» electrónicamente el valor del sensor aplicado, normalmente una resistencia eléctrica o una tensión. Si la resistencia o la tensión es alta, el convertidor A/D arroja un valor numérico grande; si el valor analógico aplicado es bajo, el valor numérico proporcionado al microcontrolador es pequeño. La precisión del valor analógico aplicado a la entrada depende de la resolución del convertidor A/D. Esta suele precisarse en la longitud de bits del valor resultante.

Las ocho entradas del controlador TXT 4.0 pueden utilizarse como entradas digitales (binarias) o analógicas. Los convertidores A/D de las entradas recogen valores analógicos, como la resistencia eléctrica del termistor NTC, que cambia en función de la temperatura, con una precisión de 12 bits, es decir, convierten la resistencia en una cifra entre 0 y 4096. Mediante el uso de diferentes tensiones de referencia, el TXT 4.0 puede incluso determinar no solo resistencias en el rango de medición de 5 kΩ, sino también valores de resistencia considerablemente mayores con bastante precisión.
 

¿Cómo se determina la temperatura con un termistor?

Un termistor de coeficiente de temperatura negativo(también conocido como termistor NTC o resistencia NTC) es una resistencia cuyo valor cambia en función de la temperatura. Los termistores NTC tienen un coeficiente de temperatura negativo (NTC), es decir, el valor de la resistencia disminuye al aumentar la temperatura. El siguiente gráfico indica la curva característica de resistencia del termistor fischertechnik.

El termistor fischertechnik tiene un valor de resistencia de 1,5 kΩ a 25 °C. Como puede verse en el gráfico, la curva característica del termistor NTC no es lineal. Pero es posible realizar una aproximación bastante precisa del valor de la temperatura utilizando una curva lineal. Para ello, es necesario determinar un segundo valor de medición y calcular la ecuación de la función lineal a partir de él.
 

Para realizar un cálculo más preciso del valor de la temperatura T (en kelvin) a partir del valor de resistencia R de una resistencia NTC, normalmente se utiliza la siguiente ecuación de Steinhart-Hart:

1/T=a+b(ln⁡〖R)+c〖(ln⁡〖R)〗〗^3 〗
La temperatura en °C se obtiene de T restando 273,15. 

Con dos valores de medición adicionales (además del valor de resistencia de 1,5 kΩ a 25 °C) podemos establecer un sistema de ecuaciones con las tres incógnitas a, b y c. No es necesario resolver este sistema de ecuaciones nosotros mismos: El sitio web de Stanford Research Systems cuenta con una «calculadora de termistores», que calcula los parámetros de la ecuación Steinhart-Hart que buscamos a partir de los tres valores de medición.

 

¿Cómo funciona el sensor ultrasónico?

La medición de distancia se lleva a cabo a través de la emisión de varias señales de 40 kHz de 200 µs de duración (en el espectro de sonido que no percibe el ser humano) y midiendo el tiempo que se tarda en recibir sus ecos, es decir, las ondas sonoras reflejadas por un objeto. A partir del tiempo de propagación de las señales de eco se puede calcular la distancia a través de la velocidad del sonido de la siguiente manera. Para la velocidad del sonido (en el aire) se aplica lo siguiente:

c=(331,5+0,6∙t/(°C))   m/s

A temperatura ambiente (t = 20 °C), c es, aproximadamente, 343,5 m/s o 0,03435 cm/µs. Para obtener la distancia en cm a partir del tiempo de propagación de la señal (en µs), primero es necesario dividirlo por dos y después multiplicarlo por 0,03435 – o dividirlo por 58,224. Este trabajo lo realiza un CI en el sensor ultrasónico y proporciona la distancia en cm; el sensor también compensa automáticamente la incidencia de la temperatura en la medición.

El alcance del sensor ultrasónico es de aprox. 4 m. A temperatura ambiente, pasan 400 ∙ 58,224 = 23,3 ms hasta que regresa el eco de la señal de disparo de un objeto situado a 4 m de distancia. Si durante este tiempo no llega ningún eco al sensor, devuelve el valor «0» como resultado (ningún objeto dentro del alcance). El retraso ocasionado por el tiempo de propagación de la señal debe considerarse en el mando de un sistema móvil (por ejemplo, un vehículo).

Las ondas sonoras se propagan en círculo, por lo que el sensor tiene una cierta dispersión. De este modo, no solo detecta los obstáculos situados directamente frente a él, sino también los objetos situados a los lados (véase la figura). 

Finalmente, debe tenerse en cuenta que los ecos solo llegan al sensor cuando las ondas sonoras alcanzan el objeto con un ángulo no demasiado agudo. Esto puede comprobarse fácilmente a través de la experimentación.
 

¿Qué es un código?

Un código es – en términos generales – un acuerdo sobre la representación inequívoca de determinada información. Los códigos son necesarios para la transmisión, pero también para la visualización de la información. A cada carácter de un código se le asigna un significado específico. Los códigos con los que nos topamos a diario son, por ejemplo, los números (arábigos) para representar cifras o el lenguaje escrito para representar palabras y oraciones. Otros códigos son las notas en los pentagramas para representar el tono y la duración del tono o los símbolos gráficos en los esquemas de conexiones para representar los componentes electrónicos. Cuando las personas quieren documentar información para otras personas o intercambiar información entre ellas necesitan un código conocido tanto por el emisor como por el receptor.

Pero los códigos no solo desempeñan un papel importante entre las personas: Los ordenadores tampoco pueden intercambiar información sin códigos, ni con las personas ni entre sí. Los códigos que utilizan o procesan los ordenadores deben ser especialmente claros e inequívocos con el fin de que no se produzcan malentendidos. Por ello, muchos códigos se diseñan de modo que puedan detectarse los errores, por ejemplo, por fallos durante la transmisión. Incluso hay códigos de detección de errores que pueden corregir ciertos errores.
 

¿Cómo se comunican los ordenadores?

Si el objetivo es «comunicar» a través de microcontroladores, primero es necesario convertir la información (mensajes) en datos para que el microcontrolador pueda transmitirlos. El mensaje puede ser prácticamente cualquier cosa: un texto, una imagen, música, habla. Para la transmisión, la información debe ser codificada. Para ello, el emisor y el receptor deben acordar una codificación que ambos conozcan – en la práctica, esto está garantizado por los estándares técnicos.

El flujo de datos resultante de la codificación puede transmitirse a través de sonidos (ondas sonoras), signos visibles, corrientes eléctricas en una línea, como impulsos luminosos en conexiones de fibra óptica o como ondas electromagnéticas «a través del aire». Las señales de banderas en un aeropuerto, las sirenas o una alarma de incendios, los correos electrónicos, los chats, las llamadas telefónicas, las videoconferencias, la navegación en teléfonos inteligentes – son todos ejemplos de comunicación de información representada en una codificación determinada.
 

¿Cómo funcionan los códigos de barras?

Un código de barras es un código formado por barras verticales blancas y negras de diferente anchura. Los códigos de barras son códigos unidimensionales porque la información está contenida únicamente en el ancho de las barras (por ejemplo, barra estrecha = «0», barra ancha = «1»). El color de las barras (b/n) solo sirve para diferenciarlas. Los códigos de barras son «códigos ópticos», es decir, pueden leerse mediante un sensor capaz de distinguir entre «claro» y «oscuro» o por una cámara con análisis de imágenes. Los códigos de barras se utilizan principalmente para identificar objetos; pueden encontrarse, por ejemplo, en libros y revistas (ISBN/ISSN), en las etiquetas de las mercancías o en las etiquetas adhesivas de los servicios postales. Existe una gran variedad de códigos de barras, que se diferencian en la densidad de información y en los dígitos de control utilizados. Los códigos de barras tienen la ventaja de que son voluminosos y fáciles de leer; los dispositivos de lectura son también muy económicos.

Un código de barras típico es el Code 39. Este fue desarrollado por la empresa Intermec en 1973 y, entretanto, ha sido recogido por diversas organizaciones de normalización (entre ellas, ANSI e ISO) y plasmado en especificaciones y normas (por ejemplo, ISO/IEC 16388). Un Code 39 está compuesto por nueve barras – cinco negras y cuatro blancas (los espacios intermedios) – de dos anchuras diferentes. Una barra ancha representa un «1» y una barra estrecha representa un «0»; de este modo, un Code 39 corresponde a un número binario de nueve dígitos. 

Cada carácter va precedido y seguido de un espacio blanco (estrecho) para poder distinguir los caracteres individuales. Los códigos de barras Code 39 son siempre del mismo ancho, ya que el número de barras anchas por cada carácter es exactamente tres: dos negras y una blanca. Por lo tanto, un código de barras Code 39 siempre está compuesto por seis barras estrechas y tres barras anchas o seis «0» y tres «1». La norma del Code 39 define un total de 44 caracteres: las 26 letras del alfabeto, los diez dígitos de «0» a «9» y los ocho caracteres especiales «*» (carácter de inicio/final), espacio, «-», «+», «.», «/», «%» y «$».

Una evolución de los códigos de barras son los códigos QR, que consisten en puntos sobre una superficie cuadrada. Son códigos bidimensionales y requieren una cámara para su lectura y decodificación.
 

¿Qué es el código Morse?

Uno de los primeros códigos «técnico» utilizados para lograr que los caracteres puedan ser leídos por las máquinas fue el código Morse, desarrollado en 1838 por Alfred Vail (1807-1859), un asociado de Samuel Morse (1791-1872), y estandarizado por primera vez en 1865. El código Morse representa los dígitos y las letras del alfabeto como diferentes secuencias de señales cortas («dit») y largas («dah»). Por lo tanto, no solo puede implementarse para la telegrafía eléctrica, sino que también puede utilizar otras señales, como señales luminosas, tonos o guiones de dos duraciones diferentes, por lo que es completamente independiente de la técnica de transmisión.

El siguiente árbol de códigos representa la codificación de las letras del alfabeto. Una «E» se codifica con un «dit», una «A» con un «dit» seguido de un «dah» y una «N» con un «dah» seguido de un «dit». Así, los símbolos del código son de diferente duración.

El código Morse cuenta con otra característica muy valiosa: Es muy eficaz porque utiliza secuencias de señales cortas para las letras de uso frecuente y más largas para las infrecuentes y, de este modo, compensa parcialmente la redundancia de las lenguas naturales. 

La duración de un «dah» se corresponde con la duración de tres «dit». Entre dos símbolos, se produce una pausa de una duración equivalente a un «dit»; entre dos letras de una palabra, una pausa equivalente a tres «dit» y entre dos palabras una pausa equivalente a siete «dit». La velocidad de transmisión está determinada por la duración de un «dit».
 

¿Cómo funciona el código de colores RGB?

El código RGB es una codificación de tres bytes de los componentes de los colores R (rojo), G (verde) y B (azul, cada uno en una escala de 0-255) en un tono. A partir de un valor RGB puede determinarse el color (Hue) de la siguiente manera:

  • Determina el máximo Máx.:=máx.(R,G,B) y el mínimo Mín.:=mín.(R,G,B).
  • Calcula la diferencia Dif.=Máx.-Mín.. 
  • Cuando Dif.> 0:
  • Si Máx.=R: Hue:=(G-B)/Dif.
  • Si Máx.=G: Hue:=2+(B-R)/Dif.
  • Si Máx.=B: Hue:=4+(R-G)/Dif.
  • Hue:=Hue/6
  • Si Hue<0: Hue:=Hue+1
  • Ángulo del círculo cromático: Ángulo∶= Hue·360°

El resultado es el ángulo en el que se encuentra este color en el círculo cromático (véase la figura).

 

 

¿Qué es la redundancia?

En la teoría de la información, la redundancia es un dato que puede omitirse sin que se pierda información. Un código es redundante si requiere más bits de los que serían mínimamente necesarios para representar los diferentes caracteres. Si todos los caracteres del código tienen la misma longitud, los bits adicionales del código que no son realmente necesarios para la representación de la información constituyen la redundancia. Si, por ejemplo, queremos codificar una señal simple de 1/0, solo necesitaremos de manera imprescindible un solo bit. Sin embargo, si codificamos la señal con los dígitos «1» y «0» (como caracteres ASCII), nuestro código requerirá ocho bits. Esto significa que la codificación tiene una redundancia de siete (bits): 

Redundancia = log_2 (número de posibles palabras clave/número de caracteres a codificar)

En nuestro ejemplo, la redundancia es de log2(28/2) = log2(27) = 7.

¿Cómo funciona el cifrado?

El cifrado (o la encriptación) de datos sirve para mantener en secreto el contenido de un mensaje entre el emisor y el receptor e impedir de forma efectiva que personas no autorizadas lo «comprendan». Para ello, se utilizan métodos de cifrado, que «modifican» el mensaje de una forma acordada entre emisor y receptor. Aquí no se mantiene en secreto el método de cifrado en sí, sino únicamente una clave que solo conocen el emisor y el receptor («principio de Kerckhoffs»). En la mayoría de los casos, los caracteres del mensaje son reemplazados por otros (sustituidos) o intercambiados (permutados). 

En el pasado, se utilizaban principalmente cifrados de sustitución simples. Uno de los métodos más conocidos es el llamado «cifrado César». En este método, las letras del mensaje a transmitir se «desplazan» en el alfabeto por otra letra ubicada un número fijo de posiciones más adelante (la clave). De este modo, con la clave «3», una «A» se convierte en una «D», una «B» se convierte en una «E» y así sucesivamente, hasta que una «Z» se convierte finalmente en una «C». El descifrado por parte del destinatario es exactamente a la inversa.

Un cifrado César es fácil de descifrar, ya que la distribución de frecuencias de las letras en una lengua natural no se modifica con el cifrado: En un texto más largo, la letra más frecuente, con diferencia, es la «E». Si uno conoce la letra más frecuente del texto cifrado, ya sabe cuántos lugares hay que «desplazar» el alfabeto para descifrar el texto recibido. 

Además, solo hay 25 formas diferentes de desplazar las letras del alfabeto: Es un número muy bajo de claves posibles. Así, uno también puede probar diferentes desplazamientos hasta descifrar un texto con sentido.

Mucho más difícil de descifrar es el cifrado publicado por Blaise de Vigenère (1523-1596) en el año 1586, en el que los caracteres del mensaje no se desplazan todos el mismo número de posiciones en el alfabeto, sino según un esquema predeterminado. Así, la clave «1 5 12 4 8 7 11» significa que el primer carácter del mensaje se desplaza una posición en el alfabeto, el segundo cinco, el tercero 12, y así sucesivamente, y finalmente el séptimo 11 posiciones. El octavo carácter se desplaza nuevamente una posición, el noveno cinco, y así sucesivamente. El método de cifrado de Vigenère se consideró indescifrable durante casi trescientos años.

A menudo, la clave no está representada por una secuencia de números, sino por las letras correspondientes del alfabeto – en el ejemplo anterior por «AELDHGK». Esto también facilita mucho la planificación de la sustitución de los caracteres (al «sumar» las posiciones en el alfabeto).
 

¿Qué es un controlador?

A diferencia de un control por microcontrolador, en el que un actuador se ajusta a un valor predeterminado (por ejemplo, un LED a un valor de luminosidad o un motor de codificador a una posición determinada), un controlador se ocupa de forma automática de que un objetivo fijado se cumpla incluso ante eventuales fallos (por ejemplo, un seguidor de línea continúa siguiendo la pista incluso en una curva).

Para ello, el controlador necesita un mecanismo de «retroalimentación» que le informe cuando se produzcan desviaciones de la variable de referencia predeterminada. Esquemáticamente, un controlador puede representarse de la siguiente manera.
 
Ante la desviación de la variable de control respecto de la variable de referencia (valor predeterminado), el controlador la corrige modificando la variable de ajuste. Si se busca, por ejemplo, mantener constante el número de revoluciones por unidad de tiempo de un eje motorizado, incluso con carga cambiante, es necesario medir las revoluciones y aumentar o reducir la tensión del motor en caso de desviaciones.

En el sistema de control se distinguen diferentes formas en las que la desviación influye en la modificación de la variable de ajuste: La corrección en un controlador proporcional (o controlador P) se realiza en proporción a la magnitud de la desviación. Si el regulador se excede, es decir, si un efecto retardado del sistema de control hace que la corrección tarde demasiado, es posible atenuar el sistema de control mediante un elemento diferencial adicional (o elemento D), que contempla la modificación por la desviación. De este modo, el sistema de control se refuerza ante un fallo repentino importante y se atenúa ante una rápida desaparición de la desviación. 

Un controlador integral (controlador I o elemento I) también contempla la duración de la desviación al incorporar la suma de las desviaciones medidas en la corrección, acelerando así la aproximación al valor deseado.

A la hora de diseñar un controlador adecuado, la determinación de los factores por los que deben multiplicarse los valores de entrada del control (desviación, modificación de la desviación, suma de las desviaciones) para conseguir el efecto de control deseado es el mayor reto. A menudo se logra más rápidamente a través de la experimentación. Por lo general, se empieza por determinar el factor para el elemento P y se selecciona contemplando que el controlador no oscile (es decir, que disminuya el sobreimpulso). Entonces se añade el factor del elemento D y se comienza con un factor muy pequeño, que se incrementa lentamente hasta que la estabilización a la variable de referencia se produzca con la suficiente rapidez. 
Al incorporar el elemento I no deben continuar sumándose los valores de las desviaciones de forma permanente (es decir, por ejemplo, solo debe considerarse un número limitado de desviaciones pasadas o debe disminuirse el valor total anterior antes de sumar la siguiente desviación, por ejemplo, dividiendo por un valor constante); de lo contrario, el elemento I dominará muy rápidamente los componentes P e I.

Al controlador con elementos P, D e I se lo conoce también como controlador PID.
sc93-delivery-1