Sunday 16 December 2012

Remote Control Car with Wireless Joystick using AVR Microcontroller

Assalamu'alaikum! Finally my post about my final project for EL3096 Microprocessor System and Lab is out!
Gambar 1 - Remote Control Car with Wireless Joystick

Gambar 2 - Tampak Depan
Selanjutnya post ini saya lanjutkan dalam Bahasa Indonesia haha.
Sebelumnya terima kasih kepada Abdul Manan Maksum selaku partner saya dalam mengerjakan proyek ini, dan juga semua teman-teman yang sudah membantu dan meminjamkan beberapa alat dan komponen hahaha.

Hal-hal yang Dibutuhkan
Untuk membuat RC ini, dibutuhkan:
Untuk remote dan konektornya ke mikrokontroller:
  • Wireless Dualshock 2
  • Konektor PS to USB
  • Resistor >4.7k untuk pull-up, kami menggunakan 5.1k dan bisa
  • AMS1117 3.3V untuk regulator 3.3 V karena beberapa joystick membutuhkan supply 3.3V
  • PCB dan perkabelan
Untuk motor:
  • 2 buah Motor DC+Gearbox, untuk memudahkan saya membeli 2 mainan mobil-mobilan dan mengambil gearboxnya.
  • L298 untuk motor driver
  • 8 buah dioda IN4001 untuk h bridge.
Untuk Sistem minimumnnya, seperti sismin standar saja:
  • ATMega, bisa 16 atau 32, kami menggunakan ATMega32 berhubung adanya itu
  • XTal 16Mhz + Kapasitor 22nF 2 buah untuk clock
  • Resistor 10k, Kapasitor 10uF, dan push button untuk reset.
  • LCD
Untuk lebih jelasnya soal sismin dapat dicari referensi lain soal sismin.
Lainnya:
  • Baterai, Li-Po kalau bisa, jangan baterai biasa karena dibutuhkan arus cukup besar.
  • Casing untuk mobil jika diperlukan
Wireless Joystick sebagai Remote Control
Remote control yang digunakan pada mobil-mobilan ini adalah joystick wireless. Cara penggunaan dan pembacaan joystick wireless dapat dilihat pada post sebelumnya mengenai joystick dan joystick wireless.

Motor Driver
Untuk motor, digunakan motor driver L298 sebagai motor drivernya.
Gambar 3 - L298N
Pada post ini saya akan menjelaskan sedikit mengenai L298N tersebut. Untuk penjelasan lebih jauh silahkan cari datasheetnya.
Dari datasheet, pin L298 adalah sebagai berikut.
Gambar 4 - Pin L298 tampak atas
Dari Gambar 4 ditunjukkan bahwa L298 dapat digunakan untuk menggerakan 2 motor. Untuk penggunaan sebuah motor, dengan L298 dapat dilakukan penggerakan motor dua arah.
Gambar 5 - Konfigurasi Motor DC Dua Arah
Pada Gambar 5 ditunjukkan pula tabel penggunaan untuk pergerakan dua arahnya. Input 1 dan 2 dapat diatur high atau low untuk arah putaran, dan untuk Enable A dapat diberikan sinyal dari output PWM untuk mengatur kecepatan motornya.

PWM (Pulse Width Modulation)
Pada ATMega, terdapat fungsi Timer/Counter dengan salah satu modenya adalah PWM.

Gambar 6 - Timing Diagram Mode Fast PWM
Pada mode output OCnx non-inverting, output OCnx akan di-set ketika TCNT berubah dari TOP kembali ke BOTTOM dan di-clear ketika TCNT bernilai sama dengan OCRnx. Berlaku sebaliknya pada mode output inverting.
Dari Gambar 6 ditunjukkan, pada timer ketika disetting mode PWM, output OCnx akan berubah tergantung pada cacahan TCNTn. Perubahan terjadi pada acuan OCR dan perpindahan dari TOP ke BOTTOM.

Oleh karena digunakan dua buah motor, maka dalam proyek ini digunakan Timer1 karena memiliki dua buah register output dan acuan, yaitu OC1A dan OC1B sebagai output dan OCR1A dan OCR1B sebagai acuannya.
Pada CodeWizard di CVAVR, saya melakukan pengesetan PWM pada proyek kami sebagai berikut.
Gambar 7 - Setting PWM untuk Proyek Ini
Untuk melakukan pengaturan kecepatan motor, maka hanya perlu dilakukan pengesetan OCRnx. Oleh karena digunakan mode output non-inverting, maka semakin besar nilai OCRnx, semakin besar kecepatannya.



Setelah memahami dua konsep besarnya, yaitu penerimaan data dari joystick dan penggerakan motor dengan PWM, maka sisanya adalah pengolahan data oleh mikrokontroller untuk sistem pengendaliannya. Untuk penjelasan programnya, dapat dicek langsung pada lampiran di bagian akhir post ini.

Berikut video hasil pembuatan proyek ini.


Berikut disertakan file lampiran yang digunakan pada mobil tersebut untuk referensi lebih lanjut.
https://skydrive.live.com/redir?resid=DA68C66B9F22267D!288


Sekian post mengenai proyek tugas akhir mata kuliah Sistem Mikroprosessor kami. Semoga post ini bermanfaat dan dapat menambah wawasan anda, atau bahkan mungkin membuat anda tertarik membuatnya sendiri.
Terima kasih sudah mau mampir dan melihat-lihat. Sekian dan terima kasih banyak!
Selamat mencoba!
"Jangan takut untuk berimajinasi. Duniamu akan sesuai dengan imajinasimu."-Tanduk Ion

12 comments:

  1. bangga we gw punya tmen kayak lu :D

    ~edo~

    ReplyDelete
  2. klo menggunakan atmega16 dan xtal 11,0592000 untuk menggerakkan servo kira" pengaturan spi dan frekuensi di avr gimana ya masa..? makasihhh

    ReplyDelete
    Replies
    1. maaf baru balas.
      Kalau untuk menggerakan servo seharusnya hanya tinggal memanfaatkan fungsi pwm. Pengaturan spi dan frekuensinya sama saja seperti disini.

      Delete
  3. kang itu tiap joystick berbeda frekuensi ya, antara satu joystick dengan joystick lain?

    ReplyDelete
    Replies
    1. maaf baru balas.
      kalau frekuensi spinya kemarin sih mesti coba-coba dulu mana yang cocok

      Delete
  4. gan itu codding yg di https://skydrive.live.com/redir?resid=DA68C66B9F22267D!288 itukan buat joysticknya apa buat keseluruhan sma motor dc nya jg gan.. klo belum boleh ga mnta sklian keseluruhannya

    ReplyDelete
    Replies
    1. itu udah satu kodingan sama mobil-mobilannya.
      bagian joysticknya dijadiin file header

      Delete
  5. mas, bisa liat skematik lengkapnya ?

    ReplyDelete
    Replies
    1. aduh maaf, kebetulan karena proyek ini sudah lama, dan laptop saya yang dulu dipakai rusak dan tidak sempat dibackup, jadi tidak ada.
      Secara garis besar skematik board utamanya hanya berisi sismin, lcd, dan motor driver kok.
      kalau untuk receiver joysticknya bisa mengikuti post sebelumnya

      Delete
  6. sismin crystal 12 mhz bisa gak mas

    ReplyDelete
  7. sismin crystal 12 mhz bisa gak mas

    ReplyDelete
  8. This item might not exist or is no longer available
    This item might have been deleted, expired, or you might not have permission to view it. Contact the owner of this item for more information.

    minta solusinya mas, bisa upload lagi file lampiran nya?
    Makasih, sukses selalu

    ReplyDelete