Control remoto simple de un robot desde una computadora. Robot autónomo basado en Arduino con capacidad de control remoto Robots controlados a distancia

Controlar un robot es una tarea desafiante. La definición que hemos elegido requiere que el dispositivo sea consciente de su entorno. Luego tome una decisión y tome las medidas apropiadas. Los robots pueden ser autónomos o semiautónomos.

  1. Un robot autónomo funciona de acuerdo con un algoritmo dado basado en los datos recibidos de los sensores.
  2. Un robot semiautónomo tiene tareas que son controladas por un humano. Y además hay otras tareas que realiza por su cuenta...

Robots semiautónomos

Un buen ejemplo de un robot semiautónomo es un robot submarino complejo. El humano controla los movimientos básicos del robot. Y en este momento, el procesador integrado mide y responde a las corrientes submarinas. Esto le permite mantener el robot en la misma posición sin desviarse. Una cámara a bordo del robot envía el video al ser humano. Además, los sensores a bordo pueden monitorear la temperatura del agua, la presión y más.

Si el robot pierde contacto con la superficie, entonces el programa autónomo se enciende y eleva el robot submarino a la superficie. Para poder controlar su robot, deberá determinar su nivel de autonomía. Quizás quieras que el robot sea controlado por cable, sea inalámbrico o completamente autónomo.

Mantenimiento de cable

La forma más fácil de controlar un robot es con un controlador manual conectado físicamente a él con un cable. Los interruptores, perillas, palancas, joysticks y botones de este controlador permiten al usuario controlar el robot sin tener que encender componentes electrónicos complejos.

En esta situación, los motores y la fuente de alimentación se pueden conectar directamente al interruptor. Por lo tanto, se puede controlar su rotación hacia delante/hacia atrás. Se utiliza comúnmente en vehículos.

No tienen inteligencia y se consideran "máquinas controladas a distancia" en lugar de "robots".


  • Las principales ventajas de esta conexión es que el robot no está limitado por el tiempo de funcionamiento. Ya que se puede conectar directamente a la red. No hay necesidad de preocuparse por la pérdida de señal. El robot, por regla general, tiene un mínimo de electrónica y no es muy complejo. El robot en sí puede ser liviano o tener una carga adicional. El robot se puede recuperar físicamente con una correa atada al cable si algo sale mal. Esto es especialmente cierto para los robots submarinos.
  • Las principales desventajas son que el cable puede enredarse, engancharse en algo o romperse. La distancia a la que se puede enviar el robot está limitada por la longitud de la cuerda. Arrastrar una correa larga agrega fricción y puede ralentizar o incluso detener el movimiento del robot.

Control de robot a través de cable y microcontrolador incorporado

El siguiente paso es instalar el microcontrolador en el robot, pero seguir usando el cable. Conectar el microcontrolador a uno de los puertos de E/S de su computadora (como un puerto USB) le permite controlar sus acciones. El control se realiza mediante el teclado, joystick u otro dispositivo periférico. Agregar un microcontrolador a un proyecto también puede requerir que programe el robot con señales de entrada.


  • Las principales ventajas son las mismas que con el control directo por cable. Se pueden programar comportamientos y reacciones de robots más complejos a botones o comandos individuales. Hay una gran selección de controles de controlador (mouse, teclado, joystick, etc.). El microcontrolador agregado tiene algoritmos incorporados. Esto significa que puede interactuar con sensores y tomar ciertas decisiones por sí mismo.
  • Las desventajas incluyen un mayor costo debido a la presencia de electrónica adicional. Otras desventajas son las mismas que con el control directo del robot por cable.

Control Ethernet

utilizado conector ethernet rj45. Se requiere una conexión Ethernet para el control. El robot está conectado físicamente al enrutador. Por lo tanto, se puede controlar a través de Internet. También es posible (aunque no muy práctico) para robots móviles.

Configurar un robot que pueda comunicarse a través de Internet puede ser bastante complicado. En primer lugar, se prefiere una conexión WiFi (internet inalámbrica). La combinación con cable e inalámbrica también es una opción cuando hay un transceptor (transmitir y recibir). El transceptor está físicamente conectado a Internet y los datos recibidos a través de Internet se transmiten de forma inalámbrica al robot.


  • La ventaja es que el robot se puede controlar a través de Internet desde cualquier parte del mundo. El robot no tiene límite de tiempo ya que puede usar Power over Ethernet. PoE. Esta es una tecnología que permite la transmisión de energía eléctrica junto con datos a un dispositivo remoto a través de un cable de par trenzado estándar sobre una red Ethernet. El uso del Protocolo de Internet (IP) puede simplificar y mejorar el esquema de comunicación. Las ventajas son las mismas que con el control por computadora con cable directo.
  • La desventaja es una programación más compleja y las mismas desventajas que con el control por cable.

control remoto por infrarrojos

Los transmisores y receptores infrarrojos eliminan el cable que conecta el robot al operador. Esto es generalmente utilizado por principiantes. El control infrarrojo requiere una "línea de visión" para funcionar. El receptor debe poder "ver" el transmisor en cualquier momento para recibir datos.

Los controles remotos infrarrojos (como los controles remotos universales para televisores) se utilizan para enviar comandos a un receptor infrarrojo conectado a un microcontrolador. Luego interpreta estas señales y controla las acciones del robot.


  • La ventaja es el bajo costo. Se pueden usar controles remotos de TV simples para controlar el robot.
  • Las desventajas son que requiere una línea de visión para controlar.

radio control

El control de radiofrecuencia requiere un transmisor y un receptor con pequeños microcontroladores para enviar, recibir e interpretar datos de radiofrecuencia (RF). Hay una placa de circuito impreso (PCB) en la caja del receptor, que contiene la unidad receptora y un pequeño controlador de servomotor. La comunicación por radio requiere un transmisor emparejado/emparejado con el receptor. Es posible utilizar un transceptor que pueda enviar y recibir datos entre dos entornos de sistemas de comunicación físicamente diferentes.

El control por radio no requiere una línea de visión directa y se puede llevar a cabo a largas distancias. Los dispositivos de RF estándar pueden transmitir datos entre dispositivos a distancias de hasta varios kilómetros. Mientras que los dispositivos de RF más profesionales pueden proporcionar control del robot a casi cualquier distancia.


Muchos diseñadores de robots prefieren construir robots controlados por radio semiautónomos. Esto permite que el robot sea lo más autónomo posible y brinde retroalimentación al usuario. Y puede dar al usuario cierto control sobre algunas de sus funciones si es necesario.

  • Las ventajas son la capacidad de controlar el robot a distancias considerables, se puede configurar fácilmente. La comunicación es omnidireccional, pero es posible que no pase completamente bloqueada por paredes u obstáculos.
  • Las desventajas son la tasa de transferencia de datos muy baja (solo comandos simples). Además, debe prestar atención a las frecuencias.

mando bluetooth

Bluetooth es una señal de radio (RF) y se transmite a través de ciertos protocolos para enviar y recibir datos. El rango normal de Bluetooth a menudo se limita a alrededor de 10 m, aunque tiene la ventaja de permitir a los usuarios controlar su robot a través de dispositivos habilitados para Bluetooth. Estos son principalmente teléfonos celulares, PDA y computadoras portátiles (aunque es posible que se requiera una programación personalizada para crear la interfaz). Al igual que el control de radio, Bluetooth ofrece comunicación bidireccional.


  • Beneficios: Administrado desde cualquier dispositivo habilitado para Bluetooth. Pero, como regla, se requiere programación adicional. Estos son teléfonos inteligentes, computadoras portátiles, etc. Las velocidades de datos más altas pueden ser omnidireccionales. Por lo tanto, la línea de visión no es necesaria y la señal puede atravesar un poco las paredes.
  • Desventajas. Debe trabajar en parejas. La distancia suele ser de unos 10m (sin obstáculos).

control wifi

El control WiFi suele ser un extra opcional para los robots. La capacidad de controlar un robot de forma inalámbrica a través de Internet presenta algunas ventajas significativas (y algunas desventajas) para el control inalámbrico. Para configurar el control Wi-Fi del robot, necesita un enrutador inalámbrico conectado a Internet y una unidad WiFi en el propio robot. Para el robot, puede utilizar un dispositivo que admita el protocolo TCP/IP.


  • La ventaja es la capacidad de controlar el robot desde cualquier parte del mundo. Para hacer esto, debe estar dentro del alcance del enrutador inalámbrico. Son posibles altas tasas de transferencia de datos.
  • Las desventajas son que se necesita programación. La distancia máxima suele estar determinada por la elección del enrutador inalámbrico.

control de celular

Otra tecnología inalámbrica que se desarrolló originalmente para la comunicación entre humanos, el teléfono celular, ahora se usa para controlar robots. Dado que las frecuencias de los teléfonos celulares son ajustables, habilitar el módulo celular en el robot generalmente requiere programación adicional. Tampoco requiere comprensión del sistema y las reglas de la red celular.


  • Ventajas: el robot se puede controlar en cualquier lugar donde haya señal celular. La comunicación por satélite es posible.
  • desventajas; configurar el control sobre el celular puede ser complicado, no para principiantes. Cada red celular tiene sus propios requisitos y limitaciones. El servicio en línea no es gratuito. Por lo general, cuantos más datos transfiera, más dinero tendrá que pagar. El sistema aún no se ha configurado para su uso en robótica.

El siguiente paso es utilizar completamente el microcontrolador en su robot. Y antes que nada, programando su algoritmo para ingresar datos de sus sensores. El control autónomo puede ejercerse de diversas formas:

  1. ser preprogramado sin retroalimentación del entorno
  2. con retroalimentación limitada de los sensores
  3. con retroalimentación de sensor compleja

El verdadero control autónomo incluye muchos sensores y algoritmos. Permiten que el robot determine de forma independiente la mejor acción en cualquier situación dada. Los métodos de control más sofisticados actualmente implementados en robots autónomos son los comandos visuales y auditivos. Para el control visual, el robot mira a una persona u objeto para recibir sus comandos.


Controlar un robot para que gire a la izquierda leyendo una flecha que apunta hacia la izquierda en una hoja de papel es mucho más difícil de lo que uno podría imaginar. Un comando de servicio como "girar a la izquierda" también requiere bastante programación. Programar muchos comandos complicados como "Tráeme las pantuflas" ya no es una fantasía. Aunque requiere un altísimo nivel de programación y mucho tiempo.

  • Los beneficios son la robótica "real". Las tareas pueden ser tan simples como hacer parpadear una luz según las lecturas de un solo sensor, hasta aterrizar una nave espacial en un planeta distante.
  • Las desventajas dependen únicamente del programador. Si el robot está haciendo algo que no quieres que haga, solo tienes una opción. Esto es para comprobar su código, cambiarlo y subir los cambios al robot.

parte práctica

El objetivo de nuestro proyecto es crear una plataforma autónoma capaz de tomar decisiones basadas en señales externas de sensores. Usaremos un microcontrolador Lego EV3. Nos permite hacerlo como una plataforma completamente autónoma. Así semiautónomo, controlado a través de Bluetooth o mediante un mando a distancia por infrarrojos.


Ladrillo programable LEGO EV3

Hoy no sorprenderás a nadie con radiocontrol hecho en casa. Pero debes admitir que, de alguna manera, "a la antigua" presionar las teclas de control ... Es mucho más interesante administrar artesanía con pinceladas, ¿no? Este artículo muestra un ejemplo de cómo puede configurar el control remoto utilizando una placa Arduino y varios sensores de curvatura. PHIRO Pro actuará como sujeto de prueba

Paso 1: Lo que necesitas

  • sensores de flexión;
  • Arduino UNO;

  • Módulo Bluetooth HC-05;

  • Guante;

  • Saltadores;

  • batería 9B;

  • Aplicación de código de bolsillo.

Paso 2: cargando el estándar Firmata en el Arduino

Es necesario cargar el estándar firmata en la placa Arduino para conectarla con Pocket Code. En este proyecto usamos un Arduino UNO, sin embargo se puede usar cualquier placa Arduino.

  • Conectamos la placa Arduino al ordenador/portátil.
  • En Arduino ID, seleccione Puerto COM. Herramientas -> Puerto serie -> Puerto COM correspondiente
  • A continuación, seleccione el tipo de tablero. Herramientas -> Tablero -> Tu tablero Arduino
  • Luego seleccionamos el estándar Firmata. Ejemplos -> Firmata -> Firmata estándar
  • Haga clic en "Cargar" y cargue el código en el tablero.

Paso 3: Conecte los sensores a la placa y adjúntelos al guante

Los sensores de flexión son dispositivos resistivos que se pueden usar para detectar flexión o inclinación. A continuación se muestra un diagrama de cableado para sensores en el Arduino. Utilicé soportes de engrapadora doblados para unir de forma segura los sensores al guante, pero puede usar bridas de plástico si lo desea.

Paso 4: Conexión del Módulo Bluetooth HC-05 al Arduino

Conectamos las salidas del módulo bluetooth y la placa Arduino de la siguiente manera:

  • HC05 Tx - Arduino Rx
  • HC05 Rx - Arduino Tx
  • Vcc - 5V
  • GND-GND

Paso 5: Conexión del Arduino a la batería

Usamos una batería de 9V para alimentar la placa Arduino con el módulo Bluetooth. Este tipo de disposición se explica por la posibilidad de un fácil montaje en la muñeca/pulsera. Cuanto más compacto, mejor.

Paso 6: Programa de código de bolsillo

A continuación se muestran ejemplos del uso del programa. En primer lugar, asegúrese de que PHIRO Pro esté en Modo 3 (Modo Bluetooth). Presione el botón Modo en el PHIRO antes de que se encienda el LED azul junto a la pantalla en la parte superior.

Para el programa, hay 7 modos en general.

  • El dedo índice está extendido. Los faros brillan en rojo. El programa muestra STOP.
  • Los dedos índice y medio están extendidos. Los faros brillan en verde. El programa muestra STOP.
  • Los dedos índice, medio y anular están estirados. Los faros brillan en azul. El programa muestra STOP.
  • La palma está abierta. PHIRO avanza. Los faros brillan en blanco. El programa muestra FORWARD (adelante).
  • La palma se aprieta en un puño. PHIRO se detiene. Los faros están apagados. El programa muestra STOP.
  • La palma de la mano se cierra en un puño y se inclina hacia la izquierda (el teléfono se inclina hacia la izquierda). PHIRO gira a la izquierda. El faro izquierdo brilla en amarillo. El programa muestra LEFT (a la izquierda).
  • La palma de la mano se cierra en un puño y se inclina hacia la derecha (el teléfono se inclina hacia la derecha). PHIRO gira a la derecha. El faro derecho se ilumina en amarillo. El programa muestra DERECHA (derecha).

Paso 7: Realizamos la instalación final

Para montar el teléfono en tu brazo, puedes usar una muñequera o hacer como hice yo.

Compré una funda barata para mi teléfono móvil, corté agujeros y estiré la cinta de velcro. La pulsera con el teléfono está lista.

¡Eso es todo!) Gracias por su atención)

Para ganar experiencia en el trabajo con la placa Arduino, por así decirlo, como una experiencia de aprendizaje y solo por diversión, se creó este proyecto. El objetivo del proyecto era crear un automóvil que pudiera moverse de forma autónoma alrededor de varios obstáculos sin chocar con ellos.

Paso 1: Lista de componentes y costo del proyecto

1. Coche de juguete con radio control (radiocontrolado).

Esta cosa cuesta alrededor de 20 dólares, si tienes la oportunidad de gastar más, puedes usarlo mejor.

2. Microcontrolador Arduino Uno - $25

3. Escudo de motor para controlar motores eléctricos - $20

4. GPS para navegación. Escudo GPS definitivo de Adafruit - $50

5. Magnetómetro como brújula para la navegación. Magnetómetro Adafruit HMC5883 - $10

6. Sensor de distancia ultrasónico para evitar obstáculos. HC-SR04 - $6

7. Pantalla LCD para mostrar el estado y la información del vehículo. Pantalla LCD Azul 1602 IIC, I2C TWI - $6 (puede usar otro)

8. Sensor infrarrojo y control remoto.

9. Bosquejo de Arduino (programa C++).

10. Tablero de madera delgada como plataforma de montaje.

11. Protoboards. Uno es largo y estrecho, y el otro es pequeño para instalar el magnetómetro por separado lejos de otros elementos.

12. Puentes.

13. Kit de montaje de sensor ultrasónico - $12

14. Soldador y estaño.

Entonces, en total, costó alrededor de $150, suponiendo que compre todos estos componentes, porque es posible que ya tenga algunos de ellos.

Paso 2: Montaje del chasis y la plataforma

Se quitó el control de radio de un juguete no deseado que costó 15 dólares.

Este coche tiene dos motores. Con la ayuda de un motor, el control remoto controla la velocidad del robot, y con la ayuda del otro, se controla la dirección.

Se utilizó una placa delgada como superficie de montaje, en la que se adjuntaron placas de prueba, Arduino, LCD, etc. Las baterías se colocan debajo del tablero y los cables se pasan a través de los agujeros perforados.

Paso 3: programa

El Arduino se controla a través de un programa C++.

Fuente

RC_Car_Test_2014_07_20_001.ino

Paso 4: Pantalla LCD

Durante el funcionamiento, la pantalla muestra la siguiente información:

Fila 1:

1. TH - Blanco, rumbo al waypoint actual

2. CH - Dirección actual del robot

Fila 2:

3. Err - Dirección de la brújula, muestra en qué dirección se mueve el robot (izquierda o derecha)

4. Dist - Distancia focal (en metros) al waypoint actual

Fila 3:

5. SNR: distancia de sonda, es decir, la distancia a cualquier objeto frente al robot

6. Spd - Velocidad del robot

Fila 4:

7. Mem - Memoria (en bytes). La memoria Arduino tiene 2 KB

8. WPT n OF x: muestra dónde se encuentra el robot en la lista de waypoints

Paso 5: Evite colisiones con objetos

Para que el robot evite obstáculos, aquí se utilizó un sensor ultrasónico "Ping". Se decidió combinarlo con la biblioteca Arduino NewPing, ya que es mejor que la biblioteca Ping simple.

La biblioteca fue tomada de aquí: https://github.com/fmbfla/Arduino/tree/master/NewPing

El sensor estaba montado en el parachoques del robot.

Control remoto, ver. 0.1.1

(controle el robot de forma remota a través de Wi-Fi desde una tableta en modo manual)

programa multipropósito para mod OpenComputers

El programa le permite obtener un control total sobre el robot, realizar muchas acciones de forma remota, mientras ve el propio robot y sus parámetros.

Por ejemplo, puede llevar un robot a lugares de difícil acceso, descargar uranio del reactor sin irradiarse, construir una estructura simple donde usted mismo no puede llegar todavía, o viceversa, traer algo. El robot está bajo su completo control.

Una aplicación divertida del programa es atacar a los jugadores. Según los ajustes de configuración, los robots pueden realizar acciones relacionadas con el uso de objetos, encender y apagar botones, palancas y mecanismos y herramientas en la privacidad de otra persona, aunque no destruyen la privacidad. Es posible realizar un ataque y demoler todos los destiladores, combustible diesel y molinos de viento del jugador, si no está en el juego y no ocultó todo desde el techo, o no instaló guardias y no detectó a los atacantes.

Puede atornillar la cámara del reactor a la pared de la víctima, empujar una barra de uranio 4 allí, encender la piedra roja en el robot y volar la pared en varios bloques, si el jugador-víctima descuidado ha cerrado la casa del tyutelka en el tyutelka a lo largo del borde de la pared, como suelen hacer los jugadores =).

El reactor en TI en la configuración destruye bloques dentro de un radio de 2 a 4 bloques. Existe la posibilidad de que entres a escondidas en la casa de la víctima, mientras estás a cubierto y no se te puede ver de ninguna manera.

Código del programa (último):

LA TABLETA:(pastebin obtener b8nz3PrH tabletRC.lua)

ROBOT:(pastebin obtener 7V2fvm7L robotRC.lua)

Versiones antiguas (antiguas):

Requisitos para la configuración del robot y la tableta ( basado en el mapa vinculado, se requiere, el controlador de inventario también se requiere en el robot, el resto es opcional. Puede tirar los letreros y rellenar el controlador del cubo, agregar una pequeña línea y frotar líquidos, etc. ChL aún no se utiliza en el programa. Para el cuello, una tabla roja, un imán, un gran inventario es muy deseable):

Tableta (toma dura inmediatamente con el sistema operativo instalado):

Robot (por el momento, puede rechazar el CL y empujar el controlador-expansor de las placas. Luego puede empujar el robot sobre la marcha, si es necesario, tarjeta WF o tarjeta INET):

¡Hola Habrahabr! Yo estaba sentado en la noche del 11 de junio, viendo una película. Inesperadamente para mí, descubrí que una mujer que no conocía me había escrito con una propuesta para hacer un robot para su nueva búsqueda. La conclusión es que necesitas resolver acertijos, explorar cachés, aplicar pistas correctamente, usar cosas disponibles y eventualmente obtener llaves y abrir puertas... Me pidieron que hiciera un robot controlado desde una computadora usando un programa separado. Tenía dudas sobre algunos problemas, por ejemplo: ¿tendré tiempo y cómo hacer exactamente la transferencia inalámbrica de datos (antes solo me he ocupado de la transferencia inalámbrica de datos en NXT)? Después de sopesar los pros y los contras, acepté. Después de eso, comencé a pensar en la transferencia de datos. Como era necesario hacer el robot rápido, no había tiempo para recordar y dominar, por ejemplo, Delphi, entonces surgió la idea de hacer un módulo que enviara comandos. La computadora simplemente necesita enviar datos al puerto COM. Este método es extraño, pero el más rápido. Quiero describirlo aquí. También te adjuntaré 3 programas que te ayudarán a hacer un coche a radiocontrol.
Montaje del transmisor y su programa.
Hice un módulo para una computadora de FTDI Basic Breakout 5 / 3.3V de DFrobot, un microcontrolador ATMEGA 328P-PU bastante común con un cargador de arranque Arduino y un módulo de radio basado en el chip nRF24L01. De hecho, es solo un Arduino Uno con un módulo de radio. Es lo que es. El módulo de radio tiene una característica que no noté de inmediato: el voltaje de entrada debe estar en el rango de 3 a 3.6 voltios (aunque aplicarle 5 voltios no lo matará, pero no funcionará), el límite superior del unidad lógica es 5V. Esto significa que para conectar el módulo de radio al mega, no necesitas un convertidor de nivel entre 3.3V y 5V, pero necesitas instalar un estabilizador de 3.3V. FTDI tiene un estabilizador incorporado, desde el cual alimenté el módulo de radio.

Así es como se ve el módulo en sí (dentro y en el ensamblaje):

El programa consta de inicialización, mensaje de inicio y procesamiento de comandos del programa de control. Así fue en mi caso. Los principales comandos de la biblioteca Mirf:

#incluir
#incluir
#incluir
#incluir
#incluir
Estas bibliotecas son necesarias para el funcionamiento del módulo de radio.

Mirf.csnPin = 4: establece el número del pin responsable del "permiso para comunicarse" del módulo de radio y el MK
Mirf.cePin = 6: establece el número del pin responsable del modo de funcionamiento del módulo de radio (receptor / transmisor)
Mirf.spi = &MirfHardwareSpi - establece la línea SPI
Mirf.init() - inicializa el módulo de radio
Mirf.payload = 1 - tamaño en bytes de un mensaje (predeterminado 16, máximo 32)
Mirf.channel = 19 - establece el canal (0 - 127, predeterminado 0)
Mirf.config() - establece los parámetros de transferencia


Mirf.setTADDR((byte *)"serv1") - cambia el módulo de radio al modo transmisor
Mirf.setRADDR((byte *)"serv1") - cambia el módulo de radio al modo receptor

Mirf.send (datos): envía una matriz de tipo byte
Mirf.dataReady() - informa el final del procesamiento de los datos recibidos
Mirf.getData (datos): escribe los datos recibidos en la matriz de datos

Adjunto el código del transmisor.

programa transmisor

#incluir
#incluir
#incluir
#incluir
#incluir

Carácter activo;
datos de bytes;

Configuración de anulación ()
{
Serie.begin(19200);

Mirf.csnPin = 4;
Mirf.cePin = 6;

Mirf.init();
Mirf.carga útil = 1;
Mirf.canal = 19;
Mirf.config();

Mirf.setTADDR((byte *)"serv1");

//mensaje de señal sobre el inicio del trabajo
datos=7;
Mirf.send(datos);
retraso (200);
}

Bucle vacío ()
{
if (Serial.disponible()) //Si los datos están listos para ser leídos
{
activo=Serial.read(); // Escribir datos en una variable
}

Si (activo=="2")
{
datos=2;
}

Si (activo=="3")
{
datos=3;
}

Si (activo=="4")
{
datos=4;
}

Si (activo=="5")
{
datos=5;
}

Si (activo=="6")
{
datos=6;
}

Mirf.send(datos); // Enviar datos
while(Mirf.esEnviando()); // Esperar a que se envíen los datos
}

Programa de control.

Hay una cosa interesante - Procesamiento. La sintaxis es la misma que en Arduino, solo que en lugar de void loop () hay void draw (). Pero se volvió aún más interesante en mi situación con la biblioteca Serial de procesamiento, que le permite trabajar con el puerto serie. Después de leer las lecciones en el sitio web de Spurkfun, jugué con el parpadeo del LED en el arduino conectado a la computadora con un clic del mouse. Después de eso, escribí un programa para controlar el robot desde el teclado. Adjunto el código de control usando las flechas. En principio, no hay nada inusual en ello.

Programa de control de la máquina

proceso de importación.serial.*;
importar cc.arduino.*;

Serial myPort;
PFont f=createFont("LetterGothicStd-32.vlw", 24);

Configuración de anulación ()
{
tamaño (360, 160);
accidente cerebrovascular (255);
fondo(0);
fuente de texto (f);

String nombrePuerto = "XXXX"; // Aquí necesitas escribir el nombre de tu puerto
myPort = new Serial(this, portName, 19200);
}

Sorteo nulo() (
si (tecla presionada == falso)
{
claro();
miPuerto.write("6");
imprimir("6");
}
}

Void keyPressed()
{
// 10 - entrar
// 32 - espacio
// 37/38/39/40 - llaves
claro();

llenar (255);
textAlign(CENTRO);
//texto(claveCodigo, 180, 80);

Interruptor (código clave)
{
caso 37:
texto("Edem vlevo", 180, 80);
miPuerto.write("1");
romper;

Caso 38:
texto("Edem priamo", 180, 80);
miPuerto.write("2");
romper;

Caso 39:
texto("Edem vpravo", 180, 80);
miPuerto.write("3");
romper;

Caso 40:
texto("Edem nazad", 180, 80);
miPuerto.write("4");
romper;

defecto:
text("Takoy kommandi net", 180, 80);
miPuerto.write("6");
romper;
}
}

programa receptor.

La inicialización de este programa difiere de la inicialización del programa del transmisor en una sola línea. El comando clave en el ciclo sin fin es Mirf.getData(datos). Además, el comando recibido se compara con los números que corresponden a cualquier acción del robot. Bueno, entonces el robot actúa exactamente según los comandos. Adjunto el código del programa del receptor de la máquina.

Programas de máquina

#incluir
#incluir
#incluir
#incluir
#incluir

Configuración de anulación ()
{
Serial.begin(9600);

PinMode(13, SALIDA); //DIRIGIÓ

Mirf.csnPin = 10;
Mirf.cePin = 9;
Mirf.spi=
Mirf.init();
Mirf.carga útil = 1;
Mirf.canal = 19;
Mirf.config();
Mirf.setRADDR((byte *)"serv1");
}

Bucle vacío ()
{
datos de bytes;

If(!Mirf.isSending() && Mirf.dataReady())
{
Mirf.getData(datos);
Serial println(datos);
}

Cambiar (datos)
{
caso 1:
motores (-100, 100); // Gire a la izquierda
romper;

Caso 2:
motores (100, 100); // Siga derecho
romper;

Caso 3:
motores(100, -100); // Gire a la derecha
romper;

Caso 4:
motores (-100, -100); // regresa
romper;

defecto:
motores(0, 0); // en pie
romper;
}

retraso (50);
}

Conclusión.

Lo que salió de todo:

Hice este robot para la claustrofobia. Realizan misiones en la realidad en diferentes ciudades, y solo para una de estas misiones, los organizadores necesitaban un robot zapador controlado por radio. Me gusta. Esto, por supuesto, es perjudicial, porque en el contexto del control utilizando los medios de comunicación integrados en la computadora portátil, pero por otro lado, se hizo muy rápido y sin ningún problema. Espero que este artículo ayude a hacer algo similar, y tal vez incluso más difícil. Aquí, el que quiera.

Etiquetas: Agregar etiquetas