-
1Get the Supplies!!!
Buying supplies is a crucial part for any project. And most importantly at right prices. And for that I recommend you to buy them from UTSource.net website. They provide good quality components at low cost and fast shipping. They also provide high quality PCB's for manufacturers and prototypers. Do check them out now and avail their free one month Plus membership trial which gives a lot of benefits to customers.
-
2Circuit Diagram
The circuit diagram for this project is quite simple. And it takes about only 10 minutes to build this project. The connections are shown in the circuit diagram above. The joystick module is connected to two analog inputs and the transmitter is connected to a digital pin. Here I used pin 12. You can use the serial port but that will cause problems while uploading the sketch. So instead use the Virtual wire library and make some other pin a tx pin.
The receiver part consists of the motor driver module and the RF receiver. Again here we used the Virtual wire library. A led is connected to get the status if a charater is received or not. Both of the boards are powered using 9 V batteries. And one separate battery is used to power the motor driver module.
-
3Upload the Sketch
Now let's upload the sketches to the Arduino Boards. You can get the sketch from below.
// TRANSMITTER CODE
#include <VirtualWire.h> const int X_AX = A0; const int Y_AX = A1; void setup() { Serial.begin(9600); Serial.println("setup"); vw_setup(2000); vw_set_tx_pin(12); } void loop() { int xval = analogRead(X_AX); int yval = analogRead(Y_AX); if(xval<=261&&xval>=0) { char *msg2 = "a";//send a to the receiver vw_send((uint8_t *)msg2, strlen(msg2)); vw_wait_tx(); Serial.println("a"); } else if(xval<=1023&&xval>=782) { char *msg2 = "b"; vw_send((uint8_t *)msg2, strlen(msg2)); vw_wait_tx(); Serial.println("b"); } else if(yval<=261&&yval>=0) { char *msg2 = "c"; vw_send((uint8_t *)msg2, strlen(msg2)); vw_wait_tx(); Serial.println("c"); } else if(yval<=1023&&yval>=782) { char *msg2 = "d"; vw_send((uint8_t *)msg2, strlen(msg2)); vw_wait_tx(); Serial.println("d"); } else { char *msg2 = "e"; vw_send((uint8_t *)msg2, strlen(msg2)); vw_wait_tx(); Serial.println("e"); } }
// RECIEVER CODE
#include <VirtualWire.h>//Motor A right const int motorPin1 = 9; // Pin 9 of L293D const int motorPin2 = 10; // Pin 10 of L293D //Motor B left const int motorPin3 = 11; // Pin 11 of L293D const int motorPin4 = 12; // Pin 12 of L293D void setup() { Serial.begin(9600); Serial.println("setup"); vw_setup(2000); vw_set_rx_pin(8); vw_rx_start(); pinMode(13, OUTPUT); //digitalWrite(13, HIGH); pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); }if (vw_get_message(buf, &buflen)) { int i; for (i = 0; i < buflen; i++) { if(buf[i] == 'a')//if button a is pressed.... i.e.forward buton { digitalWrite(13, HIGH); Serial.println("Forward"); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH);//FORWARD digitalWrite(motorPin3, LOW ); digitalWrite(motorPin4, HIGH); } if(buf[i] == 'b') { digitalWrite(13, HIGH); Serial.println("Backward"); digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW);//REVERSE digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); } if(buf[i] == 'c') { digitalWrite(13, HIGH); Serial.println("Left"); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW);//LEFT digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); } if(buf[i] == 'd') { digitalWrite(13, HIGH); Serial.println("Right"); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH);//RIGHT digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); } if(buf[i] == 'e') { digitalWrite(13, LOW); Serial.println("Stop"); digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW);//STOP digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); } Serial.print(" "); } Serial.println(""); } }
Once you upload the code connect the batteries and give your project a run. If the robot moves in the opposite direction of the joystick then just swap the motor wires.
-
4Working of the Project
Here I have attached a gif file and a small video clip showing the working of this project. If you enjoy the content I make, then don't forget to share this instructable with your friends. Also follow me because I come up with project like this very often. If you have any queries regarding this project, comment them below. I will try my best to help you. That's it for now. See you'll with another awesome project. Thank you.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.