Daftar Isi:

Raspberry PI & Arduino - Kontrol Stepper Blynk: 7 Langkah (dengan Gambar)
Raspberry PI & Arduino - Kontrol Stepper Blynk: 7 Langkah (dengan Gambar)

Video: Raspberry PI & Arduino - Kontrol Stepper Blynk: 7 Langkah (dengan Gambar)

Video: Raspberry PI & Arduino - Kontrol Stepper Blynk: 7 Langkah (dengan Gambar)
Video: Stepper Motor Control with the Raspberry Pi 2024, November
Anonim
Raspberry PI & Arduino - Kontrol Stepper Blynk
Raspberry PI & Arduino - Kontrol Stepper Blynk

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

Singkatnya, aplikasi mengirimkan permintaan ke Raspberry Pi melalui Pin Virtual, Pi kemudian mengirimkan sinyal TINGGI / RENDAH ke Arduino dan Arduino kemudian menangani motor stepper.

Saya pikir lebih mudah menggunakan pendekatan itu karena kebanyakan orang terbiasa bekerja dengan Arduino dan tidak banyak dengan node.js di Raspberry Pi.

Komponen yang dibutuhkan untuk ini:

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

- Arduino (Saya menggunakan Arduino Nano)

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

- Beberapa kabel jumper

- Sumber daya (5VDC 2A.)

Sketsa Arduino dan kode Node.js tersedia untuk diunduh. Cari saja file-filenya.

Langkah 1: Membuat Aplikasi di Ponsel Anda

Membuat Aplikasi di Ponsel Anda
Membuat Aplikasi di Ponsel Anda
Membuat Aplikasi di Ponsel Anda
Membuat Aplikasi di Ponsel Anda

Unduh Blynk dari AppStore atau GooglePlay

Buka Aplikasi dan buat pengguna atau Masuk dengan facebook.

- Buat proyek baru

Beri nama proyek Anda: Proyek Saya

Pilih Perangkat: Rasapberry Pi 3 B

Jenis Koneksi: Wifi (atau Ethernet jika Pi Anda terhubung ke jaringan Anda)

- Klik Buat

Periksa email Anda untuk Token Anda

(terlihat seperti ini 3aa19bb8a9e64c90af11e3f6b0595b3c)

Token ini terikat dengan aplikasi Anda saat ini. Jika Anda melakukan aplikasi lain, Anda akan menghasilkan token lain.

Di App tambahkan widget berikut (lihat gambar)

- Tambahkan 3 tombol

- Tambahkan 1 LCD

- Edit tombol

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

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

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

- Mengedit LCD

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

Langkah 2: Mempersiapkan PI

Pertama, Anda perlu menginstal Node.js. Sebelum memperbarui Node.js, pastikan untuk menghapus versi lama:

Buka Terminal dan ketik

sudo apt-get purge node nodejs

node.js -ysudo apt-get autoremove

Instalasi Node.js otomatis Tambahkan repositori:

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

Instal Node.js

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

sudo apt-get install build-essential nodejs -y

Setelah Node.js diinstal, Instal Blynk

sudo npm instal blynk-library -g

sudo npm install onoff -g

Langkah 3: Membuat Proyek Anda

Mulailah dengan mengubah direktori (perintah cd) ke direktori pi

Buka Terminal dan ketik:

cd /rumah/pi/

Kemudian, buat direktori tempat proyek Anda akan berada

mkdir Proyek Saya

Ubah direktori ke MyProject, ketik yang berikut di Terminal

cd Proyek Saya

Periksa isi direktori (harus kosong). Cukup ketik berikut ini di Terminal

ls

Selanjutnya, ketik berikut ini untuk membuat deskripsi proyek Anda (package.json)

npm init

Cukup ketik nama proyek, penulis, versi, dll…

Setelah ini selesai, instal perpustakaan Blynk, perpustakaan onoff dan perpustakaan sistem-tidur di direktori proyek ANDA. Ketik yang berikut di Terminal Anda

npm instal blynk-library --save

npm install onoff --save

npm install system-sleep --save

Terakhir, buat file.js Anda (Ini akan menjadi tempat kode Anda akan berada). Ketik yang berikut di Terminal

nano MyProject.js

Setelah Anda menjalankan perintah itu, nano (editor teks terminal) akan terbuka.

Langkah 4: Proyek Saya.js

Di nano, tulis baris kode berikut:

var Blynk = membutuhkan('perpustakaan blynk');

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

var blynk = Blynk baru. Blynk(AUTH);

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

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

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

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

var sleep = require('sistem-tidur');

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

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

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

var v4 = blynk baru. VirtualPin(4); //ini adalah garis lcd Anda 1 di aplikasi

var v5 = blynk baru. VirtualPin(5); //ini adalah garis lcd Anda 2 di aplikasi

v1.on('tulis', fungsi (param) //Periksa tombol Command1 di aplikasi

{

if (param == 1) //Jika tombol ditekan (yaitu 1) maka lakukan hal berikut

{

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

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

command1.writeSync(1); // Atur GPIO18 (yang merupakan variabel command1) ke 1 (TINGGI)

tidur (4000); //Tunggu selama 4 detik

command1.writeSync(0); // Atur GPIO18 (yang merupakan perintah variabel1) ke 0 (RENDAH)

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

v5.tulis(" "); //Tulis " " (tidak ada) pada baris kedua LCD

v1.tulis(0); // Tulis 0 ke tombol Command1 Anda, yang akan meresetnya ke posisi OFF

}

});

v2.on('tulis', fungsi (param) //Periksa tombol CW di aplikasi

{

if (param == 1) //Jika tombol ditekan (yaitu 1) maka lakukan hal berikut

{

commandCW.writeSync(1); // Atur GPIO23 (yang merupakan variabel commandCW) ke 1 (TINGGI)

}

else if (param == 0) //Jika tombol tidak ditekan (yaitu 0) maka lakukan hal berikut

{

commadCW.writeSync(0); // Atur GPIO23 (yang merupakan variabel commandCW) ke 0 (RENDAH)

}

});

v3.on('tulis', fungsi (param) //Periksa tombol CCW di aplikasi

{

if (param == 1) //Jika tombol ditekan (yaitu 1) maka lakukan hal berikut

{

commandCCW.writeSync(1); // Atur GPIO24 (yang merupakan variabel commandCCW) ke 1 (TINGGI)

}

else if (param == 0) //Jika tombol tidak ditekan (yaitu 0) maka lakukan hal berikut

{

commandCCW.writeSync(0); // Atur GPIO24 (yang merupakan variabel commandCCW) ke 1 (TINGGI)

}

});

Simpan dan keluar dari nano

- untuk menyimpan CTRL+O

- untuk keluar dari CTRL+X

Anda selesai dengan Raspberry Pi.

Sekarang uji untuk melihat apakah ada kesalahan apa pun (sebagian besar waktu adalah kesalahan Typo)

Untuk mengujinya, cukup ketik berikut ini di Terminal Anda

simpul Proyek Saya.js

Anda harus mendapatkan output yang terlihat seperti ini

Mode Nyala Mati

Menghubungkan ke: blynk-cloud.com 8441

Otorisasi SSL…

Resmi

Langkah 5: Proyek Saya di Arduino

Ok jadi sekarang kita memiliki 2/3 hal yang selesai!

Sekarang kita hanya perlu menulis beberapa kode untuk Arduino.

- Buat sketsa Arduino baru dan ketik kode berikut.

#termasuk

#tentukan STEPS_PER_MOTOR_REVOLUTION 32

#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 ///2048

//Koneksi pin harus terhubung ke pin 8, 9, 10, 11

// ke Pengemudi Motor In1, In2, In3, In4

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

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

int Langkah2Ambil;

int Perintah1;

int CommandCW;

int KomandoCCW;

batalkan pengaturan()

{

pinMode(2, INPUT);

pinMode(3, INPUT);

pinMode(4, INPUT);

//(Perpustakaan Stepper menetapkan pin sebagai output)

}

lingkaran kosong()

{

Perintah1 = digitalRead(2);

CommandCW = digitalRead(3);

CommandCCW = digitalRead(4);

jika(Perintah1 == 0)

{

//tidak melakukan apapun

}

lain

{

Fungsi Eksekusi();

}

jika (CommandCW == 1)

{

small_stepper.setSpeed(700);

small_stepper.step(-1);

penundaan (1);

}

jika (PerintahCCW ==1)

{

small_stepper.setSpeed(700);

small_stepper.step(1);

penundaan (1);

}

}

batalkan Fungsi Eksekusi ()

{

Langkah2Ambil = STEPS_PER_OUTPUT_REVOLUTION / 4; // Putar CCW 1/4 putaran

small_stepper.setSpeed(700);

small_stepper.step(Langkah2Ambil); // Anda dapat mengganti Steps2Take dengan nilai antara 0 dan 2048

penundaan (500);

Langkah2Ambil = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Putar CW 1/4 putaran

small_stepper.setSpeed(700);

small_stepper.step(Langkah2Ambil); // Anda dapat mengganti Steps2Take dengan nilai antara 0 dan 2048

penundaan(2000);

}

Kompilasi dan unggah ke Arduino Anda.

Sekarang pastikan Anda menghubungkan semuanya dengan benar! Lihat langkah selanjutnya untuk pengkabelan.

Langkah 6: Pengkabelan

Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan
Pengkabelan

Hubungkan Arduino D3 ke RaspberryPi GPIO18 (yang sebenarnya adalah pin 12)

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

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

Hubungkan Arduino GND ke RaspberryPi GND (pin 6)

Hubungkan Arduino D8 ke Pengontrol Stepper In1

Hubungkan Arduino D9 ke Pengontrol Stepper In2

Hubungkan Arduino D10 ke Pengontrol Stepper In3

Hubungkan Arduino D11 ke Pengontrol Stepper In4

Hubungkan 5VDC ke Arduino, Raspberry Pi, dan Pengontrol Stepper

Langkah 7: Itu Dia

Periksa videonya, dan Anda harus selesai!

Terima kasih dan nikmatilah!

Direkomendasikan: