Archivo de la categoría: Componentes

Módulos de relé y Arduino: Domótica (1)

En este artículo ofrecemos información para controlar dispositivos que funcionan con el voltaje de red usando un módulo de relé. Al final de este trabajo usted debería poder controlar cualquier dispositivo eléctrico con un microcontrolador como el Arduino.

Módulo de dos relés

Un relé es un interruptor mecánico operado eléctricamente que se puede encender o apagar, dejando pasar la corriente o no, y se puede controlar con voltajes bajos, como los 5V utilizados en la alimentación de un Arduino.

Nota: «NO» corresponde al inglés Normally Open (normalmente abierto) y «NC» a Normally Closed (normalmente cerrado). Un relé desactivado tiene unidos entre sí los contactos COMÚN y NC, y cuando se lo activa aplicando corriente a su bobina, quedan unidos entre sí los contactos COMÚN y NO.

Controlar un módulo de relé con el Arduino es lo mismo que controlar cualquier otra salida digital. El consumo de corriente de una de sus entradas es el mismo que se necesita para encender un led.

Aquí vemos cómo los relés están marcados en la parte de abajo, del mismo modo que se puede ver el símbolo con la disposición de los contactos del relé en la salida de alto voltaje del módulo:

Diagrama interno de los módulos de relé (se muestra para un solo relé, los circuitos se repiten)

En primer lugar veamos el esquemático que ofrece el fabricante:

El conector amarillo horizontal, el que no tiene un nombre de identificación, es el juego de pines de entrada de alimentación. Por allí ingresan al módulo tres valores:

GND, común o tierra.
VCC o alimentación positiva de 5V para la parte de la lógica de entrada: el resistor R1, la sección de emisión de luz de U1 (pines 1 y 2 del optoacoplador), N1 (led indicador) y IN0 (entrada del control).
■ Y JD-VCC, por donde ingresan 5V para alimentar el circuito de accionamiento del relé, compuesto por el fototransistor de U1 (pines 3 y 4 del optoacoplador), el resistor R2, el transistor Q1 para manejar la corriente de la bobina, D1 (diodo para eliminar la contracorriente del bobinado) y la bobina en sí del relé.

El conector J1 lleva al exterior los contactos del relé:

■ 1 es NO (Normally Open = Normalmente Abierto)
■ 2 es C, el contacto Común
■ 3 es NC (Normally Closed = Normalmente Cerrado).

Como es posible que algún lector no conozca el funcionamiento de un optoacoplador (también llamado optoacople), lo explicamos aquí.

Un optoacoplador es un chip como el de la imagen. Posee una entrada de dos pines (1 y 2 en el diagrama) que conectan a un led (diodo emisor de luz) y una salida de dos pines que conectan a un fototransistor (3 y 4 en el diagrama). El encendido del led pone en conducción al fototransistor, lo que cierra circuito entre su colector (pin 4) y su emisor (pin 3). Lo más importante del funcionamiento es que no hay contacto eléctrico entre entrada y salida. El único contacto es la luz emitida por el led, lo que implica una aislación muy elevada entre entrada y salida (en el orden de los 5000V), protegiendo las entradas (en este caso conectadas a un microcontrolador) ante cualquier riesgo de alto voltaje producido en el área de salida.

Estado desactivado del relé:

Estado activado del relé:

El módulo de relé de la foto del principio de este artículo tiene dos canales (los relé son las piezas azules). Hay otros modelos con uno, cuatro, ocho y hasta dieciséis canales. Este módulo debe ser alimentado con 5V, lo que es apropiado para usar con un Arduino. Hay otros módulos de relé que funcionan con 3,3V, ideal para ESP32, ESP8266 y otros microcontroladores, y también hay modelos de 12V.

Conexiones del módulo de relé

La siguiente figura muestra la función de los contactos del módulo de relé.

Los seis pines en el lado izquierdo del módulo del relé controlan voltaje alto, y los pines en el lado derecho se conectan al componente que entrega bajo voltaje, como los pines digitales de un Arduino u otro microcontrolador.

Conexiones de tensión de red

El lado de alto voltaje tiene dos conectores, cada uno con tres contactos: común (COM), normalmente cerrado (NC: Normally Closed) y normalmente abierto (NO: Normally Open).

COM : pin común

NC (Normalmente cerrado): la salida normalmente cerrada se usa si es necesario que el relé cierre circuito en estado de reposo, sin alimentación incluso, de modo que la corriente fluya por estos contactos hasta que se envíe una señal por las entradas del módulo para abrir ese circuito y detener la corriente.

NO (normalmente abierto): la configuración normalmente abierta funciona a la inversa: este contacto del relé está siempre abierto, y el circuito no conduce corriente a menos que se envíe una señal por su entrada para activar el circuito.

Si solo se desea encender una lámpara ocasionalmente, lo mejor es usar la configuración de circuito normalmente abierto.




Cableado de pines

El lado de baja tensión tiene un conjunto de cuatro pines, y otro conjunto de tres pines.

El conjunto señalado con flechas de color posee las conexiones de VCC y GND para alimentación de la lógica digital del módulo (esencialmente, los leds de los optoacopladores de entrada), y la entrada 1 (IN1) y entrada 2 (IN2) para controlar los relés 1 y 2, respectivamente, aplicando un nivel lógico BAJO.

El otro conjunto de pines (señalado por flechas grises) tiene los pines JD-VCC, VCC y GND. El pin JD-VCC es la alimentación para los electroimanes de los relés, y se lo alimenta generalmente con una fuente de 5V separada. Para hacerlo se retira el puente (celeste en la imagen) que une la alimentación de los leds de los optoacopladores con la alimentación de las bobinas de los relés. Usando dos fuentes independientes se obtiene la máxima separación eléctrica entre las entradas de control y la línea controlada de 220V, u otro voltaje superior a 5V, en las salidas.

NOTA: observe que el módulo tiene un puente que conecta los pines VCC y JD-VCC; el que se muestra aquí es azul, pero el de su módulo puede ser de un color diferente. El puente permite elegir si el circuito está físicamente conectado a los 5V del Arduino o no, y se puede optar por tenerlo colocado o no. Con el puente puesto, los pines VCC y JD-VCC están unidos. Eso significa que el electroimán del relé se alimenta directamente del pin de alimentación del Arduino, de modo que el módulo de relé y los circuitos de Arduino no están físicamente aislados entre sí. Sin el puente, se debe proporcionar una fuente de alimentación independiente para activar el electroimán del relé a través del pin JD-VCC. Esa configuración aísla físicamente los relés del Arduino, gracias al optoacoplador incorporado en el módulo.

Las conexiones entre el módulo de relé y el Arduino son realmente simples:

GND : va a común o “tierra” (lado negativo de la alimentación)
IN1 : controla el primer relé (se conectará a un pin digital Arduino)
IN2 : controla el segundo relé (debe estar conectado a un pin digital Arduino si se está utilizando este segundo relé. De lo contrario, no necesita conectarlo)
VCC : va a 5V

Luego de esta introducción para familiarizarnos con los módulos, veremos algunos detalles mecánicos y electrónicos, y luego un ejemplo sencillo para controlar el relé con un programa en el Arduino.

Un relé por dentro:


Conclusión

Controlar un módulo de relé con el Arduino es tan simple como controlar una salida digital: solo se deben enviar señales ALTAS o BAJAS utilizando un pin digital de Arduino, u otro microcontrolador o circuito digital. Con el módulo de relé se pueden controlar casi todos los dispositivos caseros de corriente alterna (no solo lámparas). Si usted va a manejar motores, es conveniente utilizar un componente de potencia de mayor capacidad, por ejemplo un relé de estado sólido.

Esta recomendación se debe a que los contactos de un relé que maneja excesiva corriente con voltajes altos producen chispas al abrirse y al cerrarse, y el efecto es mucho más si la carga que manejan es inductiva (bobinados). Luego de un tiempo, los contactos metálicos pueden quedar pegados entre sí, o dejar de conducir corriente por la carbonización del metal.

En la foto que sigue se muestran a la izquierda contactos de relé en perfectas condiciones, y a la derecha cómo quedan cuando son afectados por las chispas debidas a sobrecargas de corriente.

Prueba 1:

Para visualizar de manera rápida y simple la activación de un relé con una lámpara conectada, usted puede correr el programa básico Blink que se ofrece en la lista de ejemplos del IDE de Arduino, conectando la entrada (IN1, por ejemplo) al pin digital 13, y alimentando el módulo con 5V y GND desde las salidas del Arduino. Esto solo es conveniente como experimento, una prueba simple, pero recuerde que hay que limitarse a trabajar con un solo un relé conectado y activado a la vez. El relé cerrará cada vez que el led se apague, una vez por segundo.

Diagrama para la prueba:

En el artículo que sigue, Activar relés usando línea serie: Domótica (2), mostraremos una de las maneras de comandar estos módulos para su uso en control de luces y artefactos eléctricos.

Artículos relacionados:


Control con relés por interfaz serie: Domótica (2)
Control de relés con control remoto IR (domotica-3)
Descripción y funcionamiento del Bus I2C
¿Qué es la comunicación serie?



Manejo preciso de servos en Arduino: grados y milisegundos

Siendo miembro de grupos donde uno se entera de diversos problemas que se les presentaron a otros, a veces uno que resulta básico pero nunca se le ha presentado. En este caso se trató de un problema con el manejo de un servo que es el más vendido para los que se inician, y que a demás viene con los kits básicos de Arduino: el mini o micro servo SG90. El problema se presenta con la biblioteca Servo, pero también puede ocurrir con otro programa.

Me dije —ya que he manejado servos desde antes de que apareciera Arduino— que el problema debía ser una señal de posicionamiento incorrecta. Para entender bien de qué hablo, le pueden dar una mirada al artículo Servos: características básicas.

Una señal se comprueba con osciloscopio. Por suerte dispongo tanto de uno antiguo, con pantalla CRT, como de los que se pueden comprar ahora dentro de la familia Arduino, dotado de un pantalla TFT.

Después de algunas mediciones, me di cuenta de que el funcionamiento de la biblioteca Servo.h de Arduino deja un poco que desear, ya veremos por qué. Pero también ofrece una herramienta (en la función servo.attach) que, bueno, puede ser que no hayamos investigado y que por algo está disponible. Esto puede parecer algo para principiantes, pero hasta que uno empieza a tener estas complicaciones no se da cuenta, y luego de tener una comprensión mejor se logra usar la biblioteca de servo de Arduino con facilidad y dominando lo que hace.

Función write()

La razón de ser de una biblioteca es que uno se pueda desentender del manejo de programa específico de un elemento conectado a una placa de microcontrolador, y bueno, la biblioteca Servo de Arduino fue hecha para facilitar el control de los servos con un mínimo de código y complicaciones. La página de referencia de Arduino para el comando write(), que es parte de la biblioteca Servo.h, trae el siguiente código de ejemplo:

Este código de ejemplo le indica a un servo, conectado en este caso al pin 9, que se mueva a su posición central (que se define como 90°). Si se tratara de un servo de rotación continua, esto detendrá el movimiento del servo… pero este es tema para otro artículo.

Al correr este pequeño programa de demostración, los servos que se han conectado a ese pin se colocarán en sus posiciones centrales. Pero bueno, si lo consideramos desde la faceta mecánica, este punto medio puede que en algunos servos no sea exactamente el centro del arco completo del recorrido.

Un pulso con un ancho de 1.500 microsegundos debe corresponder a 90°, posición definida como el punto central del recorrido. Los servos más comunes aceptan entradas de 1.000 µs (1 ms) a 2.000 µs (2 ms), y 1.500 µs (1,5 ms) correspondientes a la posición central. Para un servo con un recorrido de 0 a 180°, esto sería 90°.





Ahora me toca aclarar que siempre utilicé valores en microsegundos para controlar servos, ya que la precisión del posicionamiento es mucho mayor. La biblioteca de servos permite usar el comando writeMicroseconds, que define el ancho de pulso exacto que se desea enviar a un servo. Los problemas comienzan cuando se usan ejemplos —ya escritos— en los que se utiliza el comando de escritura con un parámetro en grados (en el ejemplo de arriba, 90°).

Parecería lógico que un comando de escritura que instruye a un servo para que se ajuste a 90° debería enviar los mismos pulsos que un comando writeMicroseconds que envía pulsos de 1.500 µs. Es decir, write(90) y writeMicroseconds(1500) deberían enviar pulsos idénticos de 1500 µs. Pero resulta que esta suposición puede llevarnos a problemas.

Basándome en un ejemplo de internet, subí el siguiente código a un Arduino UNO R3, y visualicé las señales con osciloscopio.

Aquí es cómo se ven las salidas de los pines 3, 4 y 5:

■ El pin 3 de Arduino, fijado en 90°, da un pulso de 1,472 ms
■ El pin 4 de Arduino produce un pulso de 1.500 µs: 1,500 ms
■ El pin 5 de Arduino, fijado en 90°, da un pulso de 1,500 ms

El ancho de pulso se mide con el programa del osciloscopio. Por las dudas de que sea un problema técnico del osciloscopio, midiendo con un papel superpuesto sobre la pantalla se puede observar que sí existe la diferencia.

Y también al superponer señales, se observa la diferencia.

Esta diferencia entre 1.472 µs y 1.500 µs es pequeña y puede ser que ni siquiera implique diferencias en las posiciones del servo.

Si se observa la señal de servo3, que también programa el movimiento del servo con el parámetro de colocarse en posición de 90°, se nota que el ancho del pulso es correcto, 1.500 µs, el mismo que para servo2, para el que se fijó el pulso en forma directa en 1.500 µs.

El comando write(90) es el mismo en la primera y la tercera señal de servo, así que… ¿por qué uno envía un pulso de 1,472 ms y el otro 1,500 ms?

Arduino attach()

La respuesta está en el comando attach de la librería Servo. La página de referencia de Arduino enumera dos formas del comando:

La primera versión es el código mínimo que requiere un programa para designar un pin de E/S para el control de un servo. El segundo formato incluye dos parámetros muy importantes, pero opcionales, que determinan el rango mínimo y máximo de ancho de pulso para el programa. Es posible que en el ejemplo de arriba, el uso de límites en el segundo servo haya acomodado los valores de tiempo para que el tercero reciba un pulso correcto; pero al volver el bucle al principio y correr la función para 90º sin topes definidos, se vuelve a desacomodar.

Tanto en la página de referencia del comando attach en arduino.cc como en la propia biblioteca Servo, se establece claramente que las configuraciones mínimas y máximas predeterminadas son 544 y 2.400 µs, respectivamente. Pero como hay servos con diferentes extremos de carrera, se pueden fijar estos límites “opcionales” de ancho de pulso, que en realidad —para evitar dolores de cabeza y roturas de los servos— sería bueno acostumbrarse a usar.

Si uno está habituado a usar el comando writeMicroseconds en lugar de write, es posible que nunca haya pensado en los parámetros de ancho de pulso mínimo y máximo. Pero si se usa el comando write y se establecen las posiciones de los servos con ángulos y grados, entonces DEBEMOS definir explícitamente estos parámetros en los programas de Arduino que usan Servo.h, previa lectura de los datos indicados en la hoja de datos del servo utilizado. O si no, definiéndolos experimentalmente; porque hasta existen diferencias entre servos del mismo modelo.

Para definir los valores correctos de extremos de recorrido de un servo, puede utilizar un montaje como el que sigue, que se trata de una cartulina impresa y una aguja señaladora de cartón en el eje del servo, y enviar comandos con writeMicroseconds() hasta lograr el valor para el ángulo cero y el ángulo 180. El disco lo imprimí con un programa on-line muy útil para crear imágenes de discos de encoder.

Ingrese a esta página y pruebe primero con los siguientes parámetros:

Luego puede jugar con los valores hasta lograr el dibujo que usted necesite. Hay otras opciones en internet, incluso hay generadores de código postscript que se puede leer en Corel y que corren en Windows. Es cuestión de buscar.

Solución para la librería Servo

En el código de ejemplo, para la tercera señal de servo no dejaremos los anchos de pulso predeterminados y fijaremos los límites con los valores 1.000 y 2.000 µs. Esta es la razón por la que las señales del primero y tercer servo envían pulsos diferentes aunque se utilicen comandos idénticos.

Además de que no lograremos posicionamientos correctos de los servos con señales ligeramente descentradas, un servo podría interpretar de manera impredecible los anchos de pulso por encima o por debajo de los límites para los que fue diseñado. Los pulsos por debajo y por encima del límite también pueden dañar físicamente un servo.

Si un servo con recorrido de 0 a 180° está diseñado para responder a pulsos de 1.000-2.000 µs, interpretará 1.000 µs como 0°, y 2.000 µs como 180°. Pero, con un rango de límites de ancho de pulso predeterminado de 544 a 2.400 µs, el Arduino enviará una señal de ~1.000 µs para un ángulo de 44°. Un rango de pulsos de 1.000 a 2.000 µs se convertirá en un recorrido mecánico total de ~90° del eje del servo en lugar de 180°. Este y otros problemas potenciales pueden evitarse si se usan microsegundos en lugar de ángulos en grados, o si los parámetros opcionales de ancho de pulso para los extremos se definen en la configuración de pines para cada servo.

Es muy común que se dé por sentado que las bibliotecas de Arduino funcionan correctamente con sólo unos simples parámetros. La próxima vez que sus servos actúen de forma impredecible en un nuevo proyecto, vuelva a verificar que ha establecido los límites de ancho de pulso en la configuración del pin. Puede que con esto sea suficiente y se ahorre gran cantidad de tiempo.



¿Instrucciones para tejer un robot?

Fabrican objetos blandos y accionados utilizando máquinas de tejer comerciales

Los investigadores de la Universidad Carnegie Mellon han usado máquinas de tejer controladas por computadora para crear juguetes de peluche y otros objetos tejidos que son accionados por tendones. Es un enfoque que, según dicen, podría usarse algún día para hacer robots blandos y tecnologías portátiles.

El software desarrollado por investigadores de Morphing Matter Lab y Dev Lab de CMU en el Human-Computer Interaction Institute hace posible que los objetos emerjan de las máquinas de tejer en sus formas deseadas y con los tendones ya integrados. Luego se pueden rellenar y los tendones se unen a los motores, según sea necesario.

Lea Albaugh, una Ph.D. estudiante que dirigió el esfuerzo de investigación, desarrolló la técnica de inserción de tendones y exploró este espacio de diseño para hacer pantallas que cambian de forma, figuras rellenas que dan abrazos cuando se tocan en el estómago, e incluso un suéter con una manga que se mueve por sí solo. Aunque en gran parte son fantasiosos, estos objetos demuestran capacidades que podrían tener aplicaciones serias, como robots blandos (ver video).

«La robótica suave es un campo en crecimiento», señaló Albaugh. «La idea es construir robots a partir de materiales que sean intrínsecamente seguros para que las personas estén cerca, por lo que sería muy difícil lastimar a alguien. Los componentes blandos actuados serían baratos de producir en las máquinas de tejer comerciales.

«Tenemos tantos objetos blandos en nuestras vidas y muchos de ellos podrían interactuar con esta tecnología», agregó. «Una prenda de vestir podría ser parte de su sistema de información personal. Su suéter, por ejemplo, podría darle un golpecito en el hombro para llamar su atención. La tela de una silla podría servir como una interfaz háptica. Las mochilas podrían abrirse».


Fabricación digital de objetos de acción suave mediante tejido a máquina de Morphing Matter Lab

Albaugh y sus co-investigadores, Scott Hudson y Lining Yao, miembros de la facultad de HCII, presentarán su investigación en CHI 2019, la Conferencia de la Asociación para Maquinaria de Computación sobre Factores Humanos en Sistemas de Computación, del 4 al 9 de mayo en Glasgow, Escocia.

Las máquinas de tejer comerciales están bien desarrolladas y se utilizan ampliamente, pero generalmente requieren una programación minuciosa para cada prenda. Esta nueva investigación se basa en el trabajo anterior de CMU para automatizar el proceso, lo que facilita el uso de estas máquinas de producción en serie para producir diseños personalizados y únicos.

«Es una línea muy conveniente para usar para producir objetos de punto activos», dijo Yao, profesor asistente de HCII. Otros investigadores han experimentado con objetos textiles accionados, anotó, pero se han enfrentado a la tarea que lleva mucho tiempo de agregar tendones a los artículos terminados. Insertar tendones en los materiales a medida que se crean ahorra tiempo y esfuerzo, y agrega precisión a sus movimientos.

Los investigadores desarrollaron métodos para insertar líneas de tendones en forma horizontal, vertical y diagonal en láminas y tubos de tela. Mostraron que la forma de la tela, combinada con la orientación del recorrido del tendón, puede producir una variedad de efectos de movimiento, entre ellos curvas asimétricas, curvas en forma de S y giros. La rigidez de los objetos se puede ajustar rellenándolos con diversos materiales disponibles para los aficionados.

Se pueden usar tendones hechos con varios materiales, incluidos hilos de acolchado envueltos en poliéster, hilo de seda pura y monofilamento de nylon.

La estudiante Lea Albaugh desarrolló una técnica de inserción de tendones y exploró técnicas como hacer muñecos de peluche que dan abrazos cuando se los presiona en el estómago.

Además de activar los objetos, estas técnicas también pueden agregar capacidades de detección a los objetos. Al unir sensores a cada tendón, por ejemplo, es posible sentir la dirección en que se está doblando o torciendo el objeto. Al tejer con hilo conductor, los investigadores demostraron que podían crear tanto almohadillas de contacto para una detección táctil capacitiva, como sensores de tensión para detectar si una muestra está estirada.

Ya se está utilizando impresión 3D para hacer objetos personalizados, con movimientos y componentes robóticos, dijo Albaugh, aunque los materiales por lo general son duros. El tejido de punto controlado por computadora tiene el potencial de ampliar las posibilidades y hacer que los resultados sean más amigables para las personas.

«Creo que hay un enorme poder en el uso de materiales que las personas ya asocian con la comodidad», dijo.

Los ingenieros crean material «similar a la vida», con metabolismo artificial

Como material genético, el ADN es responsable de toda la vida conocida. Pero el ADN también es un polímero. Aprovechando la naturaleza única de la molécula, los ingenieros de Cornell han creado máquinas simples construidas con biomateriales con propiedades de seres vivos.

Con el uso de lo que denominan materiales DASH (DNA-based Assembly and Synthesis of Hierarchical materials, Ensamblaje y Síntesis de Jerarquías a base de ADN), los ingenieros de Cornell construyeron un material de ADN con capacidades de metabolismo, además del autoensamblaje y la organización, tres características clave de la vida.

“Estamos introduciendo un concepto de material completamente nuevo y realista impulsado por su propio metabolismo artificial”. «No estamos haciendo algo que está vivo, pero estamos creando materiales que son mucho más reales que nunca se han visto antes», dijo Dan Luo, profesor de ingeniería biológica y ambiental en la Facultad de Agricultura y Ciencias de la Vida.

El artículo es «Material de ADN dinámico con comportamiento de locomoción emergente impulsado por el metabolismo artificial» (Dynamic DNA material with emergent locomotion behavior powered by artificial metabolism), publicado el 10 de abril en Science Robotics.

Para que cualquier organismo vivo se mantenga, debe haber un sistema para gestionar el cambio. Se deben generar nuevas células; Las células viejas y los desechos deben ser barridos. La biosíntesis y la biodegradación son elementos clave de la autosostenibilidad y requieren metabolismo para mantener su forma y funciones.

A través de este sistema, las moléculas de ADN se sintetizan y ensamblan en patrones de manera jerárquica, lo que resulta en algo que puede perpetuar un proceso dinámico y autónomo de crecimiento y decadencia.

Usando DASH, los ingenieros de Cornell crearon un biomaterial que puede emerger de forma autónoma de sus bloques de construcción a nanoescala y organizarse por sí mismo, primero en polímeros y finalmente en formas de mesoescala (componentes en un rango de aproximadamente 0,1 mm a 5 mm). Partiendo de una secuencia de semillas de 55 nucleótidos, las moléculas de ADN se multiplicaron cientos de miles de veces, creando cadenas de ADN de repetición de unos pocos milímetros de tamaño. La solución de reacción se inyectó luego en un dispositivo microfluídico que proporcionaba un flujo de energía líquida y los componentes básicos necesarios para la biosíntesis.

A medida que el flujo invadía el material, el ADN sintetizaba sus propias nuevas hebras, con el extremo frontal del material creciendo y el extremo de la cola degradándose en un equilibrio optimizado. De esta manera, hizo su propia locomoción, avanzando lentamente, contra el flujo, de manera similar a como se mueve el moho mucilaginoso.

La habilidad de locomoción permitió a los investigadores enfrentar grupos del material entre sí en carreras competitivas. Debido a la aleatoriedad en el entorno, un cuerpo eventualmente obtendría una ventaja sobre el otro, permitiendo que uno cruzara primero una línea de meta.

“Los diseños siguen siendo primitivos, pero mostraron una nueva ruta para crear máquinas dinámicas a partir de biomoléculas. Estamos en un primer paso en la construcción de robots reales mediante el metabolismo artificial”, dijo Shogo Hamada, profesor e investigador asociado en el laboratorio de Luo, y autor principal y coautor del artículo. “Incluso a partir de un diseño simple, pudimos crear comportamientos sofisticados como las competencias. El metabolismo artificial podría abrir una nueva frontera en robótica».

Actualmente, los ingenieros están explorando formas para que el material reconozca los estímulos y puedan buscarlos de manera autónoma en el caso de la luz o los alimentos, o evitarlos si son dañinos.

El metabolismo programado incrustado en los materiales de ADN es la innovación clave. El ADN contiene el conjunto de instrucciones para el metabolismo y la regeneración autónoma. Después de eso, es por su cuenta.

“Todo, desde su capacidad para moverse y competir, todos esos procesos son independientes. No hay interferencia externa «, dijo Luo. “La vida comenzó miles de millones de años a partir de unos pocos tipos de moléculas. Esto podría ser lo mismo».

El material que el equipo creó puede durar dos ciclos de síntesis y degradación antes de que caduque. Según los investigadores, es probable que la longevidad se extienda, lo que abre la posibilidad de más «generaciones» de material a medida que se auto-replica. «En última instancia, el sistema puede llevar a máquinas auto-reproductivas realistas», dijo Hamada.

«Más emocionante, el uso del ADN le da a todo el sistema una posibilidad de auto-evolución», dijo Luo. «Eso es enorme».

Teóricamente, podría diseñarse para que las generaciones subsiguientes surjan en segundos. Según Luo, la reproducción a este ritmo acelerado aprovecharía las propiedades de mutación naturales del ADN y aceleraría el proceso evolutivo.

En el futuro, el sistema podría usarse como un biosensor para detectar la presencia de cualquier ADN y ARN. El concepto también podría usarse para crear una plantilla dinámica para hacer proteínas sin células vivas.

El trabajo fue financiado en parte por la National Science Foundation y apoyado por el Fondo de Ciencia y Tecnología de NanoEscala de Cornell y el Instituto Kavli en Cornell for Nanoscale Science. Entre los colaboradores se encuentran Jenny Sabin, la profesora de Arquitectura Arthur L. e Isabel B. Wiesenberger, y los investigadores forman la Universidad Jiaotong de Shanghai y la Academia China de Ciencias.

Hay una patente pendiente en el Centro de Licencias de Tecnología.



¿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