29 Jun 2021

Membuat Self Balancing Robot Dikontrol via Wifi Berbasis ESP32

Halo agan-agan sekalian, apa tahu yang namanya Self balancing Robot, itu tuh robot mainan yang ada rodanya dua kiri kanan tapi anehnya robot ini bisa berdiri seimbang tanpa harus jatuh. Kenapa bisa seimbahnya dikarenakan pada rangkaian robot tersebut terdapat sensor accelerometer dan gyro yang bisa bikin motor bergerak maju mundur seimbang tanpa terjatuh.

Ikutin tutorial ini nanti agan bakal ditunjukin alat-alat dan komponen apa saja yang diperlukan serta bagaimana cara membuatnya.

Jika agan ingin membuat PCB dan sedang mencari jasa cetak PCB, bisa langsung order saja ke PCBWAY.COM, harganya lebih murah $5 bisa mendapatkan papan PCB 10 keping dengan kualitas PCB yang sangat bagus.

Gambar Rangkaian

Daftar Komponen:

  • 1 x PCB ESP32 Balancing Robot Shield
  • 1 x ESP32 DEVKIT V1 board
  • 2 x Stepper Motor Driver A4988
  • 1 x 3 axis Acc. and Gyro sensor MPU6050
  • 2 x Stepper Motor Nema17
  • 1 x Servo Motor MG90S
  • 1 x LED 3mm
  • 2 x LED 3mm White Super Bright
  • 1 x Active BUzzer
  • 2 x V-Regulator 5V AMS1117 (SMD)
  • 1 x Resistor 1K Ohm
  • 1 x Capacitor 0.1uF
  • 1 x Capacitor 100uF/16V
  • 2 x Capacitor 220uF/16V
  • 1 x Rocker Switch Dia. 20mm
  • 2 x Rechargeable Battery Li-ion 18650 3,7V
  • 1 x Battery Holder 2x 18650
  • 1 x Micro USB Cable
  • 1 x OTG Adapter
  • 1 x Terminal Screw 2 pin 5mm
  • 2 x Female Header 15 pin
  • 5 x Female Header 8 pin
  • 2 x Female Header 4 pin
  • 1 x Male Header 2 pin
  • 1 x Male Header 3 pin
  • 1 x Jumper cap
  • 1 x Set screw 5mm
  • 1 x Set M3 set screw 10mm
  • 2 x O-ring 3mm ID 82mm
  • 1 x Set 3D Printed Parts

  • Order PCB (PCBWAY)

    Untuk membuat proyek ini kamu perlu memesan prototipe PCB di PCBWAY. Cara pemesanannya sangat mudah, kamu akan mendapatkan 10 keping PCB seharga $5 dengan kualitas PCB yang sangat bagus.

    Langkah-langkah order:

    1. SignUp/Log in di pcbway.com

    2. Buka tautan proyek PCB ini.

    3. Klik Tambahkan ke troli.

    4. Tunggu sebentar untuk review PCB, lalu Klik Check Out.

    Menyolder Komponen SMD

    Proyek kali ini memiliki dua komponen SMD, jangan khawatir komponen ini tidak terlalu sulit untuk disolder karena ukurannya cukup besar, agan hanya membutuhkan pinset sebagai alat bantu untuk menahan komponen saat disolder. Langkah pertama beri lapisan timah pada tembaga PCB untuk tempat kaki komponen SMD.
    Kemudian ditahan menggunakan pinset lalu di panaskan kembali timah hingga menempel dengan kaki komponen SMD.

    Memasang Komponen

    Pasang semua komponen pada PCB mengikuti gambar/simbol komponen yang ada pada bagian atas PCB, untuk lebih jelasnya dapat mengikuti step by step pada video youtube.

    Menyolder Komponen

    Solder semua kaki komponen pada bagian bawah PCB, untuk lebih jelasnya dapat mengikuti step by step pada video youtube.

    Kemudian potong kaki komponen yang panjang menggunakan tang pemotong, hati-hati ketika memotong pastikan memakai kacamata safety.

    Memasang Modul

    Pasang board ESP32, modul sensor MPU6050 dan modul Driver Stepper Motor A4988 ke soket female header yang tersedia seperti terlihat pada gambar, ketika memasang perhatikan arah dan nama pin jangan sampai terbalik.

    Part 3D Printer

    Cetak semua part 3D robot Balancing, file 3D nya bisa agan download dari sini thingiverse.com/thing:2306541

    Daftar nama part 3D yang harus dicetak:

  • 2 x Wheels
  • 2 x Hub Arm
  • 2 x Side Panel
  • 1 x Top Shelf
  • 1 x Motor Shelf
  • 1 x Electronics Shelf
  • 2x Bumpers
  • Memasang Part 3D

    Masukkan ke empat mur M3 di setiap lubang ditepi part 3D Electronic Shelf.

    Pasangkan part 3D Side panel di kedua sisinya lalu dikencangkan dengan baud M3.

    Memasang Stepper Motor

    Pasang kedua stepper motor Nema17 ke part 3D Motor Shelf seperti terlihan pada gambar kemudian kencangkan dengan baud M3.

    Menggabungkan Part 3D

    Pasang bagian Motor Shelf dengan Electronic Shelf seperti terlihat pada gambar kemudian kencangkan dengan baud M3.

    Memasang ESP32 Balancing Robot Shield Ke Body

    Sebelum memasangkan ESP32 Balancing Robot Shield letakkan pengikat baterai dibawahnya seperti yang ditunjukkan pada gambar.

    Pasang ESP32 Balancing Robot Shield lalu dikencangkan menggunakan skrup.

    Memasang ESP32 Balancing Robot Shield Ke Body

    Solder kabel jumper dupont ke kaki sakelar rocker.

    Masukkan sakelar rocker ke lubang dari part 3D Side Panel sebelah.

    Hubungkan konektor dupont jumper ke pin pada ESP32 Balancing Robot Shield.

    Memasang Motor Servo

    Pasangkan motor servo MG90 ke dudukan lubang part 3D Side Panel sebelah kiri seperti yang ditunjukkan gambar, kemudian kencangkan dengan mur+baud M2.

    Hubungkan konektor dari motor servo ke pin soket pada ESP32 Balancing Robot Shield, perhatikan pemasangannya jangan sampai terbalik.

    Hubungkan juga kedua konektor dari motor stepper ke soket yang sudah terseida seperti ditunjukkan pada gambar.

    Memasang Baterai

    Hubungkan dan kabel dari dudukan baterai ke terminal sekrup pada pada ESP32 Balancing Robot Shield, kabel merah ke terminal VM dan kabel hitam ke terminal GND.

    Pasang kedua baterai 18650 ke dudukan baterai.

    Masukkan tempat baterai tadi di sela antara bawah part 3D Electronic Shelf dan atas motor stepper, kemudian ikat dengan pengikat baterai.

    Memasang Part 3D Penutup

    Masukkan ke empat mur M3 di setiap lubang ditepi part 3D Top Shelf. Pasang diatas part 3D Side Panel kemudian kencangkan dengan baud M3.

    Memasang Part 3D Bumper

    Terdapat dua part 3D bumper untuk dipasang pada bagian depan dan belakang part 3D Side Panel dan dikencangkan menggunakan sekrup.

    Memasang Part 3D Arm

    Sebelum memasang part 3D Arm, terlebih dahulu putar poros motor servo ke posisi tengah atau setengah putaran (90 derajat), lalu pasangkan part 3D Arm tegak lurus ke atas kemudian kencangkan dengan sekrup bawaan dari servo motor.

    Memasang Part 3D Wheel

    Gabungkan part 3D Wheel dengan part 3D HUB, kemudian pasangkan O-ring pada roda. Setelah itu pasangkan roda tadi keporos masing-masing motor stepper.

    Mengisi Program ke ESP32 Board

    Untuk membuat WiFi Self balancing Robot berfungsi dan dapat dikendalikan oleh smartphone Android, agan harus memprogram ESP32 terlebih dahulu. Caranya cukup mudah hanya cukup menggunakan smartphone Android tidak memerlukan lagi Laptop/PC, ikuti langkah berikut:

    - Install aplikasi ESP32 WiFi Balancing Robot dari Google Playstore.

    - Hubungkan antara smartphone Android dengan ESP32 Motor Shield menggunakan kabel USB dan USB OTG adapter. (pastikan HP agan support USB OTG)

    - Buka aplikasi ESP32 Wifi Balancing Robot, pada menu bar atas tekan icon Circuit diagram & Code. Kemudian setelah terbuka tampilan gambar rangkaian dan kode pada menu bar atasnya tekan ikon setting (gear), buka pilihan Upload Firmware Via lalu pilih USB OTG, jika ingin menghubungkan Robot ke sebuah router jaringan rumah agan bisa set SSID name & Password. Setelah selesai konfigurasi langkah selanjutnya tekan ikon UPLOAD, dan tunggu sampai proses uploadnya selesai. Terakhir tekan tombol reset untuk menjalankan program.

    Selain mengisi program melalui smartphone Android, agan dapat juga memprogram ESP32 melalui komputer menggunakan software Arduino IDE, download full source code nya disini:

    Catatan: Software Arduino IDE agan harus sudah disetting untuk dapat digunakan untuk memprogram ESP32 sebelumnya.

    Mainkan Balancing Robot

    Balancing Robot dapat dikontrol melalui smartphone Android dengan dua cara, dikontrol langsung antara smartphone Android ke ESP32 (mode AP), dengan cara hubungkan smartphone Android ke SSID Wifi dari ESP32 kemudian atur alamat IP pada aplikasi menjadi 192.168.4.1.

    Cara kedua adalah ESP32 (mode STA), dimana smartphone Android terhubung ke jaringan Wifi router yang sama kemudian atur alamat IP pada aplikasi sesuai dengan alamat IP yang dimiliki oleh ESP32 (contoh:192.168.0.2).



    2 comments:

    saiful mengatakan...

    pesan fatal eror waktu, waktu upload dg otg, kenapa ya gan?

    Ramos mengatakan...

    Hello, Interesting project. I tried compiling this code on Arduino IDE but I find problem with AsyncTCP library. Which AsyncTCP library did you use??? Please reply quickly .. Thanx.

    Posting Komentar