Introduction: Remote Control Toyota (Mechanics)
Building a machine that will be capable of operating gas/brake and wheel was not an easy obstacle to overcome, using some borrowed equipment, I managed to build a working frame that can be easily dismantled from my wife's car. (mine is manual gear so I though that it will be TOO complicated...)
In purpose to control the pneumatics I needed to supply 24V to the valves, (see electronics page) that will press gas whenever I want the gas to turn ON and will take the piston back when I leave the stick, I did the same with the brake ( ON/OFF FWD - BCK)
Controlling the wheel was using an electric window motor that I dismantled from an old car, connected to some strings (from my daughter's game), 12V Supply, and a wood plate that is connected to the wheel with zip ties.
The Aluminum profiles (ITEM) are good for adjustments, which is required to for in car adjustments. the whole machine can be removed from the car within 5 minutes.
In purpose to control the pneumatics I needed to supply 24V to the valves, (see electronics page) that will press gas whenever I want the gas to turn ON and will take the piston back when I leave the stick, I did the same with the brake ( ON/OFF FWD - BCK)
Controlling the wheel was using an electric window motor that I dismantled from an old car, connected to some strings (from my daughter's game), 12V Supply, and a wood plate that is connected to the wheel with zip ties.
The Aluminum profiles (ITEM) are good for adjustments, which is required to for in car adjustments. the whole machine can be removed from the car within 5 minutes.
Step 1: Remote Control Toyota (Mechanics)
Building a machine that will be capable of operating gas/brake and wheel was not an easy obstacle to overcome, using some borrowed equipment, I managed to build a working frame that can be easily dismantled from my wife's car. (mine is manual gear so I though that it will be TOO complicated...)
In purpose to control the pneumatics I needed to supply 24V to the valves, (see electronics page) that will press gas whenever I want the gas to turn ON and will take the piston back when I leave the stick, I did the same with the brake ( ON/OFF FWD - BCK)
Controlling the wheel was using an electric window motor that I dismantled from an old car, connected to some strings (from my daughter's game, 12V Supply, and a wood plate that is connected to the wheel with zip ties.
The Aluminum profiles (FESTO) are good for adjustments, which is required to for in car adjustments. the whole machine can be removed from the car within 5 minutes.
In purpose to control the pneumatics I needed to supply 24V to the valves, (see electronics page) that will press gas whenever I want the gas to turn ON and will take the piston back when I leave the stick, I did the same with the brake ( ON/OFF FWD - BCK)
Controlling the wheel was using an electric window motor that I dismantled from an old car, connected to some strings (from my daughter's game, 12V Supply, and a wood plate that is connected to the wheel with zip ties.
The Aluminum profiles (FESTO) are good for adjustments, which is required to for in car adjustments. the whole machine can be removed from the car within 5 minutes.
Step 2: Remote Control Toyota (Electronics)
The electronic circuit (illustrated) needed to take the signals from the receiver and process it in the Arduino and the send the commands out to the valves/motor.
the problems were that the valves operate with 24V DC So I used a MOSFET transistor and circuit I found here (bildr.org).
and the other problem was that I needed to operate the 12V DC motor BOTH WAYS - so I found out that only transistors will not do the job - so I added a two ways relays (each transistor activates relay that operate the motor in different directions).
SO I needed 5[V], 12[V], 24[V] ... and air pressure ... what a hobby project !
the problems were that the valves operate with 24V DC So I used a MOSFET transistor and circuit I found here (bildr.org).
and the other problem was that I needed to operate the 12V DC motor BOTH WAYS - so I found out that only transistors will not do the job - so I added a two ways relays (each transistor activates relay that operate the motor in different directions).
SO I needed 5[V], 12[V], 24[V] ... and air pressure ... what a hobby project !
Step 3: Remote Control Toyota (Control)
the control scheme for the project is that the signals from the remote control will received in the car, transferred into the Arduino micro controller and then processed into instructions (pulses) to the valves/Wheel. I wrote an Arduino sketch based on what I found here (at Sparkfun) and made an addition to print the values to the screen for QA purposes.
I had really hard time trying to "clean" the garbage that my RC controller generated (I use an 20 years old transmitter and receiver, that was gives as a gift for my friend for his 10th birthday, it is so old that when you screw all 4 bolts of the casing, the transmitter stops working, if you remove 2 of them - it works again...)
I used an Arduino Duemilanova, (borrowed after I blown mine...)
The Arduino sketch is below:
I had really hard time trying to "clean" the garbage that my RC controller generated (I use an 20 years old transmitter and receiver, that was gives as a gift for my friend for his 10th birthday, it is so old that when you screw all 4 bolts of the casing, the transmitter stops working, if you remove 2 of them - it works again...)
I used an Arduino Duemilanova, (borrowed after I blown mine...)
The Arduino sketch is below:
// RC Toyota
// Controlling real family car by a remote control
// Aug 2013
// for more info see Http://www.KeerBot.com
int ch1 = 5; // Here's where we'll keep our channel values
int ch2 = 6;
int out1 = 8;
int out2 = 9;
int out3 = 10;
int out4 = 11;
int out5 = 2;
int out6 = 3;
boolean gas_operated = false;
boolean brake_operated =false;
int ledpin=13;
unsigned long time;
void setup() {
pinMode(ch1, INPUT); // Input from Reciever channel 1
pinMode(ch2, INPUT); // Input from Reciever channel 2
pinMode(out1, OUTPUT);
pinMode(out2, OUTPUT);
pinMode(out3, OUTPUT);
pinMode(out4, OUTPUT);
pinMode(out5, OUTPUT);
pinMode(out6, OUTPUT);
pinMode(ledpin, OUTPUT);
Serial.begin(9600); // Pour a bowl of Serials - (ha ha ha...)
}
void loop() {
time = millis();
ch1 = pulseIn(5, HIGH, 25000); // Read the pulse width of
ch2 = pulseIn(6, HIGH, 25000); // each channel
Serial.print(time);
Serial.print(";");
Serial.print(ch1);
Serial.print(";");
Serial.print(ch2);
Serial.print(";");
if (ch1>1700 && ch1<2200) {
Serial.print("2500"); // Reciever channel 1 UP signal
digitalWrite(out1, HIGH); // Gas ON - gas piston FWD
gas_operated=true;
}
else if (ch1>1000 && ch1<1400) {
Serial.print("1000"); // Reciever channel 1 DOWN signal
digitalWrite(out2, HIGH); // Brake ON - Brake piston FWD
brake_operated = true;
}
else {
Serial.print("1500"); // Receiver channel 1 IDLE signal
digitalWrite(out1, LOW); // No Gas Off
digitalWrite(out2, LOW); // No Brake Off
// if (brake_operated == true) {
digitalWrite(ledpin, HIGH); // No Brake ON - brake piston BCK
digitalWrite(out5, HIGH); // No Brake ON - brake piston BCK
// delay(1500);
// brake_operated=false;
//digitalWrite(ledpin, LOW); // No Brake off
//digitalWrite(out5, LOW); // No Brake off
//}
//if (gas_operated==true) {
digitalWrite(ledpin, HIGH); // No Gas ON - gas piston BCK
digitalWrite(out6, HIGH); // No Gas ON - gas piston BCK
// delay(1500);
// gas_operated=false;
//digitalWrite(ledpin, LOW); // No Gas off
//digitalWrite(out6, LOW); // No Gas off
//}
}
Serial.print(";");
if (ch2>1700 && ch2<2200) {
Serial.println("2500"); // Reciever channel 2 RIGHT signal
digitalWrite(out3, HIGH);
}
else if (ch2>1000 && ch2<1400) {
Serial.println("1000"); // Reciever channel 2 LEFT signal
digitalWrite(out4, HIGH);
}
else {
Serial.println("1500"); // Reciever channel 2 IDLE signal
digitalWrite(out3, LOW);
digitalWrite(out4, LOW);
}
//delay(50); // I put this here just to make the terminal window happier
}
// Controlling real family car by a remote control
// Aug 2013
// for more info see Http://www.KeerBot.com
int ch1 = 5; // Here's where we'll keep our channel values
int ch2 = 6;
int out1 = 8;
int out2 = 9;
int out3 = 10;
int out4 = 11;
int out5 = 2;
int out6 = 3;
boolean gas_operated = false;
boolean brake_operated =false;
int ledpin=13;
unsigned long time;
void setup() {
pinMode(ch1, INPUT); // Input from Reciever channel 1
pinMode(ch2, INPUT); // Input from Reciever channel 2
pinMode(out1, OUTPUT);
pinMode(out2, OUTPUT);
pinMode(out3, OUTPUT);
pinMode(out4, OUTPUT);
pinMode(out5, OUTPUT);
pinMode(out6, OUTPUT);
pinMode(ledpin, OUTPUT);
Serial.begin(9600); // Pour a bowl of Serials - (ha ha ha...)
}
void loop() {
time = millis();
ch1 = pulseIn(5, HIGH, 25000); // Read the pulse width of
ch2 = pulseIn(6, HIGH, 25000); // each channel
Serial.print(time);
Serial.print(";");
Serial.print(ch1);
Serial.print(";");
Serial.print(ch2);
Serial.print(";");
if (ch1>1700 && ch1<2200) {
Serial.print("2500"); // Reciever channel 1 UP signal
digitalWrite(out1, HIGH); // Gas ON - gas piston FWD
gas_operated=true;
}
else if (ch1>1000 && ch1<1400) {
Serial.print("1000"); // Reciever channel 1 DOWN signal
digitalWrite(out2, HIGH); // Brake ON - Brake piston FWD
brake_operated = true;
}
else {
Serial.print("1500"); // Receiver channel 1 IDLE signal
digitalWrite(out1, LOW); // No Gas Off
digitalWrite(out2, LOW); // No Brake Off
// if (brake_operated == true) {
digitalWrite(ledpin, HIGH); // No Brake ON - brake piston BCK
digitalWrite(out5, HIGH); // No Brake ON - brake piston BCK
// delay(1500);
// brake_operated=false;
//digitalWrite(ledpin, LOW); // No Brake off
//digitalWrite(out5, LOW); // No Brake off
//}
//if (gas_operated==true) {
digitalWrite(ledpin, HIGH); // No Gas ON - gas piston BCK
digitalWrite(out6, HIGH); // No Gas ON - gas piston BCK
// delay(1500);
// gas_operated=false;
//digitalWrite(ledpin, LOW); // No Gas off
//digitalWrite(out6, LOW); // No Gas off
//}
}
Serial.print(";");
if (ch2>1700 && ch2<2200) {
Serial.println("2500"); // Reciever channel 2 RIGHT signal
digitalWrite(out3, HIGH);
}
else if (ch2>1000 && ch2<1400) {
Serial.println("1000"); // Reciever channel 2 LEFT signal
digitalWrite(out4, HIGH);
}
else {
Serial.println("1500"); // Reciever channel 2 IDLE signal
digitalWrite(out3, LOW);
digitalWrite(out4, LOW);
}
//delay(50); // I put this here just to make the terminal window happier
}
Step 4: Remote Control Toyota (Assembly)
So, now I had all components and I needed to assemble them in our family car, I Took them all out to and began the work:
The assembly was quite quick, the adjustments for the pistons and the wheel mechanism assembly were the hard part, but after some tries it wet well, as can be seen:
- Machine (mechanics, pneumatics)
- Air compressor (for pneumatics air supply) - located in the baggage...
- 5V,12V,24V power supply,
The assembly was quite quick, the adjustments for the pistons and the wheel mechanism assembly were the hard part, but after some tries it wet well, as can be seen:
Step 5: Remote Control Toyota (Thanks)
Yoni M. - for the Arduino and support
Sharon E. - for initial electronics
Cobe M. - For tech Support.
Kobi C. - For support with remote hack
Roni Z. - Relays tip.
Yaglush - for everything !
Sharon E. - for initial electronics
Cobe M. - For tech Support.
Kobi C. - For support with remote hack
Roni Z. - Relays tip.
Yaglush - for everything !
Step 6: RC Car (old Times Laugh...)
Just for the laugh and memory - the first RC Car I made - few years ago...