Anda di halaman 1dari 15

LAPORAN TUGAS BESAR ROBOTIKA

Mobil Remot Kontrol Android Anti


Tabrak Dengan Fitur Semi-Autopilot

Kelompok : 1
Arif Pamenang 13115014
Adlu Hakam Ramadhan 13115042
Dzaky Hilmi Raihan 13115023
Retno Aljumuah 13115029
Ihsan Prawirahutomo 13115015
Syarif Hidayatullah 13115037

PROGRAM STUDI TEKNIK ELEKTRO


JURUSAN TEKNOLOGI PRODUKSI DAN INDUSTRI
INSTITUT TEKNOLOGI SUMATERA
2019
ABSTRAK

Berkembangnya tekhnologi secara pesat terkait peningkatan optimalisasi kecepatan kerja dan
minimalisasi ukuran. Serta berkembang pula perangkat perangkat elektronika yang
menunjang kemudahan dalam kehidupan sehari-hari yang juga berpengaruh dalam bidang
automasi. Oleh karena itu Penelitian ini ditujukan sebagai proyek tugas besar untuk mata
kuliah robotika ini akan membuat purnarupa dari suatu permasalahan berkaitan dengan
automasi robot dengan judul Mobil Remot Kontrol Android Anti Tabrak Dengan Fitur Semi-
Autopilot. Penulis mengintegrasikan mobil kecil, motor servo, sensor ultrasonic, motor dc,
dan nodeMCU untuk membentuk suatu sistem mobil remot kontrol berbasis android
dilengkapi dengan fitur auto pilot yang anti tabrak dengan memanfaatkan kemampuan sensor.
BAB 1 PENDAHULUAN

1.1 Latar Belakang


Berkembangnya tekhnologi secara pesat terkait peningkatan optimalisasi
kecepatan kerja dan minimalisasi ukuran. Artinya berkembang pula perangkat perangkat
elektronika yang dikomersilkan. Terutama pada komponen IC yang semakin lama semakin
memiliki kemampuan akses yang lebih cepat dengan ukuran yang semakin kecil dan fungsi
yang semakin luas. Untuk mempermudah akses dan pengembangan kontrol pada IC
diciptakan pula board-board yang dapat mempermudah pengguna yang dalam hal ini
biasanya dilakukan oleh programer untuk menggunakan maupun melakukan konfigurasi pada
IC tersebut.
Salah satu board yang cukup terkenal yakni nodeMCU dengan komponen
utamanya yakni modul Wifi ESP8266 yang dikonfigurasikan dengan IC CH3400 untuk
menciptakan perangkat mikrokontroler yang dapat dapat diakses melalui jaringan Wifi.
Dalam penginputan program yang akan disematkan di dalam nodeMCU ini dapat
menggunakan aplikasi arduino IDE. Selain pada bidang IC perkembangan automasi
kendaraan juga mulai sangat ramai di perbincangkan. Perkembangan automasi kendaraan
sangat erat kaitannya dengan keamanan, kenyamanan, dan ketepatan.
Oleh karena itu berdasarkan latar belakang di atas tim penulis moncoba
merancang sebuah alat “Mobil Remot Kontrol Android Anti Tabrak dengan Fitur Autopilot”
dengan memanfaatkan nodeMCU sebagai penghubung dengan android dan pusat kontrol dari
keputusan-keputusan yang akan diambil alat ini untuk menghasilkan tujuan yang diharapkan.

1.2 Rumusan Masalah


Berdasarkan latar belakang diatas , maka dapat dirumuskan permasalahan sebagai berikut:
1. bagaimana membuat smartphone terhubung dengan mikrokontroler Arduino sebagai
pengendali alat elektronik ?
2. bagaimana membuat Mobil mini 4 WD bisa berjalan secara autopilot ?

1.3 Tujuan
Pada dasarnya tujuan utama tim penulis membuat alat ini yaitu untuk
memenuhi tugas besar mata kuliah embedded system. Disamping itu penulis ingin menguji
keterampilan dalam merealisasikan imajinasi penulis mengenai sistem kontrol dan cara kerja
komponen-komponen yang terlibat di dalamnya. Menambah wawasan dan membantu
penerapan teori yang dipelajari didalam perkuliahan.
Sedangkan untuk sementara ini kegunaan alat yang tim penulis buat yakni untuk
menunjukkan sistem autopilot sedarhana dan pengotrolan berbasis android serta dapat
mengurangi tingkat kerusakan yang terjadi pada mobil remot kontrol.
BAB 2 TEORI DASAR

2.1 NodeMCU 0.9


NodeMCU adalah sebuah platform IoT yang bersifat opensource. Terdiri dari
perangkat keras berupa System On Chip ESP8266 dari ESP8266 buatan Espressif System,
juga firmware yang digunakan, yang menggunakan bahasa pemrograman scripting Lua.
Istilah NodeMCU secara default sebenarnya mengacu pada firmware yang digunakan pada
perangkat keras development kit.
NodeMCU bisa dianalogikan sebagai board arduino-nya ESP8266. Diperlukan
beberapa teknik wiring serta tambahan modul USB to serial untuk mengunduh program.
Namun NodeMCU telah me-package ESP8266 ke dalam sebuah board yang kompak dengan
berbagai fitur layaknya mikrokontroler + kapabilitas akses terhadap Wifi juga chip
komunikasi USB to serial. Sehingga untuk memprogramnya hanya diperlukan ekstensi kabel
data USB persis yang digunakan sebagai kabel data dan kabel charging smartphone Android

2.2 ESP-12E
Karena jantung dari NodeMCU adalah ESP8266 (khususnya seri ESP-12,
termasuk ESP-12E) maka fitur – fitur yang dimiliki NodeMCU akan kurang lebih sama ESP-
12 (juga ESP-12E untuk NodeMCU v.2 dan v.3) kecuali NodeMCU telah dibungkus oleh
API sendiri yang dibangun berdasarkan bahasa pemrograman eLua, yang kurang lebih cukup
mirip dengan javascript. Beberapa fitur tersebut antara lain:
 10 Port GPIO dari D0 – D10
 Fungsionalitas PWM
 Antarmuka I2C dan SPI
 Antarmuka 1 Wire
 ADC
Adapun bentuk dan lokasi pin ESP-12E sebagai berikut :

Gambar 2.1 Posisi pin ESP-12E

Tabel 2.1 ?
RST : berfungsi mereset modul IO10 GBIO10
ADC: Analog Digital Converter SCLK: Clock
EN: Chip Enable, Active High GND: Ground
IO16 :GPIO16, dapat digunakan untuk IO15: GPIO15; MTDO; HSPICS; UART0_RTS
membangunkan chipset dari mode deep sleep
IO14 : GPIO14; HSPI_CLK IO2 : GPIO2;UART1_TXD
IO12 : GPIO12: HSPI_MISO IO0 : GPIO0
IO13: GPIO13; HSPI_MOSI; UART0_CTS IO4 : GPIO4
VCC: Catu daya 3.3V (VDD) IO5 : GPIO5
CS0 :Chip selection RXD : UART0_RXD; GPIO3
MISO : Slave output, Main input TXD : UART0_TXD; GPIO1
IO9 : GPIO9 MOSI: Main output slave input

2.3 Tegangan Kerja


ESP8266 menggunakan standar tegangan JEDEC (tegangan 3.3V) untuk bisa
berfungsi. Tidak seperti mikrokontroler AVR dan sebagian besar board Arduino yang
memiliki tegangan TTL 5 volt. Meskipun begitu, node mcu masih bisa terhubung dengan 5V
namun melalui port micro USB atau pin Vin yang disediakan oleh board-nya. Namun karena
semua pin pada ESP8266 tidak toleran terhadap masukan 5V. Maka jangan sekali – kali
langsung mencatunya dengan tegangan TTL jika tidak ingin merusak board anda. Anda bisa
menggunakan Level Logic Converter untuk mengubah tegangan ke nilai aman 3.3v.[1]
2.4 Motor Servo
Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang
dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur
untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo
merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan
potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat
putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan
perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran
poros motor servo.
Penggunaan sistem kontrol loop tertutup pada motor servo berguna untuk mengontrol
gerakan dan posisi akhir dari poros motor servo. Penjelasan sederhananya begini, posisi poros
output akan di sensor untuk mengetahui posisi poros sudah tepat seperti yang di inginkan atau
belum, dan jika belum, maka kontrol input akan mengirim sinyal kendali untuk membuat
posisi poros tersebut tepat pada posisi yang diinginkan.
Motor servo biasa digunakan dalam aplikasi-aplikasi di industri, selain itu juga
digunakan dalam berbagai aplikasi lain seperti pada mobil mainan radio kontrol, robot,
pesawat, dan lain sebagainya. Terdapat dua jenis motor servo, yaitu motor servo AC dan DC.
Motor servo AC lebih dapat menangani arus yang tinggi atau beban berat, sehingga sering
diaplikasikan pada mesin-mesin industri. Sedangkan motor servo DC biasanya lebih cocok
untuk digunakan pada aplikasi-aplikasi yang lebih kecil. Dan bila dibedakan menurut
rotasinya, umumnya terdapat dua jenis motor servo yang dan terdapat di pasaran, yaitu motor
servo rotation 180⁰ dan servo rotation continuous.
Motor servo rotation continuous merupakan jenis motor servo yang sebenarnya sama dengan
jenis servo standard, hanya saja perputaran porosnya tanpa batasan atau dengan kata lain
dapat berputar terus, baik ke arah kanan kiri.

2.4.1 Prinsip Kerja Motor Servo


Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse
Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan
akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa
dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila
pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan
dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka
poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih
jelasnya perhatikan gambar dibawah ini.
Ketika lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak
atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan
tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau
mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan
besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan
mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap
20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada
posisinya.[2]

2.5 IDE Arduino


IDE (Integrated Development Environment) adalah sebuah perangkat lunak yang
digunakan untuk mengembangkan aplikasi mikrokontroler mulai dari menuliskan source
program, kompilasi, upload hasil kompilasi dan uji coba secara terminal serial. Icon menu
verify yang bergambar ceklis berfungsi untuk mengecek program yang ditulis apakah ada
yang salah atau error.
Icon menu upload yang bergambar panah ke arah kanan berfungsi untuk memuat /
transfer program yang dibuat di software arduino ke hardware arduino. Icon menu New yang
bergambar sehelai kertas berfungsi untuk membuat halaman baru dalam pemrograman.
Icon menu Open yang bergambar panah ke arah atas berfungsi untuk membuka
program yang disimpan atau membuka program yang sudah dibuat dari pabrikan software
arduino. Icon menu Save yang bergambar panah ke arah bawah berfungsi untuk menyimpan
program yang telah dibuat atau dimodifikasi. Icon menu serial monitor yang bergambar kaca
pembesar berfungsi untuk mengirim atau menampilkan serial komunikasi data saat dikirim
dari hardware arduino.[3]

2.6 Motor DC
Motor Listrik DC atau DC Motor ini menghasilkan sejumlah putaran per menit
atau biasanya dikenal dengan istilah RPM (Revolutions per minute) dan dapat dibuat berputar
searah jarum jam maupun berlawanan arah jarum jam apabila polaritas listrik yang diberikan
pada Motor DC tersebut dibalikan. Motor Listrik DC tersedia dalam berbagai ukuran rpm dan
bentuk. Kebanyakan Motor Listrik DC memberikan kecepatan rotasi sekitar 3000 rpm
hingga 8000 rpm dengan tegangan operasional dari 1,5V hingga 24V. Apabile tegangan yang
diberikan ke Motor Listrik DC lebih rendah dari tegangan operasionalnya maka akan dapat
memperlambat rotasi motor DC tersebut sedangkan tegangan yang lebih tinggi dari tegangan
operasional akan membuat rotasi motor DC menjadi lebih cepat. Namun ketika tegangan
yang diberikan ke Motor DC tersebut turun menjadi dibawah 50% dari tegangan operasional
yang ditentukan maka Motor DC tersebut tidak dapat berputar atau terhenti. Sebaliknya, jika
tegangan yang diberikan ke Motor DC tersebut lebih tinggi sekitar 30% dari tegangan
operasional yang ditentukan, maka motor DC tersebut akan menjadi sangat panas dan
akhirnya akan menjadi rusak.
Pada saat Motor listrik DC berputar tanpa beban, hanya sedikit arus listrik atau
daya yang digunakannya, namun pada saat diberikan beban, jumlah arus yang digunakan
akan meningkat hingga ratusan persen bahkan hingga 1000% atau lebih (tergantung jenis
beban yang diberikan). Oleh karena itu, produsen Motor DC biasanya akan mencantumkan
Stall Current pada Motor DC. Stall Current adalah arus pada saat poros motor berhenti karena
mengalami beban maksimal.
2.6.1 Prinsip Kerja Motor DC
Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor.
Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan
kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari
kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen
penting yaitu diantaranya adalah Yoke (kerangka magnet), Poles (kutub motor), Field
winding (kumparan medan magnet), Armature Winding (Kumparan Jangkar), Commutator
(Komutator) dan Brushes (kuas/sikat arang).
Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk
bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara
akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat
selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan
bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub
utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan
kumparan berhenti.
Untuk menggerakannya lagi, tepat pada saat kutub kumparan berhadapan dengan
kutub magnet, arah arus pada kumparan dibalik. Dengan demikian, kutub utara kumparan
akan berubah menjadi kutub selatan dan kutub selatannya akan berubah menjadi kutub utara.
Pada saat perubahan kutub tersebut terjadi, kutub selatan kumparan akan berhadap dengan
kutub selatan magnet dan kutub utara kumparan akan berhadapan dengan kutub utara magnet.
Karena kutubnya sama, maka akan terjadi tolak menolak sehingga kumparan bergerak
memutar hingga utara kumparan berhadapan dengan selatan magnet dan selatan kumparan
berhadapan dengan utara magnet. Pada saat ini, arus yang mengalir ke kumparan dibalik lagi
dan kumparan akan berputar lagi karena adanya perubahan kutub. Siklus ini akan berulang-
ulang hingga arus listrik pada kumparan diputuskan.[4]

2.7 Sensor Ultrasonik


Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran
fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada
prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan
eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik
karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik).
Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi
sangat tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia.
Bunyi ultrasonik dapat didengar oleh anjing, kucing, kelelawar, dan lumba-lumba. Bunyi
ultrasonik nisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di
permukaan zat padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat car.
Akan tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa.
2.7.1 Cara Kerja Sensor Ultrasonik
Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang disebut
dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan
gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada
benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju
suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target
akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan
ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman
gelombang dan waktu gelombang pantul diterima.
BAB 4 PEMBUATAN DAN PEMBAHASAN

4.1 Prosedur Pembuatan


Berikut adalah langkah-langkah dalam proses pembuatan perangkat :
1. Menyiapkan alat dan bahan
2. Perancangan sistem dan desain perangkat
3. Proses pembuatan perangkat
4.1.1 Alat dan Bahan
Alat/Komponen Bahan
Motor Servo Solder
Motor DC Timah
Baterai Baut
Mini 4 WD Lem
Stik Es Krim Tang potong
Jumper Male to Male Gunting
Jumper Female to Female Bread Board
Sensor Ultrasonik Laptop/PC
Arduino ESP8266 Smart Phone
Relay 2 chanel
Mini PCB
Dudukan Baterai

4.1.2 Desain Perancangan


Adapun desain rancangan dari perangkat yang dibuat adalah seperti berikut :

Gambar 4.1 Desain perangkat

Pada gambar 4.1 desain perangkat terdiri dari Mobil mini 4 WD sebagai sasis utama
sebagai tempat peletakkan dinamo, baterai, relay, motor DC, mikrokontroller, motor servo, dan
sensor ultrasonic. Desain perangkat tersebut telah dedesain secara compact, handal, dan efisien
4.2 Sistem Kerja Perangkat

Gambar 4.2 Flowchart sistem kerja alat

Pengoperasian mobil Mobil mini 4 WD dengan langkah awal melakukan menekan


tombol on/off dan menghubungkan Mobil mini 4 WD dengan smartphone, dan dimana
terdapat aplikasi berbasis android sebagai controller mobil Mobil mini 4 WD tersebut. Di
aplikasi tersebut memberikan 2 opsi mode pengoperasian, yaitu mode manual dan mode
otomatis. Mode manual dikendalikan oleh user secara penuh lewat aplikasi berbasis android,
dan mode otomatis dikendalikan berdasarkan keputusan sistem mobil Mobil mini 4 WD
tersebut.

4.3 Pembahasan
Implementasi penelitian memerlukan hardware yang akan dirakit dan software yang
digunakan untuk memprogram mikrokontroler. Software yang digunakan adalah Arduino IDE versi
1.6.3, sedangkan hardware yang digunakan sebagai berikut:
1) Smartphone Android
2) Mikrokontroler Arduino Uno R3
3) Wi-Fi ESP8266
4) Relay
5) Project PCB board
6) Mobil Tamia bekas
7) Sensor Ultrasonik
8) Motor servo
9) Dinamo
Skema perakitan peralatan mengacu pada panduan Arduino modul ESP8266 untuk perakitan
mobil dengan penggerak dinamo di belakang (Gambar 4.3 ) hanya saja perubahan pada perakitan
motor yang disesuaikan dengan mobil tamia. Kode perintah android diterima melalui wifi, kemudian
Arduino Uno R3 akan menggerakkan motor melalui relay. Project board PCB digunakan sebagai
sambungan kabel antar alat supaya mudah untuk lepas dan pasang tanpa harus menggunakan solder.

Gambar 4.3 Skema perencanaan alat

Mobil Mobil mini 4 WD terintegrasi dengan mikrokontroller yang terhubung dengan modul
ESP 8266 sehingga mobil Mobil mini 4 WD dapat di kontrol dengan smartphone yang system
operasinya adalah android. Sensor yang digunakan adalah ultrasonic, dimana sensor ultrasonic
berfungsi memantulkan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi
(jarak) suatu benda dengan jarak ±20 cm. Digerakkann dengan motor DC atau dinamo sebagai
penggerak roda belakang Tamia yang dikendalikan oleh Arduino tersupply oleh baterai terpasang
secara seri. Motor servo digunakan sebanyak 2 buah, yaitu menggerakan sensor ultrasonic sebagai
mencari objek yang ada di depan, dan ketika ada objek didepan maka motor servo akan
menggerakkan sensor ultrasonic untuk mencari jalan untuk menghindari objek tersebut. Dan yang
kedua motor servo berguna untuk menggerakkan roda yang ada didepan untuk bergerak kekanan dan
kiri yang tersensing oleh sensor ultrasonic untuk menghindari objek.

Gambar 4.4 Implementasi mobil Mobil mini 4 WD


Gambar 4.4 Implementasi Mobil Mobil mini 4 WD

Gambar 4.5 Mode kendali otomatis pada aplikasi berbasis android


Gambar 4.6 Mode kendali manual pada aplikasi berbasis android
else{
distance
ifmyservo1.write(KANAN1);
(distance<=20){
= duration /58.2; int belok=0;
if (distance<=20){

if(distance<20){
digitalWrite(maju,
digitalWrite(TRIG,
delay(1000); HIGH);
LOW); int KIRI2=50;
digitalWrite(TRIG, LOW);

digitalWrite(mundur,
digitalWrite(mundur,
delayMicroseconds(5);
digitalWrite(TRIG, LOW);
LOW
Vmundur);
); int KANAN2=120;
delayMicroseconds(5);

delay(1);
if(Vkanan==1
digitalWrite(TRIG,
delayMicroseconds(5);
&& Vkiri==0){
HIGH); variabledigitalWrite(TRIG,
Gambar 4.PenamaanpinMode(ECHO,
pada aplikasi
INPUT); HIGH);android
berbasis
delayMicroseconds(5);
digitalWrite(TRIG,
myservo2.write(KANAN2);
HIGH); Servo myservo1;
delayMicroseconds(5);
myservo1.attach(14);
Dan berikut adalah
digitalWrite(TRIG,
digitalWrite(TRIG, source program yangServo
}delayMicroseconds(5);
LOW);
LOW); telah diaplikasikan
myservo2; pada LOW);
digitalWrite(TRIG,
myservo2.attach(12); mobil Mobil mini 4 WD .
delayMicroseconds(5);
duration
digitalWrite(TRIG,
#include = pulseIn(ECHO,
LOW); HIGH);
<ESP8266WiFi.h> duration = pulseIn(ECHO, HIGH);

digitalWrite(TRIG,
else
distance
duration
if(Vkiri==1
#define == duration
pulseIn(ECHO,
&&
BLYNK_PRINTHIGH);
Vkanan==0){
/58.2;
SerialHIGH); BLYNK_WRITE(V1)
} distance ={ duration /58.2;

delayMicroseconds(5);
myservo2.write(KIRI2);
distance
myservo2.write(KIRI2);
#include = duration /58.2;
<BlynkSimpleEsp8266.h> Vmaju = param.asInt();

digitalWrite(TRIG,
digitalWrite(maju,
}ULTRA_KANAN=distance;
#include <Servo.h>LOW);
HIGH); } void loop()
myservo2.write(KANAN2);
{
duration
digitalWrite(mundur,
else{ = pulseIn(ECHO,
LOW
HIGH);
); digitalWrite(maju, HIGH);
Blynk.run();
BD
belok=1;
myservo2.write(TENGAH);
myservo1.write(TENGAH);
= duration
char auth[] = /58.2; BLYNK_WRITE(V2)
digitalWrite(mundur,
"0rChd1P-mNWzb5UX0M18uCHa6xTmsiEi"; {
digitalWrite(LED_BUILTIN, LOW );
onoff));
pos=TENGAH;
}delay(1000);
char ssid[] = "tubes"; Vkanan belok=1;
= param.asInt();
if(onoff==0){
myservo1.write(pos);
if(Vmaju==1
else{pass[] = &&
char (Vkiri==1 || Vkanan==1)){
"tugasbesar"; } digitalWrite(maju,
} LOW);
myservo2.write(pos);
belok=0;
digitalWrite(maju,
BD=21; Vmaju); else{
digitalWrite(mundur, LOW);
}int
}belok=1;
Vmaju; BLYNK_WRITE(V3)
belok=0; {

while(BD<=20){
else{
}} Vkanan;
int Vmundur} = param.asInt();
tr=analogRead(touch);
digitalWrite(maju,
while(ULTRA_KANAN
digitalWrite(maju,
while(BD==21
int Vmundur; && LOW);
0);
belok==1){
> ULTRA_KIRI && belok==1){
} delay(500);
}

digitalWrite(mundur,
}intwhile(ULTRA_KIRI
Vkiri; >LOW);
ULTRA_KANAN && belok==1){}
if (tr>=1020){
myservo1.write(KIRI1);
}int
digitalWrite(TRIG,
digitalWrite(TRIG,
Vmode; LOW);
LOW); BLYNK_WRITE(V4)
}
onoff=1; {

delay(1000);
else{
delayMicroseconds(5);
delayMicroseconds(5); Vkiridelay(500);
= param.asInt();
tr=analogRead(touch);

digitalWrite(TRIG,
digitalWrite(maju,
digitalWrite(TRIG,
intdigitalWrite(TRIG,
touch=A0; LOW);
Vmaju);
HIGH);
HIGH); } } if (tr>=1020){

delayMicroseconds(5);
digitalWrite(mundur,
delayMicroseconds(5);
delayMicroseconds(5);
int tr; Vmundur); else { onoff=0;
if(Vkanan==1
digitalWrite(TRIG,
digitalWrite(TRIG,
digitalWrite(TRIG,
int onoff=0; && Vkiri==0){
HIGH);
LOW);
LOW); BLYNK_WRITE(V5)
delay(500);
onoff=0; {

delayMicroseconds(5);
duration
myservo2.write(KANAN2);
duration
int = =pulseIn(ECHO,
KIRI1=179;pulseIn(ECHO,HIGH);
HIGH); Vmode
} =} param.asInt();

digitalWrite(TRIG,
}int
distance
distance
= =duration
TENGAH=90;duration
LOW);
/58.2;
/58.2; } } else {

duration = pulseIn(ECHO, HIGH);


int KANAN1=8; onoff=1;

distance
else if(Vkiri==1
int pos; = duration
&& Vkanan==0){
/58.2; void setup()
else{ delay(500);
{

ULTRA_KIRI=distance;
intmyservo2.write(KIRI2);
TRIG = 16; Serial.begin(9600);
}
if(Vmode==1){
}int ECHO = 5; Blynk.begin(auth,
} ssid, pass);
myservo1.write(TENGAH);
else{
int ULTRA_KANAN; pinMode(LED_BUILTIN,
Serial.print(tr);
digitalWrite(TRIG, LOW);OUTPUT);

myservo2.write(TENGAH);
int ULTRA_KIRI; pinMode(maju,
Serial.print("=>");
OUTPUT);
delayMicroseconds(5);
}unsigned long duration; pinMode(mundur,
Serial.println(onoff);
digitalWrite(TRIG, OUTPUT);
HIGH);
}unsigned int distance; pinMode(TRIG,
} OUTPUT);
delayMicroseconds(5);
}
unsigned int BD; pinMode(ECHO, INPUT);
digitalWrite(TRIG, LOW);
myservo1.attach(14);
duration = pulseIn(ECHO, HIGH);
myservo2.attach(12);

Anda mungkin juga menyukai