Jumat, 14 Juni 2013

Kontrol Fuzzy Logic Berbasis Sensor Ultrasonik Pada Navigasi Robot Pemadam Api Beroda

A. Pendahuluan

  Perkembangan ilmu pengetahuan memacu perkembangan teknologi yang dapat membantu aktifitas manusia. Pada umumnya manusia tertarik dengan sesuatu yang dapat meringankan beban dari pekerjaannya. Salah satu caranya dengan adanya pemakaian robot. Robot memiliki beberapa kelebihan dalam pekerjaan dibandingkan manusia, salah satunya adalah dalam aspek tenaga, kualitas kerja yang statis, dan masih banyak lagi. 
   Sementara itu, perkembangan dunia robotik di Indonesia mulai berkembang dengan pesat, dimana dapat dilihat dari banyaknya kontes-kontes robot yang diadakan saat ini. Salah satu kontesnya adalah KRCI(Kontes Robot Cerdas Indonesia), yang mana merupakan ajang kontes robot bertaraf nasional. Pada lomba ini robot dihadapkan pada lintasan tertentu. 
  Robot Cerdas Pemadam Api divisi beroda adalah robot yang memiliki kemampuan menjelajahi suatu arena untuk menemukan titik api kemudian memadamkannya dan kembali ke titik awal dengan waktu secepat mungkin. Agar dapat melakukan misi tersebut dalam waktu yang cepat, sistem navigasi dalam perancangan robot memegang peranan penting, seperti sistem navigasi right-wall following, left-wall following, dead recogning, dan lain-lain. 
   Pada sistem kerja robot juga dibutuhkan suatu input berupa sensor yang berguna sebagai media perindraan robot. Sensor yang biasa digunakan pada robot adalah sensor ultrasonik sebagai sensor untuk mengukur jarak. Sensor ini dapat memberikan data sejauh apa robot ini dapat bergerak, sesuai dengan adanya halangan di depannya. Selain itu dalam robot pemadam api juga ditambahkan sensor untuk mendeteksi  api dan sensor untuk mendeteksi suhu api, yaitu sensor UVtron dan Thermal Array.   
   Penggunaan sensor ultaksonik tidak terbatas hanya untuk mendapatkan jarak, tetapi sensor ini juga memungkinkan robot dapat mengetahui posisi robot tersebut terhadap suatu lintasan (apakah robot sudah dalam posisi yang tepat atau tidak). Posisi robot yang miring dapat disempurnakan dengan dilakukannya kontrol kecepatan motor terhadap perbandingan pembacaan ultrasonik dengan metode fuzzy logic. 
    Dengan adanya kesamaran posisi robot yang didapat dari sensor ultrasonik (dekat, sedang, atau jauh,dll), maka metode fuzzy logic dinilai tepat. Diharapkan dengan menggunakan metode ini bisa mendapatkan hasil yang terbaik dalam memposisikan robot dalam lintasannya secara tepat dikarenakan banyak kemungkinan yang terjadi pada posisi robot saat melalui lintasan. Dengan latar belakang itu semua, maka kami membuat tugas besar kami dengan judul “Desain dan Implementasi Robot Pemadam Api Beroda dengan Kontrol Fuzzy Logic Berbasis Sensor Ultrasonik”.

1) Batasan Masalah
   Kami membatasi masalah-masalah dalam tugas besar sebagai 
   berikut :
a. Menggunakan 2 sensor ultrasonik sebagai media pembacaan 
   jarak dan penentuan posisi robot (1 didepan, 1 di kanan 
   robot).
b. Robot berjalan dengan sistem navigasi right-wall following
c. Robot akan mencari titik api, memadamkannya, dan kembali 
   posisi awal start
d. Bahasa pemrograman yang digunakan adalah bahasa pemrograman C
e. Menggunakan metode fuzzy logic untuk menyempurnakan jalannya 
   robot serta adanya penambahan program untuk mendapatkan hasil 
   yang terbaik dalam navigasi

2) Proses Fuzzyfikasi

     Setelah kita mendapatkan nilai jarak dari tiap sensor, langkah selanjutnya adalah fuzzyfikasi yakni proses pengubahan nilai data jarak setiap sensor menjadi bentuk himpunan fuzzy menurut fungsi keanggotaannya.Proses awal di dalam proses fuzzyfikasi adalah membuat fungsi keanggotaan dari setiap masukan terlebih dahulu, serta menentukan banyaknya variabel linguistic di dalam fungsi keanggotaan yang akan kita buat nantinya. Dari fungsi keanggotaan yang kita buat akan dapat diketahui nilai derajat keanggotaan masing-masing variabel dalam himpunan fuzzy yang telah dibuat.Dalam tugas besar kami, terdapat dua masukan dari sensor ultrasonik, yaitu sensor ultrasonik depan dan sensor ultrasonik kanan. Masukan dari sensor ultrasonik depan memiliki dua variabel linguistic, yaitu DEKAT dan JAUH dengan menggunakan fungsi keanggotaan trapesium. Berikut tampilan fungsi keanggotaan dari sensor ultrasonik depan di dalam sebuah gambar :

   Dari fungsi keanggotaan di atas, dapat diketahui derajat keanggotaan masing-masing variabel dala himpunan fuzzy DEKAT dan JAUH. Untuk menghitung derajat keanggotaan dapat menggunakan persamaan sebagai berikut : 

   Sedangkan untuk sensor ultrasonik kanan memiliki tiga variabel linguistic, yaitu DEKAT, SEDANG, dan JAUH dengan fungsi keanggotaan gabungan dari fungsi segitiga dan trapesium seperti yang tampak pada gambar :
3) Rules Evaluation
  Pada rules evaluation, terjadi pengolahan data input fuzzyfikasi dengan hasil keluaran yang dikehendaki dengan aturan-aturan tertentu. Dari aturan-aturan yang dibentuk inilah yang nantinya akan menentukan respon dari sistem terhadap berbagai kondisi set point dan gangguan yang terjadi pada sistem yang akan dibuat. Dalam tugas besar kami set point yang kami ambil adalah 8 cm dari dinding, dimana posisi tersebut berada pada posisi sedang pada sensor kanan. Berikut adalah tabel rules evaluation :

Dari tabel di atas, maka kita memiliki 6 aturan sebagai berikut :
IF sensor depan=DEKAT AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
•    IF sensor depan=DEKAT AND sensor kanan=CUKUP THEN motor kiri=PELAN AND motor kanan=CEPAT
•    IF sensor depan=DEKAT AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=PELAN
•    IF sensor depan=JAUH AND sensor kanan=DEKAT THEN motor kiri=PELAN AND motor kanan=CEPAT
•    IF sensor depan=JAUH AND sensor kanan=CUKUP THEN motor kiri=SEDANG AND motor kanan=CEPAT
•    IF sensor depan=JAUH AND sensor kanan=JAUH THEN motor kiri=CEPAT AND motor kanan=SEDANG

  Setelah mendapatkan aturan seperti tabel di atas, maka selanjutnya yang dilakukan adalah mencari nilai derajat keanggotaan untuk nilai setiap aturan yang didapat. Nilai keanggotaan untuk keluaran didapatkan dengan menggunakan fungsi AND.Misalkan didapatkan aturan sebagai berikut :

IF Sensor Depan = DEKAT(0.5) AND Sensor Kanan = DEKAT(0.5) THEN Motor Kiri = PELAN AND Motor Kanan = CEPAT
• IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN AND Motor Kanan = CEPAT
• IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG AND Motor Kanan = SEDANG

Maka keluaran akan mendapatkan nilai keanggotaan sebagai berikut :
o IF Sensor Depan = DEKAT(0.5) AND Sensor Kanan = DEKAT(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = DEKAT(0.75) AND Sensor Kanan = CUKUP(0.5) THEN Motor Kiri = PELAN(0.5) AND Motor Kanan = CEPAT(0.5)
o IF Sensor Depan = JAUH(0.75) AND Sensor Kanan = CUKUP(0.25) THEN Motor Kiri = SEDANG(0.25) AND Motor Kanan = SEDANG(0.25)

   Setelah nilai linguistic keluaran telah mendapatkan nilai derajat keanggotaan, maka pada nilai linguistic keluaran yang sejenis dicari nilai derajat keanggotaan yang maksimum untuk digunakan dalam pengolahan data selanjutnya, yakni defuzzifikasi.
Misalnya dari data di atas didapatkan nilai-nilai maksimum setiap linguistic keluaran sebagai berikut :
 
    Motor Kiri
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25

    Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) → → maka nilai derajat keanggotaan CEPAT

Lalu, setelah mendapatkan derajat keanggotaan pada nilai keluarannya, nilai keluaran juga memiliki fungsi keanggotaan model singletone, yang merupakan model interferensi sederhana. Dalam tugas besar ini kami menggunakan Model Sugeno

4) Defuzzyfikasi
Proses ini merupakan penggabungan dari beberapa fuzzy set yang telah didapatkan. Misal kita dapat menggunakan data di atas :

>>Motor Kiri
PELAN(0.5), PELAN(0.5) → maka nilai derajat keanggotaan PELAN = 0.5
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25

Fungsi Keanggotaan Motor Kiri

>>Motor Kanan
SEDANG(0.25) → maka nilai derajat keanggotaan SEDANG = 0.25
CEPAT(0.5), CEPAT(0.5) →  maka nilai derajat keanggotaan CEPAT = 0.5


Fungsi Keanggotaan Motor Kanan


 
   Proses selanjutnya adalah mengolah data tersebut menggunakan metode Weight Average untuk proses defuzzifikasinya. Metode ini mengambil rata-rata dengan menggunakan nilai derajat keanggotaan dari proses komposisi fuzzy set menggunakan Model Sugeno sebelumnya.Dari data sebelumnya, didapatkan data sebagai berikut:

Motor Kiri = PELAN(0.5), SEDANG(0.25)
Motor Kanan = SEDANG(0.25), CEPAT(0.5)
Data diatas dapat diolah sebagai berikut :

>>Motor Kiri
PWMKIRI=  ((0.5)70+(0.25)150)/(0.5+0.25)=96.6
 
Jadi, berdasarkan persamaan di atas nilai kecepatan Motor Kiri yang didapat adalah 96.6 PWM
 
>>Motor Kanan
PWMKANAN=  ((0.25)150+(0.5)230)/(0.25+0.5)=203.3
 
Jadi, berdasarkan persamaan di atas nilai kecepatan Motor Kanan yang didapat adalah 203.3 PWM. Inilah hasil tugas besar fuzzy logic yang saya buat 


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Jumat, 11 Januari 2013

Perancangan Sistem Minimum STM32F103R

Sistem Minimum atau yang biasa disebut Sismin adalah suatu rangkaian yang dirancang dengan menggunakan komponen-komponen seminimum mungkin untuk mendukung kerja mikrokontroler sesuai  yang kita inginkan.  Komponen tersebut antara lain: 

1.    Mikrokontroler STM32F103x
         STM32F103x adalah salah satu jenis mikrokontroler 32 bit arsitektur ARM yang 
         dikembangkan oleh STMicroelectronics.Mikrokontroler ini termasuk dalam keluarga
         seri Cortex-M. Prosesor di keluarga seri Cortex­-M telah dikembangkan khusus
         untuk domain mikrokontroler, dimana permintaan untuk kecepatan, determinasi
         waktu proses, dan manajemen interrupt bersama dengan jumlah gate silikon minimum
         (luas silikon yang minimum menentukan harga akhir prosesor) dan konsumsi daya
         yang minimum sangat diminati. 

2.   Catu Daya 
     Power supply pastinya untuk menyediakan tegangan kepada mikrokontroler. Tegangannya bisa beda-beda ada yang pakai sistem 5V, 3.3v.Untuk STM32F103x tegangan agar dia bisa bekerja antara 2-3,6 v.Jika masukan tegangan lebih besar dari tegangan kerja diperlukan sebuah rangkaian regulator untuk menyesuaikan tegangan sesuai dengan tegangan kerja.Di bawah ini adalah rangkaian regulator menggunakan IC LM 1117.


Rangkaian Regulator 3,3 Volt



3. Osilator 
      Osilator merupakan sumber clock untuk memberikan pewaktuan/timing 
                  kepada mikrokontroler. Bisa menggunakan eksternal kristal atau osilator
                  internal RC.
Rangkaian osilator

4.  Tombol Reset
Mikrokontroler harus reset setiap kali power supply dinyalakan (power on reset) agar mikro bisa menginisialisasi semua peripheral internalnya dan agar bisa memulai program dari awal. Rangkaian reset sebenarnya cukup menggunakan rangkaian RC, yang nantinya tergantung apakah sinyal reset aktif low atau aktif high. 
Rangkaian Reset


5.   Pin Input/Output   
            Pin input/output digunakan untuk interface dengan perangkat lain atau  
      device lain.
Port Input Output
 

6.  Downloader In System Programming                          
           Mikrokontroler STM32 dilengkapi dengan bootROM yang dapat digunakan untuk memprogram memori Flah internal STM32F103x melalui UART.0 yang terdiri dari Tx dan Rx.Dengan demikian program yang terdapata di mikrokontroler dapat diupdate tanpa harus melepas mikrokontroler dari board.

                  Program yang terdapat di BootROM akan dijalankan setiap kali mikrokontroler dinyalakan atau direset.Program tersebut, dikenal dengan nama BootROM bootloader, dapat menjalankan rutin untuk mengupdate program di mikrokontroler atau menjalankan program pengguna.   

Tabel Konfigurasi Boot mode

         Jika konfigurasi pin BOOT0 dan BOOT1 pada opsi system memory, mikrokontroler booting ke system memory (internal boot ROM memory) dan mengakses bootloader yang sudah tersedia didalamnya. Bootloader bertugas untuk mendownload program yang kita buat ke dalam internal flash memory. Mode ini dilakukan dengan protokol yang sederhana yaitu dengan protokol USART. Dengan USART, komunikasi dilakukan cukup dengan menyambungkan pin Tx dan Rx (PA9 dan PA10) ke pin Rx dan Tx PC.Setelah download program selesai, atur kembali pin BOOT0 dan BOOT1 pada opsi user flash memory dan kemudian menekan tombol reset agar mikrokontroler kembali booting ke internal flash memory dan menjalankan program yang sudah di load. 
           Untuk memasukkan program yang sudah dicompile ke mikrokontroler menggunakan usb to serial, disini menggunakn IC FT232R.

Silahkan di share dengan menuliskan sumbernya..

Created by: Rifqi Arridho Abid
    

Kamis, 10 Januari 2013

Mengenal ARM Cortex M3

Setelah anda mempelajari arsitektur ARM, kini saatnya mengenal berbagai jenis keluarga mikroprosesor ARM. Mikroprosesor ARM mempunyai beberapa jenis/ tipe untuk menjangkau berbagai aplikasi.


Jenis/tipe mikroprosesor ARM dibagi menjadi 3 yaitu:
  1. Classic ARM Processors
  2. ARM klasik adalah keluarga ARM prosesor yang pertama kali dirilis oleh ARM Ltd (sekarang ARM). Prosesor ARM klasik ideal untuk pengguna yang ingin menggunakan teknologi telah teruji di pasar. Prosesor­prosesor ini telah digunakan untuk berbagai macam produk elektronik selama     bertahun­-tahun. Desainer produk elektronik yang memilih prosesor­prosesor ini dijamin mempunyai         dukungan ekosistem dan sumber daya yang luas, tingkat kesulitan integrasi yang minimum, dan         menurunkan waktu desain. Dalam ARM klasik terdiri dari ARM 7, ARM9, ARM 11.

  3. Embedded Cortex Processors
  4. Prosesor di keluarga seri Cortex­-M telah dikembangkan khusus untuk domain mikrokontroler, dimana permintaan untuk kecepatan, determinasi waktu proses, dan manajemen interrupt bersama dengan jumlah gate silikon minimum (luas silikon yang minimum menentukan harga akhir prosesor) dan konsumsi daya yang minimum sangat diminati. Contoh aplikasi prosesor Cortex­-M adalah mikrokontroller dan sensor cerdas.
    Prosesor di keluarga seri Cortex-­R, sebaliknya, dikembangkan khusus untuk keperluan real­time yang mendalam, dimana kebutuhan konsumsi daya minimum dan sifat interrupt yang terprediksi diimbangi dengan performa yang luar biasa dan kompatibilitas yang kuat dengan platform yang telah ada. Contoh aplikasi prosesor Cortex-­R adalah ABS (Automotive Braking Systems), kontroler elektronik roda gigi, hidrolik, dan mesin otomotif.Dalam ARM Embedded terdiri dari Cortex M0, Cortex M1, Cortex M3, dan Cortex R4.



  5. Application Cortex Processors
  6. Prosesor jenis ini dikembangkan untuk aplikasi yang membutuhkan daya komputasi yang tinggi (frekuensi prosesing rata-­rata 2GHz), seperti netbook, mobile internet devices, smartphone, dan lain-­lain.Dalam ARM application terdiri dari Cortex A5, Cortex A8, Cortex A9.
    Setelah kita mengetahui berbagai jenis dari keluarga ARM , maka kita dengan mudah menentukan jenis mana yang akan kita gunakan. Karena kebutuhan penulis saat ini sedang mengembangkan sebuah sistem embedded, maka prosesor yang dipilih adalah dari jenis ARM embedde cortex processor, yaitu Cortex M3.


    ARM Cortex-­M3


    ARM Cortex-­M3 adalah prosesor dari keluarga ARM Cortex prosesor embedded untuk menggantikan aplikasi mikrokontroler 8­/16­bit. Keunggulan ARM Cortex­-M3 dibandingkan mikrokontroler 8­/16­bit terletak pada :
    • Kemampuan komputasi yang lebih tinggi untuk frekuensi kerja yang sama
    • Konsumsi daya yang lebih kecil atau sama
    • Harga yang lebih murah atau sama
    • Kompatibel dengan ARM Cortex­-M lain (ARM Cortex-­M0, ARM Cortex-­M4). Aplikasi yang di   compile untuk ARM Cortex­-M3 bisa dijalankan di ARM Cortex-­M lainnya. Hal ini berguna untuk     upgrade hardware, tanpa membuang software yang sudah dikerjakan.

Silahkan di share dengan menuliskan sumbernya..

Created by: Rifqi Arridho Abid

Mengenal Arsitektur ARM

ARM adalah prosesor dengan arsitektur set instruksi 32­bit RISC (Reduced Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal dengan kepanjangan Acorn RISC Machine). Pada awalnya ARM prosesor dikembangkan untuk PC (Personal Computer) oleh Acorn Computers, sebelum dominasi Intel x86 prosesor­ Microsoft di IBM PC kompatibel menyebabkan Acorn Computers bangkrut.

Pada tahun 2007, sekitar 98% dari satu miliar mobile phone yang terjual menggunakan setidaknya satu buah prosesor ARM. Dan pada tahun 2009, prosesor ARM mendominasi sekitar 90% dari keseluruhan pasar prosesor 32-bit RISC. Prosesor ARM digunakan di berbagai bidang seperti elektronik umum, termasuk PDA, mobile phone, media player, music player, game console genggam, kalkulator dan periperal komputer seperti hard disk drive dan router.

Lisensi arsitektur ARM dimiliki oleh Alcatel, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel melalui DEC, LG, Marvell Technology Group, NEC, NVIDIA, NXP Semiconductors, OKI, Quallcomm, Samsung, Sharp, ST Microelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamah dan ZiiLABS.Perlu diketahui bahwa disini ARM hanya menjual arsitekturnya kepada vendor yang membutuhkan bukan membuat IC nya.

Fitur ARM :
•32 bit RISC Processor
•Register R0 – R16
•Load and Store architecture
•Uniform and fixed length instructions
•Good speed and power consumption ratio
•High code density
•Single cycle execution
•Speed 1 MHz – 1.25 GHz

•Support Java jezelle DBX (direct byte code execution)
•DSP enhanced instructions
•In build circuit for debugging
•Againts RISC
   –32 bit barrel shifter
   –Conditional execution of all instructions


Di bawah ini adalah diagram Core ARM :



Register
  • ARM mempunyai 37 register yang panjangnya 32 bit
  • 1 program counter register
  • 1 program status register
  • 5 saved program status register
  • 30 general purpose register


Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid

Selasa, 08 Januari 2013

Belajar ARM Mikroprosesor

Setelah beberapa minggu mengerjakan tugas besar mata kuliah mikroprosesor dan sistem embedded yang diwajibkan menggunakan prosesor ARM sebagai "otaknya", Alhamdulillah akhirnya selesai juga :D
Ini kali pertama saya menggunakan prosesor ARM, yang sebelumnya sudah terbiasa dimanjakan dengan prosesor jenis AVR.Setelah mencari-cari beberapa referensi yang kebanyakan masih menggunakan bahasa Inggris *karena masih sedikit banget referensi tentang ARM dalam bahasa Indonesia* akhirnya tugas ini bisa selesai tepat waktu dan hasilnya memuaskan.Oleh karena itu saya ingin berbagi semua tentang apa yang telah saya dapat saat mengerjakan tugas ini mulai dari arsitektur, perancangan hardware, sampai programmingnya .. langsung saja, disini akan saya bagi menjadi beberapa topik dan tentunya akan dimulai dengan kenalan dulu dengan ARM *biar makin sayang dg ARM :D*.Semoga artikel ini bisa membantu dan dijadikan referensi yang ingin belajar ARM, khususnya ARM Cortex-M3.

  1. Berkenalan dengan arsitektur ARM
  2. Berkenalan dengan ARM Cortex M3
  3. Perancangan Hardware STM32F103x
  4. Programming ARM

Silahkan di share dengan menuliskan sumbernya..
Created by: Rifqi Arridho Abid