Daftar Isi:

Roomba Parking Pal: 6 Langkah
Roomba Parking Pal: 6 Langkah

Video: Roomba Parking Pal: 6 Langkah

Video: Roomba Parking Pal: 6 Langkah
Video: Tones and I - Dance Monkey (Lyrics) 2024, Juli
Anonim
Tempat Parkir Roomba
Tempat Parkir Roomba

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

Bahan
Bahan
Bahan
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

Logikanya Membuat Kode MATLAB untuk Menggunakan Sensor
Logikanya 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

Menguji Kode dan Robot
Menguji Kode dan Robot
Menguji Kode dan Robot
Menguji Kode dan Robot
Menguji Kode dan Robot
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!

Direkomendasikan: