BARC Jeep - en XBOX kontrollerad Power Wheels (1 / 7 steg)

Steg 1: Skaffa Xbox-handkontrollen kommunicerar till Arduino




Första är få Xbox-handkontrollen kommunicerar med Arduino via USB Host Shield. Alla bilder i detta Instructable visar en Arduino Mega, men i själva verket en Uno är allt som behövs för USB Host Shield och endast 2 digital outs.

Anslut USB Host Shield på Arduino. För nu är power Arduino med er dator. Nästa kontakt Xbox 360™ Wireless Gaming Receiver for Windows®. När dessa anslutningar görs ladda koden visas nedan till Arduino som tillåter Arduino ska utföra styrning baserat på input från registeransvarige.

Det finns gott om notation för att förstå vad som pågår.

Arduino kod

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

/*

ÖVERSIKT
En 12v dubbla-motor Power Wheels Jeep orkan har enheten
och styrning-fjärrstyrd via Arduino.

HÅRDVARA
Power Wheels Jeep orkanen
Arduino UNO R3
Kretsar USB Host Shield 2.0 http://www.circuitsathome.com/products-page/arduino-shields/usb-host-shield-2-0-for-arduino
Pololu enkel Motor Controller 18v25 http://www.pololu.com/catalog/product/1381/resources
Pololu JRK Motor Controller 12v12 http://www.pololu.com/catalog/product/1393/resources
Pololu generiska linjära ställdon 4".6"/s http://www.pololu.com/catalog/product/2333
Xbox 360 trådlös USB-Adapter
Xbox 360 trådlös handkontroll

MASKINVARUKONFIGURATIONEN

* +-------+ +---------------+ USB +-----------------+
* | Arduino +---> | USB Host Shield +---> | XBOX USB Receiver| *** / >< / *** XBOX trådlös handkontroll
* +-+-----+ +---------------+ +-----------------+
* |
* | TX (TTL följetong)
* |
* |------------------|
* | |
* v Rx v Rx
* +----------+ +----------+
* | Pololu SMC + | Pololu Jrk|
* +----------+ +----------+
* Master Slave
* + +
* | |
* | |
* v v
* +--------+ +--------+
* | Dubbla 12v| | Linjära |
* | Motors || Actuator|
* +--------+ +--------+
*
* ANTECKNINGAR
* Utomhus med line-of-sight har trådlös Xbox-handkontrollen en awesome utbredning. Max räckvidd
* har inte testat, men jag har gått över 50ft utan märkbar förlust i signalen.
*
* Allt sitter på jeepen. Alla TTL seriella anslutningar är fastprogrammerade till Arduino
* och motor controller. Xbox mottagaren är ansluten till en metall pole antenn-stil.
*
* Det nuvarande linjärt ställdonet kan vara för långsam. Det kan röra 110lbs av kraft men på 6"/ s. det
* är en snabbare modell som gör 22lbs @ 1,5"/ s http://www.pololu.com/catalog/product/2345
*
*/

*** Inkluderar för kretsar USB Shield ***
#include < XBOXRECV.h > / / Xbox 360 trådlös mottagare

Att skapa USB-instans? USB-SKÖLD
USB Usb;

Skapa en instans av Xbox mottagaren ingångar kallas XboxRCV
XBOXRECV XboxRCV(&Usb); USB-SKÖLD

Konstanterna nästa ingår byte av Pololu-protokollet
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; Sluthastighet
långa int leftStickX; Xbox vänster Analog Stick värde

void setup() {
Serial.BEGIN(9600); Seriella överföringshastigheten till 9600

Stoppa programmet tills sköld är ansluten
USB. Init kommer tillbaka -1 för shield bortkopplad och 0 om ansluten
om (Usb.Init() == -1) {/ / om USB sköld inte initieras av någon anledning...
While(1); stoppa som sköld rapporteras frånkopplad
}

}

void loop() {
Usb.Task();
Låt oss behandla Xbox indata
IF(XboxRCV.Xbox360Connected[0]) {

STARTKOMMANDO knappen skickar exitSafeStart till SMC
IF(XboxRCV.getButtonClick(start,0)) {
// *******************************
* exitSafeStart *
// *******************************
Behövs för att möjliggöra motorer anslutna till SMC att flytta
Måste anropas när controller startas om och efter alla fel
Pololu protokoll: 0xAA (170) | enhetsnumret | 0x03 (3)
Serial.write(pololuCommandByte);
Serial.write(smcDeviceNumber);
Serial.write(3);
}

/ * Xbox triggers ange värden från 0 - 255. SMC kommer att acceptera en låg
upplösningsvärde hastighet i procent, 0% - 100% (hög upplösning är
en 2-byte heltal). De följande två raderna kartor den registeransvarige att mata en
negativt värde för L2 (omvänd) och positivt för R2 (framåt). Dessa två
värden summeras sedan för att ge den slutliga hastighet och riktning. Detta är
så att båda utlösare kan hållas gång utan att orsaka värdena
att svänga mellan framåt och bakåt
*/
char XboxL2 = map((XboxRCV.getButtonPress(L2,0)), 0, 255, 0 -100);
char XboxR2 = map((XboxRCV.getButtonPress(R2,0)), 0, 255, 0, 100);

Summera de mappade ingångarna tillsammans för att ge en slutlig hastighet och riktning
smcSpeed = XboxL2 + XboxR2;

/ * Exempelkoden för Xbox-handkontrollen gav en deadzone av-7500 till 7500.
Denna kod upprätthåller den döda zonen för nu (jag skulle vilja göra det
justerbar medan skissen är igång). */

leftStickX = map(XboxRCV.getAnalogHat(LeftHatX,0),-32768, 32767, 0, 3880); Analog pinne flyttade
Som döda bandet i vänster analog styrspak. Tycker att detta vara justerbar
om ((leftStickX > = 1500) & & (leftStickX < = 1983)) {
leftStickX = 1400;
}
}

Om inga utlösare/pinnar är att flytta, sedan centrera och noll
annat {
leftStickX = 1400;
smcSpeed = 0;
}

*** RESERVERAD "HEARTBEAT" ***
"Heartbeat" kommer att skicka en seriella kommando var x: e sekund som en "keep-alive" till SMC och JRK
kontrollanter. Det kommer också att förhindra kommandon från översvämningar seriell bufferten (perfekt
för Xbee genomförande).

// *******************************
* SKICKA SERIELLA KOMMANDON *
// *******************************
/ * Reserverad för seriell kommandon skickas till motor-styrenheter för att justera
option parametrarna. Också att bearbeta svar från de
kommandon i tillämpliga fall. */

DET HÄR AVSNITTET SKICKAR KOMMANDONA HASTIGHET OCH RIKTNING TILL SMC
// *******************************
* setMotorSpeed *
// *******************************
/*
http://www.Pololu.com/docs/0J44/6.2.1

Pololu SMC kan använda en full hastighet upplösningsvärde (-3200 till 3200), men detta behövs inte
(ännu) sedan Xbox-handkontrollen analoga triggers endast utgång 0 till 255. Den nedan tabeller kopieras
direkt från manualen länkade ovan. Vi kommer att använda en låg upplösning hastighet värde uttryckt i
procent (0 till 100).

"Alternerar tolkning: de tillåtna värdena för den andra hastighet data byten är 0Ã⠢ â'¬â €œ100,
så du kan ignorera den första hastighet data byten (alltid sätta den till 0), och anser att den
andra databyte till enkelt att procentsatsen hastighet. Till exempel att köra motorn på
53% hastighet, skulle du använda byte1 = 0 och byte2 = 53. "

Motorn fram
Kommandot Byte Data Byte 1 Data Byte 2 Data Byte 3 databyte 4
Pololu alternativa användning 0xAA (170) enhetsnumret 0x05 (5) 0 (alltid) hastighet %

Motoriska omvänd (data byte 2 ändringar)
Kommandot Byte Data Byte 1 Data Byte 2 Data Byte 3 databyte 4
Pololu alternativa användning 0xAA (170) enhetsnumret 0x06 (6) 0 (alltid) hastighet %

*/
smcSpeed bör vara ett tal mellan -100 och 100

Skicka först Pololu SMC kommandobyte
Serial.write(pololuCommandByte);

Nästa, skicka SMC enhetsnumret
Serial.write(smcDeviceNumber);

Här, låt oss fastställa hastighet och riktning.
om (smcSpeed < 0) / / Låt oss vända eftersom hastigheten är negativt
{
Serial.write(6); motoriska omvänd kommando
smcSpeed = - smcSpeed; göra smcSpeed positiva b/c av kommandot kan bara läsa positiva tal
}
annat
{
Serial.write(5); motoriska framåt kommando
}

Serial.write(smcSpeedDataByte3); Alltid noll (för tillfället) på grund av det protokoll som används

Nu låt oss skicka den faktiska hastigheten
Serial.write(smcSpeed);
Delay(1); För stabilitet

NÄSTA AVSNITT SKICKAR POSITIONEN TILL DET LINJÄRA STÄLLDONET VIA JRK
// *******************************
* setJRKPos *
// *******************************
/ * http://www.pololu.com/docs/0J38/4.e
Pololu protokoll, hex: 0xAA, enhet nummer, 0x40 + mål låg 5 bitar, rikta hög 7 bitar
Här är några C exempelkod som kommer att generera rätt seriella byte,
med tanke på ett heltal "target" som håller den önskat mål (0 - 4095) och en matris kallas serialBytes:

1 serialBytes [0] = 0xC0 + (mål & 0x1F); Kommandobyte innehar de lägre 5 bitarna av målet.
2 serialBytes [1] = (mål >> 5) & 0x7F; Databyte innehar de övre 7 bitarna av målet. */

Serial.write(pololuCommandByte);
Serial.write(jrkDeviceNumber);
Serial.write (0x40 + (leftStickX & 0x1F));
Serial.write ((leftStickX >> 5) & 0x7F);

Delay(1); För stabilitet

}

Se Steg
Relaterade Ämnen

RC Power Wheels: Del 1

Uppdatera 12/6/13:Tyvärr slutade jag arbeta på detta projekt när vi flyttade förra året och detta lämnades med en släkting. Jag har fortfarande inte fått det flyttade till vårt nya hus, och jag arbetar på ett annat projekt som tar all tid och pengar...

Soldriven POWER WHEELS

Här är ett projekt som kan låta mamma, pappa, & Jr eller prinsessa alla spela tillsammans i trädgården genom att förbättra en Power Wheels elbil och uppgradera den grön teknik och förnybar energi.Ett tag sedan, jag hade fått en PowerWheels Jeep, men...

Power Wheels Mods - Master Kill Switch och laddning

Problemet:Santa förde en Power Wheels Jeep till mina barn i jul. Jag blev ganska förvånad att det inte var en mästare på/av switch på sak. Och naturligtvis, juldagsmorgonen, det första min dotter gjorde var hop i och försöka springa till sin bror.För...

DIY Power Wheels styrning knogarna

efter plocka upp en gammal Power Wheels Jeep hittade jag på plast manöverorganet fingrarna var skev och gjorde jeepen oanvändbar. Vid första jag försökte använda värme att fix form på plastdetaljer, sätta misslyckades de snabbt igen. Jag beslutade då...

Star Wars Speeder från Power Wheels

Hej alla,Detta är min första instructable. Jag hade en idé när min son (ålder 5) och jag var vaktande ROTJ och han bad för en speeder bike. Jag informerade dem om att de inte är riktiga. En liten rynka pannan fast i baksidan av mitt sinne för en lite...

Remote Control Power Wheels ATV säker för barnen Under $150!

Detta instructable visar dig hur man gör en säker fjärrkontroll Power Wheels för barn UNDER $150.Delar: lista:Power Wheels ATV $99Avlägsen kontroll $25styrning servo $5Varvtalsreglering $12styrning koppling $3Batteriet Anslut $4Saker du behöver:Skruv...

INNAN Power Wheels Barbie Jeep efter Batman Batmobile

detta är en omvandling av en liten tikes elektriska jeep till ett barns dåliga på benet Halloween Batmobile. Cruising och knep eller behandling i stil! Det fanns olika konstruktion meathods används. Ark skum, bra grejer skum, papper maché, gips gemen...

Demontering och rengöring Xbox 360 Power Supply (Brick)

i detta Instructable jag ska visa dig hur man korrekt dissassemble din (eller någon annans: P) Xbox 360 PSU.Om är du vill bli av med dammet i det, skulle jag bara rekommendera blåser tryckluften genom ventilationshålen.Det kan finnas problem med värm...

Variabel 0-12V, digitalt kontrollerade, Power Supply med en Laptop Wall vårta & Ardunio

målet med detta Instructable är att göra en funktionell, Ardunio digitalt kontrollerade, strömförsörjning. Vi testade utbudet och controller så att du kan ta din gamla laptop wall vårta (utspänning mellan 14 och 20 v), ansluta den till matarledningen...

Xbox/PS2 Steering wheel stand

jag behövde ett stativ för min Xbox ratt och pedaler men ville inte göra en enorm sittbrunn... jag behövde bara något som kan tas bort enkelt och kan användas på soffan...Enkel - trä, stål vinklar och skruvar... fungerar bra också...Steg 1: Design i...

InstaMorph och Power Wheels!

Omaha Maker grupp har ivrigt förberett en av två poster för PPPRS race på Kansas City Maker Faire. Eftersom vi fick 3: e plats totalt förra året, vill vi göra allt vi kan för att bli bättre i år. Så vi bestämde vi skulle kunna ta några InstaMorph och...

Power Wheels Glider

Detta var ett hobbyprojekt av min känsla jag var 8. sedan förra året fick jag äntligen till den. steg 1 få driva hjulen. göra Shure du plats med benen i den. Jag hade problem med det så jag var tvungen att flytta sätena tillbaka. steg 2 ta motorn ut....

RC Power hjul för ett funktionshindrat barn

Möt Oliver och hans makt hjul jeep. Oliver är sonson till en god vän till mig. Oliver har Cerebral pares, men låt inte honom lura dig, han älskar att åka runt i ett power hjul fordon bara som alla andra barn. Oliver har ett problem med vissa spastisk...

Hur man byter din Xbox DVD laser

ändrade jag mitt namn från iCanshowyouhow till Capm_Crunch så att jag inte behöver komma ihåg en massa olika användarnamn. Anyway, här är hur man gör en Xbox arbete för 12 $ istället för $50. Denna Xbox, en vän fick av en container och gav den till m...

ESP8266 MPSM v.2 DevBoard - huvudbrytaren WIFI Web Power

VARNING! Du kommer att spela med LIVE elnätet! Dödliga zon!Om du inte har någon erfarenhet och är inte kvalificerade för att arbeta med elnätet kommer jag inte ecourage du spela arround!Använd inte det utan tillräcklig kunskap om elnätet kretsar!Anvä...

CHAMPION 4Omni Wheel fotboll Robot!

Dess en Bluetooth kontrollerad 4 Wheel drive omni hjulet robot baserad på Arduino Mega 2560 (du kan använda någon arduino UNO eller vederbörlig eller något, du vill ha), det är inte en vanlig robot är det en fotboll Robot, och det har deltagit i 3 tä...

Death Star målade Ball Toss spelet

För min yngsta sons tredje födelsedag målade jag en enkel version av Star Wars Death Star på en kartong som en del av en ball toss spel.Det var en Star Wars tema fest och jag lagt till ytterligare dollar store korgar för de yngre individerna i gruppe...

TRÄ spela i BARBIE VAN

hur man bygger en trä VAN för barnen att spela IN. Detta är väldigt lik min star wars rymdskepp. Det viktigaste som du behöver när du bygger en lek i tuy för dina barn är en fantasi och en del verktyg.Detta kan också vara en scooby van, sponge bob va...

Powerwheel refurb

min bild saknas steg för steg instruktion att spara $300 och göra ditt barn gladaJag skriver detta medan jag i Irak, därav avsaknaden av personliga bilderSteg 1: dilemmaatt få något speciell för en 2yr åringar födelsedag och har inga pengar från den...