MURVV - le Robot Mobile (7 / 9 étapes)

Etape 7: Logiciel : côté PC

Puisque le SBC est configuré comme le cerveau de ce projet, la plupart des interactions avec les Phidgets sera pris en charge de par lui. Toutefois, à moins que vous comptiez le robot à être autonome, une sorte de connexion à un PC externe doit être faite pour que vous puissiez contrôler il. En fin de compte, cela signifie que nous aurons tous deux un programme exécuté sur votre ordinateur qui accepte une entrée d’utilisateur et un programme sur la SBC qui contrôle les contrôleurs de moteurs etc.... Communication entre les deux programmes est traitée à l’aide du Dictionnaire Phidget.

Le PC gère prenant d’entrée de l’utilisateur et à traduire en un ensemble de vitesses moteurs désirées, affichant des informations et des contrôles et l’affichage de la webcam se nourrissent. Etant donné que la roue mecanum admettent doit être contrôlable sur 3 axes distincts (x, y et une rotation) la méthode la plus populaire de contrôler ce type de robot est un style de manette de jeu double avec un joystick commande x, de y motion et de l’autre manette de commande de rotation. Nous nous sommes retrouvés à l’aide d’une manette de jeu unique qui avait un axe supplémentaire intégré, mais en pratique tout ce qui te permet de commander la position en 3 canaux distincts fonctionnerait. Nous avons utilisé le manche à balai se connecte directement aux ports d’entrée analogiques sur un 1018, c’est gentil puisqu’il facilite le code pour l’entrée en tenant le manche à balai.

Prendre l’entrée

Cette fonction de données recueille chaque canal du levier de commande chaque fois il y a un changement dans l’un des canaux et puis l’envoie au large à une fonction qui convertit une magnitude, direction (x et y de vector) de la position de la manette de jeu et une rotation (l’axe final du joystick). Le calcul effectué sur chaque valeur de la sonde doit centrer autour de 0 plutôt que 500 (ou 2000 dans l’affaire RawValue). La voie 3 de notre manette a une portée plus limitée que les deux autres, c’est pourquoi on divise seulement par 1500, pas 2000.

Convertir d’entrée
La fonction qui permet de convertir ces données en quelque chose d’utilisable ressemble à ceci :

Calculer la vitesse des roues

Dès que nous aurons une orientation, position et rotation, il faut calculer la quantité d’énergie pour donner chaque moteur afin d’obtenir le mouvement désiré. Dans un véhicule normal, ce serait assez simple mais avec roue mecanum il y a un peu de travail impliqués.

La première chose qui peut sembler étrange ici est l’amplitude = grandeur * Math.Sqrt(2.0) ; ligne. Il s’agit d’un artefact de la façon dont la fonction de manettes de jeu. Pour mieux comprendre, avoir un regard sur le schéma suivant :

Manettes de jeu ayant une amplitude circulaire de mouvement, que vous avez un problème que vous n’aurez seulement atteindre un maximum de X ou Y valeur lorsque vous êtes sur l’axe X ou Y. Donc si vous êtes sur toute position autre que 0, 90, 180 ou 270 ° vous jamais sera capable de rouler à pleine vitesse. En réduisant l’ampleur de la racine carrée de 2, vous pouvez être sûr que vous arriverez à pleine vitesse sur toutes les rubriques, et étant donné que la vitesse des roues tous obtenir normalisée par la suite vous n’avez pas à vous soucier de dépasser la vitesse maximale que peuvent atteindre les moteurs.

Calcul de la direction et la vitesse pour faire tourner les roues à quelle basé sur la manette d’entrée il y a deux façons courantes de représenter un point sur un plan 2d : coordonnées cartésiennes et coordonnées polaires. Pour généraliser notre code à n’importe quel contrôleur, nous avons utilisé polaire, bien que l’algorithme peut peut-être être plus compréhensible si nous regardons à la place il dans le système de coordonnées cartésiennes plus traditionnel. Prenons encore le cas de joysticks jumeaux utilisé pour contrôler le robot :

En faisant la somme des vecteurs de force pour chacune des directions primaires, nous pouvons obtenir un vecteur qui en résulte qui sera de la bonne grandeur et direction. Notez que le diagramme montre seulement les directions pour les valeurs positives de X, Y et Z (MovementX, MovementY et RotationX). Pour les valeurs négatives que s’inverserait simplement les flèches, le calcul reste le même. La dernière chose à que faire est de normaliser les valeurs pour qu’ils soient tous entre une grandeur d’échelle 0 et 1, eux par la vitesse maximale du moteur afin qu’ils correspondent à un pourcentage proportionnel de la vitesse max et ajouter le modificateur de direction :

Les frontLeftDir, les frontRightDir etc.... modificateurs sont utilisés pour inverser les valeurs pour les moteurs qui font face à la direction opposée. N’oubliez pas que deux des moteurs sont confrontés à un sens et les deux autres sont confrontés à l’effet inverse. Cela signifie que nous devons inverser les valeurs, car sinon les moteurs apparaîtra pour travailler dans le sens inverse (pensez à visser un boulon dans d’en haut versus sous le boulon).

Code complet
Vous pouvez télécharger le projet de Visual Studio complète ici :

Ce projet inclut du code pour s’interfacer avec la webcam. Vous pouvez en apprendre davantage sur l’interfaçage avec les webcams dans l' Amorce de Webcam USB.

Articles Liés

Omni robot mobile de la roue - IoT

Omni robot mobile de la roue - IoT

Dans cette instruction, que je vais vous présenter, vous concevez d'omni roue mobile robot contrôlé via le wi-fi. La différence essentielle par rapport au contrôle conventionnel comme bluetooth ou radiocommande est que le robot est connecté au réseau
Robot mobile contrôlé à l’aide de bluetooth

Robot mobile contrôlé à l’aide de bluetooth

Cette fois, je suis allé sur la création d'un petit robot mobile qui peut être contrôlé à l'aide de mon bluetooth des téléphones Android. Le robot utilise un module bluetooth de Bolutek BC04 relié à un Arduino UNO.Étape 1: BC04 module BluetoothLe mod
Construire votre propre Base de Robot Mobile Max 95

Construire votre propre Base de Robot Mobile Max 95

Le but de ce tutoriel est de montrer comment l'origine 95 Max robot mobile base a été construite en utilisant principalement des pièces de quincaillerie. Le Max 95 est un 12 « x 12 » robot mobile base.Zagros robotique vend plusieurs modèles de robot
Robotique mobile avec Scratch : comment intégrer les Scratch, Arduino et Bluetooth

Robotique mobile avec Scratch : comment intégrer les Scratch, Arduino et Bluetooth

Pendant longtemps, nous avons lutté avec la tâche de créer une stratégie simple, peu coûteux, plateforme-indépendant, fiable et stable de l'intégration de Scratch et Arduino de telle sorte que vous pourriez utiliser Scratch pour enseigner les princip
Bras robotique mobile à l’aide de PHIRO + Arduino

Bras robotique mobile à l’aide de PHIRO + Arduino

Nous sommes de retour avec un autre tutoriel pour vous montrer comment transformer PHIRO Pro en un bras robotique mobile cool qui peut choisir et placer les trucs ! Semblable à notre précédent capteur couleur Arduino PHIRO instructable, nous allons u
Robotique mobile avec Scratch : construire un Walker d’insectes comme axée sur l’Arduino et programmez-le avec Scratch

Robotique mobile avec Scratch : construire un Walker d’insectes comme axée sur l’Arduino et programmez-le avec Scratch

Nous allons se précipitent autour ? C'est un Arduino-basé, facile à construire la version de la marchette insectes comme faite avec du fil de cintre et conçu à l'origine par Jérôme Demers (voir aussi cette instructable) et Gareth Branwyn. Il se décli
À l’aide de la chaîne du bras robotique Mobile Ctrl tronc BT

À l’aide de la chaîne du bras robotique Mobile Ctrl tronc BT

Le bras robotique de tronc est un art en robotique moderne. Il peut en mesure de faire tourner et tricoter comme artistique. Tous les robotique inspirée s'inspirent des choses vivant, dans cette robotique de tronc ordre inspirée de l'éléphant et le s
Robot Mobile solaire

Robot Mobile solaire

Votre plante peut naviguer à l'endroit le plus ensoleillé dans la maison avec ce soleil cherche jardinières d'intérieur. Il a contrôlé par un Arduino Micro et conduit par deux moteurs servo de rotation continue. Le planteur cherche soleil avec l'aide
Comment faire une plateforme Mobile Robot faible coût

Comment faire une plateforme Mobile Robot faible coût

Ce Instructable agit ici de développer une base robotique pour prendre en charge vos expériences.Ce Instructable s'adresse à toute mise en route sur une plate-forme mobile de basse tension. Autres lecteurs pourraient trouver quelque chose d'intéressa
Chefbot : Un bricolage mobile robot autonome pour servir des aliments dans les hôtels

Chefbot : Un bricolage mobile robot autonome pour servir des aliments dans les hôtels

Comme le titre l'indique, nous allons voir comment construire un robot mobile autonome appelé Chefbot qui est pour servir des aliments et des boissons dans les hôtels et restaurants.Il s'agissait d'un projet de passe-temps et j'ai construit ce robot
Swarmscapers : Impression 3D Mobile autonome Robots

Swarmscapers : Impression 3D Mobile autonome Robots

Swarmscapers y a un mois 2 longue recherche réalisé dans le studio Creative Architecture Machines , enseigné par Jason Kelly Johnson et Michael Shiloh au California College of the Arts en Labo numérique de Craft. C'est une collaboration entre Clayton
Parker1 WiFi / 4 G Mobile Robot

Parker1 WiFi / 4 G Mobile Robot

Parker1 est un WiFi faible coût / robot mobile 4G avec la capacité de vision. Il fonctionne avec deux logiciels open source populaire, code compatible Arduino pour programmation robot facile et OpenWrt router OS pour une variété de la connectivité Wi
Téléphone Mobile Robot commandé

Téléphone Mobile Robot commandé

SalutAujourd'hui, je vais faire un robot qui peut être contrôlé au moyen de signaux mobiles. Ce robot peut être contrôlé partout dans le monde par juste faisant appel entre 2 mobiles.permet de démarrer...Étape 1: Choses vous aurez besoinUn châssis ou
Mobile Robot Arm DoArm S7 par wifi Arduino uno r3

Mobile Robot Arm DoArm S7 par wifi Arduino uno r3

Ce manuel est juste pour l'utilisation de la DoArm basée sur leESPduino (qui compatible avec Arduino uno r3) kit de développement de la société doit. Les utilisateurs peuvent développer à nouveau et/ou améliorer la fonction sur la base de source code