Daftar Isi:
- Perlengkapan
- Langkah 1: Pendahuluan
- Langkah 2: Bahan dan Perangkat Lunak yang Digunakan dalam Proyek Ini
- Langkah 3: Apa yang Harus Dilakukan?
- Langkah 4: Skema
- Langkah 5: Bagaimana Melakukannya?
- Langkah 6: Pseudo-Code
- Langkah 7: Kode
- Langkah 8: Tautan Eksternal
Video: Robot Pelacakan Bola: 8 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Nah kali ini saya akan memberi tahu cara membuat robot pelacak bola yaitu robot yang akan mengidentifikasi bola dan mengikutinya. Ini pada dasarnya adalah teknik pengawasan otomatis yang dapat digunakan di dunia modern. Jadi, mari kita masuk dan mulai membangun…
CATATAN: Ini bagian tugas yang diserahkan ke Deakin University, School of IT, SIT-210 Embedded Systems Development
Perlengkapan
www.hackster.io/junejarohan/ball-tracking-robot-7a9865
Langkah 1: Pendahuluan
Pengawasan hari ini memberikan kelemahan utama yang bertumpu pada keterlibatan manusia yang seperti kita semua tahu dapat dengan mudah terganggu, jadi sangat penting bagi kami untuk menemukan sistem yang dapat memantau daerah secara mandiri dan terus menerus. Dan juga kami ingin mengidentifikasi hal-hal dan bahaya yang menjengkelkan atau tidak diinginkan sambil secara bersamaan membuat keputusan dan meresponsnya dengan tepat. Jadi pelacakan objek dengan menggunakan sistem cerdas dan komputer sangat penting dan krusial untuk mencapai pengawasan otomatis.
Setiap sistem pengawasan luar ruangan harus dapat melacak objek yang bergerak di bidang pandangnya, mengklasifikasikan objek ini dan mendeteksi beberapa aktivitasnya. Saya telah mengembangkan metode untuk melacak dan mengklasifikasikan objek-objek ini dalam skenario yang realistis. Pelacakan objek dalam satu kamera dilakukan menggunakan pengurangan latar belakang, diikuti dengan korespondensi wilayah. Ini memperhitungkan beberapa isyarat termasuk kecepatan, ukuran dan jarak kotak pembatas.
Langkah 2: Bahan dan Perangkat Lunak yang Digunakan dalam Proyek Ini
Komponen Perangkat Keras yang Digunakan:
- Raspberry Pi (x1)
- Modul Kamera Raspberry Pi (x1)
- Sensor Ultrasonik (x3)
- Driver motor SparkFun Dual H-Bridge L298 (x1)
- Motor DC (x1)
- Papan tempat memotong roti (x1)
- Menghubungkan Kabel
Perangkat Lunak yang Digunakan:
OpenCV
Perkakas:
Python
Langkah 3: Apa yang Harus Dilakukan?
Setiap sistem pengawasan luar ruangan harus dapat melacak objek yang bergerak di bidang pandangnya, mengklasifikasikan objek ini dan mendeteksi beberapa aktivitasnya. Saya telah mengembangkan metode untuk melacak dan mengklasifikasikan objek-objek ini dalam skenario yang realistis. Pelacakan objek dalam satu kamera dilakukan menggunakan pengurangan latar belakang, diikuti dengan korespondensi wilayah. Ini memperhitungkan beberapa isyarat termasuk kecepatan, ukuran dan jarak kotak pembatas.
Hal penting saat mendeteksi gambar frame demi frame adalah untuk menghindari frame drop karena bot bisa masuk ke keadaan limbo jika bot gagal memperhatikan arah pergerakan bola karena frame drop. Jika bola keluar dari jangkauan kamera, itu akan masuk ke apa yang kita sebut keadaan limbo, dalam hal ini, bot membuat putaran 360 derajat untuk melihat ruang di sekitarnya sampai bola kembali ke bingkai. kamera dan kemudian mulai bergerak ke arahnya.
Untuk analisis gambar, saya mengambil setiap frame dan kemudian menutupinya dengan warna yang dibutuhkan. Kemudian saya menemukan semua kontur dan menemukan yang terbesar di antara mereka dan mengikatnya dalam persegi panjang. Dan tunjukkan persegi panjang pada gambar utama dan temukan koordinat pusat persegi panjang.
Akhirnya, bot mencoba membawa koordinat bola ke pusat sumbu koordinatnya. Beginilah cara robot bekerja. Ini dapat ditingkatkan lebih lanjut dengan menggunakan perangkat IoT seperti partikel foton yang dapat memberi tahu Anda ketika ada sesuatu yang terdeteksi dan bahwa robot mengikutinya atau ketika robot kehilangan jejaknya dan sekarang kembali ke pangkalan..
Untuk keperluan pemrosesan gambar, Anda perlu menginstal perangkat lunak OpenCV pada raspberry pi Anda yang cukup rumit bagi saya.
Anda bisa mendapatkan informasi yang diperlukan untuk menginstal OpenCV melalui tautan ini: klik di sini
Langkah 4: Skema
Di atas saya telah memberikan skema untuk proyek saya dan bersama dengan itu adalah Printed Circuit Board (PCB).
Dan berikut adalah beberapa koneksi utama yang perlu Anda lakukan:
• Pertama-tama modul Kamera Raspberry Pi terhubung langsung ke Raspberry Pi.
• Sensor ultrasonik VCC terhubung ke terminal umum yang sama dengan GND (ground) dan sisa dua port sensor ultrasonik terhubung ke pin GPIO pada Raspberry Pi.
• Motor terhubung menggunakan H-Bridge.
• Daya disuplai menggunakan Baterai.
Saya juga telah menambahkan video yang mungkin dapat membantu pemahaman cara kerja sensor ultrasonik dan cara kerjanya.
dan juga Anda dapat mengikuti tautan ini jika Anda tidak dapat menemukan video di atas.
Langkah 5: Bagaimana Melakukannya?
Saya membuat proyek ini menggambarkan robot dasar yang dapat melacak bola. Robot menggunakan kamera untuk melakukan pemrosesan gambar dengan mengambil bingkai dan melacak bola. Untuk melacak bola berbagai fitur seperti warna, ukuran, bentuk digunakan.
Robot menemukan warna hardcode dan kemudian mencari bola warna itu dan mengikutinya. Saya telah memilih Raspberry Pi sebagai mikrokontroler dalam proyek ini karena memungkinkan kita untuk menggunakan modul kamera dan memberikan fleksibilitas yang besar dalam kode karena menggunakan bahasa python yang sangat user friendly dan juga memungkinkan kita menggunakan perpustakaan OpenCV untuk menganalisis gambar.
Sebuah H-Bridge telah digunakan untuk mengubah arah putaran motor atau untuk menghentikannya.
Untuk analisis gambar, saya mengambil setiap frame dan kemudian menutupinya dengan warna yang dibutuhkan. Kemudian saya menemukan semua kontur dan menemukan yang terbesar di antara mereka dan mengikatnya dalam persegi panjang. Dan tunjukkan persegi panjang pada gambar utama dan temukan koordinat pusat persegi panjang.
Akhirnya, bot mencoba membawa koordinat bola ke pusat sumbu koordinatnya. Beginilah cara robot bekerja. Ini dapat ditingkatkan lebih lanjut dengan menggunakan perangkat IoT seperti partikel foton yang dapat memberi tahu Anda ketika ada sesuatu yang terdeteksi dan bahwa robot mengikutinya atau ketika robot kehilangan jejaknya dan sekarang kembali ke pangkalan.. Dan untuk melakukan ini kita akan menggunakan platform perangkat lunak online yang menghubungkan perangkat dan memungkinkan mereka untuk melakukan tindakan tertentu pada pemicu tertentu yaitu pemicu IFTTT.
Langkah 6: Pseudo-Code
Berikut adalah pseudo-code untuk bagian pendeteksian menggunakan OpenCV dimana kita mendeteksi sebuah bola.
Langkah 7: Kode
Di atas adalah cuplikan kode dan di bawah ini adalah deskripsi terperinci dari kode tersebut.
# impor paket yang diperlukan
KAMI IMPORT SEMUA PAKET YANG DIPERLUKAN
from picamera.array import PiRGBArray #Karena ada masalah resolusi di raspberry pi, tidak akan dapat menangkap frame dengan VideoCapture
dari picamera impor PiCamera impor RPi. GPIO sebagai GPIO waktu impor impor numpy sebagai np
SEKARANG KITA SET UP PERANGKAT KERAS DAN MENENTUKAN PIN YANG TERHUBUNG PADA RASPBERRY PI
GPIO.setmode(GPIO. PAPAN)
GPIO_TRIGGER1 = 29 #Sensor ultrasonik kiri
GPIO_ECHO1 = 31
GPIO_TRIGGER2 = 36 #Sensor ultrasonik depan
GPIO_ECHO2 = 37
GPIO_TRIGGER3 = 33 #Sensor ultrasonik kanan
GPIO_ECHO3 = 35
MOTOR1B=18 #Motor Kiri
MOTOR1E = 22
MOTOR2B=21 #Motor Kanan
MOTOR2E = 19
LED_PIN=13 #Jika menemukan bola, maka led akan menyala
# Atur pin sebagai output dan input
GPIO.setup(GPIO_TRIGGER1, GPIO. OUT) # Memicu GPIO.setup(GPIO_ECHO1, GPIO. IN) # Echo GPIO.setup(GPIO_TRIGGER2, GPIO. OUT) # Memicu GPIO.setup(GPIO_ECHO2, GPIO. IN) GPIO.setup(GPIO_TRIGGER3, GPIO. OUT) # Pemicu GPIO.setup(GPIO_ECHO3, GPIO. IN) GPIO.setup(LED_PIN, GPIO. OUT)
# Setel pemicu ke Salah (Rendah)
GPIO.output(GPIO_TRIGGER1, False) GPIO.output(GPIO_TRIGGER2, False) GPIO.output(GPIO_TRIGGER3, False)
FUNGSI INI MENGGUNAKAN SEMUA SENSOR ULTRASONIK MENGUMPULKAN JARAK DARI OBJEK DI SEKITAR BOT KAMI
# Izinkan modul untuk diselesaikan
def sonar(GPIO_TRIGGER, GPIO_ECHO): start=0 stop=0 # Atur pin sebagai output dan input GPIO.setup(GPIO_TRIGGER, GPIO. OUT) # Trigger GPIO.setup(GPIO_ECHO, GPIO. IN) # Echo # Atur pemicu ke False (Rendah) GPIO.output(GPIO_TRIGGER, False) # Izinkan modul untuk menyelesaikan time.sleep(0.01) # while distance > 5: #Kirim pulsa 10us untuk memicu GPIO.output(GPIO_TRIGGER, True) time.sleep(0.00001) GPIO. output(GPIO_TRIGGER, False) begin = time.time() sedangkan GPIO.input(GPIO_ECHO)==0 dan time.time()
MENDAPATKAN MOTOR DC BEKERJA DENGAN PI RASPBERRY
GPIO.setup(MOTOR1B, GPIO. OUT)
GPIO.setup(MOTOR1E, GPIO. OUT)
GPIO.setup(MOTOR2B, GPIO. OUT) GPIO.setup(MOTOR2E, GPIO. OUT)
MENDEFINISIKAN FUNGSI UNTUK MENGOPERASIKAN ROBOT DAN MEMBUATNYA BERGERAK KE ARAH YANG BERBEDA
maju kedepan():
GPIO.output(MOTOR1B, GPIO. HIGH) GPIO.output(MOTOR1E, GPIO. LOW) GPIO.output(MOTOR2B, GPIO. HIGH) GPIO.output(MOTOR2E, GPIO. LOW) def reverse(): GPIO.output(MOTOR1B, GPIO. LOW) GPIO.output(MOTOR1E, GPIO. HIGH) GPIO.output(MOTOR2B, GPIO. LOW) GPIO.output(MOTOR2E, GPIO. HIGH) def belok kanan(): GPIO.output(MOTOR1B, GPIO. LOW) GPIO.output(MOTOR1E, GPIO. HIGH) GPIO.output(MOTOR2B, GPIO. HIGH) GPIO.output(MOTOR2E, GPIO. LOW) def belok kiri(): GPIO.output(MOTOR1B, GPIO. HIGH) GPIO.output(MOTOR1E, GPIO. LOW) GPIO.output(MOTOR2B, GPIO. LOW) GPIO.output(MOTOR2E, GPIO. HIGH)
def berhenti():
GPIO.output(MOTOR1E, GPIO. LOW) GPIO.output(MOTOR1B, GPIO. LOW) GPIO.output(MOTOR2E, GPIO. LOW) GPIO.output(MOTOR2B, GPIO. LOW)
MEMBUAT MODUL KAMERA BEKERJA DAN MENYESUAIKAN PENGATURAN
#TANGKAP KAMERA
#inisialisasi kamera dan ambil referensi ke kamera pengambilan kamera mentah = PiCamera() camera.resolusi = (160, 120) camera.framerate = 16 rawCapture = PiRGBArray(camera, size=(160, 120)) # izinkan kamera untuk waktu pemanasan. tidur(0.001)
SEKARANG MELAKSANAKAN HAL UTAMA DI MANA BOT MENGIKUTI BOLA DAN MENGHINDARI Hambatan APAPUN
while(1<10): { #jarak datang dari depan sensor ultrasonik jarakC = sonar(GPIO_TRIGGER2, GPIO_ECHO2) #jarak datang dari kanan sensor ultrasonik jarakR = sonar(GPIO_TRIGGER3, GPIO_ECHO3) #jarak datang dari kiri sensor ultrasonik jarakL = sonar(GPIO_TRIGGER1, GPIO_ECHO1) if(distanceC=8: rightturn() time.sleep(0.00625) stop() time.sleep(0.0125) forward() time.sleep(0.00625) stop() time.sleep(0.0125) #while found== 0: belok kiri() waktu.tidur (0,00625) jarak elifL>=8: belok kiri() waktu.tidur (0,00625) stop() waktu.tidur (0,0125) maju() waktu.tidur (0,00625) stop() waktu.tidur (0.0125) belok kanan() time.sleep(0.00625) stop() time.sleep(0.0125) else: stop() time.sleep(0.01) else: #jika tidak maka bergerak maju() time.sleep(0.00625) if(distanceC>10): #membawa koordinat bola ke pusat sumbu imajiner kamera if(centre_x=20): if(centre_x0): flag=1 leftturn() time.sleep(0.025) forward() time.sleep(0.00003125) stop() time.sleep(0.00625) else: stop() time.sleep(0.01)
lain:
#jika menemukan bola dan terlalu dekat menyalakan led. GPIO.output(LED_PIN, GPIO. HIGH) time.sleep(0.1) stop() time.sleep(0.1) #cv2.imshow("draw", frame) rawCapture.truncate(0) # bersihkan aliran sebagai persiapan untuk bingkai berikutnya }
LAKUKAN PEMBERSIHAN YANG DIPERLUKAN
GPIO.cleanup() #bebaskan semua pin GPIO
Langkah 8: Tautan Eksternal
Tautan ke video demonstrasi: klik di sini (Youtube)
Tautan ke Kode di Git-hub: klik di sini (Git-Hub)
Direkomendasikan:
DIY Smart Robot Tracking Car Kit Pelacakan Mobil Fotosensitif: 7 Langkah
DIY Smart Robot Tracking Car Kit Pelacakan Mobil Fotosensitif: Desain oleh ROBOT SINONINGAnda dapat membeli dari robot pelacak mobilTheoryLM393 chip membandingkan dua fotoresistor, ketika ada satu sisi LED fotoresistor pada PUTIH sisi motor akan segera berhenti, sisi lain motor berputar, sehingga
Robot Pelacakan RC Menggunakan Arduino – Langkah demi Langkah: 3 Langkah
Robot Pelacakan RC Menggunakan Arduino – Langkah demi Langkah: Hai teman-teman, saya kembali dengan sasis Robot keren lainnya dari BangGood. Semoga Anda telah melalui proyek kami sebelumnya – Spinel Crux V1 – Robot Terkendali Gerakan, Spinel Crux L2 – Arduino Pick and Place Robot with Robotic Arms dan The Badland Braw
Robot Sepak Bola (atau Sepak Bola, Jika Anda Tinggal di Sisi Lain Kolam): 9 Langkah (dengan Gambar)
Robot Sepak Bola (atau Sepak Bola, Jika Anda Tinggal di Sisi Lain Kolam): Saya mengajar robotika di tinker-robot-labs.tk Murid-murid saya telah menciptakan robot-robot yang bermain sepak bola (atau sepak bola, jika Anda tinggal di sisi lain kolam). Tujuan saya dengan proyek ini adalah untuk mengajari anak-anak cara berinteraksi dengan robot melalui Bluetooth. Kami
Cara Merakit Lengan Robot Kayu yang Mengesankan (Bagian1: Robot untuk Pelacakan Garis) -- Berdasarkan Mikro: Bit: 9 Langkah
Cara Merakit Lengan Robot Kayu yang Mengesankan(Bagian1: Robot untuk Pelacakan Garis) -- Berdasarkan Mikro: Bit: Pria kayu ini memiliki tiga bentuk, sangat berbeda dan mengesankan. Kalau begitu mari kita masuk ke dalamnya satu per satu
Kamera Pelacakan Bola 180 °: 5 Langkah (dengan Gambar)
Kamera Pelacakan Bola 180 °: Selamat datang di proyek pertama saya! Saya senang berbagi apa yang telah saya buat dan menunjukkan kepada Anda langkah-langkah untuk membuat kamera pelacak Anda sendiri. Proyek ini dimungkinkan menggunakan perpustakaan OpenCV bersama dengan Python