Menú
Está libre
registrarse
el principal  /  POR / Conecte dos o más bloques EV3. LEGO MINDSTORMS EDUCE EV3 - Revisión del diseñador

Conexión de dos o más bloques EV3. LEGO MINDSTORMS EDUCE EV3 - Revisión del diseñador

Descripción de la presentación en diapositivas individuales:

1 diapositiva

Descripción de la diapositiva:

2 diapositivas

Descripción de la diapositiva:

Interfaz del módulo EV3 El módulo EV3 es un centro de control que impulsa sus robots. Gracias a la pantalla, los botones de control del módulo y la interfaz del módulo EV3 que contienen cuatro ventanas principales, usted tiene acceso a la impresionante variedad de funciones únicas del módulo EV3. Estas pueden ser características simples, como comenzar y detener el programa, o complejar, como redactar el programa en sí.

3 diapositivas

Descripción de la diapositiva:

Interfaz: El menú EV3 tiene un menú que consta de 4 partes: programas recientes (programas recientes) Administrador de archivos (aplicaciones de ladrillo) Configuración de bloques de control (configuración de ladrillo)

4 diapositivas

Descripción de la diapositiva:

Los programas recientes se lanzan recientemente cargados desde el programa de computadoras de escritorio. Esta ventana permanecerá vacía hasta que comience a descargar y ejecutar programas. Esta ventana mostrará los programas que inició recientemente. El programa en la parte superior de la lista que se selecciona de forma predeterminada es un programa que ha lanzado este último.

5 diapositivas

Descripción de la diapositiva:

Administrador de archivos Acceso y administre todos los archivos almacenados en una memoria de microcomputador, así como en una tarjeta de memoria. Desde esta ventana, accederá y administrará todos los archivos en su módulo EV3, incluidos los archivos almacenados en la tarjeta SD. Los archivos están organizados por carpetas del proyecto, que además de en realidad archivos de software También contienen sonidos e imágenes utilizadas en cada proyecto. Los archivos se pueden mover o eliminar utilizando el navegador por archivos. Los programas creados con el módulo y el entorno de programación del módulo de aplicaciones se almacenan por separado en las carpetas BrkProG_Save y Brkdl_Save.

6 diapositivas

Descripción de la diapositiva:

Las aplicaciones de la unidad de control EV3 tienen 4 aplicaciones predefinidas: A. Presentación del puerto. B. Gestión del motor. V. Gestión de IR. Ambiente de programación del módulo.

7 diapositivas

Descripción de la diapositiva:

A. Representación de puertos En la primera ventana de vista de puertos, puede ver rápidamente, los sensores o motores están conectados a qué puertos. Use los botones de control del módulo EV3 para ir a uno de los puertos ocupados, y verá las lecturas actuales obtenidas del sensor o el motor. Instale múltiples sensores y motores y experimente con diferentes configuraciones. Para buscar o cambiar la configuración actual para motores y sensores instalados, presione el botón central. Para volver a la ventana principal de la aplicación del módulo, haga clic en el botón Atrás.

8 diapositivas

Descripción de la diapositiva:

B. Control de gestión de motores Movimiento directo o inverso de cualquier motor conectado a uno de los cuatro puertos de salida. Hay dos modos diferentes. En un modo, puede controlar los motores conectados al puerto A (usando los botones hacia arriba y hacia abajo) y al puerto D (usando los botones "izquierda" y "derecha"). En otro modo, administra los motores conectados a PORT B \u200b\u200b(usando los botones hacia arriba y hacia abajo) y al puerto C (usando los botones "izquierda" y "derecha"). El cambio entre estos dos modos se lleva a cabo utilizando botón central. Para volver a la ventana principal de la aplicación del módulo, haga clic en el botón Atrás.

9 diapositivas

Descripción de la diapositiva:

Control de control IR Movimiento directo o inverso de cualquier motor conectado a uno de los cuatro puertos de salida utilizando un faro de infrarrojo remoto como control remoto y un sensor infrarrojo como receptor (un sensor infrarrojo debe estar conectado al puerto 4 en el módulo EV3). Hay dos modos diferentes. En un modo, utilizará los canales 1 y 2 en una baliza infrarroja remota. En el canal 1, puede controlar los motores conectados al puerto en (usando los botones 1 y 2 en la baliza infrarroja remota) y al puerto C (usando los botones 3 y 4 en la baliza infrarroja remota). En el canal 2, puede controlar los motores conectados al puerto A (usando los botones 1 y 2) y al puerto D (usando los botones 3 y 4). En otro modo, puede controlar los motores de la misma manera, en lugar de usar los canales 3 y 4 en una baliza infrarroja remota. La conmutación entre estos dos modos se realiza utilizando el botón central. Para volver a la ventana principal de la aplicación del módulo, haga clic en el botón Atrás.

10 diapositivas

Descripción de la diapositiva:

Entorno de programación del módulo El módulo EV3 viene con el software instalado en él. La aplicación es similar. softwareinstalado en su computadora. Estas instrucciones contienen información básica que necesita para comenzar a trabajar.

11 diapositivas

Descripción de la diapositiva:

Configuración del módulo EV3 Esta ventana le permite ver y ajustar varios configuración general En el módulo EV3.

12 diapositivas

Descripción de la diapositiva:

Configuración de volumen Puede ampliar y reducir el volumen (volumen) en la pestaña Configuración en EV3.

13 diapositiva

Si usted, así como las características de los sensores estándar EV3, no son suficientes puertos de 4 puertos para los sensores en sus robots o desee conectar una periferia exótica a su robot: este artículo para usted. Créeme, el sensor casero para EV3 es más sencillo de lo que parece. "Volumen giro" de una vieja radio o un par de clavos pegados en el suelo en una maceta como un sensor de humedad del suelo, perfectamente adecuado para el experimento.

Sorprendentemente, cada puerto del sensor EV3 oculta una serie de protocolos diferentes en sí mismo, se realiza principalmente para la compatibilidad con los sensores de NXT y los sensores de terceros. Veamos cómo está dispuesto el cable EV3.


Extraño, pero el cable rojo es la tierra (GND), Green - Plus Power 4.3V. El cable azul es simultáneamente SDA para el bus I2C y TX para el protocolo UART. Además, el cable azul es la entrada de un convertidor analógico-digital para EV3. El cable amarillo está simultáneamente SCL para el bus I2C y RX para el protocolo UART. El cable blanco es una entrada de convertidor analógica-digital para los sensores NXT. Negro - Entrada digital, para sensores compatibles con NXT: duplica GND. No es fácil, ¿verdad? Vamos a ordenar.

Entrada analógica EV3.

Cada puerto del sensor tiene un canal convertidor analógico a digital. Se utiliza para sensores, como sensor táctil, sensor de luz NXT y sensores de sensores de color en modo reflejado de luz y iluminación externa, sensor de sonido NXT y Termómetro NXT.

La resistencia en el 910 ohmio, conectada de acuerdo con el esquema informa que el controlador que este puerto debe cambiarse al modo de entrada analógica. En este modo, cualquier sensor analógico se puede conectar a EV3, por ejemplo, desde Arduino. El tipo de cambio con un sensor de este tipo puede alcanzar varios miles de encuestas por segundo, este es el tipo de sensor de mayor velocidad.

Sensor de luz

Termómetro

Sensor de humedad del suelo

También puede conectar: \u200b\u200bMicrófono, botón, gama IR y muchos otros sensores comunes. Si el sensor no es suficiente poder a 4.3V, es posible alimentarlo de 5 V desde el conector de puerto USB ubicado en el lado del controlador EV3.

Mencionado anteriormente "Twist de volumen" (es resistencia variable o el potenciómetro) es un excelente ejemplo de un sensor analógico, se puede conectar así:

Para leer los valores de dicho sensor en el entorno estándar. programación de LEGO. Debes usar el bloque crudo azul.

I2C. Protocolo

Este es un protocolo digital, funciona, por ejemplo, un sensor ultrasónico NXT, muchos sensores HITECHNIC, como el solicitante de IR o el sensor de color V2. Para otras plataformas, por ejemplo, para Arduino, hay muchos sensores de I2C que también puede conectarlos. El esquema es el siguiente:

La resistencia de 82 ohmios es recomendada por el grupo LEGO, sin embargo, las menciones de 43 ohmios se encuentran en diferentes fuentes y menos. De hecho, tratamos de abandonar estas resistencias por completo y todo funciona, al menos "sobre la mesa". En un robot real que se ejecuta en varios tipos de interferencias, la línea SCL y SDA aún debe ser alimentada a través de la resistencia, como se indica en el esquema anterior. La velocidad de I2C en EV3 es bastante pequeña, aproximadamente 10,000 kbps, por lo que el sensor de color hinchado favorito de todos, V2 es un frenado :)

Desafortunadamente, para el estándar EV3-G de LEGO, no hay un bloqueo completo para la comunicación bidireccional con el sensor I2C, pero el uso de un entorno de programación de terceros, como Robotc, LEJOS o EV3 básico puede interactuar con casi cualquier I2C sensores.

La capacidad de EV3 para trabajar en el protocolo I2C abre una oportunidad interesante para conectar múltiples sensores a un puerto. El protocolo I2C le permite cambiar a un autobús a 127 dispositivos subordinados. ¿Imagina? 127 Sensores a cada uno de los puertos EV3 :) Además, a menudo se combinan un montón de sensores I2C en un solo dispositivo, por ejemplo, en la foto debajo del sensor 10 en 1 (brújula, giroscopio, acelerómetro, barómetro, etc.)

UART.

Casi todos los sensores de EV3 estándar, con la excepción del sensor táctil, trabajan a través del protocolo UART y por eso no son compatibles con el controlador NXT, que incluso tiene los mismos conectores, pero no se implementa en los puertos del sensor de los sensores. . Eche un vistazo al esquema, es un poco más simple que en casos anteriores:

Los sensores de UAR se coordinan automáticamente con la velocidad de EV3 de su trabajo. Inicialmente se conecta a una velocidad de 2400 kbps, acuerdan los modos de operación y el tipo de cambio, pasando entonces mayor velocidad. Tipos de cambio típicos para diferentes sensores 38400 y 115200 Kbps.
LEGO implementó un protocolo bastante intrincado en sus sensores de UAR, por lo que los sensores de terceros destinados a no ser inicialmente para esta plataforma, pero no son compatibles con ella. Sin embargo, este protocolo es muy conveniente para conectarse "caseros".
Sensores basados \u200b\u200ben microcontroladores.
Para Arduino, hay una maravillosa biblioteca de EV3uartemumation escrita por el famoso LEJOS-Developer Lawrie Griffiths, que permite a esta Junta pretender el sensor UART-LEGO-Compatible. En su blog, LEJOS NEWS tiene muchos ejemplos de sensores de gas de conexión, un sensor IMU y una brújula digital utilizando esta biblioteca.

A continuación, el video es un ejemplo de usar un sensor hecho a sí mismo. No tenemos un número suficiente de sensores de distancia LEGO originales, por lo que uno de los sensores en el robot usamos caseros:


La tarea del robot es comenzar con una celda verde, encontrar una salida al laberinto (jaula roja) y volver al lugar de inicio por la forma más corta, sin ir al callejón sin salida.

Este artículo hablará de nueva versión Diseñador - LEGO MINDSTORMS EDUCE EV3. Pero antes de hablar de las innovaciones de EV3, conocemos a la serie Constructor de Lego Mindstorms.

LEGO MINDSTORMS es un diseñador robótico para niños de 10 años. Los detalles de LEGO Technis se utilizan como bloques de construcción: muchos tipos ya están familiarizados con ellos en los diseñadores de "tecnología y física", "neumáticas" ,. Pero para construir un marco de robot no es suficiente: es necesario "enseñarlo" para recibir información del medio ambiente y responderle. Para esto, se usan dispositivos especiales: sensores: le permiten determinar el color, la iluminación, la distancia a los artículos más cercanos y mucho más. Reacciona a "estímulos", un robot puede con la ayuda de los motores, ya sea para dejar en algún lugar o algo que hacer, por ejemplo, morder al delincuente para el dedo. Y el "cerebro" del robot es un bloque programable especial al que están conectados todos los motores y sensores.

Vamos a pasar a la composición del conjunto EV3 LEGO MINDSTORMS. Esto es lo que entra en la versión educativa del set:

  • 1 bloque programable
  • 3 motor:
    • 2 grandes motores
    • 1 motor medio
  • 5 sensores:
    • 2 sensor táctil
    • 1 sensor de color
    • 1 sensor de distancia ultrasónico
    • 1 giroscopio
  • Batería recargable para robot
  • 528 Detalles de la técnica LEGO

Sensores y motores

Considere lo que ha cambiado en EV3 en comparación con versión antigua NXT.

El conjunto será de 3 motores, pero uno de ellos diferirá tanto en tamaño como en características técnicas.

El sensor de sonido fue reemplazado por un giroscopio. Los tipos restantes de sensores se mantuvieron igual.

Otra característica es la definición automática de los sensores y los motores cuando están conectados al bloque, sobre esta función, diré en la sección que describe el nuevo entorno de programación EV3.

Las características de los sensores y motores se presentan a continuación.

Muy similar al sensor de la versión anterior. Determina cuándo se presiona o se libera el botón, también puede contar solo al prensado soltero o múltiple.

Sensor de color

El sensor de color EV3 distingue 7 colores y puede determinar la ausencia de color. Como en la última versión, puede funcionar como un sensor de luz.

  • Las medidas reflejaban la luz roja y la iluminación circundante.
  • Capaz de determinar las diferencias entre blanco y negro o colores: azul, verde, amarillo, rojo, blanco y marrón.
  • FRECUENCIA DE TRABAJO: 1 KHZ

Giroscopio

El sensor giroscópico EV3 mide el movimiento de rotación del robot y el cambio en su posición.

  • Se puede utilizar para determinar la dirección actual de rotación.
  • Precisión: +/- 3 grados 90 grados de facturación (en modo de medición de inclinación)
  • Puede determinar el máximo de 440 grados / c (en modo gyro)
  • FRECUENCIA DE TRABAJO: 1 KHZ

Sensor de distancia ultrasónico


Otro se añadió a la función principal del sensor ultrasónico EV3: también puede "escuchar" las fluctuaciones de ultrasonido emitidas por otros sensores de ultrasonido.

  • Puede medir la distancia en el rango de 3 a 250 cm.
  • Precisión de medición: +/- 1 cm
  • Discreción del resultado de la medición: 0.1 cm.
  • Se puede utilizar para buscar otros sensores de ultrasonido activo (modo de escucha)
  • Retroiluminación LED roja alrededor del "ojo"

Motor grande

El servomotor grande EV3 es muy similar a versión previa Sin embargo, el motor NXT, la carcasa del motor se ha vuelto un poco más (es virtualmente lleva los orificios de 14x7x5 contra el antiguo 14x6x5). También cambió el lugar de fijación de motores y su tipo.

  • Máxima facturación - 160-170 rpm.
  • El par especificado - 40 N / cm
  • Torque real - 20 N / cm.

Motor

El motor de servo EV3 promedio se basa en el motor de función de alimentación del mismo tamaño. Un lugar adicional requerido solo el sensor de ángulo de rotación y el puerto de conexión. Este motor es perfecto para trabajar bajo cargas bajas y altas velocidades.

  • Turnos máximos - 240-250 rpm.
  • El par especificado - 12 N / cm
  • Torque real - 8 N / cm.
  • Sensor de ángulo de rotación incorporado (codificador) de un motor con precisión de 1 grado

Los sensores, motores y cables NXT son compatibles con EV3, por lo que todos los robots construidos anteriormente pueden ser controlados por una nueva unidad.

Bloqueo programable EV3.

Se han producido cambios graves con el microordenador EV3. En comparación con NXT, el bloque EV3 tiene un procesador más rápido, más memoria. El firmware del bloque EV3 se basa en un sistema operativo Linux distribuido libremente, lo que hace posible la creación de su firmware para el bloque. Conecte un robot a una computadora ahora es posible no solo a través de USB y Bluetooth, sino también por Wi-Fi. Los robots también pueden "comunicarse" en USB, Bluetooth y Wi-Fi.

A continuación se muestra una tabla comparativa de características NXT y EV3:


NXT. EV3.
UPC Atmel ARM de 32 bits AT91SAM7S256
48 MHz.
256 KB. Memoria flash
64 kb memoria RAM
ARM9.
300 MHz.
16 MB de memoria flash
64 MB de memoria RAM
Co-procesador ATMEL ARM ARM AVR, ATMEGA48
8 MHz.
4 kb memoria flash
512 byte de memoria RAM
ausente
Sistema operativo Propiedad Linux
Puertos de entrada (para sensores) 4 puertos
Soporta sensores analógicos, digitales.
Tasa de transferencia de datos: 9600 BIT / S (I2C)
4 puertos
Soporta sensores analógicos, digitales.

Tasa de transferencia de datos: hasta 460.8 Kbps (UART)
Puertos de salida (Motores) 3 puertos
4 puertos
Transmisión de datos USB Modo de velocidad completa: 12 Mbps Modo de alta velocidad usado: 480 Mbps
Conexión Dispositivos USB Sin oportunidad Es posible conectar en serie hasta 3 dispositivos, incluyendo tarjetas de red Wi-Fi y tarjetas flash
Dispositivo para leer tarjetas SD Ausente Soporta tarjetas MINISD, volumen máximo - 32 GB
Conectar K. dispositivos móviles Conexión a dispositivos con sistema operativo Android Conexión a dispositivos con Android y iOS OS (iPhone, iPad)
Pantalla LCD, monocromo
100 * 64 píxeles
LCD, monocromo
178 * 128 píxeles
Interacción Bluetooth
USB 2.0
Bluetooth v2.1 der.
USB 2.0 (cuando está conectado a PC
USB 1.1 (con una conexión secuencial de varios dispositivos)
Wifi

Entorno de programación

Con EV3 incluía un nuevo entorno de desarrollo gráfico basado en LabVIEW, similar a NXT-G. Funcionará, como NXT-G, en Windows y Mac.

El entorno de desarrollo EV3 se ha mejorado significativamente. Ahora todos los materiales para el robot: programas para el robot, documentación, los resultados de experimentos, fotos y videos, se pueden almacenar en el proyecto. También se agregó una herramienta de zoom, que le permite escalar el programa, por ejemplo, para ver todo el programa. Vale la pena señalar que el bloque NXT se puede programar utilizando el nuevo entorno EV3, pero el bloque anterior no admite todas las características del nuevo lenguaje de programación.

Enumeramos las principales innovaciones del entorno de programación EV3:

  • Cerrar la integración del entorno de programación con bloqueo:
    • Adicional página especial Con equipo conectado. Le permite realizar un seguimiento del estado del bloque EV3 y obtener valores de los sensores en tiempo real.
    • Los sensores y motores se reconocen cuando están conectados automáticamente, gracias a la función de identificación automática. Esto le permite no especificar que dicho sensor o motor está conectado a dicho puerto.
  • Nuevo modo de depuración:
    • Durante la operación del programa, se resalta el bloque. Esto le permite comprender con precisión el comportamiento del programa.
    • En el bloque de programa se ilumina símbolo especialSi otro sensor o motor está conectado a este puerto.
    • Se agregó la capacidad de ver los valores transmitidos a través de canales de datos (cables de datos).
  • Nuevas características de los bloques de software:
    • El embrague de los bloques con el otro hizo posible abandonar la "viga de rendimiento" en la que se ubicaron los bloques en el medio NXT-G.
    • Los bloques no tienen tal concepto como el panel de configuración: el comportamiento ahora está configurado directamente en el bloque, lo que llevó a un aumento en su tamaño. El programa ahora es mucho más fácil de leer, consulte inmediatamente cómo se configuran los sensores y motores.
    • Los bloques de "cambio de espera" que le permiten responder al hecho de cambiar el valor, y no cambiar a un valor determinado como en NXT-G.
    • Las mejoras en la transmisión de datos desde el bloque hasta el bloque le permiten simplificar la conversión de tipo (ya no es necesario convertirla manualmente, por ejemplo, el número en la cadena).
    • Añadió la capacidad de trabajar con matrices.
    • Una salida terrible del ciclo se ha vuelto posible.

Además del nuevo lenguaje de programación, programas para Android y iPhone \\ iPad para controlar el robot apareció. También sobre la base programas Autodesk El editor invertidor creó un programa para crear y ver instrucciones paso a paso en 3D. En este programa, puede escalar y girar el modelo en cada etapa del ensamblaje, lo que le permite construir robots más complejos de acuerdo con las instrucciones.

Robots básicos

El conjunto educativo incluye instrucciones para montar 5 robots:

Clasificador de colores.
La tarea clásica para ordenar los elementos (en este caso es Parts LEGO) en color.

Chico gyro.
Robot Sigway usando un giroscopio para equilibrar.

Cachorro
Perro robot, que puede ser golpeado, alimentarse. Para dormir y hacer frente, ella también sabe cómo :) recuerda a Tamagotchi.

De ROBO
Le permite mover objetos.

Para el set EV3, se preparó el conjunto de recursos de LEGO Mindstorms Ev3 EV3, lo que le permite recolectar otros modelos utilizando piezas nuevas.

Al escribir el artículo, se usó el blog nntx.blogspot.com.

conexión USB

LEGO MINDSTORMS EV3 se puede conectar a una PC u otro EV3 por conexiones USB. La velocidad de la conexión y la estabilidad en este caso es mejor que con de otra manera, incluido Bluetooth.

LEGO MINDSTORMS EV3 tiene dos puertos USB.

Comunicación entre LEGO EV3 y otros bloques EV3 LEGO en el modo Plume.

Modo de conexión El bucle se usa para conectar dos o más bloques EV3 de LEGO.

Este modo:

  • diseñado para conectar más de una tormenta LEGO EV3;
  • utilizado para conectarse más Sensores, motores y otros dispositivos;
  • le permite comunicarse entre varias tormentas MINDSTorms EV3 (hasta 4), lo que nos da hasta 16 puertos externos y el mismo número de puertos internos;
  • hace posible administrar toda la cadena con las principales tormentas LEGO MINDSTORMS EV3;
  • no puede funcionar con activo conecte Wi-Fi o bluetooth.

Para habilitar el modo de conexión, luego moverlo a la ventana Configuración del proyecto y poner una garrapata.

Cuando se selecciona este modo, entonces para cualquier motor, podemos elegir la unidad EV3, que estará involucrada y los sensores necesarios.

La tabla muestra las opciones para usar los bloques EV3:

actuar

Motor

Motor grande

Direccion

Gestión independiente

Giroscópico

Infrarrojo

Ultrasónico

Rotación del motor

Temperatura

Medidor de energía

Sonar

Conexión a través de Bluetooth

Bluetooth permite que LEGO MINDSTORMS EV3 se conecte a PC, otras tormentas LEGO MINDSTORMS EV3, teléfonos inteligentes y otros dispositivos Bluetooth. Rango de comunicación del canal Bluetooth - hasta 25 m.

Puede conectar hasta 7 cuadras a una LEGO MINDSTORMS EV3. La unidad principal EV3 le permite enviar y recibir mensajes para cada Subordinado EV3. Los subordinados EV3 solo pueden enviar mensajes a la unidad principal EV3, pero no entre ellos.

Secuencia de conexión EV3 a través de Bluetooth

Para conectar dos o más bloques EV3 a Bluetooth, debe realizar las siguientes acciones:

1. Abra la pestaña Configuración.

2. Seleccionar Bluetooth Y presione el botón central.

3. Stavim Bandera visibilidad Bluetooth.

4. Compruebe que la señal Bluetooth ("<") виден на верхней левой стороне.

5. Haga el procedimiento mencionado anteriormente para el número deseado de bloques EV3.

6. Inicie sesión en la conexión: Conexión:

7. Haga clic en el botón de búsqueda:

8. Seleccione el EV3 que desea conectarse (o al que desea conectarse) y presione el botón central.

9. Conecte unos a otros uno y el segundo bloque con la clave de acceso.

Si haces todo correctamente, el icono aparecerá en la esquina superior izquierda.<>"De manera similar, conectando otros bloques EV3, si hay más de dos.

Si apagó Lego EV3, entonces la conexión desaparecerá y todos los artículos deberán repetir.

IMPORTANTE: Para cada bloque, su programa debe estar escrito.

Programa de muestra:

La primera unidad: cuando presiona el sensor táctil, la primera unidad EV3 transfiere el texto al segundo bloque con un retraso de 3 segundos (bloque principal).

Programa de ejemplo para 2 bloques:

El segundo bloque espera que el texto acepte desde el primer bloque, y tan pronto como lo reciba, la palabra se mostrará (en nuestro ejemplo, es la palabra "hola") durante 10 segundos (bloque subordinado).

Conexión a través de Wi-Fi

Una comunicación más larga es posible cuando el dongle Wi-Fi está conectado al puerto USB en EV3.

Para usar Wi-Fi, debe instalar un módulo especial en el bloque EV3 utilizando un conector USB (adaptador Wi-Fi (WNA1100), y también puede conectar Wi-Fi Dongle.

Tradicionalmente, robots construidos en la plataforma. LEGO MINDSTORMS EV3., programado utilizando el entorno gráfico de LabVIEW. En este caso, los programas se inician en el controlador EV3 y el robot funciona de forma autónoma. Aquí le informaré sobre una forma alternativa de controlar el robot: usando la plataforma .NET corriendo en la computadora.

Pero antes de proceder directamente a la programación, consideremos casos cuando pueda ser útil:

  • Control remoto de un robot con una computadora portátil (por ejemplo, presionando los botones)
  • Debe recopilar datos del controlador EV3 y procesarlos en el sistema externo (por ejemplo, para los sistemas IOT)
  • Cualquier otra situación cuando desee escribir un algoritmo de control en .NET y ejecutelo desde una computadora conectada al controlador EV3

LEGO MINDSTORMS EV3 API FOR.NET

La administración del controlador EV3 del sistema externo se realiza enviando comandos al puerto serie. El formato de comando en sí se describe en el kit de desarrollador de comunicación.

Pero la implementación de este protocolo es manualmente, el asunto es aburrido. Por lo tanto, puede usar la envoltura .NET Terminado que Brian Peek escribió cuidadosamente. Los códigos fuente de esta biblioteca se encuentran en el GitHub, y el paquete listo para su uso se puede encontrar en Nuget.

Conectar al controlador EV3

Para ponerse en contacto con el controlador EV3 usa la clase de ladrillo. Al crear este objeto en el constructor, debe transferir la implementación de la interfaz de ICOMMUNICA: un objeto que describe cómo conectarse al controlador EV3. Munication, Bluetoothcommunication y redes de comunicación están disponibles (conexión a través de WiFi).

La forma más popular de conectarse, a través de Bluetooth. Considere con más detalle este método de conexión.

Antes de que podamos conectarse programáticamente al controlador a través de Bluetooth, el controlador debe estar conectado a una computadora usando la configuración del sistema operativo.

Después de conectar el controlador, vamos a la configuración de Bluetooth y seleccionamos la pestaña COM PORT. Encontramos nuestro controlador, necesitamos extrovertido Puerto. Se especificará al crear un objeto BluetoothComunicing.

El código para conectarse al controlador se verá así:

Public Async Task Connect (VAR Communication \u003d New BluetoothComunication ("COM9"); var ladrillo \u003d _bric \u003d nuevo ladrillo (comunicación); Await _bick.connectasync ();)

Opcionalmente, puede especificar el tiempo de espera de conexión al controlador:

Await _Bric.Connectasync (TimesPan.Fomseconds (5));

La conexión al bloque a través de USB o WiFi se realiza de manera similar, a la excepción, a la excepción de que se utilizan los objetos de comunicación de USB y la comunicación.

Todas las acciones adicionales realizadas con el controlador se llevan a cabo a través del objeto de ladrillo.

Motores de giro

Para ejecutar comandos en el controlador EV3, nos dirigimos a la propiedad DIRTANCOMMAND del objeto de ladrillo. Primero, tratemos de iniciar los motores.

Supongamos que nuestro motor está conectado al puerto de un controlador, luego el inicio de este motor a una potencia del 50% se verá así:

Await _bick.directcommand.TurnMotoratPowerasync (Outwayport.A, 50);

Hay otros métodos para la gestión del motor. Por ejemplo, puede girar el motor en el ángulo especificado utilizando los métodos StepmotoratPowerAsync () y StepMotorateDasync (). Hay un total de varios métodos disponibles, que son variaciones en el modo de inclusión de motores, en tiempo, velocidad, potencia, etc.

La parada forzada se realiza por el método STOPMOTORASYNC ():

Await _Brick.DirectCommand.stopmotorasync (Outwayport.A, verdadero);

El segundo parámetro indica el uso del freno. Si lo instala en Falso, el motor detendrá "Rolling".

Lectura de valores de sensores

El controlador EV3 tiene cuatro puertos para conectar sensores. Además, los motores también tienen codificadores incorporados, lo que les permite usarlos como sensores. Como resultado, tenemos 8 puertos de los que puede leer los valores.

El acceso a los puertos a los valores de lectura se puede obtener a través de la propiedad de puertos de objetos de ladrillo. Los puertos son una colección de puertos disponibles en el controlador. Por lo tanto, para trabajar con un puerto específico que necesite elegirlo. Inputport.one ... inputport.four son puertos para sensores e inputport.a ... inputport.d son codificadores de motor.

Var port1 \u003d _bric.ports;

Los sensores en EV3 pueden operar en diferentes modos. Por ejemplo, el sensor de color EV3 se puede usar para medir la iluminación externa, las mediciones de la luz reflejadas o para determinar el color. Por lo tanto, para "informar" al sensor sobre cómo queremos usarlo, debe preguntarlo:

Ladrillo.ports.setmode (colormodo.reflective);

Ahora que el sensor está conectado y se especifica el modo de operación, los datos se pueden considerar a partir de él. Puede obtener datos "crudos", procesados \u200b\u200by valorar en porcentaje.

Flotar si \u003d _Brick.ports.Sivalue; int raw \u003d _bric.ports.rewvalue; byte por ciento \u003d _bric.ports.percentvalue;

La propiedad de Sivalue devuelve los datos procesados. Todo depende de qué tipo de sensor se use y en qué modo. Por ejemplo, al medir la luz reflejada, obtenemos un valor de 0 a 100, dependiendo de la intensidad de la luz reflejada (negro / blanco).

La propiedad Rawvalue devuelve el valor "crudo" obtenido del ADC. A veces es conveniente usarlo para su posterior procesamiento y uso. Por cierto, en el entorno de desarrollo EV3, también existe la posibilidad de obtener valores "crudos", para esto, debe usar el bloque desde el panel azul.

Si el sensor utilizado asume la recepción de valores en porcentaje, también puede usar la propiedad del valorvalor.

Ejecución de los equipos "Paquete"

Supongamos a nuestra disposición, hay un carrito de robot con dos ruedas y queremos desplegarlo en su lugar. En este caso, dos ruedas deben girar en la dirección opuesta. Si utilizamos DirectCommand y enviamos constantemente dos comandos al controlador, puede haber algún tiempo entre su ejecución:

Await _bick.directcommand.TurnMotoratPowerasync (Outwayport.A, 50); Await _Brick.DirectCommand.TurnMototPowersync (Outwayport.b, -50);

En este ejemplo, enviamos un comando para rotar el motor A a una velocidad de 50, después de completar con éxito al enviar este comando, repita lo mismo con el motor conectado al puerto B. El problema es que el envío de comandos no es instantáneamente , por lo que los motores pueden comenzar a girar en diferentes momentos, mientras que el comando B, motor A ya Empezar a girar.

Si es crítico para nosotros forzar a los motores simultáneamente, puede enviar comandos al "paquete" del controlador. En este caso, debe usar la propiedad BatchCommand en lugar de DirectCommand:

Ladrillo.batchcommand.tururnmotoratPower (Outwayport.A, 50); _Bric.BatchCommand.TurnMotRatPower (Outwayport.b, -50); esperar _blick.batchcommand.sendcommandasync ();

Ahora se preparan dos equipos a la vez, después de lo cual van al controlador con un paquete. El controlador, que ha recibido estos comandos, comience a girar los motores al mismo tiempo.

Qué más puedes hacer

Además de los motores giratorios y los valores de sensor de lectura, puede realizar una serie de acciones en el controlador EV3. No lo mantendré en detalle en el KAT de ellos, enumeraré solo una lista de lo que se puede hacer:

  • CLEANUIASYNC (), DrawTexteSync (), Drawlineasync () y otra manipulación del controlador de pantalla incorporado EV3
  • Playtoneasync () y playsoundasync (): usando el altavoz incorporado para reproducir sonidos
  • WriteFileasync (), CopyFileEncync (), DeleteFileEncync () (de SystemCommand) - Trabajar con archivos

Conclusión

Usando .NET para administrar los robots MindStorms EV3, se demuestra que las tecnologías "de diferentes mundos" pueden trabajar juntos. Como resultado del estudio, la API EV3 FOR.NET se creó una pequeña aplicación que le permite administrar el robot EV3 de la computadora. Desafortunadamente, existen aplicaciones similares para NXT, y EV3 pasaron por alto la fiesta. Al mismo tiempo, son útiles en la revitalización de los robots administrados, por ejemplo, en los robots de fútbol.

La aplicación se puede descargar e instalar en este enlace: