Voiture RC Arduino avec Camera FPV (9 / 15 étapes)

Étape 9: Accélérateur de la voiture et direction

manette des gaz et la direction sur la voiture sont "analogique", ce qui signifie qu’à l’aide de la manette XBox, la voiture peut se déplacer à une gamme de vitesses et tourner à une gamme d’angles. droite déclencheur est utilisé pour les attaquants, la gâchette gauche est utilisée pour le retour et le stick analogique gauche est utilisé pour la direction (ce sont les contrôles standards pour XBox, jeux de course). Afin de transmettre ces entrées "analogiques" de la manette XBox pour la voiture, les données se déplace à travers les programmes comme suit :

Throttle données - c# :

1. l’état du contrôleur de XBox est lu. Valeurs de déclenchement gauche/droite sont enregistrées sous les flotteurs

2. une comparaison est faite entre les valeurs de deux déclenchement. La plus grande valeur est utilisée et la plus petite valeur est ignoré (par exemple, si les deux avant et en arrière sont pressées, la plus grande valeur « gagne »)

3. la valeur est multipliée par 100 et manipulée afin que la vitesse de 0 est la valeur 500. Cela signifie que la vitesse maximale inverse est équivalente à la valeur « 400 », et pleine vitesse vers l’avant est la valeur « 600 ». Cela a été fait pour éviter de devoir utiliser des nombres négatifs, et le choix de 500 comme le point central était tout à fait arbitraire.

4. la nouvelle valeur de la manette des gaz est convertie en une chaîne (comme les 3 chiffres).

5. la chaîne de commande des gaz est ajoutée à la chaîne de sortie c# et envoyée à l’Arduino lorsque requis.

Throttle données - Arduino :

1. l’Arduino reçoit la chaîne complète et enregistre les caractères de la manette des gaz en un tableau de caractères.

2. le tableau de caractères de commande des gaz est converti en int

3. en utilisant la fonction « carte », la valeur d’accélérateur est convertie en une valeur compatible pour l’ESC. L’ESC accepte les signaux de commande même comme servo-moteurs, donc le type de Servo est utilisé pour écrire une valeur de « degré » dans l’axe de l’ESC. L’ESC a été calibré tel que 0 degrés est pleine vitesse inversée et 180 degrés est pleine vitesse vers l’avant. 90 degrés est vitesse 0.

4. la valeur est écrite à l’ESC.

Dans le code c#, vous verrez également quelques fonctions supplémentaires qui manipulent la manette des gaz. Ceux-ci ont été inclus pour modifier les caractéristiques de conduite, mais je n’ai pas trouvé leur ça utile. Une de ces fonctions implique un mode de l’accélérateur linéaire/quadratique/coupé en cubes. Mode linéaire fournit une relation 1:1 entre la position de la gâchette et la vitesse. Ainsi, en appuyant sur les résultats à mi-chemin de détente vers l’avant dans la voiture se déplaçant à la moitié de sa vitesse max. Mode carré implique la quadrature de la valeur brute, donc en appuyant sur le déclencheur à mi-course entraîne la voiture se déplaçant à un quart de sa vitesse max. Cela offre plus de contrôle à basse vitesse, et moins à des vitesses supérieures. Ces modes de gaz peuvent être sélectionnés à l’aide la goutte déroulante sur le programme c# GUI (à l’aide d’une souris).

L’autre fonction implique la possibilité d’activer/désactiver le « mode lent », en appuyant sur le bouton B sur la manette XBox. Mode "escargot" limite la vitesse de pointe de la voiture à la moitié de sa vitesse max. Ainsi, vous pouvez utiliser la gamme complète des déclencheurs pour contrôler les basses vitesses. Ce mode en fait est très pratique parfois - c’est génial pour un contrôle précis à des vitesses lentes.

Direction est assez similaire à la manette des gaz. La façon dont les données se déplace est :

Direction données - c# :

1. l’état du contrôleur de XBox est lu. La valeur d’axe x stick analogique gauche est enregistrée sous un flotteur

2. la valeur est multipliée par 100, et 500 est ajouté. Cela signifie que la gauche complet équivaut à la valeur « 400 », et est de plein droit la valeur « 600 ». Comme la manette des gaz, cela a été fait pour éviter de devoir utiliser des nombres négatifs, et le choix de 500 comme le point central était tout à fait arbitraire.

3. la nouvelle valeur de direction est convertie en une chaîne (comme les 3 chiffres).

4. la chaîne de direction est ajoutée à la chaîne de sortie c# et envoyée à l’Arduino lorsque requis.

Direction données - Arduino :

1. l’Arduino reçoit la chaîne complète et enregistre les personnages de direction dans un tableau de caractères.

2. la direction tableau de caractères est converti en int

3. en utilisant la fonction « carte », la valeur de direction est convertie en une valeur compatible pour le servo de direction. Notez que le servo de direction n’a pas toute la gamme de 0 à 180. Sur ma voiture, complet gauche est 133 degrés et de plein droit est de 60 degrés, avec une valeur de centre de 96 degrés

4. la valeur est écrite dans le servo de direction.

Comme la manette des gaz, la direction peut être configurée en mode linéaire/quadratique/coupé en cubes dans le programme c#. J’ai trouvé que pour ma voiture, c’était un peu inutile, compte tenu de la gamme relativement faible dans l’angle de braquage. Puisque les roues ne tournent bien, il est facile de les amener à l’angle de droite en mode linéaire.

Note à propos des bibliothèques de Arduino Servo :

Quand je développais l’esquisse de l’Arduino, j’ai utilisé la bibliothèque Arduino Servo standard pour l’ESC et le servo de direction. Une fois que j’ai présenté le bâton de NeoPixel, la bibliothèque de Servo ne pouvait pas être utilisée plus (voir https://learn.adafruit.com/neopixels-and-servos). La bibliothèque de TiCoServo fonctionne aussi bien dans ma voiture RC, mais il y a des limites - seulement deux servos peuvent être utilisés simultanément, seul un petit ensemble de broches peut être utilisé (même sur un Arduino Mega), et seulement les paires de ces broches peuvent travailler ensemble. Le dernier d'entre eux fut compris par essais et erreurs...

Articles Liés

Voiture de Arduino autonome avec capteur de proximité infrarouge

Voiture de Arduino autonome avec capteur de proximité infrarouge

Ce Instructable montre comment modifier une voiture RC preloved donc il peut être contrôlé par un Arduino. Puis l'Instructable va vous montrer comment faire le RC à exécuter qu'un code simple figure 8 a partir de là l'Instructable vous montrera comme
Voiture RC final d’espion - avec cam sans fil de la nuit vision !

Voiture RC final d’espion - avec cam sans fil de la nuit vision !

Il s'agit d'une voiture d'espion de construction complexe. J'ai utilisé une voiture de jouet de contrôle à distance de « mecano » et installé une nuit sans fil vision SpyCam cam que j'ai acheté sur ebay pour 20$ avec la livraison. Cette voiture origi
Voiture arrière vue caméra entrée Aux Input

Voiture arrière vue caméra entrée Aux Input

Lorsque vous avez terminé, vous pourriez avoir quelque chose comme ce https://www.youtube.com/watch?v=owsrApBPuQM. (C'est en utilisant l'app de couple, un hdmi au convertisseur de rca (alimenté par un chargeur de voiture usb) et un téléphone android)
Comment faire pour contrôler n’importe quelle voiture R/C avec un émetteur d’avion !

Comment faire pour contrôler n’importe quelle voiture R/C avec un émetteur d’avion !

Avez-vous déjà demandé si vous pouvez utiliser votre émetteur d'avion R/C pour contrôler n'importe quelle voiture R/C aussi bien ?Comment génial serait-il d'avoir 6 ou plusieurs canaux pour contrôler votre voiture R/C et également personnaliser chaqu
Arduino Ethernet caméra

Arduino Ethernet caméra

Je vais vous présenter un Arduino ethernet caméra.Vous pouvez prendre une photo à l'intérieur de la maison qui ont une cette caméra ethernet arduino par juste ouvrir le site web si vous suivez ce contenu.C'est une façon très facile et simple ne néces
Arduino avec manette de commande

Arduino avec manette de commande

Dernièrement, j'ai été curieux de connaître l'amitié avec Arduino ou n'importe quel autre microcontrôleur avec une manette de jeu afin d'avoir une interaction physique avec les choses que je fais, mais il semblait n'être aucun rapide ou bon marché mo
Débutants guident de construction de robots Arduino avec Bluetooth et Android

Débutants guident de construction de robots Arduino avec Bluetooth et Android

dans ce tutoriel, nous allons aller au cours de la construction d'un robot Arduino qui peut être contrôlé via bluetooth avec une téléphone/tablette Android. Il s'agit d'un guide de débutants qui va franchir brièvement le processus de câblage et de pr
Bâtiment de l’APP Android pour contrôler la voiture Smart Arduino (製作Android APP控制Arduino 智慧車)

Bâtiment de l’APP Android pour contrôler la voiture Smart Arduino (製作Android APP控制Arduino 智慧車)

Il s'agit d'un exemple de code créé à partir de APP MIT inventeur2. Pour montrer comment se connecter à Andruino par le biais de BT Vous pouvez le modifier par vous-même pour répondre à une fonction qui vous voulez. Bassically, il est vraiment facile
Arduino universel Bluetooth Connect - contrôle votre Arduino avec votre appareil Android

Arduino universel Bluetooth Connect - contrôle votre Arduino avec votre appareil Android

J'ai toujours voulu contrôler plus facilement mon Arduino avec mon Smartphone, mais j'ai jamais trouvé la solution parfaite pour le faire. Je ne veux pas dire que c'est parfait, mais il fait ce que je veux qu'il do...well pas complètement, mais je su
Geste contrôlé une voiture robotisée avec application android

Geste contrôlé une voiture robotisée avec application android

Plan quinquennal - geste contrôlée voiture robotisée avec Application Android. Code complet, y compris la transmission de données bluetooth et de reconnaissance de geste est disponible. Les personnes qui ont besoin de toute sorte d'aide concernant ce
Contrôler l’Arduino avec un téléphone Android via Bluetooth

Contrôler l’Arduino avec un téléphone Android via Bluetooth

Bonjour les gens, ici vous pouvez apprendre comment contrôler Arduino avec un téléphone Android via Bluetooth. Vous pouvez utiliser votre smartphone comme télécommande pour vous système d'éclairage à la maison, ou vous pouvez utiliser comme un etc. d
Comment utiliser et shield Arduino avec le Raspberry Pi

Comment utiliser et shield Arduino avec le Raspberry Pi

Ajouter Arduino boucliers pour le Pi de framboise peuvent être une très grande douleur. Vous finissez par avoir un désordre de fils courir et configuration du logiciel est un défi dans son propre droit.Voici une solution simple pour commencer à utili
Pyduino, interface Arduino avec Python par le biais de communication série

Pyduino, interface Arduino avec Python par le biais de communication série

Apprenez comment interfacer arduino par le biais de communication série avec python en utilisant la bibliothèque de pyduino. Il y a quelques autres tutoriels là-bas sur instructables quant à l'interface arduino avec python, mais ils ne vous montrent
Contrôler l’Arduino avec python basé web API (pas de php)

Contrôler l’Arduino avec python basé web API (pas de php)

Dans ce guide, je vais vous montrer comment contrôler votre appareil arduino d'une page Web ! Par la suite, je vais vous montrer comment contrôler votre arduino depuis votre appareil mobile et même créer une API basée sur le web pour contrôler votre