Daftar Isi:
- Langkah 1: Membuat Aplikasi di Ponsel Anda
- Langkah 2: Mempersiapkan PI
- Langkah 3: Membuat Proyek Anda
- Langkah 4: Proyek Saya.js
- Langkah 5: Proyek Saya di Arduino
- Langkah 6: Pengkabelan
- Langkah 7: Itu Dia
Video: Raspberry PI & Arduino - Kontrol Stepper Blynk: 7 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:58
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
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
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:
Suhu Kamar Melalui Internet Dengan BLYNK ESP8266 & DHT11: 5 Langkah (dengan Gambar)
Suhu Ruangan Melalui Internet Dengan BLYNK ESP8266 & DHT11: Hai Guys,Hari ini kita akan membuat monitor suhu ruangan, yang dapat kita gunakan untuk memantau ruangan kita dari mana saja di dunia dan untuk itu kita akan menggunakan bentuk plat BLYNK IoT dan akan kita gunakan DHT11 untuk membaca suhu ruangan kita akan menggunakan ESP8266 untuk mengakses
Stepper Motor Controlled Stepper Motor Tanpa Mikrokontroler(V2): 9 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper Tanpa Mikrokontroler(V2): Dalam salah satu Instruksi saya sebelumnya, saya menunjukkan kepada Anda cara mengontrol motor stepper menggunakan motor stepper tanpa mikrokontroler. Itu adalah proyek yang cepat dan menyenangkan tetapi datang dengan dua masalah yang akan diselesaikan dalam Instructable ini. Jadi, akal
Lokomotif Model Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Lokomotif Model Terkendali Motor Stepper | Motor Stepper Sebagai Rotary Encoder: Dalam salah satu Instruksi sebelumnya, kita telah mempelajari cara menggunakan motor stepper sebagai rotary encoder. Dalam proyek ini, kita sekarang akan menggunakan motor stepper yang memutar rotary encoder untuk mengontrol model lokomotif menggunakan mikrokontroler Arduino. Jadi, tanpa fu
Motor Stepper Terkendali Motor Stepper - Stepper Motor Sebagai Rotary Encoder: 11 Langkah (dengan Gambar)
Motor Stepper Terkendali Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Punya beberapa motor stepper tergeletak di sekitar dan ingin melakukan sesuatu? Dalam Instruksi ini, mari kita gunakan motor stepper sebagai rotary encoder untuk mengontrol posisi motor stepper lain menggunakan mikrokontroler Arduino. Jadi tanpa basa-basi lagi, mari kita
Robot Rover FPV Terkendali Wi-fi (dengan Arduino, ESP8266, dan Motor Stepper): 11 Langkah (dengan Gambar)
Wi-fi Controlled FPV Rover Robot (dengan Arduino, ESP8266 dan Stepper Motors): Instruksi ini menunjukkan bagaimana merancang robot rover roda dua yang dikendalikan dari jarak jauh melalui jaringan wi-fi, menggunakan Arduino Uno yang terhubung ke modul Wi-fi ESP8266 dan dua motor stepper. Robot dapat dikendalikan dari alis internet biasa