Archivo de la categoría: Robots

Ingenieros desarrollan un tentáculo robótico magnético que puede pasar por los estrechos conductos del pulmón

Ingenieros y científicos han desarrollado un prototipo de robot que puede llegar a algunos de los conductos bronquiales más estrechos de los pulmones para tomar muestras de tejido o administrar terapia contra el cáncer.


Este tentáculo robótico magnético mide solo 2 milímetros de diámetro. Se utilizarán imanes en el exterior del paciente para guiar el robot a su lugar.

El dispositivo ha sido desarrollado por un equipo de ingenieros, científicos y médicos con sede en el Laboratorio STORM de la Universidad de Leeds, que es pionero en el uso de sistemas robóticos para ayudar en los procedimientos de endoscopia y catéter, en los que se inserta un tubo fino en el cuerpo.

Los investigadores han publicado su desarrollo en la revista Soft Robotics.

La prueba del prototipo se basó en pruebas de laboratorio en la que se utilizó una réplica tridimensional de un árbol bronquial, modelado a partir de datos anatómicos. La próxima fase de la investigación investigará la efectividad del dispositivo para navegar por los pulmones de un cadáver.

Límites de la tecnología existente

Actualmente, los médicos utilizan un instrumento llamado broncoscopio para realizar un examen de los pulmones y las vías respiratorias. El procedimiento consiste en pasar un instrumento basado en un tubo flexible de unos 3,5 a 4 milímetros de diámetro a través de la nariz o la boca hasta los conductos bronquiales. Debido a su tamaño, este broncoscopio solo puede llegar hasta los niveles superiores del árbol bronquial.

Para profundizar en los pulmones, se pasa un catéter o tubo fino —que mide unos 2 milímetros de diámetro— a través del broncoscopio y luego hacia los conductos más estrechos de los pulmones. Pero los médicos tienen limitaciones para operar un broncoscopio con este método, y es difícil lograr la movilidad del instrumento y el catéter hasta donde son necesarios.


Clic en la imagen para ver video

El tentáculo robótico magnético, en cambio, fue desarrollado para ser mucho más maniobrable y utiliza un sistema de guía personalizado para cada procedimiento.

El profesor Pietro Valdastri, director del laboratorio STORM que supervisó la investigación, dijo: “Un robot o catéter tentáculo magnético que mide 2 milímetros y cuya forma se puede controlar con campos magnéticos para adaptarse a la anatomía del árbol bronquial puede llegar a la mayoría de las áreas del pulmón, y sería una herramienta clínica importante en la investigación y el tratamiento de un posible cáncer de pulmón y otras enfermedades pulmonares.

“Nuestro sistema utiliza un sistema de guía magnético autónomo que elimina la necesidad de que los pacientes estén bajo rayos X mientras se realiza el procedimiento”.

Tecnología innovadora

Para desarrollar el sistema robótico, el equipo de investigación tuvo que superar dos grandes desafíos. En primer lugar, tenían que hacer un dispositivo que fuera pequeño, flexible y capaz de navegar por las curvas y torsiones de la anatomía del árbol bronquial.

En segundo lugar, necesitaban un sistema autónomo para guiar hasta su lugar el tentáculo robótico magnético, eliminando la necesidad de que un médico maniobre manualmente un instrumento para colocarlo en su lugar, lo que a menudo implica que el paciente esté expuesto a rayos X y puede ser un desafío técnico para el personal medico.

Robot pequeño y flexible

Para reducir el tamaño del robot manteniendo la capacidad de control del movimiento, los investigadores lo fabricaron a partir de una serie de segmentos cilíndricos interconectados, cada uno de 2 milímetros de diámetro y de poca longitud. Los segmentos fueron hechos de un material elastomérico blando similar al caucho, que impregnaron con pequeñas partículas magnéticas.

Debido a la presencia de partículas magnéticas, los segmentos interconectados pueden moverse con cierta independencia bajo el efecto de un campo magnético externo. El resultado es un tentáculo robótico magnético muy flexible, capaz de cambiar de forma y lo suficientemente pequeño como para evitar trabarse en las estructuras anatómicas de los pulmones.

Sistema de guiado

Se usarían imanes montados en brazos robóticos en el exterior del paciente para guiar el dispositivo hacia los pulmones en un proceso que se haría a la medida de cada procedimiento. La ruta a través del árbol bronquial se planifica a partir de exploraciones preoperatorias de los pulmones de un paciente y se programa en el sistema robótico. A medida que se mueven los imanes fuera del paciente, aplican fuerzas sobre las partículas magnéticas en los segmentos del catéter, lo que hace que cambien de forma o dirección. Esto permite maniobrar el robot a través de los pulmones y al sitio de una lesión sospechosa.

Una vez en la ubicación a la que se deseaba llegar, el robot se usa para tomar una muestra de tejido o administrar un tratamiento.

Puede pasar tiempo antes de que la tecnología de «tentáculos magnéticos» esté disponible en un entorno hospitalario. El laboratorio STORM de la Universidad de Leeds está revolucionando la tecnología utilizada en las investigaciones endoscópicas y de catéteres. Han creado un prototipo de endoscopio de bajo costo , utilizado para investigar el tracto gastrointestinal superior, que podría usarse en países de ingresos bajos a medios donde la falta de acceso a equipos costosos está obstaculizando los programas de detección. La tecnología magnética también es el núcleo de un sistema de colonoscopia robótica que es más fácil de operar para el personal y más cómodo para los pacientes.

El laboratorio STORM es parte del Centro de Investigación del Cáncer de Leeds, que se inauguró a principios de año.
________________________________________
Artículo original: University of Leeds, News Wise, www.newswise.com/articles/engineers-develop-a-magnetic-tentacle-robot-to-pass-into-the-narrow-tubes-of-the-lung

Artículos relacionados:

Con la naturaleza como modelo, BirdBot logra gran eficiencia energética al caminar

Si un Tyrannosaurus Rex -que vivió hace 66 millones de años- presentaba una estructura de patas similar a la de un avestruz que hoy corre por la sabana, entonces podemos suponer que las patas de las aves resistieron la prueba del tiempo, lo que es un buen ejemplo de selección evolutiva.

Graciosas, elegantes, poderosas: la forma de caminar y correr de las aves no voladoras como el avestruz es una maravilla mecánica. Los avestruces, algunos de los cuales pesan más de 100 kg, corren por la sabana a una velocidad de hasta 55 km/h. Se cree que el excelente desempeño locomotor del avestruz es posible gracias a la estructura de las patas del animal. A diferencia de los humanos, cuando las aves doblan las patas hacia atrás levantan las patas hacia el cuerpo.

¿Por qué los animales hacen esto? ¿Por qué este patrón de movimiento del pie es energéticamente eficiente para caminar y correr? ¿Y se puede transferir la estructura de las patas del ave con todos sus huesos, músculos y tendones a robots caminadores?


Alexander Badri-Spröwitz ha dedicado más de cinco años a este tema. En el Instituto Max Planck para Sistemas Inteligentes (MPI-IS), dirige el https://dlg.is.mpg.de/ Grupo de Locomoción Dinámica. Su equipo trabaja en la interfaz entre biología y robótica en el campo de la biomecánica y el neurocontrol. El foco principal del grupo es la locomoción dinámica en animales y robots.

Junto con su estudiante de doctorado Alborz Aghamaleki Sarvestani, Badri-Spröwitz ha construido una pata de robot que, al igual que su modelo natural, es energéticamente eficiente: BirdBot necesita menos motores que otras máquinas y, en teoría, podría ser escalado a un gran tamaño. Badri-Spröwitz, Aghamaleki Sarvestani, el especialista en robótica Metin Sitti, director de MPI-IS, y la profesora de biología Monica A. Daley de la Universidad de California, Irvine, publicaron su investigación en la reconocida revista Science Robotics el 16 de marzo de 2022.


Al caminar, los humanos levantan los pies y doblan las rodillas, pero los pies y los dedos de los pies apuntan hacia delante, casi sin cambios de posición. Se sabe que los pájaros son diferentes: en la fase de balanceo, doblan las patas hacia atrás. Pero, ¿cuál es la función de este movimiento?

Badri-Spröwitz y su equipo atribuyen este movimiento a un acoplamiento mecánico. “No es el sistema nervioso, no son los impulsos eléctricos, no es la actividad muscular”, explica Badri-Spröwitz. “Presumimos una nueva función del acoplamiento pie-pata a través de una red de músculos y tendones que se extiende a través de múltiples articulaciones”. Estos músculos-tendón en varias articulaciones coordinan el giro de la pata en la fase de balanceo. En este robot, han implementado la mecánica acoplada en la pata y el pie, lo que permite que el robot camine de manera eficiente y robusta.

Los resultados de estas pruebas que demuestran el funcionamiento del mecanismo en un robot, llevan a creer que también para las aves similares se producen estos beneficios de eficiencia”, explica.

El acoplamiento de las articulaciones de las patas y los pies, y las fuerzas y movimientos involucrados, podrían ser la razón por la cual un animal grande como un avestruz no solo puede correr rápido, sino también estar de pie sin cansarse, especulan los investigadores. Una persona que pesa más de 100 kg también puede estar de pie bien durante mucho tiempo, pero solo con las rodillas ‘trabadas’ en una posición extendida. Si la persona se agacha un poco, se vuelve extenuante después de unos minutos. Al ave, sin embargo, no parece importarle la estructura de la articulación de sus patas; muchas aves incluso se paran erguidas mientras duermen.

La pata de un pájaro robótico debería poder hacer lo mismo: no debería ser necesaria la potencia de un motor para sostener la estructura en pie.

El robot camina en la caminadora

Para probar su hipótesis, los investigadores construyeron una pata robótica modelada a partir de la pata de un pájaro no volador. Construyeron su pata de pájaro artificial de tal modo que su pie no tiene motor, sino una articulación equipada con un mecanismo de resorte y cable. El pie se acopla mecánicamente al resto de articulaciones de la patas mediante cables y poleas.

Cada pata contiene solo dos motores: el motor de la articulación de la cadera, que balancea la pata hacia adelante y hacia atrás, y un pequeño motor que flexiona la articulación de la rodilla para levantar la pata.

Después del ensamblaje, los investigadores pusieron a BirdBot en una caminadora para observar cómo se plegaba y desplegaba el pie del robot.


“Las articulaciones de los pies y las patas no necesitan activación en la fase de apoyo”, dice Aghamaleki Sarvestani. “Los resortes impulsan estas articulaciones, y el mecanismo de resorte-tendón en las múltiples articulaciones coordina los movimientos. Cuando la pata entra en la fase de balanceo, el pie desacopla el resorte de la pata, o resorte músculo-tendón, como creemos que sucede en los animales”, agrega Badri-Spröwitz. Un video AQUI muestra a BirdBot caminando en el laboratorio del grupo de investigación.

Cero esfuerzo al estar de pie y al flexionar la pata y la rodilla

Al estar de pie, la pata no gasta nada de energía. “Antes, nuestros robots tenían que trabajar extendiendo un resorte o con un motor, ya sea cuando estaban de pie o cuando levantaban la pata, para evitar que la pata chocara contra el suelo durante el balanceo de la pata. Este gasto de energía no es necesaria en las patas de BirdBot”, dice Badri-Spröwitz y Aghamaleki Sarvestani agrega: “En general, el nuevo robot requiere solo una cuarta parte de la energía de su predecesor”.

De nuevo en la cinta deslizante, el robot comienza a correr y, con cada movimiento de la pata, el pie afloja el resorte de la pata. Para levantarse, el movimiento amplio de la pata afloja el cable y las restantes articulaciones de la pata se balancean flojas. Esta transición de estados entre estar de pie y balancear las patas se logra en la mayoría de los robots por medio un motor en la articulación. Un sensor envía una señal a un controlador, que enciende y apaga los motores del robot.

“Antes, los motores se turnaban dependiendo de si la pata estaba en la fase de balanceo o de apoyo. Ahora el pie asume esta función en la máquina para caminar, cambiando mecánicamente entre el apoyo y el balanceo. Solo necesitamos un motor en la articulación de la cadera y un motor para doblar la rodilla en la fase de balanceo. Dejamos el enganche y desenganche del resorte de la patas a la mecánica inspirada en las aves. Esto es sólido, rápido y de bajo consumo, dice dice Badri-Spröwitz.

En varios de sus primeros estudios de biología, Monica Daley observó que la estructura de las patas del ave no solo ahorra energía al caminar y estar de pie, sino que también está adaptada por la naturaleza para que el animal difícilmente tropiece y se lastime. En experimentos con gallinas de Guinea corriendo sobre baches ocultos, cuantificó la notable robustez de locomoción de las aves.

El sistema tiene integrada una inteligencia morfológica que le permite al animal actuar con rapidez, sin tener que pensar en ello. Daley había demostrado que los animales controlan sus patas durante la locomoción no solo con la ayuda del sistema nervioso. Si un obstáculo inesperado se encuentra en el camino, no siempre es el sentido del tacto o la vista del animal el que entra en juego.

“La estructura con sus músculos-tendones de múltiples articulaciones, y su movimiento único del pie pueden explicar por qué hasta las aves grandes y pesadas corren tan rápido, con tanta fuerza y con un consumo energético eficiente. Asumiendo que todo en el ave se basa en la detección y la acción, y el animal pisa un obstáculo inesperado, no es posible que el animal pudiese reaccionar lo suficientemente rápido. La percepción y la detección, incluso la transmisión de los estímulos y la reacción, llevan tiempo”, dice Daley.

Sin embargo, el trabajo de 20 años de Daley sobre pájaros en movimiento demuestra que los pájaros responden más rápido de lo que permite el sistema nervioso, lo que indica que en el control existen contribuciones mecánicas. Ahora que el equipo desarrolló BirdBot, un modelo físico que demuestra directamente cómo funcionan estos mecanismos, todo tiene más sentido: la pata se adapta mecánicamente si hay un bache en el suelo. El cambio ocurre de inmediato y sin demora. Al igual que las aves, el robot presenta una gran robustez de locomoción.

Ya sea en la escala de un Tyrannosaurus Rex, o una pequeña codorniz. O una pata robótica pequeña o grande, teóricamente ahora se pueden implementar patas de un metro de altura para transportar robots con un peso de varias toneladas y que caminen con poca energía.

La información adquirida a través de BirdBot en el desarrollo realizado en Dynamic Locomotion Group y la Universidad de California, Irvine, nos lleva a un nuevo conocimiento sobre los animales, que se adaptan a la evolución. Los robots permiten poner a prueba la hipótesis de la Biología, y en ocasiones confirmarlas, y así avanzar en ambos campos.

________________________________________
Artículo original: BirdBot achieves energy-efficient gait with minimal control using avian-inspired leg clutching. Alexander Badri-Spröwitz, Alborz Aghamaleki Sarvestani, Metin Sitti y Monica A. Daley. Science Robotics, Vol 7, Issue 64. DOI: 10.1126/scirobotics.abg4055

Artículos relacionados:

¿Qué es la comunicación serie?

La electrónica integrada se conforma con circuitos interconectados (procesadores u otros circuitos integrados) para crear un sistema en el que están repartidas las funciones. Para que esos circuitos individuales intercambien su información, deben compartir un protocolo de comunicación común. Se han definido muchos protocolos de comunicación para lograr este intercambio de datos y, esencialmente, cada uno puede ubicarse en una de dos categorías: 1. Paralelo o 2. Serie.

Paralelo versus serie

Las interfaces paralelas transfieren múltiples bits simultáneamente. Por lo general, requieren barras (buses) de datos, que se transmiten a través de ocho, dieciséis o más cables. Los datos se transfieren en amplios oleajes de 1s y 0s.

Un bus de datos de 8 bits, controlado por un reloj,
que transmite un byte por cada pulso de reloj. Se utilizan 9 líneas


En cambio, las interfaces serie transmiten sus datos un bit a la vez. Estas interfaces pueden operar con tan solo un cable, por lo general nunca más de cuatro.

Ejemplo de una interfaz serie, transmitiendo un bit cada pulso de reloj. Solo se requieren 2 cables


Piense en las dos interfaces como una fila de automóviles: una interfaz paralela sería una autopista de 8 carriles o más, mientras que una interfaz en serie es más parecida a una carretera de dos carriles. Durante un lapso determinado, la autopista tiene el potencial de llevar a más personas a destino, pero en muchos casos ese sistema sencillo de dos carriles responde a su propósito, y construirlo cuesta una fracción de los fondos.

La comunicación paralela ciertamente tiene sus beneficios. Es rápida, directa y relativamente fácil de implementar. Pero requiere muchas más líneas de entrada/salida (E/S). Si alguna vez ha tenido que traspasar un proyecto de un Arduino Mega a un Arduino UNO básico, sabe que las líneas de E/S en un microprocesador pueden ser preciosas por lo limitadas. Por lo tanto, cada vez más optamos por la comunicación en serie, sacrificando una velocidad potencial para ahorrar pines.

Serie asíncrono (asincrónico)

A lo largo de los años, se han creado docenas de protocolos en serie para satisfacer las necesidades particulares de los sistemas integrados. USB (Universal Serial Bus = Bus Serie Universal) y Ethernet son dos de las interfaces serie de computación más conocidas en la actualidad. Otras interfaces serie muy comunes son SPI (del inglés Serial Peripheral Interface), I²C (del inglés Inter-Integrated Circuit) y el interfaz serie estándar TX/RX, del que hablaremos aquí. Estas interfaces serie pueden clasificarse en uno de dos grupos: sincrónico o asincrónico.

Una interfaz serie sincrónica siempre necesita tener una señal de reloj junto a las líneas de datos, por lo que todos los dispositivos en un bus serie sincrónico comparten un pulso común de reloj. Esto hace que en una transferencia en serie más directa, a menudo más rápida, también se requiera al menos un cable adicional entre los dispositivos de comunicación. Entre los ejemplos de interfaces sincrónicas están SPI e I²C.

Asincrónico significa que los datos se transfieren sin el respaldo de una señal de reloj conectada entre sistemas. Este método de transmisión es ideal para minimizar los cables necesarios, y en consecuencia la cantidad de pines de E/S utilizados, pero implica que debemos poner un poco de esfuerzo adicional en transferir y recibir datos de manera confiable. El protocolo en serie que analizaremos es la forma más común para las transferencias asincrónicas. De hecho, es tan común que cuando la mayoría de la gente dice «en serie», “o serial”, están hablando sobre este protocolo.

El protocolo serie sin reloj que analizaremos se usa ampliamente en electrónica integrada. Si está buscando agregar un módulo serie GPS, Bluetooth, XBee, LCD, o muchos otros dispositivos externos a su proyecto, es probable que necesite un interfaz serie.

Reglas de la comunicación serie

El protocolo serie asincrónico tiene una serie de reglas integradas: mecanismos que ayudan a garantizar transferencias de datos sólidas y sin errores. Estos mecanismos, que obtenemos para evitar la señal del reloj externo, son:

   ■ Bits de datos
   ■ Bits de sincronización
   ■ Bits de paridad
   ■ Velocidad en baudios

Teniendo en cuenta la variedad de estos mecanismos de señalización, vemos que no hay una sola manera de enviar datos en serie. El protocolo es altamente configurable. La parte crítica es asegurarse de que ambos dispositivos en una línea serie estén configurados para usar exactamente los mismos protocolos.

Velocidad en baudios

La especificación de velocidad de transmisión indica qué tan rápido se envían los datos a través de una línea serie. Normalmente se expresa en unidades de bits por segundo (bps). Si se invierte la velocidad en baudios, se puede averiguar cuánto tiempo se tarda en transmitir cada bit. Este valor determina durante cuánto tiempo el transmisor mantiene en alto/bajo una línea serie, o a qué velocidad muestrea su línea el dispositivo receptor.

Las velocidades en baudios pueden ser casi cualquier valor dentro de lo que permite el hardware. El único requisito es que ambos dispositivos funcionen a la misma velocidad. Una de las velocidades en baudios más comunes, especialmente para cosas simples donde la velocidad no es crítica, es de 9600 bps. Otras velocidades en baudios «estándar» son 1200, 2400, 4800, 19200, 38400, 57600 y 115200.

Cuanto mayor sea la velocidad en baudios, más rápido se envían/reciben los datos, pero existen límites para la velocidad a la que se pueden transferir los datos. Por lo general, no verá velocidades superiores a 115200, lo que es suficientemente rápido para la mayoría de los microcontroladores. Aumente demasiado y comenzará a ver errores en el extremo receptor, ya que los pulsos de reloj y los períodos de muestreo no pueden mantenerse.

Estructurando los datos

Cada bloque de datos (generalmente un byte) que se transmite se envía en realidad en un paquete de bits. Los paquetes se crean agregando bits de sincronización y paridad a nuestros datos.

Algunos símbolos en la estructura del paquete tienen tamaños de bits que son configurables.

Vamos a entrar en los detalles de cada una de estas partes de la estructura del paquete, o bloque.

Bloque de datos

La verdadera sustancia de cada paquete serie es la información que lleva. Ambiguamente llamamos a este bloque de datos un “bloque”, porque su tamaño no está específicamente establecido. En este estándar, la cantidad de datos en cada paquete se puede establecer en valores de 5 a 9 bits. Ciertamente, el tamaño de datos clásico es un byte de 8 bits, pero se usan otros tamaños. Un bloque de datos de 7 bits puede ser más eficiente que 8 si solo está transfiriendo caracteres ASCII de 7 bits.

Después de acordar la longitud para un caracter, ambos dispositivos serie también tienen que acordar el formato de sus datos. ¿Se envían los datos desde el bit más significativo (most significative bit = msb) al menos significativo, o viceversa? Si no se indica lo contrario, generalmente se puede asumir que los datos se transfieren enviando primero el bit menos significativo (least significative bit = lsb).

Bits de sincronización

Los bits de sincronización son dos o tres bits especiales transferidos con cada porción de datos. Son el bit de inicio y el(los) bit(s) de parada. Tal como indica su nombre, estos bits marcan el principio y el final de un paquete. Siempre hay un único bit de inicio, pero la cantidad de bits de parada se puede configurar en uno o dos (aunque normalmente se deja en uno).

El bit de inicio siempre se indica mediante una línea de datos inactiva que pasa de 1 a 0 (ALTO a BAJO). Los bits de parada volverán al estado inactivo manteniendo la línea en 1 (ALTO).

Bits de paridad

La paridad es una forma de comprobación de errores muy simple y de bajo nivel. Se presenta en dos variantes: impar o par. Para generar el bit de paridad, se suman todos los bits del byte de datos (5 a 9), y el resultado de la suma define si el bit es 1 o 0. Por ejemplo, suponiendo que la paridad se establece en par y se agrega a un byte de datos como 0b01011101, que tiene una cantidad impar de 1s (5), el bit de paridad quedaría en 1. Por el contrario, si el modo de paridad se configuró en impar, el bit de paridad sería 0.

La paridad es opcional, y no se usa mucho. Puede ser útil para transmitir a través de medios ruidosos, pero también ralentizará un poco la transferencia de datos y requiere que tanto el transmisor como el receptor implementen el manejo de errores (generalmente, si se detecta error, los datos recibidos con falla deben reenviarse).

Un ejemplo

9600 8N1 – 9600 baudios, 8 bits de datos, sin paridad y 1 bit de parada: es uno de los protocolos serie más utilizados. Entonces, ¿cómo se vería un paquete o dos de datos de 9600 8N1?

Un dispositivo que transmita los caracteres ASCII ‘O’ y ‘K’ tendría que crear dos paquetes de datos. El valor ASCII de O (en mayúsculas) es 79, que se divide en un valor binario de 8 bits de 01001111, mientras que el valor binario de K es 01001011. Todo lo que queda es agregar bits de sincronización.

No se establece específicamente, pero la norma más aceptada es que los datos se transfieren enviando primero el bit menos significativo. Observe cómo se envía cada uno de los dos bytes a medida que se lee de derecha (bit 0) a izquierda (bit 7).

Dado que estamos transfiriendo a 9600 bps, el tiempo empleado en mantener cada uno de esos bits alto o bajo es 1/9600 (bps) o 104 µs por bit.

Por cada byte de datos transmitidos, en realidad como mínimo se envían 10 bits: un bit de inicio, 8 bits de datos y un bit de parada. Entonces, a 9600 bps, en realidad estamos enviando 9600 bits por segundo o 960 (9600/10) bytes por segundo.

Ahora que sabemos cómo construir paquetes serie, podemos pasar a la sección de hardware. Allí veremos cómo esos 1s y 0s, y la velocidad de transmisión, se implementan a un nivel de señal.

Cableado y Hardware

Un bus serie consta de solo dos cables, uno para enviar datos y otro para recibir. Entonces, los dispositivos serie deben tener dos pines serie: el receptor: RX y el transmisor: TX.

Cableado en serie

Es importante tener en cuenta que esas etiquetas RX y TX son con respecto al dispositivo en sí. Entonces, el RX de un dispositivo debe ir al TX del otro y viceversa. Es extraño si uno está acostumbrado a conectar Vcc con Vcc, GND con GND, MOSI con MOSI, etc., pero —pensándolo— tiene sentido. El transmisor debe estar comunicándose con un receptor, no con otro transmisor.

Una interfaz en serie en la que ambos dispositivos pueden enviar y recibir datos es dúplex completo (full-duplex) o semidúplex. Full-duplex significa que ambos dispositivos pueden enviar y recibir simultáneamente. La comunicación semidúplex significa que los dispositivos serie deben turnarse para enviar y recibir.

Algunas conexiones serie pueden implementarse con una sola línea entre un dispositivo de transmisión y un dispositivo de recepción. Por ejemplo, los LCD que tienen conexión serie son solo receptores, y realmente no tienen ningún tipo de información para devolver al dispositivo de control. Esto es lo que se conoce como comunicación serie simplex. Todo lo que necesita es un solo cable desde la transmisión del dispositivo maestro a la línea RX del que recibe.





Implementación de hardware

Hasta ahora fue una cobertura de la comunicación serie asíncrona desde un lado conceptual. Sabemos qué cables necesitamos, pero, ¿cómo se implementa realmente la comunicación en serie a nivel de señal? En una variedad de formas, en realidad. Hay todo tipo de estándares para la comunicación en serie. Veamos algunas de las implementaciones de hardware más populares de serie: nivel lógico o TTL, y RS-232.

Cuando los microcontroladores y otros circuitos integrados de bajo nivel se comunican en serie, generalmente lo hacen a un nivel TTL (Transistor Transistor Logic = Lógica Transistor-Transistor). Las señales serie TTL están en el rango del voltaje que alimenta a un microcontrolador, generalmente de 0V a 3,3V, 0V o 5V. Una señal en el nivel VCC (3,3V, 5V, etc.) indica una línea inactiva, un bit de valor 1 o un bit de parada. Una señal de 0V (GND) representa un bit de inicio o un bit de datos de valor 0.

El protocolo RS-232, que se puede encontrar en algunas de las computadoras y periféricos más antiguos, es como una interfaz serie TTL puesta cabeza abajo. Las señales RS-232 generalmente oscilan entre -13V y 13V, aunque la especificación permite cualquier cosa desde +/- 3V a +/- 25V. En estas señales, un voltaje bajo (-5V, -13V, etc.) indica la línea inactiva, un bit de parada o un bit de datos de valor 1. Una señal RS-232 alta significa un bit de inicio o un bit de datos de valor 0. Eso es lo contrario del protocolo TTL.

Entre los dos estándares de señal en serie, el TTL es mucho más fácil de implementar en circuitos integrados. Sin embargo, los niveles de baja tensión son más susceptibles a sufrir pérdidas en las líneas de transmisión largas. El RS-232 o estándares más complejos —como RS-485— son más adecuados para transmisiones en serie de largo alcance.

Cuando conecte dos dispositivos serie juntos, es importante asegurarse de que coincidan los voltajes de su señal. No se puede conectar directamente un dispositivo serie TTL con una línea RS-232. Se deben adaptar esas señales.

Continuando, exploraremos la herramienta que usan los microcontroladores para convertir sus datos que se encuentran presentes en un bus paralelo desde y hacia una interfaz serial: se llama UART.

UARTs

La última pieza de este armado en serie es encontrar algo para crear los paquetes en serie y controlar las líneas de hardware físico. Esto se concreta con un módulo llamado UART (Universal Asynchronous Receiver/Transmiter = Receptor/Transmisor Asíncrono Universal).

Un receptor/transmisor asíncrono universal es un bloque de circuitos responsable de implementar la comunicación en serie. En esencia, este UART actúa como un intermediario entre las interfaces paralelas y seriales. En un extremo del UART hay un bus de ocho o más líneas de datos (más algunos pines de control), en el otro lado están los dos cables serie: RX y TX.

UART simplificado
UART
Los UART existen como circuitos integrados independientes, pero en la actualidad es más común que se encuentren dentro de los microcontroladores. Debemos consultar la hoja de datos de un microcontrolador para ver si tiene algún UART. Algunos no tienen, otros tienen uno, otros tienen varios. Por ejemplo, el Arduino UNO, basado en el «antiguo y fiel» ATmega328, tiene un solo UART, mientras que el Arduino Mega, construido sobre un ATmega2560, tiene cuatro UART.

Como lo indican las letras R y T en el acrónimo, los UART son responsables de enviar y recibir datos en serie. En el lado de transmisión, un UART debe crear el paquete de datos —agregando la sincronización y los bits de paridad— y enviar ese paquete por la línea TX con una sincronización precisa (de acuerdo con la velocidad de transmisión establecida). En el extremo de recepción, el UART tiene que muestrear la línea de RX a velocidades acordes con la velocidad de transmisión que se espera, seleccionar los bits de sincronización y entregar como resultado los datos.

UART interno

Los UART más avanzados pueden enviar los datos que reciben a un archivo de memoria de respaldo, llamado búfer, donde pueden permanecer hasta que el microcontrolador vaya a buscarlos. Los UART generalmente publicarán sus datos almacenados en un búfer con un sistema de “el primero que entra es el primero que sale” (First In First Out = FIFO). Los búfer pueden tener apenas unos pocos bits, o pueden ser de gran tamaño, como miles de bytes.

Diagrama de bloques de un UART con FIFO


UARTs de software

Si un microcontrolador no tiene un UART, o no tiene suficientes, se puede implementar la interfaz en serie en bits que son controlados directamente por el procesador. Este es el enfoque que tienen las bibliotecas de Arduino como SoftwareSerial. El uso de bits es intensivo en el procesador, y no suele ser tan preciso como un UART, pero funciona en caso de necesidad.

Errores comunes

Eso fue todo lo básico sobre la comunicación en serie. Podemos dejar señalados algunos errores comunes que un ingeniero, de cualquier nivel de experiencia, puede llegar a cometer:

RX a TX, / TX a RX

Parece bastante simple, pero es un error que algunos cometen un par de veces. Por mucho que desee que sus etiquetas coincidan, siempre asegúrese de cruzar las líneas RX y TX entre los dispositivos serie.

FTDI Basic programando un Pro Mini. Note que RX y TX están cruzados


Discrepancia en la velocidad de transmisión

Los valores de baudios son como claves en lenguajes de la comunicación en serie. Si dos dispositivos no están hablando a la misma velocidad, los datos pueden ser mal interpretados o completamente perdidos. Si todo lo que el dispositivo receptor ve en su línea de recepción está compuesta de caracteres extraños, llamados “basura” en el ambiente, verifique que coincidan las velocidades en baudios definidas en ambos extremos.

Datos transmitidos a 9600 bps, pero recibidos a 19200 bps. Desajuste de baudios = basura


Contención de transferencia en la línea

La comunicación en serie está diseñada para permitir que solo dos dispositivos se comuniquen a través de un bus en serie. Si más de un dispositivo está intentando transmitir en la misma línea serie, podría encontrarse con una contención de bus.

Por ejemplo, si está conectando un módulo GPS a su Arduino, puede conectar la línea de transmisión de ese módulo a la línea RX de Arduino. Pero ese pin Arduino RX ya está conectado al pin TX del convertidor de USB a serie (por ejemplo un chip FTDI) que se usa cada vez que se programa el Arduino, o se usa el Monitor Serie. Esto establece la situación potencial en la que tanto el módulo GPS como el chip FTDI intentan transmitir en la misma línea al mismo tiempo.

Ejemplo de contención de línea (o bus)

No es bueno que dos dispositivos intenten transmitir datos al mismo tiempo en la misma línea. En el mejor de los casos, ninguno de los dispositivos podrá enviar sus datos. En el peor de los casos, las líneas de transmisión de ambos dispositivos se volverán locas (aunque eso es raro y generalmente están protegidos contra esta situación).

Puede ser seguro conectar varios dispositivos receptores a un solo dispositivo de transmisión. Realmente no cabe dentro de las especificaciones, y probablemente esté mal visto por un ingeniero experimentado, pero funcionará. Por ejemplo, si conectamos un LCD serie a un Arduino, el método más sencillo puede ser conectar la línea RX del módulo LCD a la línea TX del Arduino. El TX de Arduino ya está conectado a la línea RX del programador USB, pero eso deja solo un dispositivo controlando la línea de transmisión.

Implementación segura pero dudosa de un transmisor y dos receptores

La distribución de una línea de transmisión de este tipo puede ser peligrosa desde la perspectiva del firmware, ya que no puede elegir qué dispositivo recibe cual transmisión. La pantalla LCD terminará recibiendo datos que no están destinados a ella, lo que podría ordenarle que pase a un estado desconocido.

Hay formas de implementarlo, usando un poco de hardware adicional, pero esto es tema para otro artículo.



¿Qué es BeagleBone Blue?


BeagleBone® Blue es una computadora integrada en un sistema compacto en una placa, basada en Linux y pensada para robótica, que consta de una sola plaqueta pequeña (8,9 cm x 5,5 cm).

El microprocesador es Octavo Systems OSD3358, posee wifi/bluetooth, IMU, barómetro, regulación de potencia y estado de LED de carga para una batería LiPo de 2 celdas. Tiene puentes H y conectores para 4 motores de CC + sus codificadores (encoders), para 8 servos y todos los buses comúnmente necesarios para adicionar periféricos en aplicaciones integradas.

De código abierto y con un activo respaldo de una comunidad, su rendimiento en tiempo real, flexibilidad para funcionan en redes y el amplio conjunto de capacidades orientadas a la robótica hacen que construir robots móviles con Blue sea rápida, ágil, asequible y divertida.

Especificaciones

■ Procesador: Octavo Systems OSD3358
■ AM335x 1GHz ARM® Cortex-A8 processor
■ 512MB DDR3 RAM
■ 4GB 8-bit eMMC flash storage
■ Manejo Integrado de alimentación.
■ 2×32-bit 200-MHz unidades programables de tiempo real (programmable real-time units, PRUs)
■ Acelerador NEON de punto-flotante.
■ ARM Cortex-M3
■ USB 2 cliente con alimentación y comunicaciones, USB 2 host
■ Programado con Debian Linux

Connectividad y sensores

■ Soporte para batería LiPo de 2 celdas con carga balanceada y monitor LED del estado de carga
■ Entrada del cargador: 9-18 V
■ Conexión inalámbrica: wifi IEEE 802.11bgn, Bluetooth 4.1 y BLE
■ Control de Motores: 8 salidas para servo 6V, 4 salidas puente-H para motores CC, 4 entradas para encoder de cuadratura
■ Sensores: IMU MPU9250 de 9 ejes (acelerómetros, giroscopios, magnetómetro), BMP280 barómetro y termómetro
■ Interfaz de usuario: 11 LEDs programables por el usuario, 2 botones programables por el usuario
■ Interfaces con conectores JST para agregar buses y periféricos adicionales: GPS, radio DSM2, UARTs, SPI, I2C, 1,8V analog, GPIOs 3,3V

Compatibilidad de Software

ROS (Robot Operating System)
ArduPilot
MATLAB – Simulink
LabVIEW
Cloud9 IDE en Node.js
Python
OpenCV
Copter
■ Y aún más…

Especial para utilizarlo en drones y en robots navegadores autónomos.

Página de BeagleBone
Literatura de respaldo



Diseños de bases y accesorios para robots con impresora 3D

Soporte de motores, por zi3d
https://www.thingiverse.com/thing:750963
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:750963/zip

Este soporte permite fijar los motores estándar de los kits más comunes con más firmeza, sin fijaciones que se rompen con facilidad, y sobre cualquier placa base del material que usted desee, sin necesidad de comprar las cortadas con láser.






DotBot por Dotbot-io
https://www.thingiverse.com/thing:1441937
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:1441937/zip






Chassis para robot por metshein
https://www.thingiverse.com/thing:1011890
Enlaces para archivos de impresión
https://www.thingiverse.com/thing:1011890/zip






Chassis compacto por makerhacks
https://www.thingiverse.com/thing:2320298
Enlaces para los archivos (distintos modelos)
https://www.thingiverse.com/thing:2320298/zip


Montaje para motor con tacómetro por b2vn
https://www.thingiverse.com/thing:1473508
Archivos para impresión 3D
https://www.thingiverse.com/thing:1473508/zip


Montaje para motor, ruedas y orugas por edwardchew
https://www.thingiverse.com/thing:3228395
https://www.thingiverse.com/thing:3228359
Descargar todos los archivos para chassis y ruedas https://www.thingiverse.com/thing:3228395/zip
Descargar todos los archivos para orugas https://www.thingiverse.com/thing:3228359/zip






Chassis para robot por Malathar
https://www.thingiverse.com/thing:1316755
Enlaces de los archivos para impresión 3D
https://www.thingiverse.com/thing:1316755/zip


Seguidor de línea JJ1 por AndrewLinden
https://www.thingiverse.com/thing:2831729
Enlace para los archivos de impresión 3D
https://www.thingiverse.com/thing:2831729/zip

Es un chasis de robot para construir un robot seguidor de línea utilizando los motores amarillos de engranajes y un Arduino.

En lugar de los tres módulos de sensor de línea, también puede usar un conjunto de sensores de 8 canales.

El chasis tiene agujeros para esta placa de sensores también. Esta matriz tiene salida analógica y necesitas un Arduino Nano que posee pines adicionales A6 y A7 usar los 8 canales del sensor, que tiene salida analógica. También puede optar por agregar al Arduino uno un CD74HC4067, multiplexador de 16 canales.

Cuando use paquetes de batería LiPo sin protección, también debe usar un sensor de bateria Lipo con beeper como el de la imagen que sigue, o una protección similar.

Utilice un tornillo de cabeza redonda en uno de los orificios frontales. La parte frontal del robot se deslizará sobre ese tornillo.


Por supuesto, se pueden encontrar varios diseños más en el repositorio de diseños 3D https://www.thingiverse.com/