Anda di halaman 1dari 25

LAPORAN TUGAS BESAR ROBOTIKA

Mobil Remot Dengan 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.

2.8 Bang – Bang Control


Dalam teori kontrol , pengendali bang-bang ( pengendali 2 langkah atau on-off ), juga dikenal
sebagai pengendali histeresis , adalah pengendali umpan balik yang beralih secara tiba-tiba
antara dua kondisi. Kontroler ini dapat diwujudkan dalam hal elemen apa pun yang
menyediakan histeresis . Mereka sering digunakan untuk mengontrol pabrik yang menerima
input biner, misalnya tungku yang benar-benar hidup atau benar-benar mati. Termostat hunian
yang paling umum adalah pengendali bang-bang. Fungsi langkah Heaviside dalam bentuk
diskritnya adalah contoh sinyal kontrol bang-bang . Karena sinyal kontrol terputus , sistem
yang menyertakan bang-bang controllers adalah sistem struktur variabel , dan bang-bang
controller adalah pengontrol struktur variabel.
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

Gambar 4.Penamaan variable pada aplikasi berbasis android


Dalam sistem kerja Tamiya ini menerapkan sistem kerja bang – bang control, yang terlihat pada
kodingan Arduino, menerapkan fungsi if else ketika maju, mundur, kekiri, dan kekanan yang
mempunyai nilai range yang telah ditentukan yang telah disensing oleh sensor sensor yang telah
diprogram Arduino. Singkatnya, kontrol bang-bang sebenarnya kontrol optimal dalam beberapa
kasus, meskipun mereka juga sering diimplementasikan karena kesederhanaan atau kenyamanan.
Dan berikut adalah source program yang telah diaplikasikan pada mobil Mobil mini 4 WD
#include <ESP8266WiFi.h>

#define BLYNK_PRINT Serial

#include <BlynkSimpleEsp8266.h>

#include <Servo.h>

char auth[] = "0rChd1P-mNWzb5UX0M18uCHa6xTmsiEi";

char ssid[] = "tubes";

char pass[] = "tugasbesar";

int Vmaju;

int Vkanan;

int Vmundur;

int Vkiri;

int Vmode;

int touch=A0;

int tr;

int onoff=0;

int KIRI1=179;

int TENGAH=90;

int KANAN1=8;

int pos;

int TRIG = 16;

int ECHO = 5;

int ULTRA_KANAN;

int ULTRA_KIRI;

unsigned long duration;

unsigned int distance;

unsigned int BD;

int maju=4;

int mundur=0;
int belok=0;

int KIRI2=50;

int KANAN2=120;

Servo myservo1;

Servo myservo2;

BLYNK_WRITE(V1) {

Vmaju = param.asInt();

BLYNK_WRITE(V2) {

Vkanan = param.asInt();

BLYNK_WRITE(V3) {

Vmundur = param.asInt();

BLYNK_WRITE(V4) {

Vkiri = param.asInt();

BLYNK_WRITE(V5) {

Vmode = param.asInt();

void setup() {

Serial.begin(9600);

Blynk.begin(auth, ssid, pass);

pinMode(LED_BUILTIN, OUTPUT);

pinMode(maju, OUTPUT);

pinMode(mundur, OUTPUT);

pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);

myservo1.attach(14);

myservo2.attach(12);

void loop() {

Blynk.run();

digitalWrite(LED_BUILTIN, onoff));

if(onoff==0){

digitalWrite(maju, LOW);

digitalWrite(mundur, LOW);

tr=analogRead(touch);

delay(500);

if (tr>=1020){

onoff=1;

delay(500);

else {

onoff=0;

else{

if(Vmode==1){

myservo1.write(TENGAH);

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);


distance = duration /58.2;

if(distance<20){

digitalWrite(mundur, Vmundur);

if(Vkanan==1 && Vkiri==0){

myservo2.write(KANAN2);

else if(Vkiri==1 && Vkanan==0){

myservo2.write(KIRI2);

else{

myservo2.write(TENGAH);

if(Vmaju==1 && (Vkiri==1 || Vkanan==1)){

digitalWrite(maju, Vmaju);

else{

digitalWrite(maju, 0);

else{

digitalWrite(maju, Vmaju);

digitalWrite(mundur, Vmundur);

if(Vkanan==1 && Vkiri==0){

myservo2.write(KANAN2);

else if(Vkiri==1 && Vkanan==0){

myservo2.write(KIRI2);

else{

myservo2.write(TENGAH);

}
else{

digitalWrite(maju, HIGH);

digitalWrite(mundur, LOW );

delay(1);

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

BD = duration /58.2;

pos=TENGAH;

myservo1.write(pos);

myservo2.write(pos);

while(BD<=20){

digitalWrite(maju, LOW);

digitalWrite(mundur, LOW);

myservo1.write(KIRI1);

delay(1000);

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;

ULTRA_KIRI=distance;
myservo1.write(KANAN1);

delay(1000);

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;

ULTRA_KANAN=distance;

myservo1.write(TENGAH);

delay(1000);

BD=21;

belok=1;

while(BD==21 && belok==1){

while(ULTRA_KIRI > ULTRA_KANAN && belok==1){

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;


if (distance<=20){

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;

myservo2.write(KIRI2);

digitalWrite(maju, HIGH);

digitalWrite(mundur, LOW );

belok=1;

else{

belok=0;

while(ULTRA_KANAN > ULTRA_KIRI && belok==1){

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;


if (distance<=20){

digitalWrite(TRIG, LOW);

delayMicroseconds(5);

digitalWrite(TRIG, HIGH);

delayMicroseconds(5);

digitalWrite(TRIG, LOW);

duration = pulseIn(ECHO, HIGH);

distance = duration /58.2;

myservo2.write(KANAN2);

digitalWrite(maju, HIGH);

digitalWrite(mundur, LOW );

belok=1;

else{

belok=0;

tr=analogRead(touch);

if (tr>=1020){

onoff=0;

delay(500);

else {

onoff=1;

delay(500);

Serial.print(tr);

Serial.print("=>");

Serial.println(onoff);

}
BAB 5 KESIMPULAN DAN SARAN

Penelitian ini menghasilkan prototype model sebuah alat elektronik (mobil Mobil mini 4 WD ) yang
dikendalikan dengan smartphone Android dan ditarik kesimpulan sebagai berikut:
1) Mobil mini 4 WD NodeMCU dapat dikendalikan dengan baik menggunakan smartphone
Android
melalui koneksi wifi.
2) Jarak antara NodeMCU dengan Android tidak berpengaruh besar dengan kecepatan proses
pairing.
3) Kecepatan proses pairing lebih dipengaruhi oleh versi Android dibanding dengan hardware
yang terpasang.
4) Mobil mini 4 WD dapat dioperasikan dalam 2 mode yaitu mode manual yang dikendalikan oleh
android smartphone dan dikendalikan secara autopilot yang bergerak berdasarkan sistem robot
tersebut.
5) Mobil mini 4 WD dapat berjalan autopilot dengan cara mensensing ultrasonik agar Mobil mini
4 WD terhindar dari tabrakan.
6) Perangkat dapat melaksanakan semua perintah dengan baik, akan tetapi dalam
pengaplikasiannya belum dapat bekerja secara maksimal. Hal ini dikarenakan faktor mekanikal
sensing ultrasonik yang lambat dan masalah koneksi jaringan.

Adapun saran untuk penyempurnaan perangkat adalah sebagai berikut :


• Alat penelitian dikembangkan dengan alat yang lain dan media transmisi data menggunakan
Wi-Fi yang memiliki jarak yang jauh
DAFTAR PUSTAKA

[1]. https://embeddednesia.com/v1/tutorial-nodemcu-pertemuan-pertama/
[2]. http://trikueni-desain-sistem.blogspot.com/2014/03/Pengertian-Motor-Servo.html
[3]. Sutanto, Dimas. dkk, Modul Praktikum IF3124 Sistem Tertanam, Institut Teknologi
Sumatera, V1.0, 2019.
[4]. https://teknikelektronika.com/pengertian-motor-dc-prinsip-kerja-dc-motor/
[5]. https://www.elangsakti.com/2015/05/sensor-ultrasonik.html

Anda mungkin juga menyukai