Programmer un Robot ERS (2 / 9 étapes)

Étape 2: En passant par le Code par défaut

Maintenant laisse descendre au plaisir partie, les émissions réelles ! Double-cliquez sur MyRobot.cpp dans l’Explorateur de projets. En face de vous est maintenant un programme de travail qui conduira le robot en mode arcade au cours de la période téléopéré. Nous allons traverser rapidement le code pour comprendre ce qui se passe jusqu'à présent.

Cette ligne ajoute toutes les classes et fonctions WPILib dans votre code. Vous aurez besoin de ces si vous voulez faire quelque chose d’utile avec votre robot. En plus de l’inclusion de WPILib, cela sera idéalement aussi inclure string.h et iostream.

Cela commence la classe appelée RobotDemo. Vous pouvez modifier les « RobotDemo » à autre chose, mais il suffit de s’assurer que chaque instance de « RobotDemo » dans le fichier est remplacée par le nom du nouveau ainsi. Le côlon signifie que IterativeRobot est la classe parente de RobotDemo et RobotDemo hérite de toutes les méthodes de IterativeRobot. Cela sera important pour nous plus tard.

Ceci définit deux variables privées : myRobot et le bâton. myRobot contient toutes les fonctions de votre robot de conduite et la variable de bâton contient évidemment les fonctions pour l’entrée de lecture par la manette.

Cela définit un délai d’expiration en secondes pour les moteurs de la classe RobotDrive. Si le chien de garde du moteur n’est pas nourrir dans ce délai, il suppose que le programme de votre robot a gelé et permet d’arrêter automatiquement les moteurs. 0,1 seconde devrait être tout le temps, mais si vous utilisez le traitement de la vision ou une autre tâche intensive de l’UC et les moteurs sont arrêtent quand ils ne sont pas censés pour être, essayez d’augmenter le délai d’expiration.

Définit le temps entre les appels de fonctions périodiques en quelques secondes. Si la valeur zéro, il pourra être synchronisé avec les données de contrôle de la station pilote (qui finit par appeler la fonction toutes les 0,02 secondes environ). Si cette fonction n’est pas appelée, par défaut à 0.0, donc cette ligne est peu inutile.

Il s’agit d’une liste d’initialisation. Comme l’indique le commentaire, ils doivent initialisées dans l’ordre que vous les a déclarés. Les paramètres de myRobot sont : numéro de port pour votre robot gauche du moteur, suivi du numéro de port pour moteur de droite de votre robot. Cela suppose que vous utilisez Jaguars comme contrôleurs de moteur. Le paramètre de clé est le nombre de manette de jeu. Vous pouvez voir ce que c’est en allant à la ? onglet de votre DriverStation et en regardant la position de votre manette de jeu dans la liste. Le nombre de manette de jeu par défaut est 1.

Une fonction qui est appelée par WPILib lorsque le robot est en marche, il est seulement appelé une fois, qui en fait un endroit sûr pour initialiser des variables et allouer de la mémoire dynamique.

Ces fonctions sont appelées automatiquement par WPILib lorsque le mode du robot devient, par la station pilote ou le FMS (système de messagerie sur le terrain) la fonction init avec le nom du nouveau mode est appelée. Généralement autonome tout le code est écrit dans la fonction AutonomousInit.

DisabledInit ne suit pas les règles des autres fonctions d’initialisation mode. DisabledInit est appelée uniquement la première fois que le robot est désactivé. C’est probablement parce que le robot sera seulement désactivé une fois au cours d’un jeu réel.

Ces fonctions seront appellera environ 50 fois par seconde alors que dans le mode approprié (à moins que vous avez appelé ceci -> SetPeriod() avec un paramètre autre que 0,02 ou 0, auquel cas les fonctions périodiques seront appellera (1/période) fois par seconde).

Une remarque importante sur les fonctions périodiques et init : les fonctions périodiques pour un mode ne fonctionne pas à moins que la fonction d’initialisation est terminée. Par exemple, si vous avez quelque chose comme ceci :

Votre robot sortira en permanence qu’il aime les chiens, et même lorsque laissé en mode autonome depuis longtemps il ne sortira pas le fait que les chats sont mieux. Code de longue durée dans vos fonctions d’initialisation ne peut pas être cet évident, mais c’est toujours une question importante à surveiller pendant la programmation de votre robot.

Ce support ferme la classe RobotDemo. La fin d’une classe est l’une des rares situations où vous avez besoin d’un point-virgule après après un crochet. N’oubliez pas d’inclure cela.

Cela devrait toujours être la dernière ligne de code dans votre fichier MyRobot.cpp. Il s’agit d’une macro qui est définie dans RobotBase.h et raconte le reste de la WPILib que votre classe de RobotDemo est la classe qu’il doit utiliser pour appeler des fonctions d’init, fonctions périodiques, etc.. Sans cette ligne, vous obtiendrez probablement une erreur de Code Robot non lorsque vous déployer sur le cRIO.

Articles Liés

Comment construire et programmer un robot Lego NXT

Comment construire et programmer un robot Lego NXT

LEGO est une grande attraction pour beaucoup de jeunes enfants. Tout d'abord (pour l'Inspiration et la reconnaissance de la Science et la technologie) a créé un programme pour les jeunes enfants qui peuvent créer des robots de Legos à l'aide d'un kit
Bon marché programmable bras robotique de l’Arduino

Bon marché programmable bras robotique de l’Arduino

C'est censé être un guide pour débutants à la façon de construire un bras robotique de l'Arduino. Son concept est d'être bon marché et facile à construire. Il s'agit d'un prototype d'optimiser mon code, mais il est parfait débuter avec Arduino roboti
Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

Contrôle du programme & Arduino + robot PHIRO simultanément avec poche Code smartphone app

PHIRO Pro est un robot éducatif qui aide les enfants à apprendre au code. Une des façons de programmer et de contrôler PHIRO est via une application Android appelée Pocket Code disponible sur le jeu de Google pour libre. Code de poche a la capacité d
Câblage de Robot ERS

Câblage de Robot ERS

au cours des trois saisons, j'ai fait partie du FRC, je dois encore trouver un tutoriel de câblage, je suis entièrement d'accord avec. Tout le monde a différentes méthodes de câblage et ce tutoriel reflète les méthodes de câblage de l'équipe Electron
Robot Programmable extrême Snap Circuits !

Robot Programmable extrême Snap Circuits !

Dans ce Instructable, vous apprendrez comment construire une extrême Circuits Snap Robot Programmable. Tout d'abord, vous apprendrez comment installer l'éditeur de programmation PICAXE (le PICAXE est le microcontrôleur ou ordinateur cerveau pour votr
Robot programmable de jouer du Piano de Knex

Robot programmable de jouer du Piano de Knex

j'ai toujours été un grand fan de K'nex, depuis que je suis un petit enfant. Puis, quand j'ai découvert ce site, je sentais que j'avais touché le jackpot. Il s'agit d'un « robot » que j'ai construit hors knex, il est conçu pour jouer du piano. Cette
Construire STEMbot1 - un Robot qui rend la programmation facile et amusant

Construire STEMbot1 - un Robot qui rend la programmation facile et amusant

Le moderne smartphone ou tablette (appareil mobile) a plus de puissance informatique que les ordinateurs de bureau avaient tout juste 10 ans il y a. Les appareils mobiles modernes sont pleines de capteurs dont : GPS, boussole, 3 axes accéléromètres,
Adaptateur de 90 degrés pour Gearbox VersaPlanetary VexPro pour la robotique de premier

Adaptateur de 90 degrés pour Gearbox VersaPlanetary VexPro pour la robotique de premier

L'équipe de Killer Bees robotique développé cette solution en 2015, et maintenant nous aimerions partager avec tous de la première communauté de robotique.Le système de boîte de vitesses de VersaPlanetary VexPro est l'un des composants plus polyvalen
Robot dessin d’ingénierie

Robot dessin d’ingénierie

Dans ce projet, nous proposons un système de dessin éducatif robotique pour fins d'apprentissage. Notre système utilise le robot dessiner projection des lignes et toutes les géométries de génie tels que cube, carré, triangle, polygone de manière auto
Un robot barman--Doggie4

Un robot barman--Doggie4

Le robot que nous avons créé est un robot barman qui nous conçu pour servir les boissons et la nourriture dans un bar. Nous l'avons appelé Doggie4. Le robot est divisé en quatre couches. Le fond (la quatrième couche) est un châssis de voiture, équipé
Obstacle en évitant le Robot

Obstacle en évitant le Robot

Cette instructable est la version écrite de ma vidéo Youtube « Arduino : comment à construire un Obstacle évitant Robot » que j'ai téléchargé récemment. Je vous recommande vivement de le vérifier.Alors, sans plus tarder, commençons !Étape 1: Un châss
IoT Photon + Robot basé sur le mouvement de saut

IoT Photon + Robot basé sur le mouvement de saut

Un tout à l'heure, j'ai construit un PICAXE base Touchless capteur contrôlée Robot qui utilise un capteur de mouvement Leap de suivi des mouvements de main sur disque. Malheureusement, ce robot a besoin d'être branché à un ordinateur pour fonctionner
Ligne suivante SRK Robot avec pièces imprimées en 3d

Ligne suivante SRK Robot avec pièces imprimées en 3d

Le Robot SRK + ligne suivante est petit frère du Robot MRK + ligne suivante. Il utilise un autre type de Conseil et d'un autre type de moteur. (Le bruit que font les moteurs, c'est ce que j'imagine qu'un scarabée géant sonnerait comme, donc Le Beetle
Élémentaire robotique

Élémentaire robotique

Nos étudiants à Long Ridge School (www.longridgeschool.org) construisent des robots qui peuvent accepter des instructions de navigation de base. J'ai passé beaucoup de temps à la recherche de la bonne plateforme pour robots de nos élèves qui supporte