สารบัญ:

Raspberry PI & Arduino - การควบคุม Blynk Stepper: 7 ขั้นตอน (พร้อมรูปภาพ)
Raspberry PI & Arduino - การควบคุม Blynk Stepper: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry PI & Arduino - การควบคุม Blynk Stepper: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Raspberry PI & Arduino - การควบคุม Blynk Stepper: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: ติดตั้ง Blynk Local Server บน Raspberry Pi Zero 2W อย่างละเอียด! เพิ่ม User ได้แม้ App เวอร์ชั่นใหม่ 2024, อาจ
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

บทช่วยสอนนี้จะแสดงวิธีควบคุมสเต็ปเปอร์มอเตอร์ด้วย Arduino, Raspberry Pi และ Blynk Application

ในเปลือกถั่ว แอปส่งคำขอไปยัง Raspberry Pi ผ่าน Virtual Pins จากนั้น Pi จะส่งสัญญาณ HIGH/LOW ไปยัง Arduino และ Arduino จากนั้นจะจัดการกับสเต็ปเปอร์มอเตอร์

ฉันคิดว่ามันง่ายกว่าที่จะใช้แนวทางนั้น เนื่องจากคนส่วนใหญ่เคยทำงานกับ Arduino และไม่มากนักกับ node.js บน Raspberry Pi

ส่วนประกอบที่จำเป็นสำหรับสิ่งนี้:

- Raspberry PI (ฉันใช้ Raspberry Pi 3 รุ่น b)

- Arduino (ฉันใช้ Arduino Nano)

- เซอร์โวมอเตอร์ (ฉันใช้ 28BYJ-48 5VDC กับคอนโทรลเลอร์)

- สายจัมเปอร์บางส่วน

- แหล่งพลังงาน (5VDC 2A.)

สามารถดาวน์โหลดร่าง Arduino และโค้ด Node.js ได้ เพียงแค่ค้นหาไฟล์.

ขั้นตอนที่ 1: สร้างแอพบนโทรศัพท์ของคุณ

การสร้างแอพบนโทรศัพท์ของคุณ
การสร้างแอพบนโทรศัพท์ของคุณ
การสร้างแอพบนโทรศัพท์ของคุณ
การสร้างแอพบนโทรศัพท์ของคุณ

ดาวน์โหลด Blynk จาก AppStore หรือ GooglePlay

เปิดแอพและสร้างผู้ใช้หรือเข้าสู่ระบบด้วย facebook

- สร้างโครงการใหม่

ตั้งชื่อโครงการของคุณ: MyProject

เลือกอุปกรณ์: Rasapberry Pi 3 B

ประเภทการเชื่อมต่อ: Wifi (หรืออีเทอร์เน็ตหาก Pi ของคุณต่อสายเข้ากับเครือข่ายของคุณ)

- คลิกสร้าง

ตรวจสอบอีเมลของคุณสำหรับ Token

(หน้าตาประมาณนี้ 3aa19bb8a9e64c90af11e3f6b0595b3c)

โทเค็นนี้ผูกมัดกับแอปปัจจุบันของคุณ หากคุณทำแอปอื่น คุณจะสร้างโทเค็นอื่น

ในแอปเพิ่มวิดเจ็ตต่อไปนี้ (ดูรูป)

- เพิ่ม 3 ปุ่ม

- เพิ่ม 1 LCD

- แก้ไขปุ่ม

ตั้งชื่อคำสั่งแรก Command1 ตั้งค่าพินเป็น Virtual Pin 1 และตั้งค่าโหมดเป็น SWITCH

ตั้งชื่ออันที่สอง CW ตั้งค่า Pin เป็น Virtual Pin 2 และตั้งค่า Mode เป็น PUSH

ตั้งชื่ออันที่สาม CCW ตั้งพินเป็น Virtual Pin 3 และตั้งโหมดเป็น PUSH

- แก้ไข LCD

ตั้งค่าพินเป็นพินเสมือน 4 และพินเสมือน 5 และตั้งค่าโหมดเป็น PUSH

ขั้นตอนที่ 2: เตรียม PI ให้พร้อม

ก่อนอื่น คุณต้องติดตั้ง Node.js. ก่อนอัปเดต Node.js โปรดลบเวอร์ชันเก่าออก:

เปิด Terminal แล้วพิมพ์

sudo apt-get purge โหนด nodejs

node.js -ysudo apt-get autoremove

การติดตั้ง Node.js อัตโนมัติ เพิ่มที่เก็บ:

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E ทุบตี -

ติดตั้ง Node.js

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

sudo apt-get ติดตั้ง build-essential nodejs -y

เมื่อติดตั้ง Node.js แล้ว ให้ติดตั้ง Blynk

sudo npm ติดตั้ง blynk-library -g

sudo npm ติดตั้ง onoff -g

ขั้นตอนที่ 3: การสร้างโครงการของคุณ

เริ่มต้นด้วยการเปลี่ยนไดเร็กทอรี (คำสั่ง cd) เป็นไดเร็กทอรี pi

เปิด Terminal แล้วพิมพ์:

cd /home/pi/

จากนั้นสร้างไดเร็กทอรีที่โครงการของคุณจะอยู่

mkdir MyProject

เปลี่ยนไดเร็กทอรีเป็น MyProject พิมพ์ต่อไปนี้ใน Terminal

cd MyProject

ตรวจสอบเนื้อหาของไดเร็กทอรี (ควรว่างเปล่า) เพียงพิมพ์ข้อความต่อไปนี้ใน Terminal

ลส

ถัดไป พิมพ์ต่อไปนี้เพื่อสร้างคำอธิบายโครงการของคุณ (package.json)

npm init

เพียงพิมพ์ชื่อโครงการ ผู้แต่ง เวอร์ชัน ฯลฯ…

เมื่อเสร็จแล้ว ให้ติดตั้งไลบรารี Blynk, ไลบรารี onoff และไลบรารี system-sleep ในไดเร็กทอรีโครงการของคุณ พิมพ์ข้อมูลต่อไปนี้ใน Terminal ของคุณ

npm ติดตั้ง blynk-library --save

npm ติดตั้ง onoff --save

npm ติดตั้ง system-sleep --save

สุดท้าย สร้างไฟล์.js ของคุณ (นี่คือที่ที่โค้ดของคุณจะอยู่) พิมพ์ข้อความต่อไปนี้ใน Terminal

nano MyProject.js

เมื่อคุณรันคำสั่งนั้น nano (โปรแกรมแก้ไขข้อความเทอร์มินัล) จะเปิดขึ้น

ขั้นตอนที่ 4: MyProject.js

ใน nano ให้เขียนโค้ดต่อไปนี้

var Blynk = ต้องการ ('blynk-library');

var AUTH = ' ****************** '; นี่คือโทเค็นของคุณ

var blynk = ใหม่ Blynk. Blynk (AUTH);

var Gpio = ต้องการ ('onoff'). Gpio,

command1 = Gpio ใหม่ (18, 'ออก'), // จะเชื่อมต่อกับ Arduino D2

commandCW = Gpio ใหม่ (23, 'ออก'), // จะเชื่อมต่อกับ Arduino D3

commandCCW = Gpio ใหม่ (24, 'ออก'); //จะเชื่อมต่อกับ Arduino D4

var sleep = ต้องการ ('system-sleep');

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('write', function (param) //ตรวจสอบปุ่ม Command1 ในแอป

{

if (param == 1) //หากกดปุ่ม (ซึ่งก็คือ 1) ให้ทำดังนี้

{

v4.write("กำลังดำเนินการ"); // เขียน "กำลังดำเนินการ" ในบรรทัดแรกของ LCD

v5.write("คำสั่ง"); //เขียน "Command" ในบรรทัดที่สองของ LCD

command1.writeSync(1); //ตั้งค่า GPIO18 (ซึ่งเป็นตัวแปร command1) เป็น 1 (สูง)

นอนหลับ(4000); //รอ 4 วินาที

command1.writeSync(0); //ตั้งค่า GPIO18 (ซึ่งเป็นตัวแปร command1) เป็น 0 (LOW)

v4.write("เสร็จสิ้น"); // เขียน "เสร็จสิ้น" ในบรรทัดแรกของ LCD

v5.write(" "); //เขียน " " (ไม่มีอะไร) ในบรรทัดที่สองของ LCD

v1.write(0); //เขียน 0 ไปที่ปุ่ม Command1 ของคุณ ซึ่งจะรีเซ็ตเป็นตำแหน่ง OFF

}

});

v2.on('write', function (param) //ตรวจสอบปุ่ม CW ในแอป

{

if (param == 1) //หากกดปุ่ม (ซึ่งก็คือ 1) ให้ทำดังนี้

{

commandCW.writeSync(1); //ตั้งค่า GPIO23 (ซึ่งเป็นตัวแปร commandCW) เป็น 1 (สูง)

}

else if (param == 0) //หากไม่ได้กดปุ่ม (ซึ่งก็คือ 0) ให้ทำดังนี้

{

commadCW.writeSync(0); //ตั้งค่า GPIO23 (ซึ่งเป็นตัวแปร commandCW) เป็น 0 (LOW)

}

});

v3.on('write', function (param) //ตรวจสอบปุ่ม CCW ในแอป

{

if (param == 1) //หากกดปุ่ม (ซึ่งก็คือ 1) ให้ทำดังนี้

{

commandCCW.writeSync(1); //ตั้งค่า GPIO24 (ซึ่งเป็นตัวแปร commandCCW) เป็น 1 (สูง)

}

else if (param == 0) //หากไม่ได้กดปุ่ม (ซึ่งก็คือ 0) ให้ทำดังนี้

{

commandCCW.writeSync(0); //ตั้งค่า GPIO24 (ซึ่งเป็นตัวแปร commandCCW) เป็น 1 (สูง)

}

});

บันทึกและออกจาก nano

- เพื่อบันทึก CTRL+O

- เพื่อออกจาก CTRL+X

คุณทำ Raspberry Pi เสร็จแล้ว

ตอนนี้ทดสอบเพื่อดูว่ามีข้อผิดพลาดใด ๆ หรือไม่ (ส่วนใหญ่เป็นข้อผิดพลาดของ Typo)

หากต้องการทดสอบ เพียงพิมพ์ข้อความต่อไปนี้ใน Terminal

โหนด MyProject.js

คุณควรได้ผลลัพธ์ที่มีลักษณะดังนี้

เปิดปิดโหมด

กำลังเชื่อมต่อกับ: blynk-cloud.com 8441

การอนุญาต SSL…

ได้รับอนุญาต

ขั้นตอนที่ 5: MyProject ใน Arduino

ตกลง ตอนนี้เรามี 2/3 ของที่ทำเสร็จแล้ว!

ตอนนี้เราแค่ต้องเขียนโค้ดสำหรับ Arduino

- สร้างร่าง Arduino ใหม่และพิมพ์รหัสต่อไปนี้

#รวม

#define STEPS_PER_MOTOR_REVOLUTION 32

#define 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;

คำสั่ง int1;

ใน CommandCW;

int CommandCCW;

การตั้งค่าเป็นโมฆะ ()

{

โหมดพิน (2, อินพุต);

โหมดพิน (3, อินพุต);

โหมดพิน (4, อินพุต);

//(Stepper Library ตั้งค่าพินเป็นเอาต์พุต)

}

วงเป็นโมฆะ ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead(4);

ถ้า (Command1 == 0)

{

//ไม่ทำอะไร

}

อื่น

{

ฟังก์ชันการดำเนินการ ();

}

ถ้า (CommandCW == 1)

{

small_stepper.setSpeed(700);

small_stepper.step(-1);

ล่าช้า(1);

}

ถ้า (CommandCCW ==1)

{

small_stepper.setSpeed(700);

small_stepper.step(1);

ล่าช้า(1);

}

}

เป็นโมฆะ 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 Controller In2

เชื่อมต่อ Arduino D10 กับ Stepper Controller In3

เชื่อมต่อ Arduino D11 กับ Stepper Controller In4

เชื่อมต่อ 5VDC กับ Arduino, Raspberry Pi และ Stepper Controller

ขั้นตอนที่ 7: แค่นั้นแหละ

ตรวจสอบวิดีโอและคุณควรทำเสร็จแล้ว!

ขอบคุณและสนุก!

แนะนำ: