Simulador de Arduino


En el mundo del modelado 3D, Tinkercad se ha establecido como una valiosa introducción al diseño asistido por computadora (CAD) . Es un programa CAD gratuito e intuitivo basado en la web que cualquiera puede usar. De hecho, si desea comenzar con Tinkercad, incluso tenemos un tutorial para principiantes para que pueda comenzar .

Recientemente, Tinkercad ha introducido algo nuevo: una expansión para incluir circuitos en su capacidad de diseño llamada Tinkercad Circuits. Esto aporta un lado completamente nuevo a Tinkercad, que gira en torno a la simulación de circuitos con Arduino.

Arduino es una plataforma de creación de prototipos electrónicos de código abierto que también vende microcontroladores. Tinkercad Circuits permite a cualquiera crear y programar virtualmente proyectos Arduino sin la necesidad de hardware físico.

En este artículo, le mostraremos cómo programar un Arduino básico en Tinkercad, pero primero, echemos un vistazo más de cerca a las nuevas capacidades que ofrece Tinkercad Circuits.

Vamos a utilizar una herramienta de Autodesk gratuita y en la red: Tinkercad , pues en efecto de servir como una herramienta excelente de diseño en 3d también incluye un editor de componentes electrónicos, y lo que es aun mas interesante : un simulador

Una vez que decida crear un circuito, utilizará el nuevo entorno de Tinkercad Circuits. Puede parecer mucho al principio, pero no se deje intimidar: tenemos toda la información que necesita para tener éxito. Verá rápidamente que esta plataforma creativa es una excelente herramienta de creación de prototipos.

Área de construcción

En el lado derecho de la pantalla, verá un grupo de componentes electrónicos de arrastrar y soltar. Además, puede buscar y filtrar a través de una cantidad impresionante de componentes disponibles: hay de todo, desde LED hasta circuitos integrados (IC), e incluso algunas herramientas de instrumentos.

El área de construcción abierta es donde diseñas su creación. La barra de herramientas superior que comienza a la izquierda le brinda las operaciones generales para rotar, eliminar e incluso tomar notas sobre sus diferentes componentes. Una característica interesante es que, además de exportar y compartir su trabajo, puede descargar la lista de componentes. Esto hace que sea más fácil llevar sus creaciones al mundo real.

Para hacer las cosas fáciles vamos a usar un simple arduino al que conectaremos 4 entradas analógicas, y 5 digitales

Las entradas analógicas las conectaremos a 4 potenciómetros cuyo punto central lo enviaremos a los GPIO simulando asi 4 señales analógicas por lo que conectaremos también estos a 4 instrumentos analógicos para que de este modo podamos comprobar el valor de las salidas.

Las entradas digitales las conectaremos a un conmutador DIP y sus salidas conectaremos también a 4 leds con sus correspondientes resistencias con el fin de poder comprobar de este modo el estado de dichos interruptores.

Por ultimo conectaremos un pulsador y un led que no indica que el circuito esta funcionando,

Mas en detalle este es el esquema del montaje:

El diseño lo p uede descargar desde https://www.tinkercad.com/things/5P9LP1tlS9O-panel-osciloscopio-con-arduino-/

Área de programación

Una vez que tenga un componente programable en su diseño, puede abrir el visor de «Código» haciendo clic en el botón en la parte superior derecha de la barra de herramientas. Actualmente, los únicos dos dispositivos disponibles son el Arduino Uno R3 y el ATTiny. (El ATTiny es un Arduino más limitado y miniaturizado).

El área de programación es un entorno de desarrollo integrado (IDE) simplificado que hace que la programación del Arduino sea muy sencilla. El método predeterminado es a través de bloques de código, que veremos más adelante, y también hay una vista dual para aprender cómo los bloques de código se traducen en código real. Para aquellos que ya están familiarizados con la biblioteca Arduino, incluso hay una vista de texto.

En cuanto al código Arduino, simplemente hay que pulsar en el botón «Código» y justo ahí copiaremos el código de mas abajo ( ojo porque debe ser correcto sintácticamente hablando, porque en caso de que cometamos un error nos dará un error)

Este es el código para probar el montaje:

#define Sel1 7 // el potenciometro  P1 LO conectamos al GPIO7
#define Sel2 8 // el potenciometro  P2 LO conectamos al GPIO8
#define Sel3 9 // el potenciometro  P3 LO conectamos al GPIO9  
#define Sel4 10 //el potenciometro  P4 LO conectamos al GPIO10

#define trigger 3 // el pin al que conectamos el pulsador

int val = 0; //val se emplea para almacenar el estado del boton
int state = 0; // 0 se muestrean las señales de los ADC
int old_val = 0; // almacena el antiguo valor de val

int y1;  //Variable donde se guardara el valor leido del pin A0
int y2;  //Variable donde se guardara el valor leido del pin A1
int y3;  //Variable donde se guardara el valor leido del pin A2
int y4;  //Variable donde se guardara el valor leido del pin A3


void setup() {
  
  Serial.begin(115200);
  pinMode(Sel1,INPUT_PULLUP);
  pinMode(Sel2,INPUT_PULLUP);
  pinMode(Sel3,INPUT_PULLUP);
  pinMode(Sel4,INPUT_PULLUP);

  pinMode(trigger,INPUT_PULLUP);
  Serial.println("Empezando la simulacion");
}

void loop() {

   val = digitalRead(trigger); // lee el estado del Boton
    if ((val == HIGH) && (old_val == LOW)) {  //Detectamos flanco de subida
        state = 1 - state;           //Cambiamos el valor de state de 0 a 1 ó de 1 a 0            
        delay(10);               //pausa de 10ms
    }
    old_val = val; // actualizamos el valor del antiguo estado


  if (!state) {  //si la variable state es 0 escribimos en el serial


        if (!digitalRead(Sel1) && !digitalRead(Sel2)&& !digitalRead(Sel3) && !digitalRead(Sel4)) {
            
            y1 = analogRead(A0);  //Leemos el conversor A1 y guardamos la lectura en sensor1
            Serial.print(y1);      //Imprimimos en el serial el valor de sensor1
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

            y2 = analogRead(A1);  //Leemos el conversor A1 y guardamos la lectura en sensor1
            Serial.print(y2);      //Imprimimos en el serial el valor de sensor1
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

            y3 = analogRead(A2);  //Leemos el conversor A1 y guardamos la lectura en sensor1
            Serial.print(y3);      //Imprimimos en el serial el valor de sensor1
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

            y4 = analogRead(A3);  //Leemos el conversor A1 y guardamos la lectura en sensor1
            Serial.println(y4);      //Imprimimos en el serial el valor de sensor1
            //Serial.println(" ");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms
        }

    
          if (digitalRead(Sel1) && !digitalRead(Sel2)&& digitalRead(Sel3) && digitalRead(Sel4)) {
            
           // y1 = analogRead(A0);  //Leemos el conversor A1 y guardamos la lectura en sensor1
           // Serial.print(y1);      //Imprimimos en el serial el valor de sensor1
            Serial.print("");
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

            y2 = analogRead(A1);  //Leemos el conversor A1 y guardamos la lectura en sensor1
            Serial.print(y2);      //Imprimimos en el serial el valor de sensor1
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

           // y3 = analogRead(A2);  //Leemos el conversor A1 y guardamos la lectura en sensor1
          //  Serial.print(y3);      //Imprimimos en el serial el valor de sensor1
            Serial.print("");
            Serial.print(",");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms

            //y4 = analogRead(A3);  //Leemos el conversor A1 y guardamos la lectura en sensor1
           // Serial.println(y4);      //Imprimimos en el serial el valor de sensor1
            Serial.println(" ");          //Imprimimos en el serial , 
            delay(10);                 //Pausa de 10ms
        }
        


    }

}

Solución de problemas:  si su programa no se comporta como se esperaba, verifique su cableado y programación. Asegúrese de que todos los pines estén conectados correctamente y de que cada bloque esté escrito correctamente.

Si todo parece funcionar, ¡enhorabuena! Siempre puede seguir jugando con el código y los diferentes componentes para aprender más sobre cómo funciona todo.

Niveles de autonomía en coches


Estamos sin duda todos familiarizados a la conducción autónoma gracias al carismático Elon Musk y sus famosa marca Tesla Motors, pero como vamos a ver en este humilde post no todos los coches autónomos son fabricados por Tesla y además existen hasta seis niveles de automoción, lo cual sin duda nos da esperanza que en un futuro cercano desde este momento podremos adquirir un vehículo con cierto grado de atomía en pro de mejorar entre todos la seguridad en la carretera.

La conducción autónoma ha sido clasificada en seis niveles por la Sociedad de Ingenieros de Automoción (SAE, por sus siglas en inglés). La actualización más reciente es el estándar J3016.

Los tres primeros niveles de la SAE para los vehículos autónomos (0 al 2) incluyen características de asistencia al conductor. Mientras tanto, los tres últimos (3 al 5) incluyen características reales de automatización.

Nivel 0

No hay conducción autónoma, no hay control continuo del vehículo. Aquí englobamos aquellos sistemas que proporcionan un aviso al conductor (por ejemplo, un sistema de detección de objetos en el ángulo muerto o asistente al cambio de carril), un sistema de frenado automático de emergencia… hablamos, por lo tanto, de sistemas de seguridad. Por tanto en este nivel 0 de los vehículos autónomos es aplicable a los coches más comunes en la actualidad, ya que no se automatizan las acciones del conductor.

Características:

  • El conductor realiza todas las tareas y maniobras.
  • El vehículo puede incluir sensores o radares que notifican al conductor de eventos y objetos cercanos.

Limitaciones:

  • Los coches en este nivel no incluyen ningún tipo de control autónomo.

Nivel 1

Los primeros sistemas de asistencia a la conducción que han ayudado al conductor de forma continua se encuentran englobados en este Nivel 1. Son aquellos capaces de controlar el vehículo bien longitudinal o lateralmente, pero nunca las dos cosas a la vez.

La diferencia con las tecnologías consideradas de nivel 0 es que las del nivel 1 el coche realiza cambios por su cuenta. Un ejemplo son los sistemas de frenada de emergencia automática (AEB) que cuando detectan la presencia de un obstáculo moderan la velocidad sin necesidad de que el conductor presione el pedal.

Los vehículos autónomos de nivel 1 pues incluyen sistemas que controlan la dirección, la velocidad y el frenado. Muchos modelos disponibles en la actualidad incluyen funciones de este nivel, entre otras:

  • Piloto automático adaptativo (control de crucero).
  • Sistema de control de carril.
  • Asistencia de estacionamiento.
  • Control de distancia y anticolisión.
  • Sistema automático de frenado de emergencia.

Características:

  • VhAsistencia autónoma en sistemas de dirección o de velocidad.
  • El conductor sigue controlando la mayoría de las funciones del coche.
  • Se mantienen las manos en el volante.

Limitaciones:

  • Solo hay asistencia autónoma en un sistema a la vez. Asistencia en la dirección o en la velocidad, pero no en ambos en simultáneo.

MODELOS

  • El ejemplo más claro, y el primero de estos sistemas en ver la luz (1998) es el ACC – Adaptive Cruise Control. 
  • Ha habido intentos previos que solo controlaban motor (Mitsubishi)
  • Mercedes en 1998 lanzó en el Clase S un sistema capaz de ajustar la velocidad de forma automática al vehículo precedente, usando información de un radar situado en la parte frontal. Controlaba sistema de gestión de motor y sistema de frenado, liberando al conductor de la necesidad de pisar pedal alguno (dentro de unos límites) cuando el ACC se activaba.  Así, solo debía controlar la dirección, haciendo los viajes más relajados y seguros.

En un sistema ACC, como en el resto de sistemas de Nivel 1, el conductor es siempre responsable de la conducción y no puede embarcarse en ninguna actividad paralela. El sistema, simplemente, ayuda a que la conducción sea más confortable. Hoy día sistemas como ACC son legión y se pueden encontrar desde los segmentos más bajos del mercado.

NIVEL 2

Mientras en un Nivel 1 el sistema controla el vehículo longitudinal o lateralmente, en un Nivel 2 el control es longitudinal y transversal, de forma simultánea. Este pequeño matiz, sin embargo, hace que la percepción del conductor en cuanto a autonomía sea mucho may

Los vehículos autónomos nivel 2 son POR TANTO capaces de tomar el control de algunos sistemas, aunque el conductor debe estar alerta por si se necesita su intervención.

Al sistema ACC añaden un control de posición en el carril (centrado). El conductor no ha de tener los pies en los pedales (como en un sistema ACC), pero además existe un par de fuerza inducido en el volante que “guía” al vehículo al centro del carril. En ocasiones, se pueden soltar las manos del volante, y el vehículo seguirá en el centro del carril en vías de curvas amplias. 

Características:

  • Al menos dos funciones están automatizadas al mismo tiempo.
  • El coche autoconducido se mantiene en el carril y a una distancia segura de los otros elementos en la vía.
  • Se permite que el conductor deje de controlar el volante y el acelerador (conducción manos libres).
  • Estos vehículos autónomos detectan los límites del carril y de la carretera. Incluso sin necesidad de líneas o señalización en el pavimento.

Limitaciones:

  • El coche toma el control por períodos cortos de tiempo, solo de algunas funciones y bajo ciertas condiciones .
  • El conductor debe estar alerta para retomar el control si fuera necesario.

MODELOS

  • La lista de modelos que se encuentran ya en el nivel 2 de conducción autónoma es larga: son los llamados coches semiautónomos
  • Aquí hablamos de sistemas relativamente populares y que se pueden encontrar en utilitarios como un Peugeot 208
  • Mercedes en 1998 lanzó en el Clase S un sistema capaz de ajustar la velocidad de forma automática al vehículo precedente, usando información de un radar situado en la parte frontal. Controlaba sistema de gestión de motor y sistema de frenado, liberando al conductor de la necesidad de pisar pedal alguno (dentro de unos límites) cuando el ACC se activaba.  Así, solo debía controlar la dirección, haciendo los viajes más relajados y seguros.
  • Otros ejemplos reales ProPilot de Nissan
  • EL Mercedes-Benz Clase E.
  • El BMW Serie 7
  • Volvo, Mercedes, Audi y BMW son las más avanzadas en este terreno.

NIVEL 2+

Para complicar aún más las cosas, existe algo llamado Nivel 2+. No está registrado per se en la SAE, pero es un estándar de facto en la industria. ¿Y que es un Nivel 2+? Pues un Nivel 2 en el cual no se obliga al conductor a tener las manos en el volante. Sin embargo, el conductor sigue siendo responsable total de la conducción, y como tal no puede hacer ninguna tarea adicional.

Siguen siendo sistemas de asistencia. No son conducción autónoma. El conductor es responsable siempre, y para validar que está prestando atención a la conducción aun estando las manos fuera del volante, se suele usar una cámara que monitoriza al conductor (todos los mencionados arriba salvo Tesla, de momento). Si no hay atención, el sistema le recordará al conductor de hacerlo. En caso de ignorar el aviso, pasaremos al modo “parar en modo seguro”.

Estos sistemas Nivel 2+, por lo general, solo funcionan en zonas determinadas (por ejemplo, autopistas). Serían capaces de hacer más cosas (adelantamientos con o sin confirmación del conductor, etc). Pero seguirán siendo Nivel 2+… por mucho que los llevemos hasta el extremo, como Tesla con su FSD. En principio, con el FSD se podría disponer de un sistema de Nivel 2+ funcionando en aquellas zonas que Tesla haya “desbloqueado” primero, mediante el uso de mapas crowd-sourced. Y están en ello, basándose en la gran cantidad de vehículos grabando datos (vehículos de cliente). Pero seguirá siendo un Nivel 2. Por mucho que haya videos de Tesla gestionando rotondas, cruces e intersecciones en la versión beta de FSD, el conductor sigue siendo el único responsable. Es un nivel 2

MODELOS

  • El pionero fue Cadillac con su SuperCruise en US, que hoy día se encuentra hasta en un Chevrolet Bolt.
  • Después otras muchas le han seguido: BMW, NIO, Nissan (ProPilot II),
  • Próximamente Ford, Jeep, Lexus, Hyundai… y Tesla, claro.

NIVEL 3

El sistema controla el vehículo longitudinal y lateralmente, como en un nivel 2. Pero la diferencia estriba en que aquí el sistema es el que conduce el coche mientras se encuentre activado. Es decir – y aquí está la gran ventaja de un nivel 3 – el conductor podría dedicarse a realizar alguna actividad secundaria mientras esté en el coche. Pero (porque tiene que haber un pero), esta actividad secundaria no puede ser de una naturaleza tal que no le permita volver a retomar el control del vehículo en unos segundos si el sistema se lo pide

En este nivel 3, los vehículos autónomos comienzan a analizar su entorno y son capaces de tomar decisiones. Utilizan sensores LIDAR para registrar lo que ocurre alrededor. Estos sensores combinan visión computarizada, cámaras, radar y localización.

Características:

  • Los coches son capaces de controlar funciones críticas de conducción circular en una autopista, adelantar un coche o tomar una salida.
  • El vehículo activa automáticamente ajustes de seguridad al detectar determinadas situaciones de tráfico, en la vía o ambientales.
  • El conductor puede dejar de supervisar al coche en períodos extendidos de tiempo.

Limitaciones:

  • Se permite al conductor soltar el volante, pero solo en tramos con tráfico lento, inferior a 60 km/h.
  • Se requiere que el conductor esté detrás del volante de estos vehículos autónomos si se conduce en carreteras públicas.
  • En muchos países, todavía no se ha definido o actualizado el marco legal, limitando su uso.
  • En España se trabaja en la modificación del marco legislativo que afecta a los vehículos autónomos.

MODELOS:

  • Los vehículos autónomos en este nivel son: el clásico Tesla Model S, con el sistema piloto automático,
  • Honda como Mercedes comercializarán Nivel 3 este 2021, tras el intento frustrado de Audi con su actual A8.
  • Otros vendrán – véanse las plataformas de BMW (iX), Lexus o NIO.
  • Otro ejemplo de conducción autónoma de nivel 3 es el Audi A8.

Dado que ahora el sistema es el responsable de la conducción, es necesario un salto tecnológico importante para ofrecer Nivel 3. En primer lugar, es necesaria una redundancia de sistemas (sensores, plataformas de control, actuadores, redes de datos, fuentes de alimentación…), para garantizar que no existen fuentes únicas de error. Después, a nivel de sensórica, es preciso tener información mucho más robusta del entorno (también de forma redundante). Y aquí es donde, casi toda la industria parece estar de acuerdo que el lidar es una solución adecuada para solucionar alguno de los problemas de detección de objetos en nuestro carril en circunstancias donde cámaras o radar tendrían más dificultades. Los mapas de alta resolución también juegan un papel muy importante.

Esto tiene un precio. Los sistemas de Nivel 3 no van a ser baratos, ni para el fabricante ni para el público. Un lidar, por ejemplo, tendrá un precio de entre $700-$1000. Para comparar, un radar de los que se vienen usando en múltiples aplicaciones a día de hoy se puede conseguir por poco más de $30 en grandes volúmenes.

Y finalmente, la polémica. Hay fabricantes que dicen que el Nivel 3 es una trampa mortal.

NIVEL 4 Alta Automatización

En un nivel 4, el conductor no es responsable de la conducción, pero es que tampoco se le reclamara para que tome el control si es necesario. El vehículo funcionará de forma totalmente autónoma dentro de un ODD específico, y antes de llegar al final de ese ODD – con bastante antelación, si es que el destino final cae fuera de ese ODD – podrá informar de que será necesaria intervención humana para llegar al final del trayecto. Si no se consigue que el conductor retome el control, se estacionara de forma segura.

Los vehículos autónomos en este nivel 4 se conducen sin necesidad de intervención de un conductor. Utilizan algoritmos de IA para entrenarse en las distintas condiciones y escenarios de manejo. Hay conexión mediante sistema WiFi en el coche.

Características:

  • El coche puede controlar todas las funciones críticas de conducción.
  • Los vehículos autónomos nivel 4 modifican su respuesta en función de condiciones externas.
  • Si las condiciones son adversas, busca un lugar apropiado y se detiene.
  • Ya no hay conductor, solo pasajeros, los cuales pueden viajar dormidos.

Limitaciones:

  • Se espera estén disponibles entre 2021 y 2030.
  • Inicialmente estarán operativos bajo supervisión (no conducción) y en determinados escenarios.

MODELOS

  • Tesla tiene una variante del Model S,
  • Google el Proyecto Waymo 
  • Audi el Elaine Concept.
  • Mientras tanto, Ford y Volvo anuncian modelos nivel 4 para 2021.

NIVEL 5: Automatización Completa

En este nivel , los vehículos robotizados no requieren ningún tipo de control de conducción (ni volante ni pedales). Ya no hay conductor y las instrucciones se dan por comando de voz o mediante aplicaciones móviles.

Los coches en los niveles 4 y 5 funcionan intercambiando información con su entorno. Aprovechan de compartir y utilizar los datos generados por las telecomunicaciones de las ciudades inteligentes y el IOT. El Audi Aicon es un ejemplo de coche conceptual nivel 5 que solo es posible con tecnología 5G. El Parlamento Europeo espera que estos vehículos autónomos estén disponibles hacia el año 2030.

Características:

  • No requieren interacción humana alguna.
  • Varios prototipos adelantados son coches eléctricos.
  • Utilizan reconocimiento de 360°, en un rango mayor que los humanos.

Limitaciones:

  • Se requiere definir una estructura legal para su uso.
  • Hay que realizar inversiones para la adaptación tecnológica de la infraestructura vial.

EXTRACTO DE LOS NIVELES DE AUTOMTIZACION

  • Hoy estamos entre el nivel 2 y un ‘poquito’ del 3
  • El conductor es SIEMPRE el responsable hasta Nivel 2. A partir de Nivel 3 el sistema es responsable.
  • Hay nivel 2 y nivel 2+. Este último representa un sistema más avanzado que permite circular con las manos fuera del volante. Incluso dentro del nivel 2+ hay diferencias – Tesla por ejemplo, con su FSD, lo lleva al extremo y permitiría conducir “manos libres” pero con responsabilidad del conductor en entornos urbanos.
  • La conducción autónoma comienza en Nivel 3. Hasta nivel 2 es asistida.
  • Nivel 3 se confía en que llegue PRONTO, pero en todo el mundo. Japón y Alemania serán los primeros.
  • Nivel 4, para uso privado, no se espera hasta bien entrada la década.
  • Nivel 5 ni está ni se le espera en el medio plazo. Si alguien dice que es capaz de solucionar el nivel 5 de conducción autónoma, o viene de un futuro muy lejano o miente.