תוכן עניינים:

Raspberry PI & Arduino - Blynk Stepper Control: 7 שלבים (עם תמונות)
Raspberry PI & Arduino - Blynk Stepper Control: 7 שלבים (עם תמונות)

וִידֵאוֹ: Raspberry PI & Arduino - Blynk Stepper Control: 7 שלבים (עם תמונות)

וִידֵאוֹ: Raspberry PI & Arduino - Blynk Stepper Control: 7 שלבים (עם תמונות)
וִידֵאוֹ: SKR Pro v1.2 — TMC2226 UART с бездатчиковым возвратом в исходное положение 2024, נוֹבֶמבֶּר
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

הדרכה זו תראה לכם כיצד לשלוט על מנוע צעד עם Arduino, Raspberry Pi ויישום Blynk.

בקליפת אגוזים, האפליקציה שולחת בקשות ל- Raspberry Pi באמצעות סיכות וירטואליות, לאחר מכן ה- Pi שולח אות HIGH/LOW לארגואינו ולאחר מכן ה- Arduino עוסק במנוע הצעד.

אני חושב שקל יותר להשתמש באישור זה מכיוון שרוב האנשים רגילים לעבוד עם Arduino ולא הרבה עם node.js ב- Raspberry Pi.

רכיבים הדרושים לשם כך:

- פטל PI (אני משתמש בדגם Raspberry Pi 3)

- Arduino (אני משתמש ב- Arduino Nano)

- מנוע סרוו (אני משתמש ב- 28BYJ-48 5VDC עם הבקר שלו)

- כמה חוטי מגשר

- מקור חשמל (5VDC 2A.)

ניתן להוריד את המערכון של Arduino ואת הקוד Node.js. פשוט חפש את הקבצים.

שלב 1: יצירת האפליקציה בטלפון שלך

יצירת האפליקציה בטלפון שלך
יצירת האפליקציה בטלפון שלך
יצירת האפליקציה בטלפון שלך
יצירת האפליקציה בטלפון שלך

הורד את Blynk מה- AppStore או מ- GooglePlay

פתח את האפליקציה וצור משתמש או התחבר באמצעות פייסבוק.

- צור פרויקט חדש

תן שם לפרויקט שלך: MyProject

בחר מכשיר: Rasapberry Pi 3 B

סוג חיבור: Wifi (או אתרנט אם ה- Pi מחובר לרשת שלך)

- לחץ על צור

בדוק את האימייל שלך לגבי האסימון שלך

(נראה כך 3aa19bb8a9e64c90af11e3f6b0595b3c)

אסימון זה קשור לאפליקציה הנוכחית שלך. אם תעשה אפליקציה אחרת, תיצור אסימון נוסף.

באפליקציה הוסיפו את הווידג'טים הבאים (ראו תמונה)

- הוסף 3 כפתורים

- הוסף LCD אחד

- ערוך את הכפתור

תן שם לפקודה הראשונה, הגדר את הסיכה כסיכה וירטואלית 1 והגדר את המצב כ- SWITCH

תן שם ל- CW השני, הגדר את הסיכה כסיכה וירטואלית 2 והגדר את המצב כ- PUSH

תן את שם ה- CCW השלישי, הגדר את הסיכה כסיכה וירטואלית 3 והגדר את המצב כ- PUSH

- ערוך את ה- LCD

הגדר את הפינים כ- Pin Pin 4 ו- Virtual Pin 5 והגדר את המצב ל- PUSH

שלב 2: הכנת ה- PI

ראשית, עליך להתקין את Node.js. לפני עדכון Node.js, הקפד להסיר גרסאות ישנות:

פתח את הטרמינל והקלד

sudo apt-get node nodejs

node.js -ysudo apt -get autoremove

התקנה אוטומטית של Node.js הוספת מאגרים:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

התקן את Node.js

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

sudo apt-get install build-essential nodejs -y

לאחר התקנת Node.js, התקן את Blynk

sudo npm התקן blynk -library -g

sudo npm להתקין onoff -g

שלב 3: יצירת הפרויקט שלך

התחל בשינוי ספרייה (פקודת cd) לספריית pi

פתח את הטרמינל והקלד:

cd/home/pi/

לאחר מכן, צור ספרייה שבה הפרויקט שלך יגור

mkdir MyProject

שנה את הספרייה ל- MyProject, הקלד את הטקסט הבא במסוף

cd MyProject

בדוק את תוכן הספרייה (הוא אמור להיות ריק). פשוט הקלד את הטרמינל הבא

ls

לאחר מכן, הקלד את הדברים הבאים כדי ליצור את תיאור הפרויקט שלך (package.json)

npm init

פשוט הקלד את שם הפרויקט, המחבר, הגרסה וכו '…

לאחר שתעשה זאת, התקן את ספריית Blynk, ספריית onoff וספריית שינה-שינה במדריך הפרויקטים שלך. הקלד את הטרמינל הבא

npm התקן blynk-library --save

npm להתקין onoff -לשמור

npm התקן מערכת שינה-שמור

לבסוף, צור את קובץ ה- js שלך (כאן יהיה מקום הקוד שלך). הקלד את הטרמינל הבא

ננו MyProject.js

לאחר שתבצע את הפקודה, ננו (עורך טקסט מסוף) ייפתח.

שלב 4: MyProject.js

בננו, כתוב את שורות הקוד הבאות

var Blynk = require ('blynk-library');

var AUTH = '******************'; זה האסימון שלך

var blynk = Blynk. Blynk חדש (AUTH);

var Gpio = require ('onoff'). Gpio,

command1 = Gpio חדש (18, 'out'), // יתחבר ל- Arduino D2

commandCW = Gpio חדש (23, 'out'), // יתחבר ל- Arduino D3

commandCCW = Gpio חדש (24, 'out'); // יתחבר ל- Arduino D4

var sleep = require ('מערכת-שינה');

var v1 = blynk. VirtualPin חדש (1); // זהו כפתור Command1 שלך באפליקציה

var v2 = blynk. VirtualPin חדש (2); // זהו כפתור ה- CW שלך באפליקציה

var v3 = blynk. VirtualPin חדש (3); // זהו כפתור ה- CCW שלך באפליקציה

var v4 = blynk. VirtualPin חדש (4); // זהו קו ה- LCD שלך 1 באפליקציה

var v5 = blynk. VirtualPin חדש (5); // זהו קו ה- LCD שלך 2 באפליקציה

v1.on ('לכתוב', פונקציה (param) // בדוק אם יש כפתור Command1 ביישום

{

אם (param == 1) // אם לוחצים על הכפתור (שהוא 1) אז בצע את הפעולות הבאות

{

v4.write ("ביצוע"); // כתוב "ביצוע" בשורה הראשונה של ה- LCD

v5.write ("פקודה"); // כתוב "פקודה" בשורה השנייה של ה- LCD

command1.writeSync (1); // הגדר את GPIO18 (שהוא פקודה משתנה 1) ל- 1 (HIGH)

שינה (4000); // המתן 4 שניות

command1.writeSync (0); // הגדר את GPIO18 (שהיא הפקודה המשתנה 1) ל- 0 (LOW)

v4.write ("בוצע"); // כתוב "בוצע" בשורה הראשונה של ה- LCD

v5.write (""); // כתוב "" (כלום) בשורה השנייה של ה- LCD

v1.write (0); // כתוב 0 לכפתור Command1 שלך, שיאפס אותו למצב OFF

}

});

v2.on ('לכתוב', פונקציה (param) // בדוק אם לחצן CW באפליקציה

{

אם (param == 1) // אם לוחצים על הכפתור (שהוא 1) אז בצע את הפעולות הבאות

{

commandCW.writeSync (1); // הגדר את GPIO23 (שהוא פקודה משתנה CW) ל- 1 (HIGH)

}

אחרת אם (param == 0) // אם הכפתור לא נלחץ (שהוא 0) אז בצע את הפעולות הבאות

{

commadCW.writeSync (0); // הגדר את GPIO23 (שהוא הפקודה משתנה CW) ל- 0 (LOW)

}

});

v3.on ('לכתוב', פונקציה (param) // בדוק אם לחצן CCW באפליקציה

{

אם (param == 1) // אם לוחצים על הכפתור (שהוא 1) אז בצע את הפעולות הבאות

{

commandCCW.writeSync (1); // הגדר את GPIO24 (שהוא הפקודה המשתנה CCW) ל- 1 (HIGH)

}

אחרת אם (param == 0) // אם הכפתור לא נלחץ (שהוא 0) אז בצע את הפעולות הבאות

{

commandCCW.writeSync (0); // הגדר את GPIO24 (שהוא הפקודה המשתנה CCW) ל- 1 (HIGH)

}

});

שמור אותו ויצא מהננו

- כדי לשמור CTRL+O

- כדי לסיים CTRL+X

סיימת עם ה- Raspberry Pi.

עכשיו בדוק את זה כדי לראות אם יש טעויות כלשהן (לרוב מדובר בשגיאות הקלדה)

כדי לבדוק זאת, פשוט הקלד את הדברים הבאים במסוף שלך

הצומת MyProject.js

אתה אמור לקבל פלט שנראה כך

מצב OnOff

מתחבר אל: blynk-cloud.com 8441

אישור SSL…

מורשה

שלב 5: MyProject בארדואינו

אוקיי אז עכשיו סיימנו 2/3 דברים!

עכשיו רק צריך לכתוב קוד לארדואינו.

- צור סקיצה חדשה של 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 לרצף נכון

Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

הגדרת חלל ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Stepper Library מגדיר סיכות כפלט)

}

לולאת חלל ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

אם (Command1 == 0)

{

//לעשות כלום

}

אַחֵר

{

ExecutionFunction ();

}

אם (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

עיכוב (1);

}

אם (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

עיכוב (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // סובב CCW 1/4 סיבוב

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // אתה יכול להחליף את Steps2Take בכל ערך שבין 0 ל -2048

עיכוב (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // סובב את CW 1/4 סיבוב

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // אתה יכול להחליף את Steps2Take בכל ערך שבין 0 ל -2048

עיכוב (2000);

}

הידור והעלה ל- Arduino שלך.

עכשיו וודא שאתה מחבר הכל נכון! עיין בשלב הבא לחיווט.

שלב 6: חיווט

תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל
תִיוּל

חבר את Arduino D3 ל- RaspberryPi GPIO18 (שזה בעצם סיכה 12)

חבר את Arduino D4 ל- RaspberryPi GPIO23 (שהוא למעשה סיכה 16)

חבר את Arduino D4 ל- RaspberryPi GPIO24 (שזה בעצם סיכה 18)

חבר את Arduino GND ל- RaspberryPi GND (סיכה 6)

חבר את Arduino D8 לבקר Stepper In1

חבר את Arduino D9 לבקר Stepper In2

חבר את Arduino D10 לבקר Stepper In3

חבר את Arduino D11 לבקר Stepper In4

חבר 5VDC ל- Arduino, Raspberry Pi ו- Controller Controller

שלב 7: זהו

בדוק את הסרטון, וכדאי שתסיים!

תודה ותהנה!

מוּמלָץ: