MURVV - el Robot móvil (7 / 9 paso)

Paso 7: Software: lado de la PC

Puesto que la CE está actuando como el cerebro de este proyecto, la mayoría de las interacciones con los Phidgets se encargará de por él. Sin embargo, a menos que usted está preponiendo el robot autónomas, algún tipo de conexión a un PC externo debe hacerse por lo que se puede controlar. En última instancia, esto significa que tendremos un programa ejecutándose en el equipo que toma la entrada del usuario y un programa en el SBC que controla los controladores de motor etc.... Comunicación entre los dos programas se tratarán de utilizar el Diccionario Phidget.

La PC encarga de tomar la entrada del usuario y traducirla a una serie de velocidades de motor deseados, mostrando cierta información y controles y ver la webcam de la alimentación. Ya que la rueda de mecanum permite debe ser controlable en 3 ejes independientes (x, y y una rotación) el método más popular de control de este tipo de robot es un estilo de joystick doble con un joystick de control x y y movimiento y el otro joystick control de rotación. Terminamos con un joystick solo que tenía un eje adicional construido en él, pero en la práctica todo lo que le permite controlar la posición en 3 canales diferentes funcionaría. El joystick que se conecta directamente a los puertos de entrada analógicos en un 1018, esto es bueno ya que facilita el código para la toma de entrada de la palanca de mando.

Tomar entrada

Esta función recopila datos de cada canal de la palanca de mando cada vez que hay un cambio en uno de los canales y luego envía a una función que convierte la posición de la palanca de mando en una magnitud, dirección (x e y del vector) y una rotación (el eje final de la palanca de mando). La matemática en cada valor del sensor es centrar alrededor de 0 en lugar de 500 (o 2000 en el caso de RawValue). El canal 3 de nuestro joystick ha gama más limitada que las otras dos, por lo tanto, sólo dividimos por 1500, no 2000.

Convertir entrada
La función que convierte estos datos en algo utilizable se ve así:

Calcular la velocidad de la rueda

Una vez que tenemos una dirección, el rumbo y la rotación es necesario calcular la cantidad de energía para dar cada motor para conseguir el movimiento deseado. En un vehículo normal sería bastante sencillo pero con rueda de mecanum hay un poco de trabajo involucrados.

La primera cosa que podría parecer extraña aquí es la magnitud = magnitud * Math.Sqrt(2.0); línea. Se trata de un artefacto de cómo función de palancas de mando. Para entender mejor, echar un vistazo en el siguiente diagrama:

Puesto que las palancas de mando tienen un rango circular de movimiento que tenga el problema será sólo alcance un máximo X o Y valor cuando estés en el eje X o Y. Así que si estás en cualquier rumbo distinto de 0, 90, 180 o 270 ° usted nunca será capaz de viajar a toda velocidad. Escalando la magnitud por la raíz cuadrada de 2 puede ser que llegar a toda velocidad en todos los títulos, y puesto que las velocidades de rueda todos Haz normalizadas después usted no tiene que preocuparse por exceder la velocidad máxima que pueden alcanzar los motores.

Cuando calcular la dirección y la velocidad para girar las ruedas en basada en la palanca de mando de entrada hay dos maneras comunes de representar un punto en un plano 2d: coordenadas cartesianas y coordenadas polares. Para generalizar nuestro código a cualquier controlador hemos usado polar, aunque el algoritmo se puede quizás más fácilmente entender si en cambio observamos en el más tradicional sistema de coordenadas cartesianas. Vamos a usar otra vez el caso de palancas de mando doble se utiliza para controlar el robot:

Mediante la suma de vectores de fuerza para cada una de las principales indicaciones podemos obtener un vector resultante que será de la magnitud correcta y dirección. Observe que el diagrama sólo muestra las indicaciones para valores positivos de X, Y y Z (MovementX, MovementY y RotationX). Para valores negativos que las flechas revertirse simplemente, las matemáticas mantiene igual. Lo último que hacemos es normalizar los valores, por lo que son de una magnitud de escala 0 y 1, por la velocidad máxima del motor para que sean un porcentaje proporcional de velocidad máxima y agregue el modificador de dirección:

La frontLeftDir, frontRightDir etc.... los modificadores se utilizan para invertir los valores de los motores que están orientados en la dirección opuesta. Recuerda que dos de los motores se enfrentan a una forma y los otros dos se enfrentan a otro lado. Esto significa que necesitamos invertir los valores ya que los motores se parecen trabajar en reversa (piénsese en atornillar un perno en desde arriba y abajo el perno).

Código completo
Puede descargar el proyecto de Visual Studio completo aquí:

Este proyecto incluye código para interfaz con la webcam. Usted puede aprender más sobre la entretela con webcams en la Cartilla de Webcam USB.

Artículos Relacionados

Robot móvil de la rueda de Omni - IoT

Robot móvil de la rueda de Omni - IoT

En esta instrucción que le presentará diseño de robot móvil de omni rueda controlado vía wi-fi. La diferencia fundamental en comparación con el control convencional como bluetooth o radio control es que el robot está conectado a la red de área local
Cómo hacer una plataforma de Robot móvil de bajo costo

Cómo hacer una plataforma de Robot móvil de bajo costo

Este Instructable es sobre la construcción de una base robótica para apoyar los experimentos.Este Instructable es destinado a alguien para comenzar por una plataforma móvil de baja tensión. Otros lectores pueden encontrar algo interesante aquí tambié
Robot móvil controlado mediante bluetooth

Robot móvil controlado mediante bluetooth

Esta vez fui sobre la construcción de un pequeño robot móvil que puede ser controlado usando mi bluetooth de los teléfonos Android. El robot utiliza un módulo de bluetooth Bolutek BC04 interconectado a un Arduino UNO.Paso 1: El BC04 módulo BluetoothE
Construir su propia Base de Robot móvil Max 95

Construir su propia Base de Robot móvil Max 95

El propósito de este tutorial es mostrar cómo el 95 Max original base de robot móvil fue construido usando sobre todo piezas de su ferretería local. La 95 de Max es un 12 "x 12" robot móvil base.Zagros Robotics vende varios modelos de robot móvi
ROBOT móvil

ROBOT móvil

Este artículo es una mirada detallada a mi Robot de Roaming.Este robot es un obstáculo autónomo evitando robot que también puede detectar desniveles.Lista de piezas:Sparkfun mago chasis (incluyendo 2 motores)1 x 100uF condensadores4 x resistencias 22
Robot móvil que buscan el sol

Robot móvil que buscan el sol

Su planta puede navegar hasta el lugar más asoleado en la casa con este sol busca Jardinera interior. Se ha controlado por un Arduino Micro y accionado por dos servomotores de rotación continua. El plantador trata de sol con la ayuda de dos paneles s
Simple Robot móvil automática utilizando arduino y L293d IC

Simple Robot móvil automática utilizando arduino y L293d IC

se trata de un Robot básico operado por un arduino y lo que hace es que simplemente vaga alrededor y siga una trayectoria circular por código por defecto pero se puede modificar el código para cambiar la ruta fácilmente. Es un proyecto simple que cua
Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers: Robots de impresión 3D móvil autónoma

Swarmscapers es un mes 2 proyecto de larga investigación realizada en el estudio de Máquinas de arquitectura creativa , impartido por Jason Kelly Johnson y Michael Shiloh en el California College of the Arts en el Laboratorio de Arte Digital. Es una
Robot controlado por teléfono móvil

Robot controlado por teléfono móvil

HolaHoy voy a hacer un robot que puede ser controlado a través de señales de móvil. Este robot puede controlarse por mundo por simplemente hacer llamadas entre 2 móviles.deja comienzo...Paso 1: Lo que se necesitaUn chasis o un robot.Un regulador de 5
Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Como dice el titulo, vamos a ver cómo construir un robot móvil autónomo llamado Chefbot que es para servicio de alimentos y bebidas en hoteles y restaurantes.Este fue un proyecto de hobby y construí este robot después de ver un robot llamado Turtlebo
Parker1 WiFi / 4 G móvil Robot

Parker1 WiFi / 4 G móvil Robot

Parker1 es un WiFi de bajo costo / robot móvil 4G con capacidad de visión. Recorre con dos populares software libre, código compatible Arduino robot fácil programación y OpenWrt router OS para una variedad de conectividad WiFi, 4G etc.Deje que los us
SelfieBot para la educación. BRICOLAJE móvil impulsado por Robot.

SelfieBot para la educación. BRICOLAJE móvil impulsado por Robot.

SelfieBot para la educación. DIY robot conducido móvil.https://www.youtube.com/watch?v=VfFyus8TNJ8Resistencia abrirá el código fuente para escuelas, universidades, para los campos de la robótica de SelfieBot.SelfieBot es un robot de telepresencia (es
Guía paso a paso al controlador de robot mago Micro (Arduino compatible)

Guía paso a paso al controlador de robot mago Micro (Arduino compatible)

el Micro mago de DAGU es un bajo costo Arduino compatible controlador diseñado especialmente para principiantes que quieren construir un pequeño robot. El Consejo tiene una serie de accesorios útiles construido en forma que en la mayoría de los casos
Soccer playing Robots

Soccer playing Robots

Este es mi proyecto final de carrera. Las fotos y los detalles son demasiado para volver a escribir así que he incluido las fotos y subido el informe. Espero que ayude a alguien :)El objetivo del proyecto era hacer un software basado en controlador p