विषयसूची:

रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल: 7 कदम (चित्रों के साथ)
रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल: 7 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल: 7 कदम (चित्रों के साथ)

वीडियो: रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल: 7 कदम (चित्रों के साथ)
वीडियो: Raspberry Pi Robotics #1: GPIO Control 2024, नवंबर
Anonim
रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल
रास्पबेरी पीआई और अरुडिनो - ब्लिंक स्टेपर कंट्रोल

यह ट्यूटोरियल आपको दिखाएगा कि कैसे एक Arduino, एक रास्पबेरी पाई और Blynk एप्लिकेशन के साथ एक स्टेपर मोटर को नियंत्रित किया जाए।

एक अखरोट के खोल में, ऐप वर्चुअल पिन के माध्यम से रास्पबेरी पाई को अनुरोध भेजता है, फिर पाई Arduino को उच्च / निम्न संकेत भेजता है और Arduino फिर स्टेपर मोटर से संबंधित है।

मुझे लगता है कि उस दृष्टिकोण का उपयोग करना आसान है क्योंकि अधिकांश लोग Arduino के साथ काम करने के लिए उपयोग किए जाते हैं और रास्पबेरी पाई पर नोड.जेएस के साथ बहुत कुछ नहीं करते हैं।

इसके लिए आवश्यक घटक:

- रास्पबेरी पीआई (मैं रास्पबेरी पीआई 3 मॉडल बी का उपयोग कर रहा हूं)

- Arduino (मैं एक Arduino नैनो का उपयोग कर रहा हूँ)

- सर्वो मोटर (मैं इसके नियंत्रक के साथ 28BYJ-48 5VDC का उपयोग कर रहा हूं)

- कुछ जम्पर तार

- शक्ति स्रोत (5VDC 2A.)

Arduino स्केच और Node.js कोड डाउनलोड करने के लिए उपलब्ध है। बस फाइलों को देखो।

चरण 1: अपने फोन पर ऐप बनाना

अपने फोन पर ऐप बनाना
अपने फोन पर ऐप बनाना
अपने फोन पर ऐप बनाना
अपने फोन पर ऐप बनाना

AppStore या GooglePlay से Blynk डाउनलोड करें

ऐप खोलें और एक यूजर बनाएं या फेसबुक से लॉग इन करें।

- एक नया प्रोजेक्ट बनाएं

अपने प्रोजेक्ट को नाम दें: MyProject

डिवाइस चुनें: रास्पबेरी पाई 3 बी

कनेक्शन का प्रकार: वाईफ़ाई (या ईथरनेट यदि आपका पाई आपके नेटवर्क से जुड़ा हुआ है)

- बनाएं क्लिक करें

अपने टोकन के लिए अपना ईमेल देखें

(यह 3aa19bb8a9e64c90af11e3f6b0595b3c जैसा दिखता है)

यह टोकन आपके वर्तमान ऐप से जुड़ा हुआ है। यदि आप कोई अन्य ऐप करते हैं, तो आप एक और टोकन जेनरेट करेंगे।

ऐप में निम्नलिखित विजेट जोड़ें (चित्र देखें)

- 3 बटन जोड़ें

- 1 एलसीडी जोड़ें

- बटन संपादित करें

पहले एक को कमांड 1 नाम दें, पिन को वर्चुअल पिन 1 के रूप में सेट करें और मोड को स्विच के रूप में सेट करें

दूसरे CW को नाम दें, पिन को वर्चुअल पिन 2 के रूप में सेट करें और मोड को PUSH के रूप में सेट करें

तीसरे एक CCW को नाम दें, पिन को वर्चुअल पिन 3 के रूप में सेट करें और मोड को PUSH के रूप में सेट करें

- एलसीडी संपादित करें

पिन को वर्चुअल पिन 4 और वर्चुअल पिन 5 के रूप में सेट करें और मोड को PUSH पर सेट करें

चरण 2: पीआई तैयार करना

सबसे पहले, आपको Node.js इंस्टॉल करना होगा। Node.js को अपडेट करने से पहले, कृपया पुराने संस्करणों को हटाना सुनिश्चित करें:

टर्मिनल खोलें और टाइप करें

sudo apt-get purge nodejs

node.js -ysudo apt-get autoremove

स्वचालित Node.js स्थापना रिपॉजिटरी जोड़ें:

कर्ल-एसएल https://deb.nodesource.com/setup_6.x | सुडो-ई बैश -

Node.js स्थापित करें

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install बिल्ड-एसेंशियल नोडज -y

एक बार Node.js स्थापित हो जाने के बाद, Blynk स्थापित करें

sudo npm blynk-library -g. स्थापित करें

sudo npm onoff -g. स्थापित करें

चरण 3: अपना प्रोजेक्ट बनाना

निर्देशिका (cd कमांड) को pi निर्देशिका में बदलकर प्रारंभ करें

टर्मिनल खोलें और टाइप करें:

सीडी / घर / पीआई /

फिर, एक निर्देशिका बनाएं जहां आपका प्रोजेक्ट रहेगा

एमकेडीआईआर माईप्रोजेक्ट

निर्देशिका को MyProject में बदलें, टर्मिनल में निम्न टाइप करें

सीडी माईप्रोजेक्ट

निर्देशिका की सामग्री की जाँच करें (यह खाली होनी चाहिए)। टर्मिनल में बस निम्नलिखित टाइप करें

रास

इसके बाद, अपना प्रोजेक्ट विवरण बनाने के लिए निम्नलिखित टाइप करें (package.json)

npm init

बस प्रोजेक्ट का नाम, लेखक, संस्करण, आदि टाइप करें…

एक बार यह हो जाने के बाद, अपनी प्रोजेक्ट निर्देशिका में Blynk लाइब्रेरी, ऑनऑफ़ लाइब्रेरी और सिस्टम-स्लीप लाइब्रेरी स्थापित करें। अपने टर्मिनल में निम्नलिखित टाइप करें

npm blynk-लाइब्रेरी स्थापित करें --save

npm ऑनऑफ़ स्थापित करें --save

npm इंस्टाल सिस्टम-स्लीप --save

अंत में, अपनी.js फ़ाइल बनाएँ (यह वह जगह होगी जहाँ आपका कोड रहेगा)। टर्मिनल में निम्नलिखित टाइप करें

नैनो MyProject.js

एक बार जब आप उस कमांड को निष्पादित करते हैं, तो नैनो (टर्मिनल टेक्स्ट एडिटर) खुल जाएगा।

चरण 4: MyProject.js

नैनो में, कोड की निम्नलिखित पंक्तियाँ लिखिए

var Blynk = आवश्यकता ('ब्लींक-लाइब्रेरी');

वर प्राधिकरण = '******'; यह आपका टोकन है

var blynk = नया Blynk. Blynk (AUTH);

वर Gpio = आवश्यकता ('onoff')। Gpio,

कमांड 1 = नया जीपीओ (18, 'आउट'), // Arduino D2 से जुड़ा होगा

कमांड सीडब्ल्यू = नया जीपीओ (23, 'आउट'), // Arduino D3 से जुड़ा होगा

कमांडसीसीडब्ल्यू = नया जीपीओ (24, 'आउट'); // Arduino D4 से जुड़ा होगा

वर नींद = आवश्यकता ('सिस्टम-नींद');

var v1 = नया blynk. VirtualPin(1); // यह ऐप में आपका कमांड 1 बटन है

वर v2 = नया blynk. VirtualPin(2); // यह ऐप में आपका सीडब्ल्यू बटन है

var v3 = नया blynk. VirtualPin(3); // यह ऐप में आपका सीसीडब्ल्यू बटन है

var v4 = नया blynk. VirtualPin(4); // यह ऐप में आपकी एलसीडी लाइन 1 है

वर v5 = नया blynk. VirtualPin(5); // यह ऐप में आपकी एलसीडी लाइन 2 है

v1.on ('लिखें', फ़ंक्शन (परम) // ऐप में कमांड 1 बटन की जांच करें

{

अगर (परम == 1) // यदि बटन दबाया जाता है (जो कि 1 है) तो निम्न कार्य करें

{

v4.लिखें ("निष्पादन"); // LCD की पहली लाइन पर "Executing" लिखें

v5.लिखें ("कमांड"); // LCD की दूसरी लाइन पर "कमांड" लिखें

कमांड 1. राइटसिंक (1); // GPIO18 (जो चर कमांड 1 है) को 1 (उच्च) पर सेट करें

नींद (4000); // 4 सेकंड के लिए प्रतीक्षा करें

कमांड 1. राइटसिंक (0); // GPIO18 (जो चर कमांड 1 है) को 0 (LOW) पर सेट करें

v4.लिखें ("हो गया"); // LCD की पहली लाइन पर "Done" लिखें

v5.लिखें (""); // LCD की दूसरी लाइन पर "" (कुछ नहीं) लिखें

v1.लिखें (0); // अपने कमांड 1 बटन पर 0 लिखें, जो इसे बंद स्थिति में रीसेट कर देगा

}

});

v2.on('write', function (param) // ऐप में CW बटन की जांच करें

{

अगर (परम == 1) // यदि बटन दबाया जाता है (जो कि 1 है) तो निम्न कार्य करें

{

कमांड सीडब्ल्यू.राइटसिंक(1); // GPIO23 (जो चर कमांडCW है) को 1 (उच्च) पर सेट करें

}

और अगर (परम == 0) // यदि बटन दबाया नहीं गया है (जो कि 0 है) तो निम्न कार्य करें

{

commadCW.writeSync(0); // GPIO23 (जो चर कमांडCW है) को 0 (LOW) पर सेट करें

}

});

v3.on('write', function (param) // ऐप में CCW बटन की जांच करें

{

अगर (परम == 1) // यदि बटन दबाया जाता है (जो कि 1 है) तो निम्न कार्य करें

{

कमांडसीसीडब्ल्यू.राइटसिंक(1); // GPIO24 (जो चर कमांडCCW है) को 1 (उच्च) पर सेट करें

}

और अगर (परम == 0) // यदि बटन दबाया नहीं गया है (जो कि 0 है) तो निम्न कार्य करें

{

कमांडसीसीडब्ल्यू.राइटसिंक(0); // GPIO24 (जो चर कमांडCCW है) को 1 (उच्च) पर सेट करें

}

});

इसे सहेजें और नैनो से बाहर निकलें

- CTRL+O. को सेव करने के लिए

- CTRL+X छोड़ने के लिए

आप रास्पबेरी पाई के साथ कर रहे हैं।

अब यह देखने के लिए इसका परीक्षण करें कि क्या किसी प्रकार की त्रुटियाँ हैं (ज्यादातर समय टाइपो त्रुटियाँ हैं)

इसका परीक्षण करने के लिए, बस अपने टर्मिनल में निम्नलिखित टाइप करें

नोड MyProject.js

आपको ऐसा आउटपुट मिलना चाहिए जो इस तरह दिखता है

ऑनऑफ मोड

से जुड़ रहा है: blynk-cloud.com 8441

एसएसएल प्राधिकरण…

अधिकार दिया गया

चरण 5: Arduino में MyProject

ठीक है तो अब हमारे पास 2/3 चीजें पूरी हो गई हैं!

अब हमें सिर्फ Arduino के लिए कुछ कोड लिखने की जरूरत है।

- एक नया Arduino स्केच बनाएं और निम्न कोड टाइप करें।

#शामिल

#परिभाषित करें STEPS_PER_MOTOR_REVOLUTION 32

#परिभाषित करें STEPS_PER_OUTPUT_REVOLUTION 32 * 64 ///2048

// पिन कनेक्शन को पिन 8, 9, 10, 11 कनेक्टेड होना चाहिए

// मोटर चालक को In1, In2, In3, In4

// फिर उचित अनुक्रमण के लिए अनुक्रम 1-3-2-4 में पिन यहां दर्ज किए जाते हैं

स्टेपर स्माल_स्टेपर (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

इंट Step2टेक;

इंट कमांड1;

इंट कमांड सीडब्ल्यू;

इंट कमांडसीसीडब्ल्यू;

व्यर्थ व्यवस्था()

{

पिनमोड (2, इनपुट);

पिनमोड (3, इनपुट);

पिनमोड (4, इनपुट);

// (स्टेपर लाइब्रेरी आउटपुट के रूप में पिन सेट करती है)

}

शून्य लूप ()

{

कमांड १ = डिजिटलरीड(२);

CommandCW = digitalRead(3);

CommandCCW = digitalRead(4);

अगर (कमांड 1 == 0)

{

//कुछ नहीं करना

}

अन्यथा

{

निष्पादन समारोह ();

}

अगर (कमांडसीडब्ल्यू == 1)

{

small_stepper.setSpeed(700);

small_stepper.step(-1);

देरी(1);

}

अगर (कमांडसीसीडब्ल्यू ==1)

{

small_stepper.setSpeed(700);

small_stepper.step(1);

देरी(1);

}

}

शून्य निष्पादन समारोह ()

{

Step2टेक = STEPS_PER_OUTPUT_REVOLUTION / 4; // सीसीडब्ल्यू घुमाएँ 1/4 मोड़

small_stepper.setSpeed(700);

small_stepper.step (Steps2Take); // आप Step2Take को 0 और 2048 के बीच किसी भी मान से बदल सकते हैं

देरी (500);

Step2टेक = - STEPS_PER_OUTPUT_REVOLUTION / 4; // सीडब्ल्यू घुमाएँ 1/4 मोड़

small_stepper.setSpeed(700);

small_stepper.step (Steps2Take); // आप Step2Take को 0 और 2048 के बीच किसी भी मान से बदल सकते हैं

देरी (2000);

}

संकलित करें और अपने Arduino पर अपलोड करें।

अब सुनिश्चित करें कि आपने सब कुछ सही ढंग से कनेक्ट किया है! वायरिंग के लिए अगला चरण देखें।

चरण 6: वायरिंग

तारों
तारों
तारों
तारों
तारों
तारों
तारों
तारों

Arduino D3 को रास्पबेरीपी GPIO18 से कनेक्ट करें (जो वास्तव में पिन 12 है)

Arduino D4 को रास्पबेरीपी GPIO23 से कनेक्ट करें (जो वास्तव में पिन 16 है)

Arduino D4 को रास्पबेरीपी GPIO24 से कनेक्ट करें (जो वास्तव में पिन 18 है)

Arduino GND को RaspberryPi GND से कनेक्ट करें (पिन 6)

Arduino D8 को स्टेपर कंट्रोलर In1. से कनेक्ट करें

Arduino D9 को स्टेपर कंट्रोलर In2. से कनेक्ट करें

Arduino D10 को स्टेपर कंट्रोलर In3. से कनेक्ट करें

Arduino D11 को Stepper Controller In4. से कनेक्ट करें

5VDC को Arduino, रास्पबेरी पाई और स्टेपर कंट्रोलर से कनेक्ट करें

चरण 7: बस इतना ही

वीडियो देखें, और आपको समाप्त कर देना चाहिए!

धन्यवाद और आनंद लें!

सिफारिश की: