Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Proyek ini menggunakan iRobot Create programmable roomba, MATLAB r2018a, dan MATLAB mobile. Dalam menggunakan ketiga media ini dan pengetahuan kami tentang pengkodean, kami memprogram iRobot Create untuk menginterpretasikan warna dan menggunakan sensor terpasang untuk menyelesaikan tugas. Proyek ini bergantung pada komunikasi Raspberry Pi dan MATLAB untuk melakukan tugas ini.
Langkah 1: Bahan
1. iRobot Buat Robot
2. MATLAB r2018a
3. Raspberry Pi
4. Modul Kamera
5. Dudukan Stabilizer Kamera cetak 3-D
6. Smartphone dengan ponsel MATLAB terpasang
7. Laptop/Komputer yang sudah terpasang MATLAB
Langkah 2: Koneksi
Langkah ini tentang menghubungkan Raspberry Pi ke robot, kedua menghubungkan robot ke komputer Anda, dan menghubungkan smartphone ke komputer.
Bagian termudah dari proses ini adalah menghubungkan Raspberry Pi ke robot Anda, karena Raspberry Pi dipasang di bagian atas robot. Ada kabel dari robot yang harus Anda lakukan adalah mencolokkan ke sisi Raspberry Pi.
Langkah selanjutnya adalah menghubungkan robot ke komputer Anda sehingga Anda dapat menjalankan perintah untuk robot untuk melakukan. Hal pertama yang harus Anda lakukan adalah menghubungkan komputer Anda ke jaringan nirkabel yang dibuat roomba Anda. Sekarang, disarankan agar Anda menggunakan ikon Set Path di MATLAB untuk mengatur path sehingga Anda dapat menggunakan fungsi-fungsi di toolbox Roomba dari MATLAB. Setiap kali Anda memulai dan mengakhiri penggunaan dengan robot, Anda harus melakukan "Salut Dua Jari" dengan keras untuk menyetel ulang robot, yang berarti Anda menahan tombol dok dan titik selama sepuluh detik hingga lampu meredup yang menunjukkan untuk melepaskan. Anda berhasil dengan hard reset ini jika Anda mendengar robot memainkan skala pendek. Selanjutnya Anda harus terhubung ke roomba menggunakan baris kode seperti ini "r=roomba(x)" di mana 'x' adalah nomor yang ditunjuk untuk robot yang Anda miliki.
Terakhir, Anda perlu mengunduh MATLAB mobile di perangkat seluler apa pun yang akan Anda gunakan untuk proyek ini, dan aplikasi ini tersedia di perangkat Android dan Apple. Setelah aplikasi diinstal, Anda harus masuk menggunakan kredensial Anda. Kemudian Anda harus menghubungkan perangkat ini ke komputer Anda, menggunakan tab berlabel "Lainnya" -> lalu klik "pengaturan' -> lalu klik "Tambahkan komputer" ini akan memunculkan layar yang ditunjukkan pada gambar di atas. langkah selanjutnya yang harus Anda lalui hanyalah memasukkan dan menenggak informasi yang diminta. Setelah Anda berhasil terhubung, Anda akan dapat memanggil fungsi yang Anda tetapkan di komputer di ponsel Anda untuk mengontrol robot Anda.
Langkah 3: Secara Logis Membuat Kode MATLAB untuk Menggunakan Sensor
Kode akan paling mudah dibuat ketika sebagian besar berada di dalam while loop, sehingga roomba dapat terus memperbarui nilai valid yang dilihatnya. Jika ada kesalahan, MATLAB akan menampilkan kesalahan dan di mana kesalahan itu muncul dalam kode, membuat pemecahan masalah relatif sederhana.
Dirancang dalam MATLAB r2018a, kode ini menggunakan kotak peralatan standar, kotak peralatan Buat iRobot, serta kotak peralatan seluler MATLAB. Roomba yang digunakan dalam contoh ini ditetapkan sebagai 26, dan r=roomba(26) hanya perlu dijalankan sekali untuk sepenuhnya berkomunikasi dengan roomba.
Kode:
fungsi parkassist(x)jika x==1
r=roomba(26) % terhubung ke roomba
sementara benar
r.setDriveVelocity(.05,.05) % menyetel roomba ke kecepatan mengemudi yang lebih lambat
bump=r.getBumpers % mendapatkan data dari sensor bump
cliff=r.getCliffSensors % mendapatkan data dari sensor tebing
light=r.getLightBumpers % mendapatkan data dari sensor light bump
img=r.getImage;% membaca kamera dari robot
red_mean = mean(mean(img(:,:, 1))) % membaca jumlah rata-rata piksel merah
green_mean = mean(mean(img(:,:, 2))) % membaca jumlah rata-rata piksel hijau
blue_mean = mean(mean(img(:,:, 3))) % membaca jumlah rata-rata piksel biru
if bump.front == 1% membaca sensor front bump
r.stop %stop roomba
msgbox('Path Obscured!', 'Parking Assistant Message') %menampilkan pesan yang mengatakan path dikaburkan break % mengakhiri loop
elseif green_mean >150
r.stop %stop roomba
cont = questdlg('Lanjutkan?', 'Jalur Selesai') %menampilkan kotak pertanyaan yang meminta untuk melanjutkan
jika lanjutan == 'Ya'
parkassist(1) %memulai ulang kode
lain
akhir
break% mengakhiri loop
elseif red_mean > 140
r.turnAngle(45) %mengubah ruangan menjadi 45 derajat
r.timeStart %memulai penghitung waktu
sementara benar
r.setDriveVelocity(.05,.05) %menyetel kecepatan roomba
time=r.timeGet %menetapkan waktu ke variabel
bump=r.getBumpers % mendapatkan data dari sensor bump
cliff=r.getCliffSensors % mendapatkan data dari sensor tebing
light=r.getLightBumpers % mendapatkan data dari sensor light bump
img=r.getImage;% membaca kamera dari robot
red_mean = mean(mean(img(:,:, 1))) % membaca jumlah rata-rata piksel merah
green_mean = mean(mean(img(:,:, 2))) % membaca jumlah rata-rata piksel hijau
blue_mean = mean(mean(img(:,:, 3))) % membaca jumlah rata-rata piksel biru
jika blue_mean > 120
r.moveDistance(-0.01) %memindahkan roomba mundur pada jarak yang ditentukan laguPlay(r, 'T400, C, D, E, F, G, A, B, C^', 'true') % memainkan tangga nada musik yang naik
msgbox('Water Found!', 'Parking Assistant Message') % menampilkan pesan yang mengatakan air telah ditemukan r.turnAngle(-80) %rotates roomba 80 derajat
break% mengakhiri loop saat ini
elseif light.rightFront > 25 || light.leftFront > 25% membaca sensor light bump
r.moveDistance(-0.01) % menggerakkan roomba mundur sejauh yang ditentukan
r.turnAngle(-35) % memutar roomba 35 derajat
break %mengakhiri loop saat ini
elseif cliff.rightFront < 2500 && cliff.leftFront < 2500 %membaca kedua sensor tebing
r.moveDistance(-0.1) % menggerakkan roomba mundur sejauh yang ditentukan
r.turnAngle(-80) %memutar ruanganba 80 derajat
break% mengakhiri loop saat ini
waktu lain jika >= 3
r.stop %stop roomba
contin=questdlg('Station Free, Continue?', 'Parking Assistant Message') %menanyakan apakah roomba harus dilanjutkan jika contin == 'Ya'
r.turnAngle(-90) % memutar ruangan sebesar 90 derajat
parkassist(1) %memulai ulang fungsi
lain
r.stop % menghentikan roomba
akhir
lain
akhir
akhir
elseif cliff.rightFront < 2500 && cliff.leftFront < 2500 %membaca kedua sensor tebing
r.moveDistance(-0.1) %memindahkan roomba mundur sejauh yang ditentukan
r.turnAngle(-90) %memutar ruanganba 90 derajat
elseif cliff.rightFront < 2500 %membaca sensor tebing kanan
r.turnAngle(-5) % sedikit memutar roomba ke arah yang berlawanan dari sensor tebing
elseif cliff.leftFront < 2500 %membaca sensor tebing kiri
r.turnAngle(5) % sedikit memutar roomba ke arah yang berlawanan dari sensor tebing
lain
akhir
akhir
akhir
Langkah 4: Menguji Kode dan Robot
Setelah kode dikembangkan, langkah selanjutnya adalah menguji kode dan robot. Karena ada banyak penyesuaian berbeda yang dapat dibuat dalam kode, seperti sudut putaran robot, kecepatan bergerak, dan ambang batas untuk setiap warna, cara terbaik untuk mengetahui nilai-nilai ini untuk robot Anda adalah dengan menguji mereka dan berubah saat Anda pergi. Untuk setiap hari kerja yang kami miliki, kami terus-menerus mengubah nilai-nilai ini karena beberapa di antaranya bergantung pada lingkungan tempat robot Anda beroperasi. Cara terbaik yang kami temukan adalah menempatkan roomba di jalur yang Anda inginkan, dan memiliki penghalang yang cukup tinggi sehingga kamera tidak dapat mendeteksi warna yang tidak Anda inginkan. Langkah selanjutnya biarkan berjalan dan tunjukkan warna yang Anda inginkan, saat Anda ingin menyelesaikan tugas itu. Saat Anda pergi, jika Anda melihat masalah, hal terbaik yang harus dilakukan adalah mendorong bumper depan, membuatnya berhenti, lalu mengubah parameter yang bermasalah.
Langkah 5: Pengenalan Kesalahan
Dengan setiap proyek yang diselesaikan, selalu ada sumber kesalahan. Bagi kami, kami mengalami kesalahan dengan fakta sederhana bahwa robot tidak tepat dengan sudut belokan, jadi jika Anda menyuruhnya berputar 45 derajat, itu tidak akan tepat. Sumber kesalahan lain bagi kami adalah terkadang robot tidak berfungsi, dan Anda harus menyetel ulang sebelum berfungsi kembali. Sumber kesalahan utama terakhir bagi kami adalah bahwa kode yang sama tidak akan memiliki efek yang sama pada robot yang berbeda, jadi Anda mungkin harus bersabar dan menyesuaikannya.
Langkah 6: Kesimpulan
Sekarang Anda memiliki semua alat untuk bermain-main dengan roomba Anda, yang berarti Anda dapat memanipulasi kode dengan cara apa pun yang Anda inginkan untuk mencapai tujuan yang Anda inginkan. Ini harus menjadi bagian terbaik dari hari Anda, jadi bersenang-senanglah dan berkendaralah dengan aman!