Tersedia buku :
Apabila anda memiliki minimal 3 buku kami dan betul-betul menguasainya serta
dibekali berbagai video tutorial dan bonus pendukung, Insya Allah anda akan
menjadi AHLI di bidangnya dan sulit dicari tandingannya di lingkungan anda.
Dalam proyek ini, kita akan membuat robot mata-mata pengintai kecil
berdasarkan Arduino. Agen rahasia akan dapat memerintahkan robot dari jarak
jauh melalui halaman web dan melihat apa yang dilihat robot secara real time
menggunakan kamera.
1
Untuk melakukan ini, kami akan menggunakan semua yang telah Anda pelajari
dalam berbagai artikel kami sejauh ini:
Kemudian, Anda membutuhkan dua board Arduino untuk proyek ini. Yang
pertama adalah Arduino Yun, yang akan kita gunakan untuk menghubungkan
kamera USB, seperti yang kita lakukan di artikel kami sebelumnya, “Membangun
Kamera Mata-Mata Cloud dengan Arduino”. Untuk kameranya sendiri, saya
kembali menggunakan kamera C720 dari Logitech.
Hal lain yang Anda perlukan adalah Arduino Uno, yang akan menangani
penggerak motor robot melalui shield motor. Kami harus menggunakan Arduino
Uno di sini karena Arduino Yun tidak kompatibel dengan sebagian besar shield
motor DFRobot.
2
Anda juga akan membutuhkan paket baterai 7,2V untuk memberi daya pada
robot saat tidak terhubung ke komputer Anda. Saya juga menggunakan paket
baterai DFRobot dengan adapter jack DC.
Terakhir, berikut adalah daftar semua komponen yang akan kita gunakan dalam
proyek ini:
-Breadboard (https://www.sparkfun.com/products/12002)
Di sisi perangkat lunak, Anda memerlukan Arduino IDE versi terbaru. Anda juga
perlu menginstal library berikut menggunakan Arduino library manager:
-aREST
3
Konfigurasi perangkat keras
Mari kita mulai dengan bagian tersulit dari proyek ini: merakit robot itu sendiri.
Tentu saja, langkah yang tepat akan bergantung pada chasis robot yang Anda
gunakan, tetapi tujuannya adalah memberi Anda langkah-langkah utama di
bagian ini.
Kami mulai dengan benar-benar memasang board Arduino Yun pada chasis robot
menggunakan sekrup dan tajuk yang disediakan dengan chasis itu sendiri:
Kemudian, kami memasang shield motor di atas board Arduino Uno. Selanjutnya,
kami memasukkan kabel dari motor ke header khusus pada shield motor dan
4
mengamankannya dengan sekrup. Pastikan Anda menggunakan polaritas yang
sama untuk kedua motor.
Sekarang, kita akan memasang board breakout CC3000 pada pelindung prototipe,
yang kemudian akan diletakkan di atas robot. Untuk mengetahui cara
menghubungkan board CC3000, lihat artikel kami sebelumnya, “Memantau Data
Rahasia dari Mana Saja”. Satu-satunya perbedaan di sini adalah pin IRQ
terhubung ke pin 3, dan pin VBAT terhubung ke pin 8.
5
Sekarang, cukup pasang shield ini di atas robot:
6
Berikut adalah tampilan samping proyek pada tahap ini:
7
Terakhir, colokkan kamera ke port USB Arduino Yun dan letakkan di depan robot.
Saya mengamankannya dengan sekrup, tetapi ini akan tergantung pada sasis
robot Anda sendiri.
Ini adalah gambar close-up yang menunjukkan robot yang dirakit sepenuhnya:
8
Ini adalah gambaran umum dari robot yang dirakit sepenuhnya:
9
Selamat! Anda sekarang siap untuk memprogram robot pengintai Anda. Jangan
khawatir tentang baterai untuk saat ini, karena kami akan melakukan semuanya
menggunakan kabel USB yang menghubungkan robot langsung ke komputer
Anda.
10
Tutorial ini disponsori oleh Anggaswangi Press,
https://www.tokopedia.com/anggaswangipress
Tersedia buku :
12
}
Serial.println(F("done"));
Serial.print(F("Getting DHCP..."));
while (!cc3000.checkDHCP())
{
delay(100);
}
// Start server
restServer.begin();
Serial.println(F("Listening for connections..."));
displayConnectionDetails();
wdt_enable(WDTO_8S);
}
void loop() {
// Handle REST calls
Adafruit_CC3000_ClientRef client = restServer.available();
rest.handle(client);
wdt_reset();
// Check connection
if(!cc3000.checkConnected()){while(1){}}
wdt_reset();
}
// Forward
int forward(String command) {
send_motor_command(speed_motor1,direction_motor1,100,1);
send_motor_command(speed_motor2,direction_motor2,100,1);
return 1;
}
// Backward
int backward(String command) {
send_motor_command(speed_motor1,direction_motor1,100,0);
send_motor_command(speed_motor2,direction_motor2,100,0);
return 1;
}
// Left
int left(String command) {
send_motor_command(speed_motor1,direction_motor1,75,0);
send_motor_command(speed_motor2,direction_motor2,75,1);
return 1;
}
// Right
int right(String command) {
send_motor_command(speed_motor1,direction_motor1,75,1);
send_motor_command(speed_motor2,direction_motor2,75,0);
return 1;
}
13
// Stop
int stop(String command) {
send_motor_command(speed_motor1,direction_motor1,0,1);
send_motor_command(speed_motor2,direction_motor2,0,1);
return 1;
}
// Function to command a given motor of the robot
void send_motor_command(int speed_pin, int direction_pin, int pwm,
boolean dir)
{
analogWrite(speed_pin,pwm); // Set PWM control, 0 for stop, and
255 for maximum speed
digitalWrite(direction_pin,dir);
}
// Print connection details of the CC3000 chip
bool displayConnectionDetails(void)
{
uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway,
&dhcpserv, &dnsserv))
{
Serial.println(F("Unable to retrieve the IP Address!\r\n"));
return false;
}
else
{
Serial.print(F("\nIP Addr: "));
cc3000.printIPdotsRev(ipAddress);
Serial.print(F("\nNetmask: "));
cc3000.printIPdotsRev(netmask);
Serial.print(F("\nGateway: "));
cc3000.printIPdotsRev(gateway);
Serial.print(F("\nDHCPsrv: "));
cc3000.printIPdotsRev(dhcpserv);
Serial.print(F("\nDNSserv: "));
cc3000.printIPdotsRev(dnsserv);
Serial.println();
return true;
}
}
Karena kode ini cukup panjang, kita hanya akan melihat bagian terpenting di sini.
Kami mulai dengan memasukkan semua library yang diperlukan:
14
#include <Adafruit_CC3000.h>
#include <SPI.h>
#include <aREST.h>
#include <avr/wdt.h>
Setelah ini, Anda perlu memasukkan nama dan kata sandi jaringan Wi-Fi Anda
sendiri:
#define WLAN_SSID "your_wifi_ssid"
#define WLAN_PASS "your_wifi_password"
#define WLAN_SECURITY WLAN_SEC_WPA2s
Kemudian, kami mendeklarasikan instance aREST, yang akan kami gunakan nanti
untuk mengakses fungsi motor melalui Wi-Fi:
aREST rest = aREST();
Dalam fungsi setup () dari sketsa, kami mengekspos berbagai fungsi untuk
mengontrol robot sehingga dapat diakses melalui Wi-Fi:
rest.function("forward",forward);
rest.function("backward",backward);
rest.function("left",left);
rest.function("right",right);
rest.function("stop",stop);
15
Setelah itu, kami memulai server Wi-Fi pada boardnya:
restServer.begin();
Serial.println(F("Listening for connections..."));
Dalam fungsi loop () sketsa, kami terus mendengarkan koneksi dan menanganinya
dengan instance aREST:
Adafruit_CC3000_ClientRef client = restServer.available();
rest.handle(client);
Sekarang mari kita lihat salah satu fungsi untuk mengontrol robot, misalnya fungsi
untuk maju:
int forward(String command) {
send_motor_command(speed_motor1,direction_motor1,100,1);
send_motor_command(speed_motor2,direction_motor2,100,1);
return 1;
}
Seperti yang Anda lihat, pekerjaan dilakukan oleh fungsi lain yang bekerja
langsung pada motor:
void send_motor_command(int speed_pin, int direction_pin, int pwm,
boolean dir)
{
analogWrite(speed_pin,pwm);
digitalWrite(direction_pin,dir);
}
16
Sekarang saatnya mengonfigurasi bagian proyek ini. Hubungkan Arduino Uno ke
komputer melalui USB dan upload sketsa ini ke board. Kemudian, buka monitor
Serial. Setelah beberapa saat, Anda akan melihat alamat IP board yang dicetak
pada monitor Serial.
Menyiapkan antarmuka
Sekarang kita dapat beralih ke bagian terakhir: menyiapkan antarmuka yang
memungkinkan agen rahasia untuk memerintahkan robot dan juga untuk melihat
streaming langsung dari kamera. Antarmuka ini akan terdiri dari halaman HTML
17
dan file JavaScript. Ini akan didasarkan pada modul aREST.js yang memudahkan
untuk mengontrol perangkat aREST dari halaman web.
Bagian terpenting di halaman ini adalah tombol untuk mengontrol robot dan
streaming langsung kamera. Misalnya, ini mendefinisikan tombol untuk
menggerakkan robot ke depan:
<div class="col-md-2">
<button id='fw' class='btn btn-primary btn-block'
type="button">Forward</button>
</div>
Tag <img> ini memungkinkan Anda memasukkan live stream kamera ke halaman:
<img src="http://arduinoyun.local:8080/?action=stream" />
Sekarang mari kita lihat file JavaScript yang sebenarnya akan mengirim perintah
ke robot. Ini file lengkapnya:
$( document ).ready(function() {
// Device
19
var address = '192.168.1.105';
var device = new Device(address);
// Button
$('#fw').click(function() {
device.callFunction('forward', '');
});
$('#bw').click(function() {
device.callFunction('backward', '');
});
$('#left').click(function() {
device.callFunction('left', '');
});
$('#right').click(function() {
device.callFunction('right', '');
});
$('#stop').click(function() {
device.callFunction('stop', '');
});
});
Anda hanya perlu mengubah satu hal dalam skrip ini: alamat IP board Anda, yang
Anda peroleh sebelumnya:
var address = '192.168.1.105';
var device = new Device(address);
20
Menguji robot pengintai
Sekarang kita memiliki semua elemen di tempatnya, saatnya untuk menguji robot
pengintai kecil kita. Perhatikan bahwa Anda dapat mengambil kode lengkapnya
dari https://github.com/marcoschwartz/arduino-secret-agents.
Pastikan Anda mengkonfigurasi kode dan perangkat keras dengan instruksi dari
bagian sebelumnya.
Sekarang, saatnya memberi daya pada robot Anda dari baterai. Masukkan baterai
ke dalam rangka robot, lalu tancapkan ke input jack DC Arduino Uno.
Kemudian, sambungkan pin Arduino Uno 5V ke pin Vin Yun. Hubungkan juga pin
GND dari dua board menjadi satu. Ini akan memastikan bahwa Arduino Yun akan
didukung juga. Jangan lupa untuk memulai streaming video langsung lagi setelah
itu.
Sekarang, letakkan robot Anda di lantai dan buka halaman HTML. Inilah yang
mestinya akan Anda lihat:
21
Sekarang, coba tombol yang berbeda, dan Anda akan melihat bahwa robot
bereaksi hampir seketika. Selamat, Anda baru saja membuat robot mata-mata
Anda sendiri menggunakan Arduino!
Ringkasan
Pada artikel ini, Anda membuat robot pengintai kecil Anda sendiri yang
dikendalikan oleh Wi-Fi. Dengan robot ini, Anda sekarang dapat memata-matai
apa yang terjadi di sebuah ruangan dan juga menggerakkan robot tersebut.
22
Ada beberapa cara untuk meningkatkan proyek ini. Misalnya, Anda dapat
menambahkan lebih banyak sensor ke robot dan menampilkan data sensor ini di
halaman yang sama dengan tempat Anda mengontrol robot.
Anda telah mencapai akhir dari artikel ini, dan saya harap Anda menikmati
membaca semua proyek agen rahasia! Sekarang saya sangat mendorong Anda
untuk mencoba semua proyek dari semua artikel kami lagi, dan membangunnya
sendiri. Saya juga menyarankan agar Anda menggunakan semua pengetahuan
dari semua artikel kami ini dan membangun proyek agen rahasia Anda sendiri.
Selamat bersenang-senang!
23
Dapatkan di https://www.tokopedia.com/anggaswangipress/buku-belajar-
micropython-pada-esp32-esp8266-arduino-500-hal
Dapatkan di https://www.tokopedia.com/anggaswangipress/buku-belajar-cepat-
otomasi-rumah-dengan-esp8266-arduino-526-hal
24
Dapatkan di https://www.tokopedia.com/anggaswangipress/buku-membuat-
sistem-cctv-canggih-dengan-esp32-cam-arduino-500-hal
Dapatkan di https://www.tokopedia.com/anggaswangipress/buku-membuat-20-
proyek-mudah-dengan-raspberry-pi-baca-deskripsi
25
26
HAL
27