Isi kandungan:

Raspberry PI & Arduino - Blynk Stepper Control: 7 Steps (dengan Gambar)
Raspberry PI & Arduino - Blynk Stepper Control: 7 Steps (dengan Gambar)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 Steps (dengan Gambar)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 Steps (dengan Gambar)
Video: Controlling stepper motor with esp32 #jlcpcb 2024, November
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

Tutorial ini akan menunjukkan cara mengendalikan motor stepper dengan Arduino, Raspberry Pi dan Aplikasi Blynk.

Dalam shell kacang, aplikasi mengirimkan permintaan ke Raspberry Pi melalui Virtual Pin, Pi kemudian mengirimkan isyarat TINGGI / RENDAH ke Arduino dan Arduino kemudian berurusan dengan motor stepper.

Saya rasa lebih senang menggunakan pendekatan itu kerana kebanyakan orang biasa bekerja dengan Arduino dan tidak banyak menggunakan node.js pada Raspberry Pi.

Komponen yang diperlukan untuk ini:

- Raspberry PI (saya menggunakan model Raspberry Pi 3 b)

- Arduino (saya menggunakan Arduino Nano)

- Servo Motor (Saya menggunakan 28BYJ-48 5VDC dengan pengawalnya)

- Beberapa wayar pelompat

- Sumber kuasa (5VDC 2A.)

Sketsa Arduino dan kod Node.js tersedia untuk dimuat turun. Cari failnya sahaja.

Langkah 1: Membuat Aplikasi di Telefon Anda

Membuat Aplikasi di Telefon Anda
Membuat Aplikasi di Telefon Anda
Membuat Aplikasi di Telefon Anda
Membuat Aplikasi di Telefon Anda

Muat turun Blynk dari AppStore atau GooglePlay

Buka Aplikasi dan buat pengguna atau Log masuk dengan facebook.

- Buat projek baru

Namakan projek anda: MyProject

Pilih Peranti: Rasapberry Pi 3 B

Jenis Sambungan: Wifi (atau Ethernet jika Pi anda disambungkan ke rangkaian anda)

- Klik Buat

Periksa e-mel anda untuk Token anda

(nampak seperti ini 3aa19bb8a9e64c90af11e3f6b0595b3c)

Token ini terikat dengan aplikasi semasa anda. Sekiranya anda melakukan aplikasi lain, anda akan menghasilkan token lain.

Dalam Aplikasi tambahkan widget berikut (lihat gambar)

- Tambah 3 butang

- Tambah 1 LCD

- Edit butang

beri nama Command1 yang pertama, tetapkan Pin sebagai Virtual Pin 1 dan tetapkan Mode sebagai SWITCH

beri nama CW yang kedua, tetapkan Pin sebagai Virtual Pin 2 dan tetapkan Mode sebagai PUSH

beri nama CCW yang ketiga, tetapkan Pin sebagai Virtual Pin 3 dan tetapkan Mode sebagai PUSH

- Edit LCD

tetapkan Pin sebagai Virtual Pin 4 dan Virtual Pin 5 dan tetapkan Mode ke PUSH

Langkah 2: Menyiapkan PI

Pertama, anda perlu memasang Node.js. Sebelum mengemas kini Node.js, pastikan anda membuang versi lama:

Buka Terminal dan taip

sudo apt-get purge node nodejs

node.js -ysudo apt-get autoremove

Pemasangan Node.js automatik Tambahkan repositori:

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

Pasang Node.js

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

sudo apt-get install build-essential nodejs -y

Setelah Node.js dipasang, Pasang Blynk

sudo npm pasang blynk-library -g

sudo npm pasang onoff -g

Langkah 3: Membuat Projek Anda

Mulakan dengan menukar direktori (perintah cd) ke direktori pi

Buka Terminal dan taip:

cd / rumah / pi /

Kemudian, buat direktori tempat projek anda berada

mkdir MyProject

Ubah direktori ke MyProject, ketik yang berikut di Terminal

cd MyProject

Periksa kandungan direktori (mestilah kosong). Ketik sahaja yang berikut di Terminal

ls

Seterusnya, taipkan yang berikut untuk membuat keterangan projek anda (package.json)

npm init

Taipkan nama projek, pengarang, versi, dan lain-lain …

Setelah ini selesai, pasang perpustakaan Blynk, perpustakaan onoff dan perpustakaan sistem tidur di direktori projek ANDA. Taipkan perkara berikut di Terminal anda

npm pasang blynk-library --simpan

npm pasang onoff - simpan

npm pasang sistem-tidur --jimat

Akhirnya, buat fail.js anda (Di sinilah kod anda berada). Taipkan perkara berikut di Terminal

nano MyProject.js

Sebaik sahaja anda melaksanakan perintah itu, nano (penyunting teks terminal) akan terbuka.

Langkah 4: MyProject.js

Di nano, tulis baris kod berikut

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

var AUTH = '******************'; INI ADALAH TOKEN ANDA

var blynk = Blynk. Blynk baru (AUTH);

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

command1 = Gpio baru (18, 'keluar'), // Akan disambungkan ke Arduino D2

commandCW = Gpio baru (23, 'keluar'), // Akan disambungkan ke Arduino D3

commandCCW = Gpio baru (24, 'keluar'); // Akan disambungkan ke Arduino D4

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

var v1 = blynk baru. VirtualPin (1); // ini adalah butang Command1 anda di aplikasi

var v2 = blynk baru. VirtualPin (2); // ini adalah butang CW anda di aplikasi

var v3 = blynk baru. VirtualPin (3); // ini adalah butang CCW anda di aplikasi

var v4 = blynk baru. VirtualPin (4); // ini adalah baris LCD 1 anda dalam aplikasi

var v5 = blynk baru. VirtualPin (5); // ini adalah baris LCD 2 anda dalam aplikasi

v1.on ('write', function (param) // Periksa butang Command1 dalam aplikasi

{

if (param == 1) // Sekiranya butang ditekan (yang 1) maka lakukan perkara berikut

{

v4.write ("Melaksanakan"); // Tulis "Melaksanakan" pada baris pertama LCD

v5.write ("Perintah"); // Tulis "Perintah" pada baris kedua LCD

command1.writeSync (1); // Tetapkan GPIO18 (yang merupakan perintah berubah1) ke 1 (TINGGI)

tidur (4000); // Tunggu selama 4 saat

command1.writeSync (0); // Tetapkan GPIO18 (yang merupakan perintah berubah1) ke 0 (RENDAH)

v4.write ("Selesai"); // Tulis "Selesai" pada baris pertama LCD

v5.write (""); // Tulis "" (tiada apa-apa) pada baris kedua LCD

v1. menulis (0); // Tulis 0 ke butang Command1 anda, yang akan menetapkannya semula ke posisi OFF

}

});

v2.on ('tulis', fungsi (param) // Periksa butang CW dalam aplikasi

{

if (param == 1) // Sekiranya butang ditekan (yang 1) maka lakukan perkara berikut

{

commandCW.writeSync (1); // Tetapkan GPIO23 (yang merupakan perintah berubah-ubahCW) ke 1 (TINGGI)

}

lain jika (param == 0) // Sekiranya butang tidak ditekan (yang 0) maka lakukan perkara berikut

{

commadCW.writeSync (0); // Tetapkan GPIO23 (yang merupakan perintah berubah-ubahCW) ke 0 (RENDAH)

}

});

v3.on ('tulis', fungsi (param) // Periksa butang CCW dalam aplikasi

{

if (param == 1) // Sekiranya butang ditekan (yang 1) maka lakukan perkara berikut

{

commandCCW.writeSync (1); // Tetapkan GPIO24 (yang merupakan perintah berubahCCW) ke 1 (TINGGI)

}

lain jika (param == 0) // Sekiranya butang tidak ditekan (yang 0) maka lakukan perkara berikut

{

commandCCW.writeSync (0); // Tetapkan GPIO24 (yang merupakan perintah berubahCCW) ke 1 (TINGGI)

}

});

Simpan dan keluar dari nano

- untuk menjimatkan CTRL + O

- untuk berhenti dari CTRL + X

Anda selesai dengan Raspberry Pi.

Sekarang uji untuk melihat apakah ada jenis kesalahan (kebanyakannya adalah kesalahan Typo)

Untuk mengujinya, cukup ketik yang berikut di Terminal anda

simpul MyProject.js

Anda harus mendapat output yang kelihatan seperti ini

Mod OnOff

Bersambung ke: blynk-cloud.com 8441

Kebenaran SSL…

Dibenar

Langkah 5: MyProject di Arduino

Baiklah, sekarang kita sudah menyelesaikan 2/3 perkara!

Sekarang kita hanya perlu menulis beberapa kod untuk Arduino.

- Buat lakaran Arduino baru dan ketik kod berikut.

#sertakan

#tentukan STEPS_PER_MOTOR_REVOLUSI 32

#tentukan STEPS_PER_OUTPUT_REVOLUSI 32 * 64 // 2048

// Sambungan pin perlu dihubungkan pin 8, 9, 10, 11

// kepada Pemandu Motor In1, In2, In3, In4

// Kemudian pin dimasukkan di sini dalam urutan 1-3-2-4 untuk penjujukan yang betul

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

int Langkah2 Ambil;

int Command1;

int CommandCW;

int CommandCCW;

persediaan tidak sah ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Stepper Library menetapkan pin sebagai output)

}

gelung kosong ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

jika (Command1 == 0)

{

//tidak buat apa-apa

}

yang lain

{

Fungsi Pelaksanaan ();

}

jika (CommandCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (-1);

kelewatan (1);

}

jika (CommandCCW == 1)

{

small_stepper.setSpeed (700);

small_stepper.step (1);

kelewatan (1);

}

}

batal Fungsi Pelaksanaan ()

{

Langkah2 Ambil = STEPS_PER_OUTPUT_REVOLUTION / 4; // Putar putaran CCW 1/4

small_stepper.setSpeed (700);

small_stepper.step (Langkah2 Ambil); // Anda boleh mengganti Steps2Take dengan nilai antara 0 dan 2048

kelewatan (500);

Langkah2 Ambil = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Putar putaran CW 1/4

small_stepper.setSpeed (700);

small_stepper.step (Langkah2 Ambil); // Anda boleh mengganti Steps2Take dengan nilai antara 0 dan 2048

kelewatan (2000);

}

Susun dan muat naik ke Arduino anda.

Sekarang pastikan anda menghubungkan semuanya dengan betul! Lihat langkah seterusnya untuk pendawaian.

Langkah 6: Pendawaian

Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian
Pendawaian

Sambungkan Arduino D3 ke RaspberryPi GPIO18 (yang sebenarnya pin 12)

Sambungkan Arduino D4 ke RaspberryPi GPIO23 (yang sebenarnya pin 16)

Sambungkan Arduino D4 ke RaspberryPi GPIO24 (yang sebenarnya pin 18)

Sambungkan Arduino GND ke RaspberryPi GND (pin 6)

Sambungkan Arduino D8 ke Stepper Controller In1

Sambungkan Arduino D9 ke Stepper Controller In2

Sambungkan Arduino D10 ke Stepper Controller In3

Sambungkan Arduino D11 ke Stepper Controller In4

Sambungkan 5VDC ke Arduino, Raspberry Pi dan Stepper Controller

Langkah 7: Itu sahaja

Lihat video, dan anda mesti selesai!

Terima kasih dan selamat menikmati!

Disyorkan: