SBM Laporan
SBM Laporan
Disusun Oleh:
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:
RF 433 MHz
Arduino
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 value1 = 0;
int value2 = 0;
int value3 = 0;
int value4 = 0;
int pos = 0;
void setup() {
man.setupTransmit(TX_PIN, MAN_9600);
Serial.begin (9600);
}
void loop() {
value1 = analogRead(joyPin1);
man.transmit(value3);
delay(20);
man.transmit(value3);
delay(20);
value2 = analogRead(joyPin2);
man.transmit(value4);
delay(20);
man.transmit(value4);
delay(20);
#include "Manchester.h"
#include "elapsedMillis.h"
#include "Servo.h"
elapsedMillis timeElapsed1;
elapsedMillis timeElapsed2;
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 srv1 = 0;
void setup() {
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);
void loop() {
loop1:
if (man.receiveComplete()) {
uint16_t m = man.getMessage();
man.beginReceive();
value1 = m;
value2 = m;
Serial.println (value1);
Serial.println (value2);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// analogWrite(en1, spd1);
analogWrite(en2, spd1);
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// analogWrite(en1, spd1);
analogWrite(en2, spd1);
srv1 = 59;
myservo.write(srv1);
timeElapsed2 = 0;
timeElapsed2 = 0;
myservo.write(srv1);
timeElapsed2 = 0;
timeElapsed1 = 0;
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
value1 = dead1;
// digitalWrite(en1, LOW);
digitalWrite(en2, LOW);
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
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.
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);
man.transmit(value3);
delay(20);
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.
#include "Manchester.h"
#include "elapsedMillis.h"
#include "Servo.h"
elapsedMillis timeElapsed1;
elapsedMillis timeElapsed2;
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 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.
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.
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.
digitalWrite(in1, LOW); }
// 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