Remote Controlled Arduino Car
Jag har alltid gillat att gå till lägren, etc där det finns många av mina vänner, jag har alltid gillat att ha en massa vänner och en dag när jag letade upp youtube för fjärrkontroll bilar, och hur de gjordes, jag listat ut att jag kunde göra en till mig själv från komponenter jag hade,
Vänligen rösta för detta i mikro-controller Contest---> >> (Tack på förhand)
Här
Allt jag behövde för detta var:
- Arduino(20$)
- Breadboard(3$)
- Några Capacitors(3$)
- Motstånd 1K,10K(2$)
- 2 Motors(10$)
- 1 Servo(3$)
- 1 avstånd sensor (Optional)(10$)
- 1 ljud sensor (Optional)(5$)
- 1 rad tracking sensor (Optional)(6$)
- LEDs(1$)
- Bygel Cables(2$)
- Spänningsregulatorer (1 för servo)(2$)
- Transistorer ((NPN) för Motors)(2$)
- 4 st 9 V batteries(8$)
- Blue-tooth Transceiver(13$)
Så den totala kostnaden för nybörjare-versionen är: 69$ med arduino
Och den totala kostnaden för pro-versionen är (som den gjorde jag med alla valfria grejer): 90$ med arduino
Här är en video av hela projektet detta är videon av 1st funktionsläget av projektet, visar roboten kommunicerar med datorn via USB-kabel och trådlöst och det visar hur skytten fungerar.
I koden som jag ger man endast grundläggande koden, som är utan de valfria delarna, om du vill ha koden för någon av de andra delarna, begära mig i kommentarerna och Iwill ge dig koden för den särskilda del,
I min sista version, där koden är ganska lång, finns det 4 lägen
1: a-läge
Roboten ansluter till datorn trådlöst via blue-tooth, och det lyssnar på alla kommandon, inklusive
(Sväng vänster, sväng höger, framåt, Target sväng vänster, Target sväng höger, skjuta och mer...)
Target grejer är i princip att det finns ett servo med en LED monterad på den, som fungerar som ett torn som du kan se i min andra instructable (Star-Wars X-Wing 2)
2. läge
Detta är läget där jag använder en avstånd sensor
Avståndet sensorn ger ständigt i värden för hur långt sakerna framme är, och om något är i närheten, sedan roboten kommer att stoppa och vända sig bort eller gå bakåt.
Du kanske gillar att montera avstånd sensorn ovanpå en servo, eftersom det skulle ge er ett mycket bredare urval.
3. läge
Detta är där ljud sensorn vidtar åtgärder när något ljud över en viss nivå upptäcks som anges i koden, eller om en lagrad melodi är besättningen, då roboten kommer att flytta därför att komma bort från ljudet så mycket som möjligt, det är verkligen lätt att vända detta så att roboten kommer mot dig.
4. läge
Här är linjen spårningsläge, där roboten följer linjer, jag använde en färdiga sensor, men du kan hitta instruktioner om hur du gör din egen, om du tittar upp Google. I det här läget finns det en annan 2 mini lägen, en är att följa en linje och den andra är att stanna inne en linje.
Ett bra tips är att se till att sensorn är placerad så nära marken som möjligt.
Du måste vara undrar hur jag bytte lägen, väl du kunde göra det med hjälp av dator, men jag använde en 5 vägs switch för fyra lägen och en är föroch för det fjärde, om du vill växla mellan mini, jag använde bara en normal-omkopplaren.
Men efter allt detta insåg jag att det var väldigt rörigt och skulle vara mycket lättare och bättre, om du har ändrat läge från datorn, så jag gjorde det senare.
Det fanns en stor användning av makt som jag använt 4 nio volt batterier, så jag var tvungen att använda två för två motorer, en för servo och en för arduino, servo behövs mycket mer ström än arduino kan ge, så jag var tvungen att använda en annan makt enhet och lägga en spänningsregulator, som servo kan endast hantera 5V och jag trodde att lägga en hel del 1.5V batterier ökar vikten en hel del, så jag bara använde min trogna 9 V batteri och spänningsregulatorn.
Motorerna hade att drivas av en separat strömförsörjning, för om jag ansluten motorerna till arduino då, inte skulle det finnas tillräckligt med kraft för att ansluta 3 sensorer och blue-tooth transceiver, och motorerna skulle inte gå fort om jag anslutit dem till arduino, så jag använde en transistor för varje motor och anslutit den till arduino.
Och sedan det sista steget för mig var att en utgångspunkt för detta att det ser coolt, så jag gjorde en kupol sortens saker att täcka hela roboten och det ser riktigt häftigt, du kan göra någon form av dome du.
Här är den viktigaste koden för denna robot men om du vill att koden för de valfria delarna så bara att fråga i kommentarerna:
#include Servo.h
int LedPin1 = 12;
int LedPin = 13.
int MotorPin1 = 9;
int MotorPin2 = 10;
int servoPin = 6;
Servo VishalServo;
void setup()
{
digitalWrite (LedPin, hög);
Serial.BEGIN(9600);
Serial.println (Robotic tank).
pinMode (LedPin, OUTPUT);
pinMode (LedPin1, OUTPUT);
pinMode (MotorPin1, OUTPUT);
pinMode (MotorPin2, OUTPUT);
VishalServo.attach(servoPin);
VishalServo.writeMicroseconds(1500);
Serial.println (vänta 1 sekund);
Delay(1000);
Serial.println (du kan nu ge kommandon);
}
void loop()
{
medan (Serial.available() == 0);
int val = Serial.read() - '0';
int jag = VishalServo.read();
om (val == 2)
{
Serial.println (Robot är på);
digitalWrite (MotorPin1, hög);
digitalWrite (MotorPin2, hög);
fördröjning (500).
digitalWrite (MotorPin1, låg);
digitalWrite (MotorPin2, låg);
Delay(5);
}
om (val == 1)
{
Serial.println (Robot svänger vänster);
digitalWrite (MotorPin2, hög);
Delay(500);
digitalWrite (MotorPin2, låg);
Delay(5);
}
om (val == 3)
{
Serial.println (Robot vänder rätt);
digitalWrite (MotorPin1, hög);
Delay(500);
digitalWrite (MotorPin1, låg);
Delay(5);
}
om (val == 9)
{
Serial.println (vrida rätt);
VishalServo.write(i+5);
Delay(5);
}
om (val == 7)
{
Serial.println (svänger vänster);
om (jag = 165)
{
Delay(5);
}
IF(i = 165)
{
VishalServo.write(i-5);
Delay(5);
}
}
om (val == 5)
{
Serial.println(shoot);
digitalWrite (LedPin1, hög);
Delay(50);
digitalWrite (LedPin1, låg);
Delay(5);
}
om (val == 8)
{
Serial.println(Centering);
VishalServo.writeMicroseconds(1500);
Delay(5);
}
annat
{
Delay(5);
}
}
Detta är koden för endast den första metoden som jag anser att detta som den grundläggande / viktigaste delen av denna robot.
Om du vill att den ledde till bo längre bara ändra fördröjningen mellan LED pin1 hög och LED stift 1 låg. (Eller du kanske bara be mig att göra det om du tycker det är för svårt eller om du är nybörjare.
Och se till att servo är ansluten till en PWM aktiverat pin, jag använde stift 6 (PWM betyder Pulse bredd Modulation)
Här är koden måste du använda bearbetning (dess ett program som program datorn) (du kan ladda ner det gratis från internet, skriv bara i behandling och den första länken är den)här koden används för att skicka uppdateringar till twitter säger vad din robot gör när du ger det kommandon:
/*************
* baserat på: http://processing.org/reference/libraries/serial/serialEvent_.html
*************/
import processing.serial.*;
Seriella myPort; Den seriella porten
PFont myFont; Visa teckensnitt
InString sträng; Indatasträngen från serieporten
int lf = 10; ASCII-radmatning
Twitter twitter; Twitter
Kommer att få oAuth fungerar i stället för detta, men detta kommer att göra för nu
String användarnamn = "Ditt-TWITTER-användarnamn"; du Twitter användarnamn här
Sträng lösenord = "Ditt-TWITTER-lösenord"; din Twitter lösenord här
void setup() {
size(400,200);
Twitter = nya Twitter(username,password);
myFont = loadFont("AppleGothic-48.vlw");
textFont (myFont, 18);
println(Serial.list());
myPort = ny följetong (denna, Serial.list() [0], 9600);
myPort.bufferUntil(lf); wiat för radmatning för att ange slutet av seriell buffert
}
void draw() {
Background(100);
text ("färg som är vald:" + inString, 10,50);
}
void serialEvent(Serial p) {
inString = p.readString (); //read seriell sträng
Av någon anledning detta bara ville arbeta i ett försök fånga
försök
{
Status status1 = twitter.updateStatus ("Arduinos favoritfärg är" + inString); //update twitter status
}
fånga (TwitterException e) {
println(e.getStatusCode());
}
}
Ändra användarnamn och lösenord med dina twitter användarnamn och lösenord, jag försökte det och det fungerar perfekt.
Om du vill skicka uppdateringar till ett program på twitter gå och ta en titt på min andra instructable:
Detta är koden för med ultraljud range finder i stället för en avstånd sensor, som jag gjorde:)
int blinkLed = 13. Om lysdioderna blinkar
int sensorPin = 0; Analog pinne i
int summa = 0; Variabel för att beräkna summan
int avgrange = 50; Antalet värden i genomsnitt
int sensorValue; Värdet för te genomsnitt
int i, media, d; Variabler
float cm, tum; Konverteras till cm
void setup()
{
Serial.BEGIN(9600); Att kolla vad det är att läsa på serieporten
}
void loop() {
d=analogRead(sensorPin); Läs det analoga värdet
digitalWrite(blinkLed,HIGH); Slå på LED
Delay(d); Dröjsmål förändringar med analogread
digitalWrite(13,LOW); Stänga av LED
Delay(d); En annan fördröjning
cm = (d / 2) * 2.4; Konvertera värdet till centimeter
tum = d/2; Värde i tum
Serial.println(cm); Skriva ut medelvärdet av alla uppmätta värden
Detta är koden om du vill göra ett genomsnitt på Läs värdena
/*
för (jag = 0; jag < avgrange; i ++) {
summa += analogRead(sensorPin);
Delay(10);
}
Media = summan/avgrange;
Serial.println(Media); Skriva ut medelvärdet av alla uppmätta värden
summa = 0;
Media = 0;
*/
}
Om du vill ha schematiskt för detta projekt, eller om du vill ha specifik kod för olika saker eller om du behöver hjälp med att detta projekt, bara lämna en kommentar i kommentarerna, eller om du vill ha mer information om hur du ansluter någon av de nedan, fråga gärna.
Och om du vill köra med kommandon från fjärrkontrollen, allt du behöver göra är att använda denna IR fjärrkontroll och du kan styra hela roboten trådlöst med en fjärrkontroll, eller om du vill att det ska vara mer som en fjärrkontroll bil, kan du lägga till en faktisk fjärrkontroll bil styrenhet eller någon spelkontroll för pc, länkar nedan...
Jag gjorde min egen dome för detta projekt som passar på alla röran och den RC bilen ser ut som en RC bil, men jag inte lägga till några bilder av kupolen som jag skulle vilja att du människor för att göra din egen personliga kupoler, och inte bara kopiera mig...
Och naturligtvis kan du utöka detta projekt, och om du gör något cool dela en bild av det genom att lägga till en bild när posta en kommentar, som jag skulle vilja se hur detta instructable har inspirerat du folk att komma med något bra.
Länkar:
Om att ladda ner Arduino IDE : http://arduino.cc/en/Main/Software
Om att ladda ner bearbetning : http://processing.org/download/
Jag verkligen in inte gillar gränssnittet för Arduino som du var tvungen att klicka efter att varje kommando, så jag använde putty
Om att ladda ner Putty : http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Ledsen om några suddiga bilder... :(