કોડ શોધો

પાઠ 30/31: સનફાઉન્ડર આર્ડુનો કિટમાંથી સ્માર્ટ કાર દ્વારા કાર-8 લાઇન ટ્રેકિંગ | રોબોજેક્સ

પાઠ 30/31: સનફાઉન્ડર આર્ડુનો કિટમાંથી સ્માર્ટ કાર દ્વારા કાર-8 લાઇન ટ્રેકિંગ | રોબોજેક્સ

આ માર્ગદર્શિકા તમને SunFounder 3-in-1 Arduino કિટનો ઉપયોગ કરીને લાઇન-ફોલોઇંગ સ્માર્ટ કાર બનાવવાની પ્રક્રિયા સમજાવે છે.

lesson30-line-tracking-line-1

 વિડિયોમાં દર્શાવેલ આ પ્રોજેક્ટ, સફેદ સપાટી પર કાળી લાઇન શોધવા અને કારને ટ્રેક પર રાખવા માટે બે મોટર્સને નિયંત્રિત કરવા ઇન્ફ્રારેડ લાઇન ટ્રેકિંગ મોડ્યુલનો ઉપયોગ કરે છે. આ એક મૂળભૂત રોબોટિક્સ પ્રોજેક્ટ છે જે તમને સેન્સર રીડિંગ, શરતી તર્ક અને મોટર નિયંત્રણ વિશે શીખવે છે. વાસ્તવિક દુનિયામાં તેનું મૂલ્ય અપાર છે—તે વેરહાઉસમાં સ્વચાલિત માર્ગદર્શિત વાહનો (AGVs), રૂમની કિનારીઓને અનુસરતા રોબોટિક વેક્યુમ ક્લીનર્સ અને સ્વાયત્ત નેવિગેશન શીખવા માટેના શૈક્ષણિક પ્લેટફોર્મનો આધાર છે. મૂળભૂત બાંધકામ ઉપરાંત, તમે આ ખ્યાલનો ઉપયોગ આ માટે કરી શકો છો:

  • એક સરળ રોબોટ બનાવવો જે ભુલભુલામણી અથવા ટ્રેકમાં પૂર્વનિર્ધારિત માર્ગ પર નેવિગેટ કરી શકે.
  • નાની ઓફિસ અથવા લેબ માટે સ્વચાલિત ડિલિવરી કાર્ટ બનાવવી.
  • શાળાના વિજ્ઞાન પ્રોજેક્ટ અથવા સ્પર્ધા માટે લાઇન-ફોલોઇંગ રોબોટ વિકસાવવો.
  • ઔદ્યોગિક કન્વેયર બેલ્ટ માટે સિસ્ટમનો પ્રોટોટાઇપ બનાવવો જે સ્થાનના આધારે વસ્તુઓને છટણી કરે.

હાર્ડવેર અને ઘટકો

આ પ્રોજેક્ટનો મુખ્ય ભાગ લાઇન ટ્રેકિંગ મોડ્યુલ છે, જે ઇન્ફ્રારેડ (IR) ટ્રાન્સમીટર અને રીસીવર જોડીનો ઉપયોગ કરે છે. અહીં મુખ્ય ઘટકોની વિગત છે:

  • લાઇન ટ્રેકિંગ મોડ્યુલ (TCRT5000): આ સેન્સર ઇન્ફ્રારેડ પ્રકાશ ઉત્સર્જિત કરે છે અને પ્રતિબિંબિત તીવ્રતા માપે છે. મોડ્યુલમાં એનાલોગ સિગ્નલને ડિજિટલ HIGH અથવા LOW આઉટપુટમાં રૂપાંતરિત કરવા માટે LM393 કમ્પેરેટર શામેલ છે.
  • મોટર્સ સાથે સ્માર્ટ કાર ચેસિસ: SunFounder કિટમાં બે ગિયર્ડ મોટર્સ સાથે કાર ફ્રેમ શામેલ છે, જે વાહનને ચલાવવા માટે Arduino દ્વારા નિયંત્રિત થાય છે.
  • Arduino બોર્ડ: કામગીરીનું "મગજ", સેન્સર વાંચે છે અને મોટર્સને આદેશો મોકલે છે.
  • મોટર ડ્રાઇવર (કારના શિલ્ડ પર): આ સર્કિટ Arduino ના ઓછા-પાવર પિનને ઉચ્ચ-વર્તમાન મોટર્સને નિયંત્રિત કરવાની મંજૂરી આપે છે.
lesson30-line-tracking-wiring

વાયરિંગ માર્ગદર્શિકા

લાઇન ટ્રેકિંગ મોડ્યુલ માટે વાયરિંગ સરળ છે. વિડિયો નીચે મુજબ જોડાણો દર્શાવે છે (વિડિયોમાં 04:04 પર):

  • લાઇન ટ્રેકર VCC (મધ્યમ પિન): Arduino ના 5V પિન સાથે જોડો.
  • લાઇન ટ્રેકર GND (ડાબો પિન): Arduino ના GND પિન સાથે જોડો.
  • લાઇન ટ્રેકર OUT (જમણો પિન): Arduino ના ડિજિટલ પિન 2 સાથે જોડો.

મોટર્સ કારના શિલ્ડ પર મોટર ડ્રાઇવર સાથે જોડાયેલી છે. કોડમાં, જમણી મોટર પિન 5 અને 6 દ્વારા નિયંત્રિત થાય છે, અને ડાબી મોટર પિન 9 અને 10 દ્વારા, જેમ વિડિયો પ્રદર્શનમાં બતાવ્યું છે (વિડિયોમાં 12:28 પર).

lesson30-line-tracking-how-line

કોડ સમજૂતી

કોડ લાઇન ટ્રેકરમાંથી ડિજિટલ સિગ્નલ વાંચવા અને તે મુજબ મોટર્સને નિયંત્રિત કરવા માટે ડિઝાઇન કરવામાં આવ્યો છે. અહીં મુખ્ય વપરાશકર્તા-રૂપરેખાંકિત ભાગો છે:

const int in1 = 5; // in1,2 જમણી મોટર માટે
const int in2 = 6;

const int in3 = 9; // in3,4 ડાબી મોટર માટે
const int in4 = 10;

const int lineTrack = 2;
  • મોટર પિન (in1, in2, in3, in4): આ સ્થિરાંકો વ્યાખ્યાયિત કરે છે કે કયા Arduino પિન મોટર ડ્રાઇવર સાથે જોડાયેલા છે. જો તમારું વાયરિંગ અલગ હોય, તો તમારે તમારા સેટઅપ સાથે મેળ ખાવા માટે આ મૂલ્યો બદલવાની જરૂર પડશે.
  • લાઇન ટ્રેકર પિન (lineTrack): આ સેન્સરના સિગ્નલ આઉટપુટ સાથે જોડાયેલ ડિજિટલ પિન વ્યાખ્યાયિત કરે છે. કોડ આ પિન વાંચે છે તે નક્કી કરવા માટે કે સેન્સર કાળી કે સફેદ સપાટી પર છે.

મુખ્ય લૂપમાં, તમે કારની વળાંક ગતિ નિયંત્રિત કરવા માટે speed ચલને સમાયોજિત કરી શકો છો. મૂલ્ય 0 થી 255 સુધીનું છે, જ્યાં ઉચ્ચ મૂલ્ય કારને ઝડપથી વળાંક લેવા માટે બનાવે છે.

int speed = 150;//0 થી 255

તર્ક સરળ છે: જો સેન્સર HIGH (કાળી લાઇન) વાંચે છે, તો કાર ડાબી તરફ વળે છે; અન્યથા, તે જમણી તરફ વળે છે. કસ્ટમ ફંક્શન્સ moveLeft() અને moveRight() આ હાંસલ કરવા માટે મોટર્સને નિયંત્રિત કરે છે. ઉદાહરણ તરીકે, ડાબી તરફ વળવા માટે, જમણી મોટર ફરે છે જ્યારે ડાબી મોટર અટકે છે, કારને ફેરવે છે. આ વર્તન વિડિયોમાં વિગતવાર સમજાવ્યું છે (વિડિયોમાં 10:39 પર).

lesson30-line-tracking-sensor-on-line
કાળી લાઇન પર લાઇન ટ્રેકર સ્થિત કરવું. સાથે સંવેદનશીલતા સમાયોજિત કરવી. 

લાઇવ પ્રોજેક્ટ પ્રદર્શન

વિડિયો લાઇન-ફોલોઇંગ કારના લાઇવ પ્રદર્શન સાથે સમાપ્ત થાય છે (વિડિયોમાં 13:13 પર). કારને કાળા ટ્રેક પર મૂકવામાં આવે છે, અને સેન્સર સીધું લાઇન પર સ્થિત છે. જેમ કાર ખસે છે, સેન્સર કાળી લાઇન અને સફેદ પૃષ્ઠભૂમિ શોધે છે, તેની દિશા સમાયોજિત કરવા માટે મોટર્સને સિગ્નલ મોકલે છે. પ્રદર્શન બતાવે છે કે કાર સફળતાપૂર્વક સંપૂર્ણ વર્તુળ પૂર્ણ કરે છે, જે સરળ ડાબે/જમણે સુધારણા તર્કની અસરકારકતા સાબિત કરે છે.

પ્રકરણો

  • [00:00] લાઇન ટ્રેકિંગનો પરિચય
  • [01:09] લાઇન ટ્રેકિંગ મોડ્યુલ કેવી રીતે કાર્ય કરે છે
  • [04:04] લાઇન ટ્રેકિંગ મોડ્યુલને વાયરિંગ કરવું
  • [04:23] સિરિયલ મોનિટર સાથે સેન્સરનું પરીક્ષણ
  • [07:27] લાઇન-ફોલોઇંગ લોજિકને સમજવું
  • [09:08] લાઇન-ફોલોઇંગ કાર માટે કોડ
  • [11:37] લાઇન-ફોલોઇંગ કારનું પ્રદર્શન
  • [13:13] કાળા ટ્રેક પર લાઇવ પરીક્ષણ

છબીઓ

Lesson 30 line tracking wiring
Lesson 30 line tracking wiring
Lesson 30 line tracking line 1
Lesson 30 line tracking line 1
Lesson 30 line tracking how line
Lesson 30 line tracking how line
Lesson 30 line tracking sensor on line
Lesson 30 line tracking sensor on line
889-Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
ભાષા: C++

/*
this is code for the tutorial: Lesson 30/31: Car-8 Line Tracking by Smart Car from SunFounder Arduino Kit
YouTube video: https://www.youtube.com/watch?v=Cp2rD5RkYug
Get the code from: 📚⬇️ Download and resource page https://robojax.com/RJT613
www.robojax.com

*/
const int in1 = 5; // in1,2 for right motor
const int in2 = 6;

const int in3 = 9; // in3,4 for left motor
const int in4 = 10;

const int lineTrack = 2;

void setup() {
  Serial.begin(9600);

  //motor
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
  
  //line track
  pinMode(lineTrack, INPUT);
}

void loop() {

  int speed = 150;//0 to 255

  int lineColor = digitalRead(lineTrack); // 0:white  1:black
  // Serial.println(lineColor); //print on the serial monitor
  if (lineColor) {
    Serial.print("Black ");
    moveLeft(speed);
  } else {
    Serial.print("White ");
    moveRight(speed);
  }
}
void moveLeft(int speed) {
  Serial.println("LEFT");
  analogWrite(in1, 0);
  analogWrite(in2, speed);
  
  analogWrite(in3, 0);
  analogWrite(in4, 0);
}

void moveRight(int speed) {
  Serial.println("RIGHT");
  analogWrite(in1, 0);
  analogWrite(in2, 0);
  
  analogWrite(in3, speed);
  analogWrite(in4, 0);
}

સંસાધનો અને સંદર્ભો

હજી સુધી કોઈ સંસાધનો નથી.

ફાઇલો📁

કોઈ ફાઇલો ઉપલબ્ધ નથી.