Make A Very simple Self Driving Arduino car without sensors


Hello Readers,
मेरे दिमाग में idea आया है जिसे में www.mechanic37.com पर share कर रहा हूँ जिसमे microcontroller Arduino uno से एक simple self driving कार बनाने का बनाने का एक ऐसी self driving car जो की बिना किसी sensor के आपके बताये हुए रास्ते(map)पर चलेगी मेने simple mathmatics का use करके ये idea create किया है जिसमे आप को यदि programming आती हो तो और भी बढ़िया है नहीं तो आप मेरे program को भी copy कर सकते है  
आपको simple self driving कार बनाने के लिए इन चीज़ों की जरूरत होगी 

  • Computer
  • Arduino Uno with usb cable
  • L293D motor driver
  • Dc Motors-2
  • Solderless bord
  • Car जिसमे दोनों motor को रखने की जगह हो 
  • Scale
  • Ribin या धागा -wheel की speed जानने के लिए 


Theory&Control-मेने material list में 2 motor की जरूरत होगी ऐसा लिखा है आप इसे समझ ही गए होंगे क्यूंकि दो motor में से एक car को आगे-पीछे(forword-back) ले जाने का काम करेगी और दूसरी motor car के लिए streering का काम करेगी car को right-left में मोड़ने का इन दोनों मोटरों को motor driver l293d control करेगी और l293d को Arduino uno जो की एक Arduino का सबसे बढ़िया microcontroller है और Arduino uno को computer से programing या coding करके control किया जायेगा और 9v की बैटरी आप use कर सकते है

इन motors को control  करने का तरीका कुछ ऐसा होगा की ये motors time के हिसाब से run होंगी मेने नीचे एक program दिया है जिसके अनुसार motors control होंगी जैसे 10second के लिए पहली फिर 1second के लिए दूसरी (right-left करने वाली)
तो हम start करते है अपनी cute and very simple self driving car को बनाना 

Step1 Car के लिए circuit बनाएं- 

circuit बनाने के लिए आपको चाहिए solderless bord,Arduino uno,L293d,motors,jumper wire या simple wire जो की Arduino bord और solderless bord दोनों में फिट आ सके ये सभी आने के बाद देखे image 



आपका circuit सही से काम करेगा इसको जानने के लिए और motor को पहले बिना car में सेट किये रन करवा के देखेंगे की रन हो रही है और फिर motors को car के wheel और steering में सेट कर देंगे फिर calculaton को follow कर के program को chage कर दें



Step2 Calculation-

  • जो car आपने ली है उसके wheel की radius को scale से माप कर के परिधि(

    circumference) को 2*pi*r से निकाल लें pi=3.14 or 22/7 

  • forword-backword वाली wheel की speed-revolution/minute(एक चक्कर/मिनट) निकाले और फिर चक्कर/second निकाले wheel की speed से ही map को desine होगा 
  • wheel को एक चक्कर लगाने पर वो अपने परिधि(circumference) के बराबर ही दूरी तय 
    करेगा यदि हम wheel की speed निकाल लें चक्कर/सेकंड में तो हम एक second में 

    तय की गयी दूरी निकाल लेंगे 
  • Car को right-left करने वाली motor को steering wheel से connect करने के बाद motor को run करेंगे तो steering के rotation को angle को या घुमाव के हिसाब से नोट करें की कितने समय में (programming में mili second का भी use कर सकते है ) कितनी steering घूम जाती है note करें
calculation करने के बाद step3 को अच्छी तरह से read करें program में time सेट आपको ही करना पड़ेगा ये आपके द्वारा लिए गए wheel पर depend करेगा की wheels की radius कितनी है और आपको कितनी दूरी तय करनी है  
example-यदि आपकी car की wheel 10 चक्कर/second लगाती है तो wheel पहले कोड से 10 second तक घूमेगी 10 second तक घूमने में wheel 100 चक्कर लगायेगी यदि wheel की radius 10mm है तब परधि 62mm होगी जिससे पहले कोड से car 10 second में 62*100=6200mm की distance तय करेगी  
step3 programming



circuit बनने के बाद और सारी calculation होने के बाद अपनी Arduino से usb cable connect कर computer से connect करें और arduino uno bord select कर के नीचे program को Arduino uno में upload करने से पहले आपके द्वारा लिए गए wheel की radius और steering की time के साथ rotation स्पीड को ध्यान में रखते हुए program में time change करें 
मेने हर एक movment के लिए program का अलग हिस्सा बनाया red color से दोनों motor के घूमने के चार कोड है आप इसके घूमने के समय को कम और ज्यादा कर सकते है  



/* Author-mechanic37
project- very simple self driving car
source- www.mechanic37.com  
 */
//Motor A के लिए
const int motorA1  = 5;  //motor A के एक सिरे A1 को l293d की 14 pin से जोड़ें 
const int motorA2  = 6;  //motor A के एक सिरे A2 को l293d की 10 pin से जोड़ें 
//Motor B के लिए
const int motorB1  = 10; //motor B के एक सिरे B1 को l293d की 7 pin से जोड़ें 
const int motorB2  = 9;  //motor B के एक सिरे B2 को l293d की 2 pin से जोड़ें 

void setup(){

         //output इन पिनों में होगा 
    pinMode(motorA1, OUTPUT);
    pinMode(motorA2, OUTPUT);
    pinMode(motorB1, OUTPUT);
    pinMode(motorB2, OUTPUT);
    
        //Motor Control

 //इस नीचे लिखे कोड से motor A wheel को forward घुमाएगी
    digitalWrite(motorA1, HIGH);
    digitalWrite(motorA2, LOW);
    digitalWrite(motorB1, LOW);
    digitalWrite(motorB2, LOW);
    delay(10000);//इतने समय तक ये mili second में time है इसका मतलब 10 second होगा 

 //ये कोड motor B से steering को right side मोड़ेगी 
    digitalWrite(motorA1, LOW);
    digitalWrite(motorA2, LOW);
    digitalWrite(motorB1, HIGH);
    digitalWrite(motorB2, LOW);
    delay(200); //सिर्फ 200 milisecond में आप इसे कम ज्यादा भी कर सकते है 

 //इस कोड से motor B wheel को back घुमाएगी  
    digitalWrite(motorA1, LOW);
    digitalWrite(motorA2, HIGH);
    digitalWrite(motorB1, LOW);
    digitalWrite(motorB2, LOW);
    delay(2000);//इतने समय तक 

   
//इस कोड से motor steering को left साइड मुड़ेगी .
    digitalWrite(motorA1, LOW);
    digitalWrite(motorA2, LOW);
    digitalWrite(motorB1, LOW);
    digitalWrite(motorB2, HIGH);
    delay(200);   
    
//ये कोड motors को off करने के लिए 
    digitalWrite(motorA1, LOW);
    digitalWrite(motorA2, LOW);
    digitalWrite(motorB1, LOW);
    digitalWrite(motorB2, LOW);
  
}


void loop(){
  


}

इन चारों कोड जो मेने program में red कलर से highlight किये है उनको आप time भी change करके जरूरत के अनुसार repeat भी कर सकते है कितनी भी बार बस motor off करने वाले कोड से पहले repeat करें 

step4 
map बनाएं calculation के बाद -

अपने calculation की first step,second,third setep में पहली motor के forward-backword wheel  लिए calculation की है जिसमे अपने जाना होगा की car एक second में कितनी दूरी तय करेगी और car की steering कितने समय में कितना घूम जाएगी steering के लिए समय milisecond में होगा जो आप सेट कर सकते है program में 

मेरे द्वारा create किया गया program में मेने सभी चारों motion दिए है देखे red कलर से लिखे program पहला कोड wheel को 10 second तक घुमायेगा आप देखें की आपने अपनी car के लिए कितने radius का wheel लिया है calculation step से परधि के बराबर एक चक्कर में दूरी चलेगी आपकी wheel और आपने ribin का use करके या किसी और method का use करके wheel की speed-revolution/second में निकाली होगी यदि आपकी car की wheel 10 चक्कर/second लगाती है तो wheel पहले कोड से 10 second तक घूमेगी 10 second तक घूमने में wheel 100 चक्कर लगायेगी यदि wheel की radius 10mm है तब परधि 62mm होगी जिससे पहले कोड से car 10 second में 62*100=6200mm की distance तय करेगी और दूसरे कोड से right side मुड़ेगी
ऐसे calculation करके map बनाएं map आप अपने room में जमीन पर लाइने खींच करके बना सकते है यदि आपकी calculation सही होगी तो आपकी car बिलकुल उसी रास्ते पर जाएगी जिसके लिए अपने program में time के लिए calculation की थी
Best of luck 

Comments

  1. सर
    सिमपल कोड .लेकिन अचछा।
    मोटर टरन काऊनट करके टरन के हिशाब से मोटर रन हो ऐसा कोड अपलोड करे.ऐकयूरसी के साथ काम करे.मेने ऐल.डी.आर के जरिये इनपुट पलश को काऊनट करके मोटर के टरन को कनटोल करने कि कोषीश कि लेकीन नहि बना पाया..हेलप करे

    ReplyDelete

Post a Comment

1.जिस language में Page है उसी में Comment या Question करें जिससे सभी Users की help हो
2.Page के Title से Related Question करें
3.Page को अच्छी तरह Read करें उसके बाद Question करें
4.एक ही comment एक से ज्यादा बार न करें

Mechanic37