Bluetooth Controlled Robot Car

මුලින්ම අපි ඉගෙන ගන්න යන්නේ ඉතා සරල දෙයක්. මෙහි අරමුණ වන්නේ Bluetooth සම්බන්ධයක් හරහා Android app මගින් සරල ආකාරයේ කුඩා Arduino රොබෝ පැදවීමයි . මෙම රොබෝ සැදීම ඉතා සරලය. දුරස්ථ පාලකයා නැත්නම් remote එක ලෙස Android phone එකක් භාවිත කරයි. internet භාවිත කර මෙම robo සාදන ආකාරය සොයාගත හැක.

සෙල්ලම් කාරයක් ඉතා පහසුවෙන් remote control කාරයක් බවට පත් කල හැක.නමුත් මෙහිදී අපි පෙන්නන්නේ පහසුවෙන් සොයාගත හැකි කොටස් භාවිතයෙන් කරන ආකාරයයි. අපි දැන් මේ project එකට අවශ්‍ය කොටස් බලමු.

Arduino බෝඩ් එකක්
L298N motor-driver එකක්
Bluetooth module HC-05
DC Motors දෙකක්
Battery (5v)
chassis (චැසිය මෝටර සහ අනෙක් කොටස් සවි කිරීමට)
ball caster

ASSEMBLING THE CHASSIS

මේ රොබෝ හැදීමට භකරන හිස් board එකයි . සිරීම් වළක්වා ගැනීමට එය මත කඩදාසි තට්ටුවක් අලවා  ඇත. එය තබා ගැනීම හෝ ඉවත් කිරීම ඔබේ තීරණයකි. එය ඉවත් කල  පසු ඔබට විනිවිද පෙනෙන පැහැදිලි තහඩුවක් ලැබේ.

ATTACHING MOTORS

පළමුව motor දෙක අරගෙන ඒවාට wire පාස්ස්ස ගන්න ඕන. පරිස්සමට බවුත් එක භාවිතා කරන්න. මෝටර් දෙකේ noise අඩු කිරීමට ඒවා හරහා  0.1uF ක ceramic capacitor (සෙරමික් ධාරිත්රක) පස්ස්සා ගත හැකිය. මෙය කැමතිනම් පමණක් කරන්න.Motors  වල shaft දෙකක් ඇත. එක් කෙළවරක රෝද සම්බන්ධ කිරීම සඳහා යොදා ගත හැකි අතර අනෙක් කෙළවරෙහි encoder disk(එන්කෝඩ තැටිය) සම්බන්ධ කිරීම සඳහා යොදා ගත හැකිය.
geared motors දෙක acrylic brackets භාවිතා චැසි දෙපසට සවිකරන්න. රොබෝ දෙපස එක් එක් මෝටරය ඉස්කුරුප්පු දෙකක් භාවිතා කර සවි කරගන්න. 
encoder සවිකරන පැත්ත + ලකුණක හැඩය වේ.




ATTACHING CASTER WHEEL

කට්ටලහි ඇති universal Caster Wheel රෝද ඕනෑම දිශාවකටකරකැවිය හැකි වේ. මෙම රෝදය ඉස්කුරුප්පු 8 කින් චැසියකට ආරක්ෂිතව සවි කරන්න. උඩ පැත්තේ සිට flat screws හිස පැතලි ඉස්කුරුප්පු 4 දාන්නන නමුත් ඔබ ඒවා ගොඩක් තද නොවන බවට වග බලා ගැනීම වැදගත්.
 යට පැත්තට අනෙක් කුඩා අණ 4  සවිකරන්න.

ADDING THE BRAIN

දැන් චැසිය අර්ධ වශයෙන් නිමයි. chassis අරගෙන එය මත Arduino බෝඩ් එක සවිකරගන්න. Arduino ගැන වෙනම post එකකින් විස්තර කර ඇත. වැඩි විස්තර සදහා එය බලන්න.

MOTOR DRIVER

motor driver (මෝටර් ධාවකය ) කියන්නේ microcontroller (Arduino)  එකෙන් ලැබෙන input මත පදනම්ව motor එකට සපයන power(ජවය) පාලනය කරන කුඩා පරිපථයක්.මෙහිදී අපි යොදාගන්නේ L298 motor driver  IC එක. ඒකට පුළුවන් motor 2ක් වෙන වෙනම පාලනය කරන්න. මේක වැඩ කරන voltage එක වෝල්ට් 5 ඉදන් 48 වෙනකන් තියෙනවා.ඒ වගේම මේකට පුළුවන් එක motor එකකට උපරිම ඇම්පියර් 2 ක current එකක් දෙන්න.logic voltage 7V ~ 5V අතර ඕනෑම අගයක් ගත හැකිය.motor driver එක ඉස්කුරුප්පු දෙකක් මගින් සවිකරගන්න.

Pin configuration

Pins on Motor driver shield
Description
L1, L2
පළමු මෝටරයට  අදාළ තාර්කික ප්‍රදාන. මේවා digital pins වේ.
L3, L4
අනික් පස මොටරයේ තාර්කික ප්‍රදාන, මෙයද digital pins වේ.
EA
පළමු මොටරයේ enable pin එක.
EB
දෙවන මොටරයේ enable pin එක
Vcc
ප්‍රධාන ජව සැපයුම ලබාදෙන pin එක
GND
භූගත අග්‍රය. (- වෝල්ටීයතා සැපයුම)





සවිකරගත් පසු Arduino board එක සහ motor drive මෙසේ චැසිය මත තිබිය යුතුයි.

Connections 

රුපයේ දැක්වෙන ආකාරයට වයර් සවි කරගන්න.
දැන් bluetooth module එක පහත දැක්වෙන ආකාරයට සවිකර ගන්න.

Battery

රොබෝ සැදීමට අත්‍යවශ්‍ය අංගයකි. නොනවතින ජව සැපයුමක් තිබීම සම්පුර්ණ ක්‍රියාවලියම නිම කිරීමට අවශ්‍ය වේ. තවද එහි බැටරියට අවශ්‍ය වෝල්ටීයත තත්ත්ව යටතේදී අවශ්‍ය ධාරා ලබාදිය හැකි විය යුතුයි. එය නැවත නැවතත් ආරෝපණය කර හැකි විය යුතුයි.තවද එය ආරෝපණය කිරීමේදී එහි අභ්‍යන්තර කෝෂ සමබරව ආරෝපණය වීම වැදගත් වේ. නැතහොත් කෝෂයන් භාවිතයට ගත නොහැකි වේ. පරණ laptop battery එකකින් cell 3ක් ගන්න. ඒවා series ලෙස සවි කරගත් විට (3.6v ~ 4.1v)x3 = 10.8v ~12.3v  ලබාගත හැක. 


CODE

රොබෝ සැදීමට ගන්නා microcontroller එක Arduino board එකක් නම් Arduino වලින් ද , PIC එකක් නම් C language එකෙන් ද යන ආදී වශයෙන් විවිද භාෂා පවතී. මෙහිදී අපි භාවිතා කරනුයේ Arduino පුවරුවක් නිසා අපි Arduino IDE 
https://www.arduino.cc/en/main/OldSoftwareReleases මගින් download කරගන්න.


#define leftMotor1 25
#define leftMotor2 23
#define leftMotorPWM 2

#define rightMotor1 31
#define rightMotor2 29
#define rightMotorPWM 3
#define stb 27
#define horn 11


int L=0;
int R=0;
char data;


void setup()
{
  
  
  pinMode(rightMotor1, OUTPUT);
  pinMode(rightMotor2, OUTPUT);
  pinMode(rightMotorPWM, OUTPUT);
  pinMode(leftMotor1, OUTPUT);
  pinMode(leftMotor2, OUTPUT);
  pinMode(leftMotorPWM, OUTPUT);
  pinMode(stb, OUTPUT);
  pinMode(horn,OUTPUT);
  digitalWrite(stb, HIGH);
digitalWrite(horn, LOW);

  Serial.begin(9600);

}


void loop()
  {
    
   if(Serial.available() > 0)      
   {
      data = Serial.read();        
      Serial.print(data);         
       if(data == 'F'){
          L=100;
          R=100;
        }else if(data == 'B'){
          L=-100;
          R=-100;
        }else if(data == 'L'){
          L=-100;
          R=100;
        }else if(data == 'R'){
          L=100;
          R=-100;
        }else if(data == 'S'){
          L=0;
          R=0;
         // motorBreak();
        
        }else if(data == 'X'){
     // motorBreak();
        }
        else if(data == 'G'){
          L=100;
          R=130;
        }else if(data == 'I'){
          L=130;
          R=100;
        }else if(data == 'H'){
          L=-100;
          R=-130;
        } else if(data == 'J'){
          L=-130;
          R=-100;
        
        }else if(data == 'V'){
          digitalWrite(horn, HIGH);
        } else if(data == 'v'){
          digitalWrite(horn, LOW);
        }

   }

motorRun(L,R);
//motorRun(0,0);

   }
  

void motorRun(int leftMotorSpeed, int rightMotorSpeed) {
  if (rightMotorSpeed > 0) {
    digitalWrite(rightMotor1, LOW);
    digitalWrite(rightMotor2, HIGH);
  } else {
    digitalWrite(rightMotor1, HIGH);
    digitalWrite(rightMotor2, LOW);
    rightMotorSpeed *= -1;
  }
  analogWrite(rightMotorPWM, rightMotorSpeed);

  if (leftMotorSpeed > 0) {
    digitalWrite(leftMotor1, LOW);
    digitalWrite(leftMotor2, HIGH);
  } else {
    digitalWrite(leftMotor1, HIGH);
    digitalWrite(leftMotor2, LOW);
    leftMotorSpeed *= -1;
  }
  analogWrite(leftMotorPWM, leftMotorSpeed);
}


void turnLeft(byte speed) {
  motorRun(speed, (-1 * speed));
}

void turnRight(byte speed) {
  motorRun((-1 * speed), speed);
}

void motorBreak() {
  motorRun(200, -200);
  delay(100);
  motorRun(0, 0);
            L=0;
          R=0;
}


Android app

පළමුව google play store මගින් මෙම app එක  download කරගන්න.

ඉන් පසුව පහත රුපයේ දැක්වෙන පරිදි රොබෝට connect කරගන්න. දැන් රොබෝ සම්පුර්ණයි.




Comments

Popular posts

QTR Reflection Sensor Array

Arduino

Introduction to Robotics