Remote Control Toyota (Mechanics)

by wavegm in Circuits > Arduino

86892 Views, 292 Favorites, 0 Comments

Remote Control Toyota (Mechanics)

img15.jpg
img11.jpg
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.

 

Remote Control Toyota (Mechanics)

img1.png
img2.jpg
img3.jpg
img4.jpg
img5.jpg
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.

 

Remote Control Toyota (Electronics)

img6.jpg
img7.jpg
img8.jpg
img9.jpg
img10.jpg
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 !

Remote Control Toyota (Control)

img11.jpg
img12.jpg
img6.jpg
ipmg20.png
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
}

Remote Control Toyota (Assembly)

img15.jpg
img14.jpg
img13.jpg
img16.jpg
img17.jpg
img18.jpg
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:

Remote Control Toyota (Thanks)

flr.jpg
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 !

RC Car (old Times Laugh...)

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