BARC Jeep - une XBOX Controlled Power Wheels (1 / 7 étapes)

Etape 1: Obtenir la manette Xbox, communiquer à l’Arduino

La première chose est d’obtenir la manette Xbox, communication avec l' Arduino via l' USB Host bouclier. Toutes les photos incluses dans ce Instructable montrent un Arduino Mega, mais en réalité, un Uno est tout ce qui est nécessaire pour le bouclier d’hôte USB et seulement 2 sorties numériques.

Brancher l’USB Host bouclier sur l’Arduino. Pour l’instant, pouvoir l’Arduino avec vous êtes ordinateur. Ensuite, branchez le Xbox 360™ Wireless Gaming Receiver for Windows®. Une fois que ces branchements code ci-dessous dans l’Arduino qui permet à l’Arduino effectuer des opérations de pilotage basées sur l’entrée du contrôleur de charge.

Il y a beaucoup de notation pour aider à comprendre ce qui se passe.

Code de l’Arduino

// *****************************
* RC Power Wheels Jeep *
// *****************************

/*

VUE D’ENSEMBLE
Un ouragan 12v parmoteur Power Wheels Jeep aura en voiture
et volant télécommandé via Arduino.

MATÉRIEL
Puissance roues Jeep Hurricane
Arduino UNO R3
Circuits USB2.0 Host bouclier http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino
Contrôleur de moteur Simple Pololu 18v25 http://www.pololu.com/catalog/product/1381/resources
Contrôleur de moteur de JRK Pololu 12v12 http://www.pololu.com/catalog/product/1393/resources
Pololu linéaire générique actionneur 4".6"/s http://www.pololu.com/catalog/product/2333
Adaptateur USB sans fil Xbox 360
Manette sans fil Xbox 360

CONFIGURATION MATÉRIELLE

* +-------+         +---------------+  USB    +-----------------+
* | Arduino +---> | USB Host bouclier +---> | USB de la XBOX Receiver| *** / >< / *** manette sans fil XBOX
* +-+-----+         +---------------+         +-----------------+
* |
* | TX (série TTL)
* |
* |------------------|
* |                  |
* v v Rx Rx
* +----------+      +----------+
* | SMC Pololu + | Pololu Jrk|
* +----------+      +----------+
* Maître esclave
* +                 +
* |                 |
* |                 |
* v                 v
* +--------+        +--------+
* | Double 12v|        | Linéaires |
* | Moteurs |        | Actuator|
* +--------+        +--------+
*
* NOTES
* À l’extérieur avec line-of-sight, la manette de Xbox sans fil dispose d’une gamme impressionnante. La gamme max
* n'a pas été entièrement testés, mais je suis allé plus de 50 pieds sans perte notable de signal.
*
* Tout se trouve à bord de la Jeep. Toutes les connexions série TTL sont câblées à l’Arduino
* et gradateurs. Le récepteur de Xbox est relié à une antenne de tringle en métal-style.
*
* L’actionneur linéaire actuel peut être trop lent. Il peut s’y installer de 110lbs de force mais à.6"/ s.
* est un modèle plus rapide qui fait 22lbs @ 1.5" /s http://www.pololu.com/catalog/product/2345
*
*/

*** Comprend pour le Circuits USB bouclier ***
#include < XBOXRECV.h > / / récepteur sans fil Xbox 360

Créer l’instance de l’USB ? BOUCLIER DE L’USB
USB Usb ;

Créez une instance du récepteur Xbox entrées appelées XboxRCV
XBOXRECV XboxRCV(&Usb) ;  BOUCLIER DE L’USB

Ces constantes prochaines font partie d’octets du protocole Pololu
const byte pololuCommandByte = 170 ;
const byte smcDeviceNumber = 13 ;
const byte smcSpeedDataByte3 = 0 ;
const byte smcFWDbyte = 5 ;
const byte smcREVbyte = 6 ;
const byte jrkDeviceNumber = 11 ;

char smcSpeed ;  Vitesse finale
long int leftStickX ; Valeur de Xbox Left Analog Stick

void setup() {}
Serial.Begin(9600) ;    Bauds série à 9600

Stopper le programme jusqu'à ce que le bouclier est connecté
USB. Init renvoie -1 pour blindage débranché et 0 si connecté
Si (Usb.Init() == -1) {/ / bouclier USB si ne pas initialiser pour une raison quelconque...
while(1) ; coup d’arrêt tant que le bouclier est rapporté déconnecté
}

}

void loop() {}
Usb.Task() ;
Nous allons traiter l’entrée de Xbox
{if(XboxRCV.Xbox360Connected[0])}

Lancez le bouton envoie exitSafeStart commande à SMC
{if(XboxRCV.getButtonClick(Start,0))}
// *******************************
* exitSafeStart *
// *******************************
Nécessaire pour permettre à moteurs connectés SMC pour déplacer
Doit être appelé lors du redémarrage de contrôleur et après toute erreur
Pololu protocole : 0xAA (170) | Numéro de périphérique | 0 x 03 (3)
Serial.Write(pololuCommandByte) ;
Serial.Write(smcDeviceNumber) ;
Serial.Write(3) ;
}

/ * Les déclencheurs Xbox fournissent des valeurs de 0 - 255. Le SMC acceptera une faible
valeur de la vitesse de résolution sous forme de pourcentage, 0 % - 100 % (haute résolution est
un entier de 2 octets). Les deux lignes suivantes mappe le contrôleur à la sortie un
valeur négative pour la L2 (inverser) et positive pour R2 (Forward). Ces deux
les valeurs sont ensuite additionnés pour fournir la vitesse finale et la direction. Il s’agit
alors que les deux déclencheurs peuvent être tenus pour simultaneosly sans causer les valeurs
à osciller entre la marche avant et arrière
*/
char XboxL2 = map((XboxRCV.getButtonPress(L2,0)), 0, 255, 0 -100) ;
char XboxR2 = map((XboxRCV.getButtonPress(R2,0)), 0, 255, 0, 100) ;

Somme des entrées mappées ensemble pour donner une vitesse finale et une orientation
smcSpeed = XboxL2 + XboxR2 ;

/ * L’exemple de code pour la manette Xbox a donné une zone morte de-7500 à 7500.
Ce code gère cette zone morte pour l’instant (je tiens à faire
réglable tandis que l’esquisse est en cours d’exécution). */

leftStickX = map(XboxRCV.getAnalogHat(LeftHatX,0), -32768, 32767, 3880, 0) ;  Stick analogique déplacé
Définissez la bande morte dans le stick analogique gauche. Tiens c’est réglable
Si ((leftStickX > = 1500) & & (leftStickX < = 1983)) {}
leftStickX = 1400 ;
}
}

Si aucun déclencheurs/bâtons ne sont en mouvement, puis Centrez et zéro
else {}
leftStickX = 1400 ;
smcSpeed = 0 ;
}

*** RÉSERVÉE « HEARTBEAT » ***
« Heartbeat » enverra une commande de série toutes les x secondes comme un « keep-alive » à la SMC et JRK
contrôleurs. Il empêchera également en double commandes contre les inondations le tampon série (idéal
Xbee mise en œuvre).

// *******************************
* COMMANDES DE SÉRIE ENVOI *
// *******************************
/ * Réservée aux commandes série envoyés aux contrôleurs de moteurs pour ajuster
paramètres d’option. Aussi pour traiter la réponse de celles
commandes, le cas échéant. */

CETTE SECTION ENVOIE LES COMMANDES DE VITESSE ET LA DIRECTION DE LA SMC
// *******************************
* setMotorSpeed *
// *******************************
/*
http://www.Pololu.com/docs/0J44/6.2.1

Le SMC Pololu pouvez utiliser une valeur de vitesse pleine résolution (-3200 à 3200), cependant, cela n’est pas nécessaire
(encore) depuis la manette Xbox gâchettes analogiques seulement sortie 0 à 255. Les dessous de tables sont copiés
directement à partir du manuel lien ci-dessus. Nous allons utiliser une valeur de vitesse de basse résolution exprimée en
pourcentage (de 0 à 100).

"Remplaçant l’interprétation : les valeurs autorisées pour le deuxième octet de données de vitesse sont 0à ¢ â'¬â €œ100,
alors vous pouvez ignorer le premier octet de données de vitesse (toujours définissez-la sur 0) et d’envisager la
deuxième octet de données d’être simplement le pourcentage de la vitesse. Par exemple, pour entraîner le moteur à
53 % de la vitesse, vous utiliseriez octet1 = 0 et octet2 = 53. »

Moteur en marche avant
Commande octets données octet 1 données octet 2 données octet 3 octet de données 4
Numéro de périphérique Pololu autre utilisation 0xAA (170) 0 x 05 (5) la vitesse (toujours) 0 %


Moteur arrière (modifications de données octet 2)
Commande octets données octet 1 données octet 2 données octet 3 octet de données 4
Numéro de périphérique Pololu autre utilisation 0xAA (170) 0 x 06 (6) la vitesse (toujours) 0 %

*/
smcSpeed doit être un nombre compris entre -100 et 100

Tout d’abord envoyer l’octet de commande Pololu SMC
Serial.Write(pololuCommandByte) ;

Ensuite, envoyez le numéro de périphérique SMC
Serial.Write(smcDeviceNumber) ;

Ici, nous allons déterminer la vitesse et la direction.
Si (smcSpeed < 0) / / nous allons inverser puisque la vitesse est négative
{
Serial.Write(6) ;  commande de marche arrière moteur
smcSpeed = - smcSpeed ;  faire smcSpeed positif b/c, la commande peut uniquement lire des nombres positifs
}
d’autre
{
Serial.Write(5) ;  moteur avant commande
}

Serial.Write(smcSpeedDataByte3) ;  Toujours zéro (pour l’instant) en raison du protocole utilisé

Maintenant nous allons envoyer la vitesse réelle
Serial.Write(smcSpeed) ;
Delay(1) ;  Pour la stabilité

SECTION SUIVANTE ENVOIE LA POSITION DE L’ACTIONNEUR LINÉAIRE VIA LE JRK
// *******************************
* setJRKPos *
// *******************************
/ * http://www.pololu.com/docs/0J38/4.e
Protocole Pololu, hex : 0xAA, dispositif numéro, 0 x 40 + cible 5 bits de poids faible, cibler les bits de poids fort 7
Voici des exemples C de code qui va générer les octets séries correctes,
étant donné un entier « cible », qui contient la cible souhaitée (0 - 4095) et un tableau intitulé serialBytes :

1 serialBytes [0] = 0xC0 + (cible & 0x1F) ; Octet de commande contient les 5 bits de poids faible de cible.
2 serialBytes [1] = (cible >> 5) & 0x7F ;   Données octet contient les bits 7 supérieurs de cible. */

Serial.Write(pololuCommandByte) ;
Serial.Write(jrkDeviceNumber) ;
Serial.Write (0 x 40 + (leftStickX & 0x1F)) ;
Serial.Write ((leftStickX >> 5) & 0x7F) ;

Delay(1) ;  Pour la stabilité

}

Articles Liés

Solaire POWER WHEELS

Solaire POWER WHEELS

Voici un projet qui peut laisser maman, papa, & Jr. ou princesse jouent ensemble dans le back yard en améliorant une voiture électrique Power Wheels et mettre à niveau pour les technologies vertes et des énergies renouvelables.Tout à l'heure, je m'ét
RC Power Wheels : Partie 1

RC Power Wheels : Partie 1

mise à jour 06/12/13 :Malheureusement, je me suis arrêté des travaux sur ce projet lorsque nous avons déménagé l'an dernier et il s'est retrouvé avec un parent. Je n'ai toujours pas obtenu il s'installe dans notre nouvelle maison, et je travaille sur
RC Power Wheels pour un enfant handicapé

RC Power Wheels pour un enfant handicapé

Répondre à Oliver et sa jeep de roues de puissance. Oliver est le petit-fils de l'un de mes bons amis. Oliver est atteint de paralysie cérébrale, mais ne le laissez pas vous tromper, il aime à faire le tour dans un véhicule à roues just comme tous le
Remote Control Power roues VTT sécuritaire pour les enfants sous 150 $!!!

Remote Control Power roues VTT sécuritaire pour les enfants sous 150 $!!!

Cette instructable vous montrera comment faire une commande à distance sécurisé Power Wheels pour enfants sous $150.: Liste des pièces :Power Wheels ATV 99 $Télécommande 25 $servo de direction 5 $Régulateur de vitesse 12 $tringlerie de direction 3 $B
Câblage d’une Xbox Kinect pour USB

Câblage d’une Xbox Kinect pour USB

il y a des tas de bons instructables sur le piratage d'une Xbox Kinect. De numérisation à détection de mouvement de la 3D, il y a une tonne de trucs cool, que vous pouvez faire avec un Kinect, mais jusqu'à présent il n'y a aucun instructables sur com
UNE XBOX Controller support pour Kinect

UNE XBOX Controller support pour Kinect

il s'agit d'une construction facile, j'ai fait monter mon une XBOX Kinect sur mon téléviseur à écran plat.  J'ai utilisé la boîte au contrôleur vendu séparément comme la monture.OUTILSBoîte de contrôleur XBOX un ***Couteau X ActoRuban adhésif en toil
Streaming une Xbox à Windows 10 hors réseau sans VPN

Streaming une Xbox à Windows 10 hors réseau sans VPN

Étant donné que Microsoft a permis une Xbox en streaming sur PC, tout le monde a salué et je me demandais si vous pouvez le faire fonctionner à l'extérieur de votre réseau. La réponse est « vous pouvez bien sûr! ». Il existe plusieurs façons de le fa
Comment mod une Xbox 360 pour les nuls-affaire

Comment mod une Xbox 360 pour les nuls-affaire

** ce est AN UNFINISHED INSTRUCTABLE, mais IN ITS actuel état vous pouvez FIGURE OUT THE reste **J'ai essayé de trouver des instructions sur la façon d'affaire mod une Xbox, mais jusqu'à présent que je n'ai trouvé aucune instruction qu'une personne n
Une Xbox vs PS4

Une Xbox vs PS4

Alright, récemment je viens d'acheter une Xbox un et était super hype et fou à ce sujet et a été pensée, si vous faites une instructable pour les gens qui ne savaient pas s'il faut acheter une PS4 ou une Xbox. J'ai eu une PS3 avant j'ai acheté ma Xbo
Alimentation pour une Xbox 360 et Xbox 360 refroidissement mod !

Alimentation pour une Xbox 360 et Xbox 360 refroidissement mod !

C'est ma mise à jour instructable sur comment j'ai utilisé une alimentation de pc standard pour ma XBOX 360. Ce n'est pas mon idée de départ, j'ai vu quelques différentes manières de le faire sur internet mais c'est ce que j'ai fait et cela a fonctio
Une Xbox 2,5 mm Adaptateur casque

Une Xbox 2,5 mm Adaptateur casque

comme chacun le sait la Xbox on ne possède pas actuellement un adaptateur pour l'utilisation de casques d'écoute plus âgés.  Alors que pouvons-nous faire.  Nous pouvons faire un sur le casque existant fourni avec le système.J'ai testé avec de Astro A
Utilisez votre ordinateur portable comme une Xbox/Xbox 360 « Wireless Adapter » sur Windows XP/Vista et Mac OSX

Utilisez votre ordinateur portable comme une Xbox/Xbox 360 « Wireless Adapter » sur Windows XP/Vista et Mac OSX

je déteste comment adaptateur sans fil de Xbox 360 coûte 100 $, alors j'ai regardé en ligne sur la façon d'utiliser n'importe quel adaptateur comme un. Je ne pouvais pas trouver un article là-dessus, mais constaté que vous pouvez utiliser votre ordin
Comment réparer une Xbox coincé 360 (ou PC) disque plateau

Comment réparer une Xbox coincé 360 (ou PC) disque plateau

Xbox ne pas ouvrir ? N'ayez pas peur ! Dans ce instructable, je montre comment réparer un disque Xbox ou ordinateur, alors vous pouvez revenir à l'écoute de vos jeux préférés. Il s'agit de mon premier instructable, mais je vais faire de mon mieux pou
Une Xbox 3,5 mm Adaptateur écouteur (version Warlord)

Une Xbox 3,5 mm Adaptateur écouteur (version Warlord)

ici je vous montre comment créer un adaptateur de casque de 3,5 mm pour votre Xbox One.  Ceci est utile pour utiliser vos écouteurs de rechange pour votre Xbox 360 avec votre Xbox One.  Bien sûr, vous pouvez utiliser une prise jack 2,5 mm si vous sou