Abstract—Kemajuan zaman merupakan perjalanan biasanya dilakukan oleh programer untuk menggunakan
kehidupan manusia yang mengalami perkembangan maupun melakukan konfigurasi pada IC tersebut.
diantaranya ilmu pengetahuan dan teknologi, dewasa ini
perkembangan zaman menjadi sangat pesat utamanya menilik Salah satu board yang cukup terkenal yakni nodeMCU
perkembangan teknologi yang semakin pesat sehingga setiap dengan komponen utamanya yakni modul Wifi ESP8266
saatnya menuntut peningkatan efisiensi, optimalisasi performa yang dikonfigurasikan dengan IC CH3400 untuk
kerja, dan minimalisasi ukuran untuk mempermudah pelbagai
menciptakan perangkat mikrokontroler yang dapat dapat
kebutuhan manusia dengan cepat dan praktis pada kondisi
apapun. Sejalan dengan perkembangan berbagai perangkat diakses melalui jaringan Wifi. Dalam penginputan program
elektronika yang menunjang kemudahan dalam kehidupan yang akan disematkan di dalam nodeMCU ini dapat
sehari-hari berpengaruh pada bidang automasi. Oleh karena menggunakan aplikasi arduino IDE. Selain pada bidang IC
itu penelitian ini ditujukan sebagai proyek tugas besar untuk
mata kuliah Robotika dengan kode EL-4021, ini akan perkembangan automasi kendaraan juga mulai sangat ramai
membuat purnarupa dari suatu permasalahan berkaitan di perbincangkan. Perkembangan automasi kendaraan
dengan automasi robot dengan judul Mobil Remot dengan sangat erat kaitannya dengan keamanan, kenyamanan, dan
Kontrol Android Anti Tabrak Dengan Fitur Semi-Autopilot. ketepatan.
Penulis mengintegrasikan mobil kecil, motor servo, sensor
ultrasonic, motor dc, dan nodeMCU untuk membentuk suatu Oleh karena itu berdasarkan latar belakang di atas
sistem mobil remot kontrol berbasis android dilengkapi tim penulis moncoba merancang sebuah alat “Mobil Remot
dengan fitur auto pilot yang anti tabrak dengan dengan Kontrol Android Anti Tabrak dengan Fitur
memanfaatkan kemampuan sensor.
Autopilot” dengan memanfaatkan nodeMCU sebagai
Keywords—NodeMCU ESP8266, IC CH3400, smartphone, penghubung dengan android dan pusat kontrol dari
Arduino, automasi robot, sensor, android, auto-pilot. keputusan-keputusan yang akan diambil alat ini untuk
menghasilkan tujuan yang diharapkan.
I. PENDAHULUAN
Dalam penugasan ini kami memikirkan cara agar mobil
Berkembangnya teknologi secara pesat terkait
mini 4WD dapat di operasikan secara autopilot, kemudian
peningkatan optimalisasi kecepatan kerja dan minimalisasi
menghubungkan smartphone ke mikrokontroler Arduino
ukuran. Artinya berkembang pula perangkat perangkat
sebagai alat kendali elektronik yang di integrasikan mobil
elektronika yang dikomersilkan. Terutama pada komponen
mini 4WD dengan tujuan;
IC yang semakin lama semakin memiliki kemampuan akses
yang lebih cepat dengan ukuran yang semakin kecil dan 1. Menyelesaikan tugas besar Robotika dengan kode
fungsi yang semakin luas. Untuk mempermudah akses dan mata kuliah EL 4021 sebagai bagian dari komponen
pengembangan kontrol pada IC diciptakan pula board-board penilaian serta implementasi mata kuliah.
yang dapat mempermudah pengguna yang dalam hal ini
int belok=0;
int KIRI2=50;
int KANAN2=120;
Servo myservo1;
Servo myservo2;
BLYNK_WRITE(V1) {
Vmaju = param.asInt();
}
Gambar 4.3 Penamaan variable pada aplikasi berbasis
android BLYNK_WRITE(V2) {
Vkanan = param.asInt();
}
Dalam sistem kerja Tamiya ini menerapkan sistem
kerja bang – bang control, yang terlihat pada kodingan BLYNK_WRITE(V3) {
Arduino, menerapkan fungsi if else ketika maju, mundur, Vmundur = param.asInt();
kekiri, dan kekanan yang mempunyai nilai range yang telah }
ditentukan yang telah disensing oleh sensor sensor yang
telah diprogram Arduino. Singkatnya, kontrol bang-bang BLYNK_WRITE(V4) {
sebenarnya kontrol optimal dalam beberapa kasus, Vkiri = param.asInt();
}
meskipun mereka juga sering diimplementasikan karena
kesederhanaan atau kenyamanan. BLYNK_WRITE(V5) {
Vmode = param.asInt();
Dan berikut adalah source program yang telah diaplikasikan }
pada mobil Mobil mini 4 WD
void setup() {
Serial.begin(9600);
#include <ESP8266WiFi.h> Blynk.begin(auth, ssid, pass);
#define BLYNK_PRINT Serial pinMode(LED_BUILTIN, OUTPUT);
#include <BlynkSimpleEsp8266.h> pinMode(maju, OUTPUT);
#include <Servo.h> `
pinMode(ECHO, INPUT);
char auth[] = "0rChd1P- myservo1.attach(14);
mNWzb5UX0M18uCHa6xTmsiEi"; myservo2.attach(12);
char ssid[] = "tubes";
char pass[] = "tugasbesar"; }
void loop() {
int Vmaju; Blynk.run();
int Vkanan; digitalWrite(LED_BUILTIN, onoff));
int Vmundur; if(onoff==0){
int Vkiri; digitalWrite(maju, LOW);
int Vmode; digitalWrite(mundur, LOW);
else{
digitalWrite(maju, HIGH);
tr=analogRead(touch); digitalWrite(mundur, LOW );
delay(500); delay(1);
if (tr>=1020){
onoff=1; digitalWrite(TRIG, LOW);
delay(500); delayMicroseconds(5);
} digitalWrite(TRIG, HIGH);
else { delayMicroseconds(5);
onoff=0; digitalWrite(TRIG, LOW);
} duration = pulseIn(ECHO, HIGH);
} BD = duration /58.2;
pos=TENGAH;
else{ myservo1.write(pos);
if(Vmode==1) myservo2.write(pos);
{
myservo1.write(TENGAH); while(BD<=20){
digitalWrite(TRIG, LOW); digitalWrite(maju, LOW);
delayMicroseconds(5); digitalWrite(mundur, LOW);
digitalWrite(TRIG, HIGH); myservo1.write(KIRI1);
delayMicroseconds(5); delay(1000);
digitalWrite(TRIG, LOW); digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO, HIGH); delayMicroseconds(5);
distance = duration /58.2; digitalWrite(TRIG, HIGH);
if(distance<20){ delayMicroseconds(5);
digitalWrite(mundur, Vmundur); digitalWrite(TRIG, LOW);
if(Vkanan==1 && Vkiri==0) duration = pulseIn(ECHO, HIGH);
{ distance = duration /58.2;
myservo2.write(KANAN2); ULTRA_KIRI=distance;
} myservo1.write(KANAN1);
delay(1000);
else if(Vkiri==1 && Vkanan==0){ digitalWrite(TRIG, LOW);
myservo2.write(KIRI2); delayMicroseconds(5);
} digitalWrite(TRIG, HIGH);
else{ delayMicroseconds(5);
myservo2.write(TENGAH); digitalWrite(TRIG, LOW);
} duration = pulseIn(ECHO, HIGH);
if(Vmaju==1 && (Vkiri==1 || Vkanan==1)){ distance = duration /58.2;
digitalWrite(maju, Vmaju); ULTRA_KANAN=distance;
}
else{ myservo1.write(TENGAH);
digitalWrite(maju, 0); delay(1000);
}
} BD=21;
else{ belok=1;
digitalWrite(maju, Vmaju); }
digitalWrite(mundur, Vmundur); while(BD==21 && belok==1){
if(Vkanan==1 && Vkiri==0){ while(ULTRA_KIRI > ULTRA_KANAN &&
myservo2.write(KANAN2); belok==1){
} digitalWrite(TRIG, LOW);
delayMicroseconds(5);
else if(Vkiri==1 && Vkanan==0){ digitalWrite(TRIG, HIGH);
myservo2.write(KIRI2); delayMicroseconds(5);
} digitalWrite(TRIG, LOW);
else{ duration = pulseIn(ECHO, HIGH);
myservo2.write(TENGAH); distance = duration /58.2;
}
.
if (distance<=20){
digitalWrite(TRIG, LOW); V. KESIMPULAN DAN SARAN
delayMicroseconds(5);
digitalWrite(TRIG, HIGH); Penelitian ini menghasilkan prototype model sebuah alat
delayMicroseconds(5); elektronik (mobil Mobil mini 4 WD ) yang dikendalikan
digitalWrite(TRIG, LOW); dengan smartphone Android dan ditarik kesimpulan sebagai
duration = pulseIn(ECHO, HIGH); berikut:
distance = duration /58.2;
myservo2.write(KIRI2); 1. Mobil mini 4 WD NodeMCU dapat dikendalikan
digitalWrite(maju, HIGH); dengan baik menggunakan smartphone Android
digitalWrite(mundur, LOW ); melalui koneksi wifi.
belok=1;
} 2. Jarak antara NodeMCU dengan Android tidak
else{ berpengaruh besar dengan kecepatan proses pairing.
belok=0;
} 3. Kecepatan proses pairing lebih dipengaruhi oleh
} versi Android dibanding dengan hardware yang
while(ULTRA_KANAN > ULTRA_KIRI && terpasang.
belok==1){
4. Mobil mini 4 WD dapat dioperasikan dalam 2 mode
digitalWrite(TRIG, LOW); yaitu mode manual yang dikendalikan oleh android
delayMicroseconds(5); smartphone dan dikendalikan secara autopilot yang
digitalWrite(TRIG, HIGH); bergerak berdasarkan sistem robot tersebut.
delayMicroseconds(5);
digitalWrite(TRIG, LOW); 5. Mobil mini 4 WD dapat berjalan autopilot dengan
duration = pulseIn(ECHO, HIGH); cara mensensing ultrasonik agar Mobil mini 4 WD
distance = duration /58.2; terhindar dari tabrakan.
if (distance<=20){
digitalWrite(TRIG, LOW); 6. Perangkat dapat melaksanakan semua perintah
delayMicroseconds(5); dengan baik, akan tetapi dalam pengaplikasiannya
digitalWrite(TRIG, HIGH); belum dapat bekerja secara maksimal. Hal ini
delayMicroseconds(5); dikarenakan faktor mekanikal sensing ultrasonik
digitalWrite(TRIG, LOW); yang lambat dan masalah koneksi jaringan.
duration = pulseIn(ECHO, HIGH);
distance = duration /58.2; Adapun saran untuk penyempurnaan perangkat adalah
sebagai berikut :
myservo2.write(KANAN2); Alat penelitian dikembangkan dengan alat yang
digitalWrite(maju, HIGH); lain dan media transmisi data menggunakan Wi-Fi
digitalWrite(mundur, LOW );
belok=1; yang memiliki jarak yang jauh.
}
else{
REFERENCES
belok=0;
}
} [1] Samsugi, dkk. 2018. Arduino dan Modul Wifi ESP8266
Sebagai Media Kendali jarak Jauh dengan Antarmuka
} Berbasis Android. Jurnal TEKNOINFO, Vol. 12, No. 1,
} 2018, 23-27. ISSN 1693-0010
tr=analogRead(touch); [2] Irawan, Dede. 2019. Perancangan Siatem Pemantau dan
if (tr>=1020){ Pengendali Alat Rumah Tangga Menggunakan
onoff=0; NodeMCU. JTERA (Jurnal Teknologi Rekayasa), Vol.
4, No. 1, Juni 2019.
delay(500);
[3] https://embeddednesia.com/v1/tutorial-nodemcu-
} pertemuan-pertama/
else { [4] http://trikueni-desain-
onoff=1; sistem.blogspot.com/2014/03/Pengertian-Motor-
delay(500); Servo.html
}} [5] Sutanto, Dimas. dkk, Modul Praktikum IF3124 Sistem
Tertanam, Institut Teknologi Sumatera, V1.0, 2019.
Serial.print(tr);
Serial.print("=>"); [6] Yuliansyah, Herry. Uji Kinerja Pengiriman Data Secara
Wireless Menggunakan Modul ESP8266 Berbasis Rest
Serial.println(onoff); Architecture. Vol 10, No 2. 2016.
} [7] https://teknikelektronika.com/pengertian-motor-dc-
prinsip-kerja-dc-motor/
[8] https://www.elangsakti.com/2015/05/sensor-
ultrasonik.html