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.

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.

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 !

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:
// 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
}

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:
  • Machine (mechanics, pneumatics)
  • Air compressor  (for pneumatics air supply) - located in the baggage...
  • 5V,12V,24V power supply,
For more of my stuff see my site:  http://www.KeerBot.com

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 !

Step 6: RC Car (old Times Laugh...)

Just for the laugh and memory - the first RC Car I made - few years ago...
Arduino Contest

Finalist in the
Arduino Contest

Remote Control Contest

Second Prize in the
Remote Control Contest

Microcontroller Contest

Participated in the
Microcontroller Contest