Membuat Drone Autopilot dengan Arduino Uno dan Flight Controller CC3D
Ringkasan Proyek
Pelajari konsep pembuatan drone autopilot menggunakan Arduino Uno dan OpenPilot CC3D Flight Controller. Proyek ini menggabungkan pengendalian motor Brushless DC, komunikasi Bluetooth dengan aplikasi Android, serta sensor DHT11 untuk memantau suhu dan kelembapan. Cocok untuk mempelajari sistem kendali penerbangan, elektronika, dan pemrograman mikrokontroler tingkat lanjut.
Bahan & Komponen
Daftar perangkat keras, modul, dan tools yang dibutuhkan untuk merakit proyek ini.
Daftar Komponen & Perangkat Keras
- 1x Arduino Uno (Mikrokontroler ATmega328P yang berfungsi sebagai pusat pemrograman dan pengirim sinyal kendali PWM ke Flight Controller).
- 1x OpenPilot CC3D Flight Controller (Pengendali penerbangan dengan sensor gyroscope dan accelerometer untuk membantu menjaga keseimbangan dan stabilitas drone).
- 1x Bluetooth Module HC-05 (Modul komunikasi Bluetooth dua arah antara Arduino dan aplikasi Android. Daftar hardware sumber menyebut modul BLE generik, sedangkan bagian skema secara khusus menggunakan HC-05).
- 1x Sensor DHT11 (Sensor untuk mengukur suhu dan kelembapan udara).
- 1x Quadcopter Frame (Rangka utama untuk memasang motor, Flight Controller, Arduino, dan komponen lainnya).
- 4x Brushless DC Motor atau BLDC (Motor penggerak baling-baling drone. Jumlah empat mengikuti konfigurasi quadcopter yang dibahas).
- 4x Electronic Speed Controller atau ESC (Pengendali kecepatan masing-masing motor BLDC).
- 1x Baterai LiPo 11.1V atau 3S (Sumber energi untuk sistem penggerak drone. Kapasitas dan rating discharge tidak dijelaskan oleh pembuat).
- 4x Propeller sesuai konfigurasi CW dan CCW (Baling-baling yang dipasangkan mengikuti arah putaran motor dan konfigurasi quadcopter).
- 1x Kamera Wireless (Perangkat untuk menangkap gambar atau video dari area pengamatan; model, protokol, dan koneksi kamera tidak dijelaskan secara rinci).
- 2x Resistor untuk Voltage Divider (Digunakan untuk menurunkan level logika TX Arduino 5V menjadi sekitar 3.3V pada jalur RX modul Bluetooth. Nilai resistor tidak disebutkan dalam artikel).
- Kabel penghubung dan konektor (Digunakan untuk menghubungkan Arduino, sensor, Bluetooth, Flight Controller, ESC, dan sumber daya).
- Kabel daya berukuran sesuai arus (Digunakan untuk distribusi daya baterai ke ESC dan motor).
- Regulator atau BEC yang sesuai (Perangkat pendukung untuk menyediakan tegangan aman bagi elektronik 5V apabila sumber regulasi belum tersedia; bukan komponen yang dirinci secara eksplisit dalam daftar asli).
- Smartphone Android (Digunakan untuk menjalankan aplikasi kendali dan menampilkan informasi sensor).
Software & Library Pendukung
- Arduino IDE (Aplikasi untuk menulis, memverifikasi, dan mengunggah program ke Arduino Uno).
- MIT App Inventor (Platform untuk membuat aplikasi Android dengan antarmuka visual).
- Software konfigurasi OpenPilot CC3D (Diperlukan untuk mengatur Flight Controller, jenis frame, sensor, input penerima, dan output ESC. Nama dan versi software tidak dirinci dalam artikel).
- Library Servo.h (Library Arduino yang dicantumkan pada contoh kode sensor).
- Library dht.h atau DHTLib (Library untuk membaca suhu dan kelembapan dari sensor DHT11).
- Serial Monitor (Fitur Arduino IDE untuk melihat data suhu, kelembapan, dan komunikasi serial).
Langkah Pembuatan
Khusus MemberPanduan perakitan tahap demi tahap dan catatan proses pengerjaan.
Drone adalah pesawat tanpa awak yang dapat dikendalikan melalui sistem elektronik. Pada proyek ini, Arduino Uno digunakan untuk menghasilkan sinyal kendali, sedangkan OpenPilot CC3D membantu menjaga kestabilan penerbangan. Drone juga dirancang membawa kamera wireless dan sensor DHT11 untuk mengambil informasi dari area pengamatan.
Berbeda dengan drone yang sepenuhnya bergantung pada remote RF atau sistem navigasi GPS, konsep yang dijelaskan pembuat menggunakan perintah penerbangan yang sudah diprogram pada Arduino. Panjang dan lebar area pengamatan direncanakan sebagai dasar urutan gerakan drone. Namun, tanpa sensor posisi dan sistem navigasi tambahan, gerakan berdasarkan durasi belum dapat menjamin drone mengikuti koordinat atau batas area secara akurat.
Catatan keselamatan: Proyek ini memiliki tingkat kesulitan mahir dan berstatus work in progress pada sumber aslinya. Perakitan, konfigurasi Flight Controller, serta pengujian motor harus dilakukan dengan pendampingan instruktur. Lepaskan seluruh propeller selama pengujian elektronik dan program di meja kerja. Jangan melakukan penerbangan otomatis sebelum sistem failsafe, kendali manual cadangan, dan prosedur penghentian darurat benar-benar diuji.

Langkah 1: Memahami Fungsi Arduino Uno
Arduino Uno merupakan papan mikrokontroler berbasis ATmega328P. Pada proyek ini, Arduino Uno berfungsi menghasilkan sinyal kendali berbentuk PWM yang dikirimkan kepada Flight Controller CC3D.
Sinyal tersebut digunakan untuk menyampaikan perintah penerbangan seperti throttle, roll, pitch, dan yaw. Arduino menjalankan urutan instruksi yang sudah ditentukan melalui program.
Throttle digunakan untuk mengatur dorongan motor, roll untuk kemiringan kiri dan kanan, pitch untuk kemiringan depan dan belakang, sedangkan yaw untuk perubahan arah hadap drone.
Perlu dibedakan antara sinyal kendali bergaya PWM untuk input Flight Controller dan PWM keluaran ESC atau motor. Rentang pulsa, frekuensi, arah kanal, serta nilai netral harus disesuaikan dengan konfigurasi CC3D. Nomor pin Arduino untuk seluruh kanal gerakan tidak dijelaskan secara lengkap pada teks artikel.
Langkah 2: Mengenal Flight Controller CC3D
OpenPilot CC3D merupakan papan Flight Controller yang membantu mengendalikan kestabilan quadcopter. Papan ini memiliki gyroscope dan accelerometer untuk mendeteksi gerakan dan perubahan orientasi drone.
Gyroscope digunakan untuk mengukur kecepatan rotasi, sedangkan accelerometer membantu mendeteksi percepatan dan orientasi relatif terhadap gravitasi. Data dari kedua sensor diproses oleh Flight Controller untuk menghasilkan koreksi penggerak motor.
CC3D perlu dikonfigurasi menggunakan software yang kompatibel sebelum digunakan. Pengaturan meliputi orientasi papan, jenis frame, kanal input, output motor, kalibrasi sensor, dan failsafe.
Arduino bertugas memberikan perintah gerakan, sedangkan CC3D bertugas menjalankan pengendalian stabilisasi melalui ESC dan motor.
Langkah 3: Memilih Konfigurasi Quadcopter
Artikel memperkenalkan dua susunan quadcopter yang umum digunakan, yaitu konfigurasi X dan konfigurasi +. Perbedaannya terletak pada orientasi rangka dan posisi motor terhadap arah depan drone.
Pilih konfigurasi sesuai bentuk frame dan orientasi Flight Controller. Perhatikan tanda arah depan atau panah orientasi pada papan CC3D.
Pada quadcopter, beberapa motor harus berputar Clockwise atau CW, sedangkan motor lainnya berputar Counter Clockwise atau CCW. Kombinasi tersebut penting agar torsi reaksi dapat diseimbangkan.
Susunan nomor motor dan arah putar wajib mengikuti diagram motor mapping yang digunakan oleh firmware CC3D. Jangan menganggap semua konfigurasi X dan + memiliki urutan nomor motor yang sama.
Langkah 4: Menyiapkan ESC dan Motor Brushless
ESC atau Electronic Speed Controller berfungsi mengubah perintah dari Flight Controller menjadi pengaturan daya tiga fase untuk motor BLDC.
Umumnya terdapat tiga kabel fase yang menghubungkan ESC ke motor, dua kabel daya untuk suplai listrik ESC, serta kabel kontrol yang terhubung ke Flight Controller.
Pastikan spesifikasi ESC sesuai dengan motor, baterai, dan kebutuhan arus sistem. Pada proyek ini, baterai yang disebutkan adalah 11.1V.
Sebelum melakukan penyambungan, pastikan seluruh sumber daya dilepaskan dan propeller belum dipasang.
Langkah 5: Mengatur Motor Clockwise atau CW
Clockwise atau CW berarti motor berputar searah jarum jam jika diamati dari arah referensi yang digunakan pada konfigurasi drone.
Hubungkan ketiga kabel fase motor BLDC ke tiga keluaran fase ESC. Arah putaran aktual bergantung pada urutan hubungan fase dan konfigurasi ESC.
Apabila arah putaran sudah sesuai, tandai posisi motor sebagai CW berdasarkan konfigurasi Flight Controller.
Pastikan propeller dengan arah yang sesuai baru dipasang setelah seluruh pengujian motor selesai.
Langkah 6: Mengatur Motor Counter Clockwise atau CCW
Counter Clockwise atau CCW berarti motor berputar berlawanan arah jarum jam.
Pada banyak sistem ESC BLDC tiga fase, arah putaran motor dapat dibalik dengan menukar dua dari tiga kabel fase antara motor dan ESC ketika seluruh daya sudah dilepaskan. Sebagian ESC juga menyediakan pengaturan arah putaran melalui software konfigurasi.
Artikel asli menjelaskan metode penukaran dua kabel fase tersebut untuk mendapatkan arah putaran berlawanan.
Periksa kembali arah CW dan CCW tiap motor sesuai konfigurasi quadcopter yang digunakan.
Langkah 7: Menghubungkan Motor, ESC, dan Flight Controller
Setiap motor BLDC dihubungkan ke ESC masing-masing. Sinyal kendali ESC berasal dari output motor Flight Controller CC3D.
Untuk konfigurasi quadcopter empat motor, gunakan empat ESC dan empat output motor CC3D yang sesuai dengan motor mapping firmware.
Jalur daya ESC terhubung ke distribusi daya baterai melalui rangkaian koneksi dan konektor yang sesuai kapasitas arusnya. Jangan menggunakan pin 5V Arduino untuk memasok daya motor atau ESC.
Jalur sinyal ESC perlu memiliki referensi GND yang sesuai dengan sistem Flight Controller. Jangan menyatukan beberapa output BEC 5V tanpa memastikan desain distribusi daya memang mendukungnya.
Lakukan pemeriksaan kontinuitas, polaritas, dan hubungan kabel sebelum menyambungkan baterai.
Langkah 8: Memahami Kabel Kontrol ESC
Artikel menjelaskan bahwa ESC memiliki tiga kabel kontrol yang meliputi VCC, GND, dan INPUT SIGNAL, serta dua kabel utama untuk suplai daya.
INPUT SIGNAL menerima perintah dari Flight Controller. GND menjadi referensi sinyal. Jalur VCC pada konektor kontrol bergantung pada jenis ESC; beberapa ESC memiliki BEC, sedangkan ESC OPTO mungkin tidak menyediakan tegangan keluaran pada pin tersebut.
Dua kabel daya utama biasanya berwarna merah dan hitam serta harus menggunakan ukuran kabel yang mampu membawa arus motor.
Ikuti dokumentasi ESC yang benar-benar digunakan karena susunan dan fungsi kabel dapat berbeda antarproduk.
Langkah 9: Menghubungkan Arduino Uno dengan Flight Controller CC3D
Hubungkan sinyal kendali keluaran Arduino Uno menuju kanal input penerima CC3D yang telah dikonfigurasi. Kanal utama untuk pengendalian penerbangan meliputi throttle, roll, pitch, dan yaw.
Arduino harus menghasilkan sinyal dengan karakteristik yang sesuai dengan mode input receiver CC3D. Pengaturan kanal, pulsa minimum, pulsa maksimum, serta posisi netral harus diperiksa melalui software konfigurasi Flight Controller.
Penulis menyebut penggunaan istilah UART, tetapi juga menerangkan bahwa sinyal PWM diterapkan langsung dari Arduino ke CC3D tanpa proses konversi paralel menjadi serial. Oleh karena itu, koneksi kendali ini sebaiknya dipahami sebagai input sinyal kontrol PWM, bukan otomatis sebagai komunikasi UART.
Perintah gerakan direncanakan berdasarkan fungsi dan delay yang diprogram pada Arduino. Metode ini dapat menghasilkan urutan gerakan, tetapi belum menyediakan kemampuan navigasi posisi tertutup atau closed-loop navigation.
Langkah 10: Menghubungkan Bluetooth HC-05
Bluetooth HC-05 digunakan untuk komunikasi dua arah antara Arduino Uno dan smartphone Android. Modul ini memungkinkan aplikasi mengirim perintah dan menerima informasi sensor.
Hubungkan TX modul HC-05 ke RX Arduino Uno pada digital pin 0. Hubungkan TX Arduino Uno pada digital pin 1 menuju RX HC-05 melalui Voltage Divider untuk mengurangi tegangan logika dari 5V menjadi sekitar 3.3V.
Hubungkan VCC dan GND modul sesuai spesifikasi breakout HC-05. Artikel menggunakan koneksi VCC ke pin 5V Arduino dan GND ke GND Arduino.
Gunakan Baud Rate yang sesuai dengan konfigurasi modul. Contoh kode yang disediakan menggunakan Serial.begin(9600).
Karena pin 0 dan 1 juga digunakan untuk komunikasi USB Serial Arduino Uno, koneksi modul Bluetooth dapat mengganggu proses upload program atau komunikasi Serial Monitor. Lepaskan koneksi yang berpotensi konflik saat mengunggah program apabila diperlukan.

Langkah 11: Memasang Sensor DHT11
DHT11 digunakan untuk mengukur suhu udara dan relative humidity atau kelembapan relatif.
Kelembapan relatif merupakan perbandingan antara kandungan uap air di udara dan jumlah maksimum uap air yang dapat ditampung pada suhu tertentu sebelum mencapai kondisi jenuh.
Sensor DHT11 mengirimkan hasil pengukuran melalui satu jalur DATA digital menuju Arduino. Pada kode asli, jalur pembacaan sensor ditentukan menggunakan DHT11_PIN 10.
Hubungkan pin VCC sensor ke sumber daya yang sesuai, GND ke ground, dan DATA ke pin digital 10 Arduino Uno. Untuk sensor DHT11 empat pin tanpa breakout, periksa kebutuhan resistor pull-up pada jalur DATA serta pinout sesuai modul yang digunakan.
Library DHTLib atau dht.h digunakan untuk membaca suhu dan kelembapan. Hasilnya kemudian ditampilkan menggunakan Serial Monitor.

Langkah 12: Menguji Program Pembacaan Sensor
Buka Arduino IDE dan buat program pembacaan DHT11 berdasarkan contoh kode yang tersedia pada proyek.
Tambahkan library yang menyediakan file dht.h dan antarmuka dht DHT yang kompatibel. Tentukan pin sensor pada digital pin 10.
Program memanggil DHT.read11(DHT11_PIN), kemudian menampilkan Temperature dan Humidity melalui komunikasi serial dengan Baud Rate 9600.
Data diperbarui menggunakan delay(1000), sehingga pembacaan dilakukan dengan jeda sekitar satu detik.
Uji pembacaan sensor sebelum menggabungkannya dengan kontrol motor. Perhatikan bahwa contoh asli tidak melakukan pemeriksaan status kesalahan pembacaan DHT11.
Langkah 13: Memeriksa Antarmuka Arduino dan CC3D
Flight Controller CC3D menyediakan input kontrol penerbangan untuk mengatur throttle, roll, yaw, pitch, dan kanal tambahan sesuai konfigurasi receiver.
Artikel menyebut lima input kontrol dan empat aksi utama penerbangan. Pin input yang tepat perlu dicocokkan dengan mode input CC3D dan dokumentasi konektornya.
Untuk proyek ini, Arduino berperan sebagai penghasil perintah, sedangkan CC3D menerima serta memproses perintah tersebut untuk mengendalikan motor.
Gunakan software konfigurasi CC3D untuk memeriksa apakah perubahan sinyal Arduino terbaca pada kanal yang benar. Pengujian dilakukan tanpa propeller dan dengan prosedur pengamanan motor.

Langkah 14: Membuat Aplikasi Android dengan MIT App Inventor
MIT App Inventor adalah platform pemrograman visual yang dapat digunakan untuk membuat aplikasi Android. Pembuat proyek menggunakan platform ini untuk menyediakan kontrol dan tampilan sensor melalui Bluetooth.
Rancang antarmuka aplikasi dengan tombol Start, Mov, Stop, dan Start Sensor sesuai konsep yang dijelaskan dalam artikel.
Tombol Start dimaksudkan untuk memulai atau mengaktifkan proses kendali Flight Controller. Tombol Mov digunakan untuk meminta Arduino menjalankan urutan gerakan penerbangan yang telah diprogram.
Tombol Stop dirancang sebagai penghentian darurat. Namun, penghentian darurat melalui Bluetooth saja tidak boleh dianggap sebagai satu-satunya mekanisme keselamatan karena koneksi wireless dapat terputus.
Tombol Start Sensor digunakan untuk meminta tampilan informasi suhu dan kelembapan dari DHT11 pada aplikasi Android.
Penulis juga menyediakan pembaruan aplikasi Android bertanggal 21 Juli 2022 pada bagian Schematics. File dan isi aplikasi yang ditautkan tidak dapat diverifikasi secara lengkap dari konten halaman yang berhasil diakses.
Langkah 15: Menguji Komunikasi Bluetooth Menggunakan LED
Sebelum menghubungkan Bluetooth dengan sistem penerbangan, lakukan pengujian komunikasi sederhana menggunakan LED bawaan Arduino pada digital pin 13.
Contoh program asli membaca satu karakter dari Serial melalui Bluetooth. Ketika karakter 1 diterima, LED dinyalakan. Ketika karakter 0 diterima, LED dimatikan.
Pengujian ini membantu memastikan bahwa modul Bluetooth, komunikasi serial, dan aplikasi pengirim data bekerja sebagaimana diharapkan.
Program LED merupakan contoh terpisah dari program DHT11. Keduanya memiliki fungsi setup() dan loop() masing-masing sehingga tidak dapat digabungkan dengan menyalin langsung kedua sketch tanpa melakukan integrasi kode.
Langkah 16: Menampilkan Data Suhu dan Kelembapan pada Android
Setelah komunikasi Bluetooth berhasil, sistem dapat dikembangkan untuk mengirim data suhu dan kelembapan dari Arduino ke smartphone.
Ketika tombol Start Sensor digunakan, aplikasi dirancang menampilkan informasi Temperature dan Humidity pada area output.
Untuk komunikasi dengan smartphone, format pesan serial yang dikirim Arduino perlu sesuai dengan logika penerimaan pada aplikasi MIT App Inventor.
Artikel menunjukkan konsep tampilan sensor dan contoh kode Serial Monitor, tetapi tidak menyertakan implementasi lengkap integrasi aplikasi dengan seluruh fungsi penerbangan dalam teks yang dapat diverifikasi.
Langkah 17: Menyiapkan Kamera Wireless dan Area Pengamatan
Tujuan utama proyek adalah mengumpulkan informasi dan video dua dimensi dari suatu area yang sudah diketahui.
Penulis merencanakan agar panjang dan lebar area pengamatan dapat diterjemahkan menjadi rangkaian perintah gerakan melalui program Arduino.
Kamera wireless digunakan untuk pengambilan gambar atau video. Namun, artikel tidak merinci model kamera, jalur transmisi video, koneksi daya, maupun contoh kode kamera.
Perlu dipahami bahwa perhitungan gerakan berdasarkan delay saja tidak dapat menjamin jarak tempuh tertentu. Untuk navigasi mandiri yang akurat diperlukan sistem pengukuran posisi, estimasi gerak, dan kontrol yang sesuai.
Langkah 18: Integrasi dan Pemeriksaan Akhir
Setelah setiap subsistem diuji secara terpisah, lakukan pemeriksaan terhadap koneksi Arduino, CC3D, sensor DHT11, Bluetooth HC-05, ESC, dan motor BLDC.
Pastikan polaritas baterai, koneksi GND, tegangan elektronik, konfigurasi input Flight Controller, arah putaran motor, serta pengaturan failsafe telah diperiksa.
Jangan memasang propeller selama pengujian sinyal, pembacaan sensor, dan pengujian motor di meja kerja.
Proyek sumber masih berstatus work in progress dan tidak menyediakan seluruh kode autopilot dalam teks halaman yang berhasil diakses. Oleh sebab itu, dokumentasi ini belum dapat digunakan sebagai panduan penerbangan mandiri yang telah tervalidasi.
Hasil pembelajaran yang dapat diuji secara terpisah adalah pembacaan DHT11, komunikasi Bluetooth, pengendalian LED, pemahaman hubungan Arduino dengan CC3D, serta prinsip dasar pengendalian motor quadcopter.
Buka Seluruh Panduan, Skema & Source Code
Dapatkan akses penuh ke langkah perakitan detail, diagram sirkuit lengkap, dan source code siap pakai. Gratis selamanya!



