Anda di halaman 1dari 21

LAPORAN PROJECT

SISTEM BERBASIS MIKROPROSESOR

Disusun Oleh:

Nassri Maulana D41116004 Hasriyani M. D41116014

Muh. Abri Y. D41116022 Ismail Hasan D41116301

M. Fajri S. D41116304 M. Aswan D41116312

Muh. Reyhan I.R. D41116313 Andi Fauzan A. D41116315

Christian Dave D41116318 Andi Bau R.W.A D41116319

M. Nasaruddin R. D41116510 A. Shaadiq B. D41116511

Muh. Rafiud P.Y D41116519 Ryan Prayudha D41116524

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS HASANUDDIN

GOWA

2018
Pendahuluan

Kapal adalah kendaraan pengangkut penumpang dan barang di laut seperti halnya sampan
atau perahu yang lebih kecil. Kapal biasanya cukup besar untuk membawa perahu kecil
seperti sekoci. Sedangkan dalam istilah inggris, dipisahkan antara ship yang lebih besar dan
boat yang lebih kecil. Secara kebiasaannya kapal dapat membawa perahu tetapi perahu tidak
dapat membawa kapal. Ukuran sebenarnya di mana sebuah perahu disebut kapal selalu
ditetapkan oleh undang-undang dan peraturan atau kebiasaan setempat.

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari
Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai
bidang. Hardwarenya memiliki prosesor Atmel AVR dan softwarenya memiliki bahasa
pemrograman sendiri.

Arduino juga merupakan platform hardware terbuka yang ditujukan kepada siapa saja yang
ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware dan software
yang fleksibel dan mudah digunakan. Mikrokontroler diprogram menggunakan bahasa
pemrograman arduino yang memiliki kemiripan syntax dengan bahasa pemrograman C.
Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan
membangunnya.

Arduino menggunakan keluarga mikrokontroler ATMega yang dirilis oleh Atmel sebagai
basis, namun ada individu/perusahaan yang membuat clone arduino dengan menggunakan
mikrokontroler lain dan tetap kompatibel dengan arduino pada level hardware. Untuk
fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk mem-bypass
bootloader dan menggunakan downloader untuk memprogram mikrokontroler secara
langsung melalui port ISP.

Adapun dalam proyek ini kita membuat sebuah kapal remot control yang dimana diperlukan
alat dan bahan sebagai berikut:

 Arduino  Analog Button  Shaft


 RF 433 MHz  Bodi Kapal  Epoxy
 DC Motor  Driver Motor  3D printer
 Servo SG90 L293D
Landasan Teori

 RF 433 MHz

RF Transmitter and Receiver banyak digunakan pada project-project untuk mengirim


dan menerima data dan lebih sering dipakai dibandingkan dengan IR (Infrared Radio). Sinyal
RF dapat ditransmisikan walau terdapat halangan yang berada diantaranya yang mana bekerja
pada frekuensi 433 MHz. Pada receiver menggunakan sebuah antenna dimana alat ini
menangkap gelombang radio lalu gelombang tersebut diolah sesuai dengan frekuensi yang
diatur kemudian mengekstrak gelombang tersebut untuk memperoleh data yang dibawa. Pada
project ini RF 433MHz digunakan untuk mengontrol motor beserta dengan arahnya.

 Arduino

Arduino adalah sebuah platform mikrokontroler yang mudah digunakan dan


merupakan sumber bebas (open source) yang dapat memudahkan setiap orang dalam
membuat project elektronik. Arduino dapat menghubungkan alat elektronik melalui pin-nya
sehingga dapat mengendalikan sesuatu. Contohnya, mengaktifkan atau menonaktifkan lampu
atau motor atau dapat mengidentifikasi sesuatu seperti cahaya dan suhu. Inilah sebabnya
mengapa Arduino kadang-kadang dideskripsikan sebagai komputasi fisik. Karena Arduino
dapat dihubungkan ke komputer dengan kabel Universal Serial Bus (USB), ini juga berarti
bahwa dapat menggunakan Arduino sebagai papan antarmuka untuk mengontrol elektronik
dari komputer. Pada project ini digunakan dua jenis arduino yaitu arduino Leonardo dan
Promini. Arduino Leonardo digunakan pada Mikrokontroller pada Transmitter dan
Promini pada Receiver.

 IC L293D Motor Driver


L293D meupakan tipe motor driver atau IC (Integrated Circuit) motor driver yang mana
untuk mengatur arah putarah dari motor DC. L293D terdiri dari 16 pin yang dapat
mengendalikan dua motor secara bersamaan dengan arah yang dapat berbeda pula. Ini
berarti bahwa dua motor DC dapat dikendalikan dengan satu buah IC L293D secara
bersamaan.

 Motor DC &

Motor DC adalah motor listrik yang memerlukan suplai tegangan arus searah pada
kumparan medan untuk diubah menjadi energi gerak mekanik. Kumparan medan pada motor
dc disebut stator (bagian yang tidak berputar) dan kumparan jangkar disebut rotor (bagian
yang berputar). 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.

 Servo SG90

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.

 Epoxy

Epoxy merupakan jenis bahan kimia yang sekaligus bisa dikatakan sebagai jenis resin
dari proses polimerisasi serta epoksida yang biasa digunakan sebagai bahan perekat,
coating, ataupun cat untuk berbagai material. Dalam penerapannya, Epoxy sendiri sering
dicampurkan dengan bahan hardener atau bahan pengeras, agar merubah sifat cair epoxy
menjadi padat, dan membuatnya menjadi semakin kuat, tahan terhadap suhu tinggi, serta
memiliki tahanan terhadap reaksi kimia yang cukup tinggi.

Karena ketahanan Epoxy resin yang begitu kuat, maka banyak bahan yang dilapisi oleh
cairan ini. Diantaranya seperti logam, kayu, baja, lantai beton, plastik, hingga kaca
sekalipun yang mampu memberikan ketahan lebih terhadap material tersebut. Tak hanya
itu, Epoxy resin juga digunakan dalam membuat sebuah cetakan model, melapisi hasil cor,
dan kebutuhan lainnya.

 Analog Controller

Sebuah analog stick atau dapat disebut juga dengan control stick atau joystick
merupakan sebuah perangkat masuk untuk sebuah controller yang biasanya digunakan pada
game controller yang digunkan untuk masukan dua dimensi. Masukan dari alat ini
berdasarkan posisi dari tombol ini yang mana posisi awalnya berada di tengah. Ketika analog
stick digunakan secara terus menerus maka sinyal elektriknya akan melalui potensiometers
untuk mengukur posisi perubahan yang dilakukan.

 Kapal

Kapal adalah sarana transportasi media air yang mengapung di atas air. Kapal di atas
merupakan kapal ini sebagai kapal remot control yang dimana kapal tersebut dikendalikan
menggunakan controller agar kapal tersebut bisa bergerak lengkap dengan bagian sensor dan
actuator pada kapal tersebut. Bentuk kapal yang kami ambil berdasarkan lambungnya yaitu
kapal berbentuk alas bulat (round bottom hull). Lambung kapal kategori displacement hull ini
memungkinkan kapal besar melaju di air dengan kecepatan rendah. Daya tekan ke bawah
lambung bulat ini memang lebih rendah daripada lambung berbentuk huruf V dan masih
dapat terguling jika beban tidak seimbang tapi resiko tersebut dapat dihindari dengan
membuat lunas kapal yang tepat ketika membangun lambung jenis ini.

 Shaft

Shaft adalah batangan besi yang berguna mentransferkan energy gerak putar motor DC
menjadi gerak putar pada propeller (baling – baling kapal) agar kapal dapat bergerak baik
maju atau mundur. Panjang shaft yang digunakan dikisaran 10 – 15 cm sesuai dengan
panjang lubang pada kapal tersebut.

 3D Printer

3D printer adalah proses pembuatan benda padat tiga dimensi dari sebuah desain secara
digital menjadi bentuk 3D yang tidak hanya dapat dilihat tapi juga dipegang dan memiliki
volume. Dalam hal ini kita menggunakannya untuk mencetak propeller dan daun kemudi
yang dimana sebagai penggerak baik maju dan mundur serta berbelok kiri dan kanan.

Propeller (atau baling-baling) adalah kitiran untuk menjalankan kapal atau pesawat terbang.
Kitiran ini memindahkan tenaga dengan mengkonversi gerakan rotasi menjadi daya dorong
untuk menggerakkan sebuah kendaraan seperti pesawat terbang, kapal atau kapal selam untuk
melalui suatu massa seperti air atau udara, dengan memutar dua atau lebih bilah kembar dari
sebuah poros utama.

Daun kemudi kapal ( Rudder ) adalah alat untuk mengubah arah gerak kapal dengan
mengubah arah arus cairan yang mengakibatkan perubahan arah pada kapal, kemudi
ditempatkan di ujung belakang lambung kapal/buritan di belakang baling - baling digerakkan
secara mekanis untuk ukuran kemudi tidak boleh terlalu besar atau terlalu kecil. bila terlalu
besar mengakitbatkab hambatan, tetapi kalau terlalu kecil mengakibatkan kapal kehilangan
kendali khususnya pada kecepatan rendah. besarnya disesuaikan dengan ukuran kapal
kecepatannya, bentuk lambung kapal serta penenempatan kemudi. penempatan kemudi
biasanya di belakang propeller, sehingga arus yang ditimbulkan dari gerakkan propeller dapat
dimanfaatkan oleh kemudi dengan mengubah gaya yang bekerja pada kapal
Pembahasan

Dalam menjalankan Kapal mini tersebut kita memerlukan sebuah syntax yang dimana agar
tiap komponen yang dihubungkan dapat bergerak sebagaimana mestinya seperti yang
diharapkan. Adapun syntaxnya terbagi menjadi dua yaitu syntax pada transmitter dan syntax
pada receiver. Syntax pada transmitter adalah sebagai berikut:

#include "Manchester.h"

#define TX_PIN 6

int joyPin1 = A7;

int joyPin2 = A6;

int value1 = 0;

int value2 = 0;

int value3 = 0;

int value4 = 0;

int dead1 = 493; //443 - 543

int dead2 = 509; //459 - 559

int pos = 0;

void setup() {

man.setupTransmit(TX_PIN, MAN_9600);

pinMode (5, OUTPUT);

pinMode (4, OUTPUT);

digitalWrite (5, HIGH);

digitalWrite (4, LOW);

Serial.begin (9600);
}

void loop() {

value1 = analogRead(joyPin1);

if (value1 >= 0 && value1 <= 443){

value3 = map(value1, 0, 443, 0, 49);

man.transmit(value3);

delay(20);

if (value1 >= 543 && value1 <= 1023){

value3 = map(value1, 543, 1023, 49, 99);

man.transmit(value3);

delay(20);

value2 = analogRead(joyPin2);

if (value2 >= 0 && value2 <= 459){

value4 = map(value2, 0, 459, 100, 149);

man.transmit(value4);

delay(20);

if (value2 >= 559 && value2 <= 1023){

value4 = map(value2, 559, 1023, 149, 199);

man.transmit(value4);
delay(20);

Syntax pada receiver adalah sebagai berikut:

#include "Manchester.h"

#include "elapsedMillis.h"

#include "Servo.h"

elapsedMillis timeElapsed1;

elapsedMillis timeElapsed2;

unsigned int interval1 = 200;

unsigned int interval2 = 200;

Servo myservo;

#define RX_PIN 15

#define in1 2

#define in2 4

#define in3 5

#define in4 8

//#define en1 3

#define en2 6

int value1 = 0;

int value2 = 0;

int dead1 = 49;

int dead2 = 149;


int spd1 = 0;

int srv1 = 0;

void setup() {

pinMode (A1, OUTPUT);

pinMode (14, OUTPUT);

digitalWrite (A1, HIGH);

digitalWrite (14, LOW);

myservo.attach(10);

man.setupReceive(RX_PIN, MAN_9600);

man.beginReceive();

Serial.begin (9600);

pinMode(in1, OUTPUT);

pinMode(in2, OUTPUT);

pinMode(in3, OUTPUT);

pinMode(in4, OUTPUT);

// pinMode(en1, OUTPUT);

pinMode(en2, OUTPUT);

pinMode (0, OUTPUT);

void loop() {

loop1:
if (man.receiveComplete()) {

uint16_t m = man.getMessage();

man.beginReceive();

if (m < 100 && m >= 0){

value1 = m;

if (m > 99 && m <= 200){

value2 = m;

Serial.print ("value1 : ");

Serial.println (value1);

Serial.print ("value2 : ");

Serial.println (value2);

if (value1 == dead1){ //berhenti

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

if (value1 < dead1 && value1 >= 0){ //maju

spd1 = map(value1, dead1, 0, 0, 255);


digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// analogWrite(en1, spd1);

analogWrite(en2, spd1);

if (value1 > dead1 && value1 <= 99){ //mundur

spd1 = map(value1, dead1, 99, 0, 255);

digitalWrite(in1, LOW);

digitalWrite(in2, HIGH);

digitalWrite(in3, LOW);

digitalWrite(in4, HIGH);

// analogWrite(en1, spd1);

analogWrite(en2, spd1);

if (value2 == dead2){ //tengah

srv1 = 59;

myservo.write(srv1);

timeElapsed2 = 0;

if (value2 > dead2 && value2 <= 199){ //kiri

srv1 = map(value2, dead2, 199, 59, 0);


myservo.write(srv1);

timeElapsed2 = 0;

if (value2 < dead2 && value2 >= 100){ //kanan

srv1 = map(value2, dead2, 100, 59, 120);

myservo.write(srv1);

timeElapsed2 = 0;

timeElapsed1 = 0;

if (timeElapsed1 > interval1) {

digitalWrite(in1, LOW);

digitalWrite(in2, LOW);

digitalWrite(in3, LOW);

digitalWrite(in4, LOW);

value1 = dead1;

// digitalWrite(en1, LOW);

digitalWrite(en2, LOW);

if (timeElapsed2 > interval2){

value2 = dead2;

srv1 = 59;

myservo.write(srv1);
}

Untuk Syntax Transmitter sendiri yang dimana rangkaiannya hanya terdiri dari Arduino,
analog button, dan Rf 433 MHz transmitter adapun keterangan librarinya:

#include "Manchester.h"

#define TX_PIN 6

int joyPin1 = A7;

int joyPin2 = A6;

yang artinya pin A7 dan A6 pada analog button yang mana sebagai masukan/INPUT dan data
TX pada pin digital 6 sebagai OUTPUT, namun untuk library pada RF 433 MHz inisialnya
Manchester.h.

Pada hal ini kami menggunakan kecepatan bitrate pada 9600 untuk transmitter dan
receivernya.

int dead1 = 493; //443 - 543

int dead2 = 509; //459 - 559

pada nilai diatas merupakan titik diam bitrate analog button pada sumbu x di 493 = titik 0 di x
dan 509 sebagai titik 0 di y.

value1 = analogRead(joyPin1);

if (value1 >= 0 && value1 <= 443){

value3 = map(value1, 0, 443, 0, 49);

man.transmit(value3);

delay(20);

if (value1 >= 543 && value1 <= 1023){


value3 = map(value1, 543, 1023, 49, 99);

man.transmit(value3);

delay(20);

Pada bagian ini inputnya pada sumbu y (joypin) yang dimana sebagai nilai integer yang akan
ditransmisikan bila analog bergerak. Perintah map disini sebagai pembanding skala yang
dibaca menjadi skala yang akan ditransmisikan. Karena RF hanya mampu smpai rentang 256
bit maka kami rentan dari terbawah ke tertinggi baik maju dan mundur itu dari 0 – 99.
man.transmit(value3); sendiri sebagai perintah transmisi nilai dari value tersebut.

Pada bagian Receiver adapun instiasinya sebagai berikut:

#include "Manchester.h"

#include "elapsedMillis.h"

#include "Servo.h"

elapsedMillis timeElapsed1;

elapsedMillis timeElapsed2;

unsigned int interval1 = 200;

unsigned int interval2 = 200;

Servo myservo;

#define RX_PIN 15

#define in1 2

#define in2 4

#define in3 5

#define in4 8

//#define en1 3
#define en2 6

int value1 = 0;

int value2 = 0;

int dead1 = 49;

int dead2 = 149;

int spd1 = 0;

int srv1 = 0;

Untuk library pada RF sendiri menggunakan Manchester, pada servo menggunakan library
servo.h dan elapsedMillis merupakan sebuah library reset timer. Untuk in sendiri pada contoh
in1 dan in2 sebagai penentu arah putar dan en sebagai penentu besar pwm putar pada motor
dc, srv sendiri untuk inisiasi pada servo.

if (man.receiveComplete()) {

uint16_t m = man.getMessage();

man.beginReceive();

fungsi di atas ini merupakan penerimaan dari Rf sendiri yang dimana type data integer yang
akan diterima berupa kordinat x dan y dari analog button yang sudah diskalakan.

if (value1 < dead1 && value1 >= 0){ //maju

spd1 = map(value1, dead1, 0, 0, 255);

digitalWrite(in1, HIGH);

digitalWrite(in2, LOW);

digitalWrite(in3, HIGH);

digitalWrite(in4, LOW);

// analogWrite(en1, spd1);

analogWrite(en2, spd1);
}

Sebagai contoh gerak maju di atas dengan membandingkan nilai yang diterima yaitu value
dan nilai dead sebagai nilai keadaan diam. Ketika nilai value berada 0 <= value1 <= dead1
maka keadan maju saat in1, in3 kondisi high dan in2, in 4 kondisi low. Namun dalam hal ini
pwm pada motor belum bisa ditentukan, maka dari itu kami melakukan mapping yang
dimana rentang nilainyan dari dead1 ke 0 menjadi pwm motor dengan rentang nilai antara 0
sampai 255. Begitu pula sebaliknya juga pada keadaaan mundur.

if (value2 > dead2 && value2 <= 199){ //kiri

srv1 = map(value2, dead2, 199, 59, 0);

myservo.write(srv1);

timeElapsed2 = 0;

Sebagai contoh gerak ke kiri di atas dengan membandingkan nilai yang diterima yaitu value
dan nilai dead sebagai nilai keadaan diam. Ketika nilai value berada dead2 <= value2 <= 199
maka dalam hal ini derajat pada motor servo belum bisa ditentukan, maka dari itu kami
melakukan mapping yang dimana rentang nilainya dari dead2 ke 199 menjadi derajat servo
dengan rentang nilai antara 59 sampai 0. Begitu pula sebaliknya juga pada keadaaan ke
kanan.

Untuk timer sendiri:

if (timeElapsed1 > interval1) { digitalWrite(en2, LOW);

digitalWrite(in1, LOW); }

digitalWrite(in2, LOW); if (timeElapsed2 > interval2){

digitalWrite(in3, LOW); value2 = dead2;

digitalWrite(in4, LOW); srv1 = 59;

value1 = dead1; myservo.write(srv1);

// digitalWrite(en1, LOW); }
Timer digunakan untuk mereset keaadaan yang dimana perbandingannya ada antara nilai
timeElapsed dengan nilai interval. Yang dimana bila terjadi pada motor maka akan mereset
pada keadaan diam dan pada servo akan kembali dalam posisi tegak lurus.

Kesimpulan

 RF 433 MHz merupakan salah satu modul dalam mentransmisikan dan menerima
sinyal berupa data untuk pengendalian jarak jauh.
 Motor DC dapat diatur kecepatannya dengan menggunakan motor driver IC 293D
yang dimana dpat mengendalikan dua motor DC secara bersamaan.
 Analog Button memiliki dua inputan yang diumpakan dalam bentuk sumbu kordinat
dengan rentang nilai hingga 1024.
 Servo memiliki karakteristik gear yang dimana saat diberi tegangan akan tetap pada
kondisi yang ditentukan.
 Reset Timer merupakan bagian terpenting saat melakukan transmisi data pada
mikrokontroller karena saat data bit per rate berjalan secara kontinu maka pada bagian
keluaran mikrokontroller mengalami stacking menyebabkan actuator hanya berada
pada kondisi akhir yang diterima dengan mengabaikan kondisi yang akan datang.

Saran

 Saat melakukan pembuatan bodi kapal menggunakan 3d printer dimohon untuk


mempertebal filamentnya dikarenakan pada tiap bagian kapal mudah mengalami
keretakan
 Pembuatan jalur rangkaian pada PCB dimohon untuk bagaimana hubungannya
dikarenakan ada bebrapa jalur yang mengelami arus pendek yang menyebabkan baik
output dan input tidak optimal
 Untuk pengembangan lebih lanjut diharapkan kapal memakai motor 12V agar
dorongan yang dihasilkan dapat maksimal dan ditambahkan pemberat agar propeller
pada kapal dapat mendorong kapal lebih maksimal

Anda mungkin juga menyukai