Membuat Spybot Arduino yang Dikontrol melalui Bluetooth
Komponen dan Perlengkapan
Arduino UNO
×
1
Modul Bluetooth HC-06
×
1
Arduino Proto Shield
Anda dapat menggunakan papan roti yang dapat disolder dengan pin header lainnya
×
1
Adafruit Motor/Stepper/Servo shield V2
×
1
Servo SM-S4306R Putaran Berkelanjutan
×
1
Motor DC (generik)
×
4
Ban Motor
×
4
Kabel Jumper (generik)
Anda membutuhkan ini untuk motor
×
8
Holder Baterai 4xAA
×
2
Baterai AA
×
8
Telepon seluler
Saya menggunakan Nokia Lumia 520 untuk proyek ini
×
1
Holder telepon seluler
×
1
Chassis kustom
Saya menggunakan papan kayu sederhana
×
1
Aplikasi dan Layanan Online
Johnny-Five
Tentang Proyek Ini
Pengantar Singkat
Ini adalah mobil empat roda sederhana yang dapat dikontrol melalui koneksi bluetooth. Mobil dapat menahan telepon seluler apa pun yang dapat digunakan sebagai kamera IP. Saya memutuskan untuk membuat robot ini dengan JavaScript menggunakan server web node tempat saya dapat memantau kemana robot pergi.
Anda dapat melihat rangkaian bagian-bagian utama dalam gambar 1.
Setelah menjalankan server, saya mendapatkan layar yang berisi beberapa pengantar tentang kontrol dan jendela untuk tampilan kamera (gambar 2).
Ya, tata letak ini responsif.
Chassis
Dalam versi bot ini, saya memutuskan untuk membuat chassis sendiri. Jika Anda tidak memiliki mesin bor atau hanya ingin solusi yang lebih mudah, Anda dapat membeli berbagai badan mobil plastik.
Saya memilih untuk membuat chassis sendiri dan itu tidak semudah yang terlihat. Aturan terpenting adalah Anda harus menempatkan ban semakin dekat mungkin satu sama lain jika Anda ingin memilih pengemudi diferensial untuk berbelok. Anda dapat membaca kesalahan utama dan aturan fisika dasar di tautan berikut:
Tantangan lainnya adalah cara memasang motor DC ke chassis. Dalam kasus saya, saya tidak memiliki bagian khusus untuk ini, jadi saya memutuskan untuk memilih beberapa kait kabel (150/3,5) untuk tugas ini. Untuk pemasangan ban yang tepat, saya harus membor lubang sejauh mungkin dan menggunakan 2 kait kabel untuk satu motor DC. Sayangnya, ada kemungkinan motor tidak akan muat sejujur yang cukup dan mobil Anda mungkin bergerak sedikit ke kiri atau kanan saat Anda mengontrol ke depan dan ke belakang.
Baterai
Untuk mempapan papan dan motor, saya memutuskan untuk memilih satu sumber daya DC untuk tugas ini. Chassis tidak memiliki ruang untuk holder baterai 8 x AA, jadi saya harus melakukan beberapa kustomisasi sehingga saya memasang dua holder 4 x AA dengan 2 skru satu sama lain. Untuk ini, saya juga harus membor plastik.
Pemasangan Daya
Dalam kasus saya, saya mempapan papan Arduino Uno dengan 8 x baterai AA rechargeable. Ini daya yang cukup untuk melayani motor shield juga. Ada jumper pada shield ini yang dapat dilepas sehingga motor shield Anda tidak akan mendapatkan daya apa pun dari Arduino. Dalam hal ini, Anda dapat mempapan shield Anda secara terpisah menggunakan pin daya pada shield tersebut. Anda dapat membaca tentang berbagai opsi pemasangan daya di tautan berikut:
Saya menggunakan modul bluetooth HC-06 untuk mengatur koneksi antara mobil dan komputer saya. Saya ingin menggunakan kabel sebanyak mungkin, jadi saya memutuskan untuk membuat Arduino shield kustom dengan menempatkan modul bluetooth pada papan prototipe kosong, melakukan kabel di bawah shield, dan solder beberapa pin header untuk mekanisme pemasangan yang benar. Anda dapat melihat hasilnya dengan cepat dalam gambar 3 dan gambar 4.
Hal yang baik adalah Anda memiliki kemampuan untuk melepas modul bluetooth dari shield kapan saja karena itu tidak disolder ke papan.
Untuk menyiapkan modul bluetooth, silakan ikuti petunjuk dari situs ini:
Robot mampu bergerak ke depan, ke belakang, dan berbelok menggunakan pengemudi diferensial. Holder kamera dipasang pada servo putaran berkelanjutan sehingga Anda dapat melihat sekeliling dengan telepon tanpa memindahkan mobil itu sendiri. Anda dapat melihat demonstrasi singkat dalam video berikut.
Telepon Seluler
Saya menggunakan Nokia Lumia 520 untuk proyek ini dan aplikasi Win IP Camera yang dapat Anda temukan di toko:
Sebagai pengembang JavaScript, saya memutuskan untuk membuat server web node untuk halaman kontrol dan menggunakan beberapa library yang menarik untuk tampilan dan peningkatan sintaks kode. Anda dapat melihat daftar lengkap di halaman GitHub saya dan bagian berikutnya.
Saya memutuskan untuk memilih modularisasi baik di frontend maupun backend. Berikut adalah titik masuk aplikasi:
Di sisi frontend, saya juga menggunakan pemisahan untuk setiap modul:
import {moveWheels, stopWheels} from './wheelsControl'; import {moveServo, stopServo} from './servoControl'; document.onkeydown = checkKeyDown; document.onkeyup = checkKeyUp; function checkKeyDown(e) { moveWheels(e.keyCode); moveServo(e.keyCode); } function checkKeyUp(e) { stopWheels(e.keyCode); stopServo(e.keyCode); }
Untuk basis kode lengkap, periksa repositori GitHub saya di atas.
Library Perangkat Lunak
express.js - untuk meningkatkan aplikasi Nodejs kami
johnny-five - untuk menggunakan Arduino Javascript controlling API
socket.io - untuk menggunakan web socket untuk mengatur komunikasi antara back-end dan front-end
susy - untuk membuat tata letak dan desain responsif
google material design - untuk menggunakan elemen material
gulpJS - untuk otomatisasi tugas
BabelJS - untuk transpiling EcmaScript 6
Browserify - untuk dukungan modul
Kata Terakhir
Saya pemula di dunia IoT ini dan ini adalah proyek pertama saya. Saya tidak ingin mengatakan bahwa saya menggunakan solusi optimal, tetapi semoga Anda dapat menemukan beberapa informasi yang berguna dari panduan ini.