Selamat datang di sonoku.com

Menggerakkan Motor DC Brushless menggunakan Beaglebone Black

Artikel ini membahas bagaimana kita bisa membangkitkan sinyal PWM (Pulse Width Modulation) untuk menggerakan sebuah brushless motor.

Spesfikasi Motor Brushless dan ESC

Dalam contoh kasus kali ini, motor brushless yang digunakan memiliki spesifikasi seperti yang ditampilkan pada Tabel 1. Motor yang digunakan berupa motor brushless outrunner yang memiliki arus maksimum 18A, dengan kecepatan 1100kv. Motor tersebut memiliki gaya dorong maksimum sebesar 1130 gram.

Tabel 1. Spesifikasi Brushless DC Motor

Tabel spesifikasi motor brushless

Untuk dapat menggerakkan motor DC brushless digunakan ESC (Electronic Speed Controller). ESC bekerja menggunakan sinyal PWM untuk mengatur arah dan kecepatan sebuah motor brushless. ESC yang dipilih harus memiliki kemampuan menangani arus diatas 18A. Selain itu ESC yang dipilih harus memiliki kemampuan untuk menggerakan motor dalam dua arah (searah jarum jam dan sebaliknya). Untuk keperluan tersebut dipilih ESC yang mampu menangani arus hingga 30A dengan spesifikasi lengkapnya seperti pada Tabel 2.

Tabel 2. Spesifikasi ESC

Tabel ESC

Diagram hubungan ESC, motor dan sumber tenaga dapat dilihat pada Gambar 1 berikut.

Gambar 1. Koneksi Brushless Motor dengan ESC dan Battery

Pada Beaglebone Black tersedia 8 channel PWM yang dapat digunakan untuk menggerakan motor, pada proyek kali ini digunakan 5 channel masing-masing adalah pin P9.22 (EHRPWM0A), P9.14 (EHRPWM1A), P8.19 (EHRPWM2A), P9.42 (ECAPPWM0), dan P9.28 (ECAPPWM2). Agar dapat menggunakan pin-pin tersebut untuk menghasilkan sinyal PWM, pin GPIO tersebut harus dikonfigurasikan/diaktifkan pada mode tertentu. Sinyal PWM yang dihasilkan oleh BBB berada pada level tegangan 3.3V. Tegangan tersebut masih belum dapat menggerakkan ESC agar dapat bekerja. Untuk itu diperlukan sebuah level converter yang mengubah tegangan logika 3.3V menjadi 5V. Gambar 2 merupakan rangkaian level converter dimaksud.

Gambar 2. Rangkaian 3.3v to 5v level converter

Pembangkitan sinyal PWM untuk Pengendali Motor DC Brushless

Pembangkitan sinyal pada pin GPIO milik Beaglebone Black diawali dengan mengkonfigurasikan pada mode tertentu. Beberapa pin yang dapat menghasilkan sinyal PWM antara lain P9.14, P9.16, P9.21, P9.22, P9.28, P9.31, P8.13, dan P8.19. Posisi pin tersebut pada Beaglebone dapat dilihat pada Gambar 4.6. Untuk mengaktifkan mode PWM pada pin tersebut dapat dilakukan dengan metode Device Tree Overlays.

Gambar 3. Diagram Pin PWM Beaglebone Black

Pengaktifan multi GPIO pada mode PWM dilakukan dengan metode Device Tree Overlays. Pengaktifan dilakukan pada saat booting, dengan meletakkan perintah aktivasi di file uEnv.txt. File tersebut dapat ditemukan dengan melakukan mounting dengan perintah:

Setelah melakukan mounting kemudian mengubah file uEnv.txt menggunakan perintah:

Agar tidak terjadi konflik antara pin GPIO yang difungsikan pada mode PWM maka perlu me-nonaktifkan koneksi HDMI pada board. Kode program untuk aktivasi mode PWM seperti berikut:

Motor thruster (brushless) dengan ESC dapat digerakkan menggunakan sinyal PWM dengan frekuensi 50Hz, kemudian duty cycle diatur pada nilai antara >1500000ns hingga 2000000ns untuk pergerakan searah jarum jam, dan 1000000ns hingga <1500000ns untuk pergerakan berlawanan arah jarum jam. Untuk berhenti, duty cycle diberikan nilai 1500000ns.

Untuk mulai menggerakan motor brushless menggunakan PWM (misal di port P9.14) kita perlu masuk ke folder /sys/devices/ocp.3/pwm_test_P9_42.14 dengan perintah:

Kemudian aktifkan polarity dan  berikan nilai duty cyclenya (contohnya 1700000ns) seperti berikut:

Pengujian Pembangkitan Sinyal PWM

Pengujian pembangkitan sinyal PWM dilakukan untuk mengamati apakah  pin yang telah dikonfigurasikan untuk dapat membangkitkan sinyal PWM dapat bekerja sesuai dengan rencana

atau tidak. Level tegangan yang dihasilkan pada pin 28.

PWM harus dapat sesuai dengan level tegangan ESC maupun motor servo yang akan dikendalikan, yaitu 5V maksimum. Level tegangan GPIO pada Beaglebone Black sebesar 3.3V, untuk itu diperlukan level converter.

Gambar 4. Pengujian Pembangkitan Sinyal PWM

Gambar 5. Sinyal PWM

 

Memperbaiki Driver WiFi Adapter RTL8188CUS di Beaglebone Black

WiFi Beaglebone

Untuk proyek yang akan saya bangun berikutnya, saya membutuhkan koneksi wireless dari Laptop ke modul Beaglebone Black (BBB). Kebetulan saya membeli WiFi dongle dari adafruit.com. Waktu itu saya membelinya tanpa melihat detil spesifikasi teknisnya, kalau dari judulnya perangkat ini bisa digunakan untuk Raspberry Pi dan lainnya termasuk Beaglebone. Read More

C/C++ cross-compiler untuk Beaglebone menggunakan IDE Eclipse

Mengapa perlu cross-compiler?

cdtPermasalahan utama sebenarnya adalah keinginan mendapatkan kemudahan dalam membuat program untuk Beaglebone. Untuk program skala kecil, mungkin kita bisa membuatnya langsung di Beaglebone secara console dengan editor seadanya, atau bahkan menginstal program editor di Beaglebone dan menjalankannya langsung, Read More

Membangun Webserver dengan Lighttpd pada Beaglebone Black

Tutorial ini menjelaskan langkah instalasi webserver pada Beaglebone Black (BBB) dengan OS Debian menggunakan Lighttpd dilengkapi dengan MySQL dan support PHP5. Lighttpd adalah sebuah aplikasi web server yang bekerja pada sistem operasi UNIX/Linux dan Windows. Ada yang menyebutnya dengan Lighty. Aplikasi ini bisa dikatakan sebagai alternatif dari Apache. Lighttpd sangat cocok untuk anda yang menginginkan web server yang aman dan cepat. Untuk info lebih lanjut Read More

Internet Connection on Beaglebone over USB

Sometimes, we meet a condition that forced us to have an internet connection to our Beaglebone Black (BBB), such as updating OS package, upgrading OS package, or even a program installation. BBB has an useful feature to get an internet connection through USB port. The idea is to share/forward our laptop’s internet connection to our BBB through USB cable instead of ethernet cable. Here is the tutorial to get an internet connection to our BBB. Read More