Isi kandungan:
- Langkah 1: Membuat Aplikasi di Telefon Anda
- Langkah 2: Menyiapkan PI
- Langkah 3: Membuat Projek Anda
- Langkah 4: MyProject.js
- Langkah 5: MyProject di Arduino
- Langkah 6: Pendawaian
- Langkah 7: Itu sahaja
Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 Steps (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
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
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
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:
Stepper Motor terkawal Motor Stepper Tanpa Mikrokontroler (V2): 9 Langkah (dengan Gambar)
Stepper Motor terkawal Motor Stepper Tanpa Mikrokontroler (V2): Dalam salah satu Instructables saya sebelumnya, saya menunjukkan kepada anda cara mengawal motor stepper menggunakan motor stepper tanpa mikrokontroler. Ini adalah projek yang cepat dan menyeronokkan tetapi ia datang dengan dua masalah yang akan diselesaikan dalam Instructable ini. Jadi, dengan
Lokomotif Model Dikendalikan Motor Stepper - Motor Stepper Sebagai Pengekod Rotary: 11 Langkah (dengan Gambar)
Lokomotif Model Dikendalikan Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Dalam salah satu Instructables sebelumnya, kami belajar bagaimana menggunakan stepper motor sebagai rotary encoder. Dalam projek ini, kita sekarang akan menggunakan motor stepper yang dipusingkan rotary encoder untuk mengawal lokomotif model menggunakan mikrokontroler Arduino. Jadi, tanpa fu
Stepper Motor terkawal Motor Stepper - Motor Stepper Sebagai Pengekod Rotary: 11 Langkah (dengan Gambar)
Stepper Motor terkawal Motor Stepper | Stepper Motor Sebagai Rotary Encoder: Adakah beberapa motor stepper berbaring dan mahu melakukan sesuatu? Dalam Instructable ini, mari gunakan motor stepper sebagai rotary encoder untuk mengawal kedudukan motor stepper lain menggunakan mikrokontroler Arduino. Jadi tanpa basa-basi lagi, mari kita
Brightness Control PWM Based LED Control Menggunakan Push Button, Raspberry Pi dan Scratch: 8 Langkah (dengan Gambar)
Brightness Control PWM Based LED Control Menggunakan Push Button, Raspberry Pi dan Scratch: Saya cuba mencari cara untuk menerangkan bagaimana PWM bekerja kepada pelajar saya, jadi saya menetapkan tugas untuk mengawal kecerahan LED menggunakan 2 butang tekan - satu butang meningkatkan kecerahan LED dan yang lain meredupkannya. Untuk progra
Robot Rover FPV terkawal Wi-fi (dengan Arduino, ESP8266 dan Stepper Motors): 11 Langkah (dengan Gambar)
Wi-fi terkawal FPV Rover Robot (dengan Arduino, ESP8266 dan Stepper Motors): Instruksional ini menunjukkan cara merancang rover robot roda dua yang dikendalikan dari jarak jauh melalui rangkaian wi-fi, menggunakan Arduino Uno yang disambungkan ke modul Wi-fi ESP8266 dan dua motor stepper. Robot boleh dikendalikan dari kening internet biasa