Oshadha Gunasekara

Partner: Justin Kufro

Our interface of communication was through switch actuation. One of the cars would travel forward at a constant speed until a switch was pressed. This actuation resulted in the car stopping for a moment until the second vehicle moved backward. The second car would not travel until its switch was actuated.

Due to the minimalism of our designs as well as the pull/placement of the wires, our vehicles have an obvious side drift to them.  That results in a circular movement pattern for both vehicles. This makes it difficult for them to actuate both switches at the same time and maintain continuous communication.

Video

Arduino Code


#define MOT_B1_PIN 5
#define MOT_B2_PIN 6
#define SWITCH_PIN 2
#define LED_PIN 13

void setup() {
// Initialize Switch and LED pins
pinMode(SWITCH_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);

// Initialize the stepper driver control pins to output drive mode.
pinMode(MOT_B1_PIN, OUTPUT);
pinMode(MOT_B2_PIN, OUTPUT);

// Start with drivers off, motors coasting.
digitalWrite(MOT_B1_PIN, LOW);
digitalWrite(MOT_B2_PIN, LOW);
}

// https://courses.ideate.cmu.edu/16-223/f2018/text/lib/WheelDrive.html
void set_motor_pwm(int pwm)
{
if (pwm < 0) { // reverse speeds
analogWrite(MOT_B1_PIN, -pwm);
digitalWrite(MOT_B2_PIN, LOW);

} else { // stop or forward
digitalWrite(MOT_B1_PIN, LOW);
analogWrite(MOT_B2_PIN, pwm);
}
}

void loop() {
// read the value from the sensor:
bool switch_val = digitalRead(SWITCH_PIN);
// turn the ledPin on

if (switch_val == HIGH){
set_motor_pwm(0);
delay(1000);
}
else{
set_motor_pwm(100);
}
}

The SolidWorks files can be found here.