Hardi Kurnianto
Published

Bluetooth Mobile Robot Omniwheels

Omniwheels mobile robot with Bluetooth as a medium for receiving commands from a smartphone to move

IntermediateShowcase (no instructions)8 hours162
Bluetooth Mobile Robot Omniwheels

Things used in this project

Story

Read more

Custom parts and enclosures

motor_dc_pg45_I0ypsV3Act.SLDPRT

bracket_pg45_rsTPfsYuhj.SLDPRT

Code

Mobile.ino

Arduino
unsigned int kana1= 2;
unsigned int kana2= 3;
unsigned int kanb1= 4;
unsigned int kanb2= 5;
unsigned int kira1= 6;
unsigned int kira2= 7;
unsigned int kirb1= 8;
unsigned int kirb2= 9;
int pwm=100;
void setup() 
{
 pinMode(kana1, OUTPUT);
 pinMode(kana2, OUTPUT);
 pinMode(kanb1, OUTPUT);
 pinMode(kanb2, OUTPUT);
 pinMode(kira1, OUTPUT);
 pinMode(kira2, OUTPUT);
 pinMode(kirb1, OUTPUT);
 pinMode(kirb2, OUTPUT);
 Serial1.begin(9600);
 Serial.begin(9600);
}

void loop() 
{
 if(Serial1.available())
 {
  char data= Serial1.read();
  if(data =='a'){pwm=pwm+10; Serial.println(pwm);}
  if(data =='b'){pwm=pwm-10; Serial.println(pwm);}
  if(data =='c'){maju(); delay(100); Serial.println("maju");}
  if(data =='d'){mundur(); delay(100); Serial.println("mundur");}
  if(data =='e'){kanan(); delay(100); Serial.println("kanan");}
  if(data =='f'){kiri(); delay(100); Serial.println("kiri");}
  if(data =='g'){putar1(); delay(50);Serial.println("putar1");}
  if(data =='h'){putar2(); delay(50);Serial.println("putar2");}
  
 }
 else{berhenti();Serial.println("berhenti");}
}

void maju()
{
 analogWrite(kana1, pwm);
 analogWrite(kana2, 0);
 analogWrite(kanb1, pwm);
 analogWrite(kanb2, 0);
 analogWrite(kira1, 0);
 analogWrite(kira2, pwm);
 analogWrite(kirb1, 0);
 analogWrite(kirb2, pwm); 
}

void mundur()
{
 analogWrite(kana1, 0);
 analogWrite(kana2, pwm);
 analogWrite(kanb1, 0);
 analogWrite(kanb2, pwm);
 analogWrite(kira1, pwm);
 analogWrite(kira2, 0);
 analogWrite(kirb1, pwm);
 analogWrite(kirb2, 0);
}

void kanan()
{
 analogWrite(kana1, pwm);
 analogWrite(kana2, 0);
 analogWrite(kanb1, 0);
 analogWrite(kanb2, pwm);
 analogWrite(kira1, 0);
 analogWrite(kira2, pwm);
 analogWrite(kirb1, pwm);
 analogWrite(kirb2, 0);
}

void kiri()
{
 analogWrite(kana1, 0);
 analogWrite(kana2, pwm);
 analogWrite(kanb1, pwm);
 analogWrite(kanb2, 0);
 analogWrite(kira1, pwm);
 analogWrite(kira2, 0);
 analogWrite(kirb1, 0);
 analogWrite(kirb2, pwm);
}

void berhenti()
{
 analogWrite(kana1, 0);
 analogWrite(kana2, 0);
 analogWrite(kanb1, 0);
 analogWrite(kanb2, 0);
 analogWrite(kira1, 0);
 analogWrite(kira2, 0);
 analogWrite(kirb1, 0);
 analogWrite(kirb2, 0);
}

void putar1()
{
 analogWrite(kana1, pwm);
 analogWrite(kana2, 0);
 analogWrite(kanb1, pwm);
 analogWrite(kanb2, 0);
 analogWrite(kira1, pwm);
 analogWrite(kira2, 0);
 analogWrite(kirb1, pwm);
 analogWrite(kirb2, 0);
}

void putar2()
{
 analogWrite(kana1, 0);
 analogWrite(kana2, pwm);
 analogWrite(kanb1, 0);
 analogWrite(kanb2, pwm);
 analogWrite(kira1, 0);
 analogWrite(kira2, pwm);
 analogWrite(kirb1, 0);
 analogWrite(kirb2, pwm);
}

Credits

Hardi Kurnianto
17 projects • 16 followers
Master student at Intelligent Control and Systems Engineering Department

Comments