system
April 11, 2010, 10:00am
1
I Have just put together a Little Robot Rover and now have moved on to the control.#
I have 433mhz RF TX & RX Modules and want to use them to send controls from one arduino to the rover.
F255 = Drive Forward @ Full Speed
or
F127L = Drive Forward @ Full Speed
or
S = Stop
Is there any examples of this out there?
Thanks in Advance!!
system
April 11, 2010, 1:59pm
2
What do you need help with? Sending serial data from the Arduino to the robot? Making the RF modules transmit the serial data? Parsing the serial data? Converting the parsed data into instructions?
What kind of controller is on the robot?
F255 = Drive Forward @ Full Speed
or
F127L = Drive Forward @ Full Speed
Two commands to drive forward at full speed?
system
April 11, 2010, 2:39pm
3
Thanks for response
Sorry, its meant to be:
F255 = Drive Forward @ Full Speed
or
F127L = Drive Forward @ Half Speed Turn Left
I have hooked up the TX & RX Modules (433 AM) and can send and relieve the data, but don't know what the easiest way of spliting / Parsing the data.
Drv_Dir = Drive Direction ("F", "R" or "S")
Pwm_Spd = PWM Value (255)
Trn_Dir = Turn Direction ("l" or "R")
to be honest im not even sure this method will work, I'm using a Tamiya Dual Motor Gearbox and a Byvac BV205 Motor Controller and the folowing code:
// Use this code to test your motor with the Arduino board:
// if you need PWM, just use the PWM outputs on the Arduino
// and instead of digitalWrite, you should use the analogWrite command
// ————————————————————————— Motors
int motor_left[] = {2, 3};
int motor_right[] = {7, 8};
// ————————————————————————— Setup
void setup() {
Serial.begin(9600);
// Setup motors
int i;
for(i = 0; i < 2; i++){
pinMode(motor_left[i], OUTPUT);
pinMode(motor_right[i], OUTPUT);
}
}
// ————————————————————————— Loop
void loop() {
drive_forward();
delay(1000);
motor_stop();
Serial.println(”1[ch8243]);
drive_backward();
delay(1000);
motor_stop();
Serial.println(”2[ch8243]);
turn_left();
delay(1000);
motor_stop();
Serial.println(”3[ch8243]);
turn_right();
delay(1000);
motor_stop();
Serial.println(”4[ch8243]);
motor_stop();
delay(1000);
motor_stop();
Serial.println(”5[ch8243]);
}
// ————————————————————————— Drive
void motor_stop(){
digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], LOW);
delay(25);
}
void drive_forward(){
digitalWrite(motor_left[0], HIGH);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], HIGH);
digitalWrite(motor_right[1], LOW);
}
void drive_backward(){
digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], HIGH);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], HIGH);
}
void turn_left(){
digitalWrite(motor_left[0], LOW);
digitalWrite(motor_left[1], HIGH);
digitalWrite(motor_right[0], HIGH);
digitalWrite(motor_right[1], LOW);
}
void turn_right(){
digitalWrite(motor_left[0], HIGH);
digitalWrite(motor_left[1], LOW);
digitalWrite(motor_right[0], LOW);
digitalWrite(motor_right[1], HIGH);
}
Thanks Again..
system
April 14, 2010, 10:08am
4
Have you looked at the VirtualWire library? It should be able to do what you want.
I have sent similar strings with it and Seeedstudio/Sparkfun RF modules at 315 and 433MHZ for a weather station.