Mục lục:

Raspberry PI & Arduino - Điều khiển bước Blynk: 7 bước (có hình ảnh)
Raspberry PI & Arduino - Điều khiển bước Blynk: 7 bước (có hình ảnh)

Video: Raspberry PI & Arduino - Điều khiển bước Blynk: 7 bước (có hình ảnh)

Video: Raspberry PI & Arduino - Điều khiển bước Blynk: 7 bước (có hình ảnh)
Video: LearnRaspberry(P10): HƯỚNG DẪN KẾT NỐI ARDUINO VỚI RASPBERRY (How to connect arduino to raspberry) 2024, Tháng mười một
Anonim
Raspberry PI & Arduino - Điều khiển bước Blynk
Raspberry PI & Arduino - Điều khiển bước Blynk

Hướng dẫn này sẽ chỉ cho bạn cách điều khiển động cơ bước với Arduino, Raspberry Pi và Ứng dụng Blynk.

Trong một nut shell, ứng dụng gửi yêu cầu đến Raspberry Pi thông qua Virtual Pins, Pi sau đó gửi tín hiệu HIGH / LOW đến Arduino và Arduino sau đó xử lý động cơ bước.

Tôi nghĩ rằng việc sử dụng cách tiếp cận đó sẽ dễ dàng hơn vì hầu hết mọi người đã quen làm việc với Arduino và không nhiều với node.js trên Raspberry Pi.

Các thành phần cần thiết cho việc này:

- Raspberry PI (Tôi đang sử dụng Raspberry Pi 3 kiểu b)

- Arduino (Tôi đang sử dụng Arduino Nano)

- Động cơ Servo (Tôi đang sử dụng 28BYJ-48 5VDC với bộ điều khiển của nó)

- Một số dây nhảy

- Nguồn điện (5VDC 2A.)

Bản phác thảo Arduino và mã Node.js có sẵn để tải xuống. Chỉ cần tra cứu các tập tin.

Bước 1: Tạo ứng dụng trên điện thoại của bạn

Tạo ứng dụng trên điện thoại của bạn
Tạo ứng dụng trên điện thoại của bạn
Tạo ứng dụng trên điện thoại của bạn
Tạo ứng dụng trên điện thoại của bạn

Tải xuống Blynk từ AppStore hoặc GooglePlay

Mở Ứng dụng và tạo người dùng hoặc Đăng nhập bằng facebook.

- Tạo một dự án mới

Đặt tên cho dự án của bạn: MyProject

Chọn thiết bị: Rasapberry Pi 3 B

Loại kết nối: Wifi (hoặc Ethernet nếu Pi của bạn có dây với mạng của bạn)

- Nhấp vào Tạo

Kiểm tra email của bạn để tìm Token của bạn

(trông giống như thế này 3aa19bb8a9e64c90af11e3f6b0595b3c)

Mã thông báo này được liên kết với ứng dụng hiện tại của bạn. Nếu bạn thực hiện một ứng dụng khác, bạn sẽ tạo ra một mã thông báo khác.

Trong ứng dụng, thêm các widget sau (xem hình)

- Thêm 3 nút

- Thêm 1 màn hình LCD

- Chỉnh sửa nút

đặt tên cho cái đầu tiên là Command1, đặt Pin là Virtual Pin 1 và đặt Chế độ là SWITCH

đặt tên cho cái thứ hai là CW, đặt Pin là Virtual Pin 2 và đặt Chế độ là PUSH

đặt tên cho cái thứ ba là CCW, đặt Ghim làm Chân ảo 3 và đặt Chế độ là PUSH

- Chỉnh sửa màn hình LCD

đặt các Ghim làm Ghim ảo 4 và Ghim ảo 5 và đặt Chế độ thành PUSH

Bước 2: Chuẩn bị PI

Đầu tiên, bạn cần cài đặt Node.js. Trước khi cập nhật Node.js, hãy nhớ xóa các phiên bản cũ:

Mở Terminal và nhập

sudo apt-get thanh lọc nút nodejs

node.js -ysudo apt-get autoremove

Cài đặt Node.js tự động Thêm kho:

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

Cài đặt Node.js

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

sudo apt-get install build-essential nodejs -y

Sau khi Node.js được cài đặt, Cài đặt Blynk

sudo npm cài đặt blynk-library -g

sudo npm cài đặt onoff -g

Bước 3: Tạo dự án của bạn

Bắt đầu bằng cách thay đổi thư mục (lệnh cd) thành thư mục pi

Mở Terminal và nhập:

cd / home / pi /

Sau đó, tạo một thư mục nơi dự án của bạn sẽ cư trú

mkdir MyProject

Thay đổi thư mục thành MyProject, nhập nội dung sau vào Terminal

cd MyProject

Kiểm tra nội dung của thư mục (nó phải trống). Chỉ cần nhập nội dung sau vào Terminal

ls

Tiếp theo, nhập nội dung sau để tạo mô tả dự án của bạn (package.json)

npm init

Chỉ cần nhập tên dự án, tác giả, phiên bản, v.v.

Sau khi hoàn thành việc này, hãy cài đặt thư viện Blynk, thư viện onoff và thư viện chế độ ngủ hệ thống trong thư mục dự án CỦA BẠN. Nhập thông tin sau vào Terminal của bạn

npm cài đặt blynk-library --save

npm install onoff --save

npm install system-sleep --save

Cuối cùng, tạo tệp.js của bạn (Đây sẽ là nơi mã của bạn sẽ cư trú). Nhập nội dung sau vào Terminal

nano MyProject.js

Khi bạn thực hiện lệnh đó, nano (trình soạn thảo văn bản đầu cuối) sẽ mở ra.

Bước 4: MyProject.js

Trong nano, hãy viết các dòng mã sau

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

var AUTH = '******************'; ĐÂY LÀ TOKEN CỦA BẠN

var blynk = new Blynk. Blynk (AUTH);

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

command1 = new Gpio (18, 'out'), // Sẽ được kết nối với Arduino D2

commandCW = new Gpio (23, 'out'), // Sẽ được kết nối với Arduino D3

commandCCW = new Gpio (24, 'out'); // Sẽ được kết nối với Arduino D4

var sleep = request ('system-sleep');

var v1 = new blynk. VirtualPin (1); // đây là nút Command1 của bạn trong ứng dụng

var v2 = new blynk. VirtualPin (2); // đây là nút CW của bạn trong ứng dụng

var v3 = new blynk. VirtualPin (3); // đây là nút CCW của bạn trong ứng dụng

var v4 = new blynk. VirtualPin (4); // đây là dòng LCD 1 của bạn trong ứng dụng

var v5 = new blynk. VirtualPin (5); // đây là dòng LCD 2 của bạn trong ứng dụng

v1.on ('write', function (param) // Kiểm tra nút Command1 trong ứng dụng

{

if (param == 1) // Nếu nút được nhấn (là 1) thì hãy làm như sau

{

v4.write ("Đang thực thi"); // Viết "Đang thực thi" trên dòng đầu tiên của màn hình LCD

v5.write ("Lệnh"); // Viết "Lệnh" trên dòng thứ hai của màn hình LCD

command1.writeSync (1); // Đặt GPIO18 (là biến command1) thành 1 (HIGH)

ngủ (4000); // Chờ 4 giây

command1.writeSync (0); // Đặt GPIO18 (là biến command1) thành 0 (LOW)

v4.write ("Xong"); // Viết "Xong" trên dòng đầu tiên của màn hình LCD

v5.write (""); // Viết "" (không có gì) trên dòng thứ hai của màn hình LCD

v1.write (0); // Ghi 0 vào nút Command1 của bạn, nút này sẽ đặt lại nó về vị trí TẮT

}

});

v2.on ('write', function (param) // Kiểm tra nút CW trong ứng dụng

{

if (param == 1) // Nếu nút được nhấn (là 1) thì hãy làm như sau

{

commandCW.writeSync (1); // Đặt GPIO23 (là biến commandCW) thành 1 (CAO)

}

else if (param == 0) // Nếu nút không được nhấn (là 0) thì hãy làm như sau

{

commadCW.writeSync (0); // Đặt GPIO23 (là biến commandCW) thành 0 (LOW)

}

});

v3.on ('write', function (param) // Kiểm tra nút CCW trong ứng dụng

{

if (param == 1) // Nếu nút được nhấn (là 1) thì hãy làm như sau

{

commandCCW.writeSync (1); // Đặt GPIO24 (là biến commandCCW) thành 1 (CAO)

}

else if (param == 0) // Nếu nút không được nhấn (là 0) thì hãy làm như sau

{

commandCCW.writeSync (0); // Đặt GPIO24 (là lệnh biến CCW) thành 1 (CAO)

}

});

Lưu nó và thoát khỏi nano

- để lưu CTRL + O

- để thoát CTRL + X

Bạn đã hoàn tất với Raspberry Pi.

Bây giờ hãy kiểm tra nó để xem có bất kỳ loại lỗi nào không (hầu hết thời gian là lỗi Typo)

Để kiểm tra nó, chỉ cần nhập thông tin sau vào Terminal của bạn

nút MyProject.js

Bạn sẽ nhận được đầu ra giống như thế này

Chế độ OnOff

Đang kết nối với: blynk-cloud.com 8441

Ủy quyền SSL…

Được ủy quyền

Bước 5: MyProject trong Arduino

Ok vậy là bây giờ chúng ta đã hoàn thành được 2/3 thứ!

Bây giờ chúng ta chỉ cần viết một số mã cho Arduino.

- Tạo một bản phác thảo Arduino mới và nhập đoạn mã sau.

#bao gồm

#define STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Các kết nối chân cần phải là chân 8, 9, 10, 11 được kết nối

// tới Trình điều khiển động cơ In1, In2, In3, In4

// Sau đó, các chân được nhập vào đây theo trình tự 1-3-2-4 để giải trình tự thích hợp

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

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

void setup ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Thư viện bước đặt các chân làm đầu ra)

}

void loop ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

if (Command1 == 0)

{

//không làm gì cả

}

khác

{

ExecutionFunction ();

}

if (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

trì hoãn (1);

}

if (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

trì hoãn (1);

}

}

void ExecutionFunction ()

{

Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Xoay CCW 1/4 lượt

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Bạn có thể thay thế Steps2Take bằng bất kỳ giá trị nào từ 0 đến 2048

chậm trễ (500);

Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Xoay CW 1/4 lượt

small_stepper.setSpeed (700);

small_stepper.step (Steps2Take); // Bạn có thể thay thế Steps2Take bằng bất kỳ giá trị nào từ 0 đến 2048

chậm trễ (2000);

}

Biên dịch và tải lên Arduino của bạn.

Bây giờ hãy đảm bảo rằng bạn kết nối mọi thứ một cách chính xác! Xem bước tiếp theo để nối dây.

Bước 6: Đấu dây

Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây
Đấu dây

Kết nối Arduino D3 với RaspberryPi GPIO18 (thực tế là chân 12)

Kết nối Arduino D4 với RaspberryPi GPIO23 (thực sự là chân 16)

Kết nối Arduino D4 với RaspberryPi GPIO24 (thực chất là chân 18)

Kết nối Arduino GND với RaspberryPi GND (chân 6)

Kết nối Arduino D8 với Bộ điều khiển bước In1

Kết nối Arduino D9 với Bộ điều khiển bước In2

Kết nối Arduino D10 với Bộ điều khiển bước In3

Kết nối Arduino D11 với Bộ điều khiển bước In4

Kết nối 5VDC với Arduino, Raspberry Pi và Bộ điều khiển bước

Bước 7: Đó là Nó

Kiểm tra video, và bạn sẽ hoàn thành!

Cảm ơn và tận hưởng!

Đề xuất: