• Tidak ada hasil yang ditemukan

PERANCANGAN. Android (mendeteksi perintah ) Arduino Uno (menerima Perintah) Motor Shield (dapat Perintah ) Motor DC 1 kiri

N/A
N/A
Protected

Academic year: 2021

Membagikan "PERANCANGAN. Android (mendeteksi perintah ) Arduino Uno (menerima Perintah) Motor Shield (dapat Perintah ) Motor DC 1 kiri"

Copied!
23
0
0

Teks penuh

(1)

PERANCANGAN

Pada bab ini menjalaskan perancangan dari robot Delvin, mulai dari tahap alur kerja sistem pada robot Delvin, perancangan alat dan sistem kendali, pada sistem pengolahan ouput pada robot Delvin, robot Delvin akan bergerak sesuai dengan keinginan pemakai.

4.1 Diagram Keseluruhan Alat Kendali

Gambar 4.1 Merupakan rancangan awal dari proses-proses untuk menghasilkan gerak yang sesuai dengan perintah.

Gambar 4.2 Diagram Keseluruhan Alat Kendali

Pada alur robot terlihat bahwa sistem kendali robot Delvin ini mempunyai 4 Motor DC sebagai penggerak pada roda. Secara umum , cara kerja sistem robot Delvin ini sebagai berikut :

Android

(mendeteksi perintah ) Arduino Uno (menerima Perintah)

Motor DC 1 kanan (Roda 1 bergerak)

Motor DC 2 kanan

(Roda 1 bergerak) Motor DC 2 kiri

(Roda 1 bergerak) Motor Shield

(dapat Perintah )

Motor DC 1 kiri (Roda 1 bergerak)

Motor Servo Motor Servo

▸ Baca selengkapnya: perintah g01 adalah perintah yang berarti

(2)

2. Kemudian Android dapat perintah suara dari pengguna, kemudian android mendeksi suara lalu mengirim perintah itu pada Arduino Uno.

3. Setelah itu, Arduino Uno menerima perintah. Apabila perintah sesuai maka program yang terdapat pada arduino, akan dilanjutkan dengan memberikan perintah terhadap Motor DC atau Motor Servo untuk menggerakkan Motor DC atau Motor Servo tersebut.

4. Motor DC yang terhubung pada roda akan bergerak dengan sesuai perintah atau Motor Servo yang terhubung pada Pintu .

4.2 Flowchart

Gambar 4.2 Flowchart Robot Delvin

(3)

Gambar Flowchart 4.2, merupakan rangkaian proses dari masukan suara dari android sampai dengan pergerakkan Motor DC. Mulai dari input suara ke android lalu android mengirim ke arduino, arduino akan menggerakkan Motor DC sesuai perintah yang diberikan.

4.2.1 Perancangan Diagram Suara

Perintah suara yang akan dideteksi oleh Android , kemudian perintah yang telah didekstesi akan dikirim ke Arduino Uno .

Gambar 4.3 Proses Diagram Input Suara Gambar 4.3 Proses Diagram Input Suara

Gambar 4.3 bisa dilihat proses penginputan suara yang didektesi oleh android.

4.2.1 Perancangan Diagram Pengolahan Suara

Terdapat 5 perintah suara yang berbeda yaitu maju, mundur , belok kanan , belok kiri, stop .Perintah ini akan didektesi oleh android, dan dikirimkan Arduino Uno untuk diproses. Gambar 4.4 merupakan gambaran proses pengolahan suara.

Gambar 4.4 Perancangan Proses Diagram Pengolahan Suara

Gambar 4.3 adalah perancangan proses yang dimulai dari inputan suara yang

Menginput Suara Android mendeteksi

Suara

Motor DC mendapatkan perintah Pergerakkan

sesuai Program Arduino Uno

menerima lalu melanjutkan perintah

suara Android

Mengirim perintah

suara

(4)

4.1.1 Perancangan Diagram Proses Output pada Gerak Roda

Gambar 4.5 Perancangan Diagram Proses Output pada Gerak Roda

Gambar 4.5 Perancangan Diagram Proses Output pada Gerak Roda

Pada gambar 4.5 diatas menjelaskan bagaim Proses kerja Output dari Motor Shield sampai ke pada Roda agar dapat bergerak sesuai dengan perintah pemakai. Saat Motor Shield mendapatkan perintah dari Arduino , maka Motor shield akan menggerakkan roda, contohnya seperti Maju, maka semua roda akan berputar kedepan dengan sesuai perintah yang telah didapatkan oleh Arduino Uno.

4.3 Perancangan Hardware

Berikut bagian-bagian yang ada dalam robot Delvin mulai dari sistem kendali gerak pada robot Delvin .dalam perancangan hardware ini , penulis menggunakan port- port tersebut antara lain pin GND, pin 5 volt, pin 13,14 dan pin motor shield.

4.3.1 Rancangan Sistem Kendali Motor DC dengan Arduino Uno

Sistem kendali pada Motor DC dengan komponen elektronik lainnya menggunakan Arduino Uno yang berbasis Atmega 328P, sebagai pusat kontrol pada setiap komponen Robot Delvin yang ada pada Robot Delvin. Karena port yang ada diAtmega 328P sudah dapat memenuhi port yang dibutuhkan untuk Robot Delvin yang dibantu dengan Motor Shield sebagai port untuk Motor DC.pada gambar 4.6 merupakan Rangkaian komponen yang terdapat pada robot Delvin.

Motor Shield

Motor DC Kiri Motor DC kanan

1

Roda Karet kiri 1 Roda Karet kiri 1

Roda Karet Kiri 2 Roda Karet Kiri 2 Motor DC Kiri 2

Roda Karet kiri 1

(5)

Gambar 4.6 Rangkaian Motor DC pada Arduino

4.4 Rangkaian Tata Letak pada Robot Delvin

Rangakaian Tata Letak komponen-kompenen Hardware yang ada pada robot Delvin tersebut sangan berperan penting untuk membuat robot Delvin dapat bekerja dengan baik maka itu dalam rangkaian.

Pada gambar 4.7 dibawah merupakan tata letak Rangkaian Alat yang terdapat

pada robot Delvin, dan dibawah juga terdapat letak Motor DC dan Motor Servo ,box

dan roda pada robot Delvin.

(6)

Gambar 4.7 Rangkaian Tata Letak Komponen pada Robot Delvin

Pada gambar 4.7 , terlihat jelas komponen-komponen yang ada dalam robot Delvin, mulai dari Motor DC yang terletak dibawah, dan diatasnya terdapat arduino, fungsi motor dc dekat dengan arduino , agar dapat dipasang dengan mudah ke arduino tersebut. Dan sebelahnya Arduino Uno juga terdapat Module Bluetooth yang berfungsi sebagai penyambung antara Arduino Uno dan Android, dan letak pada servo tersebut berguna sebagai pengerak dari pengerak pada pintu yang ada dibox.

4.5 Algoritma Gerak Roda pada Robot Delvin

robot Delvin ini menggunakan 4 Motor DC sebagai pergerakkan motor, pergerakkan yang dapat dilakukan maju, mundur, belok kiri, belok kanan sesuai perintah yang diberikan Android ke Arduino.Pada tabel 4.5 dibawah ini menjelakan bagaimana cara robot Delvin bergerak.

Tabel 4.1 Algoritma Gerak Roda pada Robot Delvin Arah Gerak Robot Delvin

Roda Robot Roda Kiri 1 Roda Kiri 2 Roda kanan 2 Roda kanan 2

Maju Depan Depan Depan Depan

Mundur Belakang Belakang Belakang Belakang

Belok Kanan Depan Depan Belakang Belakang

Belok Kiri Belakang Belakang Depan Depan

(7)

Jika voice deteksi Maju if(voice == "maju"){

Mobil_Maju();

}

Maka akan memanggil Mobil_Maju void Mobil_Mundur()

{

motor1.run(FORWARD);

motor1.setSpeed(170);

motor2.run(FORWARD);

motor2.setSpeed(170);

motor3.run(FORWARD);

motor3.setSpeed(170);

motor4.run(FORWARD);

motor4.setSpeed(170);

}

4.6 Pengaturan Arah Gerak Roda Kiri dan Roda Kanan

4.6.1 Maju

Gerak Maju akan dilakukan pada robot Delvin ketika menerima perintah dari Android melalui deteksi suara Maju. Semua roda mulai dari Roda Kiri 1, 2, dan Roda Kanan 1, 2 akan bergerak Maju bersamaan. Berikut potongan kode program Delvin maju pada robot Delvin .

4.6.2 Mundur

Gerak Mundur akan dilakukan pada robot Delvin ketika menerima perintah

dari Android melalui deteksi suara Maju. Semua roda mulai dari Roda Kiri 1, 2, dan

Roda Kanan 1, 2 akan bergerak mundur bersamaan. Berikut potongan kode program

Delvin mundur pada robot Delvin .

(8)

Jika Voice terdekteksi Mundur else if(voice == "mundur"){

Mobil_Mundur();

}

Maka akan Memanggil Mobil_Mundur void Mobil_Mundur()

{

motor1.run(BACKWARD);

motor1.setSpeed(170);

motor2.run(BACKWARD);

motor2.setSpeed(170);

motor3.run(BACKWARD);

motor3.setSpeed(170);

motor4.run(BACKWARD);

motor4.setSpeed(170);

}

4.6.3 Belok Kanan

Gerak belok kanan akan dilakukan pada robot Delvin ketika menerima perintah

dari Android melalui deteksi suara belok kanan. Semua roda mulai dari Roda Kiri 1, 2

akan bergerak maju, dan Roda Kanan 1, 2 akan bergerak mundur. Berikut potongan

kode program Delvin belok kanan pada robot Delvin .

(9)

4.6.4 Belok Kiri

Gerak belok kiri akan dilakukan pada robot Delvin ketika menerima perintah dari Android melalui deteksi suara belok kiri. Semua roda mulai dari Roda Kiri 1, 2 akan bergerak mundur, dan Roda Kanan 1, 2 akan bergerak maju. Berikut potongan kode program Delvin belok kiri pada robot Delvin .

Jika Voice terdekteksi Belok Kanan else if(voice == "Belok kanan") { Mobil_Belok_Kanan();

}

Maka akan Memanggil Mobil Belok kanan void Mobil_Belok_Kanan()

{

motor1.run(FORWARD);

motor1.setSpeed(170);

motor2.run(FORWARD);

motor2.setSpeed(170);

motor3.run(BACKWARD);

motor3.setSpeed(170);

motor4.run(BACKWARD);

motor4.setSpeed(170);

delay(2000);

motor1.run(RELEASE);

motor2.run(RELEASE);

motor3.run(RELEASE);

motor4.run(RELEASE);

}

(10)

Jika Voice terdekteksi Belok Kiri else if(voice == "kiri") {

Mobil_Belok_kiri();

}

Maka akan Memanggil Mobil Belok kanan void Mobil_Belok_kiri()

{

myServo.write(0);

delay(1000);

myServo.write(90);

delay(1000);

motor1.run(BACKWARD);

motor1.setSpeed(170);

motor2.run(BACKWARD);

motor2.setSpeed(170);

motor3.run(FORWARD);

motor3.setSpeed(170);

motor4.run(FORWARD);

motor4.setSpeed(170);

delay(2000);

motor1.run(RELEASE);

motor2.run(RELEASE);

motor3.run(RELEASE);

motor4.run(RELEASE);

}

4.6.5 Berhenti

Gerak berhenti akan dilakukan pada robot Delvin ketika menerima perintah dari

Android melalui deteksi suara berhenti. Semua roda mulai dari Roda Kiri 1, 2, dan Roda

Kanan 1, 2 akan bergerak berhenti bersamaan. Berikut potongan kode program Delvin

maju pada robot Delvin .

(11)

else if(voice == "berhenti") { Mobil_Berhenti();

}

Maka akan Memanggil Mobil Berhenti void stop_car ()

{

motor1.run(RELEASE);

motor2.run(RELEASE);

motor3.run(RELEASE);

motor4.run(RELEASE);

}

Jika Voice terdeteksi Buka else if(voice == "buka") { Mobil_Buka();

}

void Mobil_Buka() {

myServo2.write(0);

myServo1.write(0);

}

4.6.6 Buka

Buka yang dilakukan pada robot Delvin , itu berfungsi untuk membuka tempat penyimpanan pada robot Delvin. Berfungsi jika Android mendeteksi suara buka, maka 2 motor servo akan bergerak dari 90 menjadi 0 derajat.

4.6.7 Tutup

(12)

else if(voice == "tutup") { Mobil_Buka();

}

void Mobil_Tutup() {

myServo2.write(90);

myServo1.write(90);

}

4.7 Perancangan Perangkat Lunak

Dalam proses perangkaian yang telah buat, langkah selanjutnya adalah membuat perangkat lunak, ini berguna untuk mengatur gerak yang akan dilakukan Motor DC agar dapat menggerakkan Robot Delvin, dapat bergerak maju, mundur, belok kanan, dan belok kiri.

4.7.1 Perancangan Software Arduino IDE

Untuk menyelesaikan robot Delvin yang telah dibuat sesuai dengan kebutuhan maka perlu dibuat program yang akan dimasukkan ke Arduino Uno. Berikut ini fungsi bahasa programan yang digunakan dalalm permbuatan progaram diatas :

 Void Setup : ini digunakan untuk mendifiniskan pin dan serial yang akan digunakan pada Robot Delvin.

 Void loop : ini merupakan fungsi pengulangan yang terjadi pada menu Setup.

 Serial Begin(9600) : ini merupakan fungsi untuk menentukan kecepatan Transmisi Data untuk Arduino Uno.

Setelah membuat program di Arduino IDE maka selanjutnya untuk melihat

apakah program tersebut terjadi ada error atau tidaknya , dilakukan kompilasi. jika

tidak terjadi error , maka dapat dimasukkan ke Arduino Uno. Pada gambar 4.9

merupakan contoh program arduino yang telah dikompilasi.

(13)

Gambar 4.8 Contoh Compile berhasil di Arduino Uno

Gambar 4.8 merupakan contoh dari kode program yang berhasil dicompile oleh Arduino Uno.

4.8.1 Perancangan Sistem Android

Dalam merancang sistem perangkat lunak mobile digunakan use case diagram,

activity diagram dan sequence diagram untuk memodelkan rancangan sistem.

(14)

4.8.1.1 Use Case Diagram

Gambar 4.9 Use Case Diagram Rancangan perangkat lunak

Gambar 5.0 dijelaskan seorang aktor yang memulai voice recognition untuk mengirim perintah kepada sistem arduino.

Tabel 4.2 Use Case Diagram Voice Recognition

Nama Use Case Use Case Diagram Voice Recognition

Aktor User

Deskripsi Singkat User menigirim perintah kepada sistem arduino uno

melewati voice recognition

(15)

4.8.1.2 Activity Diagram

Gambar 4.10 Activity Diagram pergerakan maju

Pada gambar diatas dijelaskan user mengirimkan perintah maju dengan voice

recognition, lalu arduino menerima perintah, dan melakukan pergerakan maju.

(16)

Gambar 4.11 Activity Diagram pergerakan mundur

Pada gambar diatas dijelaskan kegiatan user mengirimkan perintah mundur

dengan voice recognition, lalu arduino melakukan pergerakan mundur.

(17)

Gambar 4.12 Activity Diagram pergerakan belok kanan

Pada gambar diatas dijelaskan kegiatan user mengirimkan perintah belok kanan dengan voice recognition, lalu arduino melakukan pergerakan belok kanan.

Gambar 4.13 Activity Diagram pergerakan belok kiri

Pada gambar diatas dijelaskan kegiatan user mengirimkan perintah belok kiri

dengan voice recognition, lalu arduino melakukan perintah belok kiri.

(18)

Gambar 4.14 Activity Diagram pergerakan menutup

Pada gambar diatas dijelaskan kegiatan user mengirimkan perintah menutup

dengan voice recognition, lalu arduino melakukan menutup pintu box.

(19)

Gambar 4.15 Activity Diagram pergerakan buka

Pada gambar diatas dijelaskan kegiatan user mengirimkan perintah buka dengan voice recognition, lalu arduino melakukan pembukaan pintu box.

4.9 Algoritma Speech Recognition pada aplikasi android

Algoritma yang akan digunakan dalam aplikasi ini adalah algoritma FFT (Fast Fourier Transform), merupakan salah satu metode untuk transformasi sinyal suara menjadi sinyal frekuensi.

Gambar 4.11 Skema Speech Recognition

Gambar diatas adalah skema dari voice recognition yang dimulai dari Speech signal yang masuk ke tahapan Feature Extractor lalu sampai akhirnya menjadi sebuah text yang dapat dibaca.

4.10 Pengaturan aplikasi pada android

4.10.1 Pengaturan Bluetooth

(20)

Pada kode bluetooth, untuk penyambungan khusus hanya pada arduino HC-05 maka memiliki kode unik yaitu UUID yaitu kode unik pada setiap perangkat bluetooth

.

Kode diatas adalah UUID khusus untuk HC – 05, dan pendeklarasian variabel bluetooth, seperti :

 String address diberi dengan nilai null

 Mybluetooth sebagai bluetooth adapter diberi nilai awal null

 isBtCOnnected sebagai boolean diberi nilai false

myUUID di alamatkan khusus untuk bluetooth module board

String address = null;

private ProgressDialog progress;

BluetoothAdapter myBluetooth = null;

private boolean isBtConnected = false;

final UUID myUUID = UUID.fromString("00001101-0000-1000-8000- 00805F9B34FB");//koneksi kode unik untuk bluetooth hc-05 private boolean ConnectSuccess = true; //jika konesi berhasil ConnectBT(String address) {

this.address = address;

}

(21)

potongan kode diatas adalah dialog proses penyambungan dan pengecekan perangkat bluetooth

4.10.2 Pengaturan voice recognition

Pada bagian ini berfungsi untuk mendapatkan suara dari pengguna lalu mengirim suara tersebut ke arduino dalam bentuk string

@Override

protected void onPreExecute() {

progress = ProgressDialog.show(VoiceRecognitionActivity.this,

"Menyambungkan...", "Tunggu Sebentar"); //memperlihatkan proses menyambungkan

}

@Override

protected Void doInBackground(Void... devices) { //ketika proses dialog connecting memulai, maka dialog ini melakukan pekerjaan nya di belakang layar

try {

if (btSocket == null || !isBtConnected) { myBluetooth =

BluetoothAdapter.getDefaultAdapter();//mendapatkan perangkat bluetooth btDevice =

myBluetooth.getRemoteDevice(address);//menyambungkan ke perangkat dan mengecek alamat jika masih ada

btSocket =

btDevice.createInsecureRfcommSocketToServiceRecord(myUUID);//cmembuat sebuah RFCOMM (SPP) connection

BluetoothAdapter.getDefaultAdapter().cancelDiscovery();

btSocket.connect();//memulai penyambungan }

}

catch (IOException e) {

ConnectSuccess = false; //jika try telah gagal, kita bisa cek IOExeption disini

}

return null;

}

@Override

protected void onPostExecute(Void result) { //setelah doinbackground maka di cek lagi disni

super.onPostExecute(result);

if (!ConnectSuccess) {

Toast.makeText(VoiceRecognitionActivity.this, "Harus Menghubungkan Ke Robot.", Toast.LENGTH_SHORT).show();

} else {

Toast.makeText(VoiceRecognitionActivity.this, "Terhubung", Toast.LENGTH_SHORT).show();

isBtConnected = true;

}

progress.dismiss();

}

(22)

Pendeklarasian variabel speech input dan layout pada android xml

Memulai voice recognition untuk mendapatkan perintah yang akan dikirim ke arduino

private static final int REQ_CODE_SPEECH_INPUT = 100;

private static final int REQ_BLUETOOTH_ADDRESS = 766;

private TextView mVoiceInputTv;

private ImageButton mSpeakBtn;

private ImageButton mBtBtn;

private BluetoothDevice btDevice;

private BluetoothSocket btSocket ;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_voice);

mVoiceInputTv = (TextView) findViewById(R.id.voiceInput);

mSpeakBtn = (ImageButton) findViewById(R.id.btnSpeak);

mBtBtn = (ImageButton) findViewById(R.id.btnBt);

mSpeakBtn.setOnClickListener(this);

mBtBtn.setOnClickListener(this);

}

private void startVoiceInput() { Intent intent = new

Intent(RecognitionrIntent.ACTION_RECOGNITION_SPEECH);

intent.putExtra(RecognitionrIntent.EXTRA_LANGUAGE_MODEL, RecognitionrIntent.LANGUAGE_MODEL_FREE_FORM);

intent.putExtra(RecognitionrIntent.EXTRA_LANGUAGE, Locale.getDefault());

intent.putExtra(RecognitionrIntent.EXTRA_PROMPT, "Katakan Sesuatu");

try {

startActivityForResult(intent, REQ_CODE_SPEECH_INPUT);

} catch (ActivityNotFoundException a) {

Toast.makeText(this, "Tidak bisa memulai voice recognition.", Toast.LENGTH_SHORT).show();

} }

private void connectBluetooth() {

startActivityForResult(new Intent(this,

BluetoothActivity.class), REQ_BLUETOOTH_ADDRESS);

}

(23)

Memulai mendapatkan suara dan mengirimnya dalam bentuk string kedalam variabel mVoiceInputTv , jika pengiriman atau perintah gagal maka akan keluar dialog perintah

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

switch (requestCode) {

case REQ_CODE_SPEECH_INPUT:

if (resultCode == RESULT_OK && null != data) { ArrayList<String> result =

data.getStringArrayListExtra(RecognitionrIntent.EXTRA_RESULTS);

String msg = result.get(0);

mVoiceInputTv.setText(msg);

try {

OutputStream mmOutputStream = btSocket.getOutputStream();

mmOutputStream.write(msg.getBytes());

Toast.makeText(this, "Terhubung ke robot.", Toast.LENGTH_SHORT).show();

} catch (NullPointerException e) {

Toast.makeText(this, "Perintah gagal, silahkan sambungkan ke robot.", Toast.LENGTH_SHORT).show();

} catch (IOException e) { e.printStackTrace();

} } break;

case REQ_BLUETOOTH_ADDRESS:

if (resultCode == RESULT_OK && data != null) { String name = data.getStringExtra("btName");

String address = data.getStringExtra("btAddress");

Toast.makeText(this, name + "\n" + address, Toast.LENGTH_SHORT).show();

new ConnectBT(address).execute();

} break;

} }

@Override

public void onClick(View v) { switch (v.getId()) { case R.id.btnSpeak:

startVoiceInput();

break;

case R.id.btnBt:

connectBluetooth();

break;

} }

Gambar

Gambar 4.1 Merupakan rancangan awal dari proses-proses untuk menghasilkan  gerak yang sesuai dengan perintah
Gambar 4.2  Flowchart Robot Delvin
Gambar 4.3  Proses Diagram Input Suara  Gambar 4.3  Proses Diagram Input Suara
Gambar 4.5  Perancangan Diagram Proses Output pada Gerak Roda
+7

Referensi

Dokumen terkait

Karena berada pada tataran bunyi bahasa yang konkret (parole), kajian fonetik lazimnya menjelaskan bunyi pada dimensi artikulasi, akustik, dan persepsi.. Dimensi fonetik

Hal ini tidak terlalu kentara terlihat, tetapi dapat terjadi ketika seorang penulis soal mencoba membuat jawaban yang benar, kemudian mencoba membuat jawaban yang

Puji dan syukur penulis ucapkan kepada ALLAH SWT., yang telah memberikan rahmat dan karunia-NYA kepada penulis, sehingga penulis dapat menyelesaikan penulisan

Seperti yang diuraikan di atas, bahwa permasalahan yang akan dibahas dalam penelitian ini adalah bagaimana pengaruh motivasi kerja terhadap kinerja karyawan Food

Dan pertany\aan berikutnya (X 2.3 ), tentang daya tanggap yang baik, dimana diketahui jumlah responden yang menjawab setuju dengan frekuensi 7 atau 63,6% dan ada 1 responden

Dalam rangka menguji kondisi tersebut ada beberapa indikator utama di dalam model yang dibangun, dimana indikator tersebut mampu menunjukkan apakah budidaya jagung dengan

Masyarakat Dusun Nunuk setiap harinya mengandalkan tukang sayur keliling atau pasar untuk pemenuhan kebutuhan mengkonsumsi sayur bagi diri dan keluarga mereka,

Sedangkan menurut [Melwin07] mendefinisikan komputer sebagai sekumpulan alat logik yang dapat menerima data, mengolah data dan menyimpan data dengan menggunakan program