Isi kandungan:
- Langkah 1: Bekalan
- Langkah 2: Penyataan Masalah
- Langkah 3: Alat Kawalan Jauh Bluetooth
- Langkah 4: Pengiktirafan Kesan
- Langkah 5: Pengiktirafan Hidup
- Langkah 6: Jalankan
Video: Mars Roomba: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Instructable ini akan membimbing anda ke arah mengendalikan bot vakum Roomba yang dikendalikan Raspberry Pi. Sistem operasi yang akan kita gunakan adalah melalui MATLAB.
Langkah 1: Bekalan
Apa yang perlu anda kumpulkan untuk melaksanakan projek ini:
- Bot pembersih vakum iRobot's Create2 Roomba
- Pai raspberi
- Kamera Raspberry Pi
- Versi MATLAB terkini
- Kotak alat pemasangan Roomba untuk MATLAB
- Aplikasi MATLAB untuk peranti selular
Langkah 2: Penyataan Masalah
Kami ditugaskan untuk menggunakan MATLAB untuk mengembangkan rover yang dapat digunakan di Mars untuk membantu para saintis mengumpulkan data planet. Fungsi yang kami hadapi dalam proyek kami adalah alat kawalan jauh, pengecaman dampak objek, pengecaman air, pengecaman hidup, dan pemrosesan gambar. Untuk mencapai prestasi ini, kami membuat kod menggunakan perintah kotak alat Roomba untuk memanipulasi banyak fungsi Create2 Roomba iRobot.
Langkah 3: Alat Kawalan Jauh Bluetooth
Slaid ini akan menerangkan kod untuk mengawal pergerakan Roomba menggunakan keupayaan Bluetooth pada peranti telefon pintar anda. Untuk memulakan, muat turun aplikasi MATLAB ke telefon pintar anda dan log masuk ke akaun Mathworks anda. Setelah log masuk, pergi ke "lebih banyak", "tetapan", dan sambungkan ke komputer anda menggunakan alamat IP-nya. Setelah disambungkan, kembali ke "lebih banyak" dan pilih "sensor." Ketuk sensor ketiga di bar alat atas layar, dan ketuk mula. Sekarang, telefon pintar anda adalah alat kawalan jauh!
Kodnya adalah seperti berikut:
sementara 0 == 0
jeda (.5)
PhoneData = M. Orientasi;
Azi = DataData (1);
Pitch = DataData (2);
Sebelah = DataData (3);
lebam = r.getBumpers;
jika Sebelah> 80 || Sebelah <-80
r.berhenti
r. beep ('C, E, G, C ^, G, E, C')
rehat
otherif Side> 20 && Side <40
r.turnAngle (-5);
otherif Side> 40
r.turnAngle (-25);
lain-lain jika sisi-40
r.turnAngle (5);
otherif Sebelah <-40
r.turnAngle (25);
akhir
jika Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
akhir
akhir
Langkah 4: Pengiktirafan Kesan
Fungsi lain yang kami laksanakan adalah untuk mengesan kesan Roomba ke dalam objek dan kemudian membetulkan jalannya yang sekarang. Untuk melakukan ini, kita harus menggunakan syarat dengan pembacaan dari sensor bumper untuk menentukan apakah objek disambar. Sekiranya robot memukul objek, ia akan mundur 0,2 meter, dan berputar pada sudut yang ditentukan oleh bumper mana yang dipukul. Setelah item dipukul, menu muncul memaparkan kata "oof."
Kod ditunjukkan di bawah:
sementara 0 == 0
lebam = r.getBumpers;
r.setDriveVelocity (.1)
jika bumps.left == 1
kotak msg ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
kotak msg ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
kotak msg ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
kotak msg ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
kotak msg ('Oof!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
akhir
akhir
Langkah 5: Pengiktirafan Hidup
Kami mengodkan sistem pengecaman hidup untuk membaca warna objek di hadapannya. Tiga jenis kehidupan yang kita kodkan adalah tumbuhan, air, dan makhluk asing. Untuk melakukan ini, kami mengodkan sensor untuk mengira nilai purata merah, biru, hijau, atau putih. Nilai-nilai ini dibandingkan dengan ambang yang ditetapkan secara manual untuk menentukan warna yang dilihat kamera. Kod ini juga akan memplot jalan ke objek dan membuat peta.
Kodnya adalah seperti berikut:
t = 10;
i = 0;
sementara t == 10
img = r.getImage; imshow (img)
jeda (0.167)
i = i + 1;
red_mean = min (min (img (:,:, 1)));
blue_mean = min (min (img (:,:, 3)));
green_mean = min (min (img (:,:, 2)));
white_mean = (blue_mean + green_mean + red_mean) / 3; % mahukan nilai ini lebih kurang 100
nine_plus_ten = 21;
green_threshold = 125;
blue_threshold = 130;
white_threshold = 124;
red_threshold = 115;
sementara sembilan_plus_ten == 21% hijau - hidup
jika green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('kemungkinan sumber kehidupan dijumpai, lokasi diplot');
berhenti sebentar (2)
padam (a)
[y2, Fs2] = audioread ('z_speak2.wav');
bunyi (y2, Fs2)
berhenti sebentar (2)
% tanaman = r.getImage; % imshow (tanaman);
% jimat ('plant_img.mat', plant ');
% lokasi plot dalam warna hijau
i = 5;
rehat
yang lain
nine_plus_ten = 19;
akhir
akhir
nine_plus_ten = 21;
sementara Nine_plus_ten == 21% biru - woder
jika blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('sumber air telah dijumpai, lokasi diplot');
berhenti sebentar (2)
padam (a)
[y3, Fs3] = audioread ('z_speak3.wav');
bunyi (y3, Fs3);
% woder = r.getImage; % imshow (woder)
% jimat ('water_img.mat', woder)
% lokasi plot dengan warna biru
i = 5;
rehat
yang lain
nine_plus_ten = 19;
akhir
akhir
nine_plus_ten = 21;
sementara Nine_plus_ten == 21% putih - monkaS alien
jika white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = audioread ('z_speak5.wav');
bunyi (y5, Fs5);
berhenti seketika (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
bunyi (ys, Fss);
berhenti sebentar (3)
r.berhenti
% alien = r.getImage; % imshow (asing);
% simpan ('alien_img.mat', alien);
i = 5;
rehat
yang lain
nine_plus_ten = 19;
akhir
akhir
jika saya == 5
a = 1; % memusingkan sudut
t = 9; % menamatkan gelung besar
i = 0;
akhir
akhir
Langkah 6: Jalankan
Setelah semua kod ditulis, gabungkan semuanya menjadi satu fail dan voila! Bot Roomba anda kini akan berfungsi sepenuhnya dan beroperasi seperti yang diiklankan! Walau bagaimanapun, kawalan Bluetooth harus berada dalam fail yang berasingan atau dipisahkan dari kod yang lain dengan %%.
Selamat menggunakan robot anda !!
Disyorkan:
Mengubah Roomba Anda menjadi Mars Rover: 5 Langkah
Mengubah Roomba Anda menjadi Mars Rover:
Mars Rover Menggunakan Raspberry Pi: 5 Langkah
Mars Rover Menggunakan Raspberry Pi: Sayang semua Pelajar Hebat, saya selalu ingin tahu mengenai mars rover, Mempunyai 6 roda yang dapat melintasi semua permukaan mars dan meneroka pelbagai perkara dari Bumi. Saya juga ingin meneroka sesuatu dengan duduk di komputer riba saya. Oleh itu, sekarang saya mempunyai masa yang tepat untuk membuatnya dan
Raspberry Pi - Autonomous Mars Rover Dengan Penjejakan Objek OpenCV: 7 Langkah (dengan Gambar)
Raspberry Pi - Autonomous Mars Rover Dengan Penjejakan Objek OpenCV: Dikuasakan oleh Raspberry Pi 3, Pengenalan objek Open CV, sensor Ultrasonik dan motor DC yang diarahkan. Rover ini dapat mengesan objek yang dilatihnya dan bergerak di medan mana pun
Projek Mars Roomba UTK: 4 Langkah
Projek Mars Roomba UTK: PENAFIAN: INI HANYA AKAN BEKERJA JIKA ROOMBA DITETAPKAN DALAM CARA YANG SANGAT KHUSUS, INSTRUKTELI INI DIBUAT DAN DIHASILKAN UNTUK DIGUNAKAN OLEH UNIVERSITI PELAJAR DAN FAKULTI TENNESSEEKod ini digunakan untuk menubuhkan Roomba untuk dijalankan secara tempatan bertulis dan s
Dari Roomba ke Rover hanya dalam 5 Langkah !: 5 Langkah
Dari Roomba ke Rover hanya dalam 5 Langkah!: Robot Roomba adalah cara yang menyeronokkan dan mudah untuk mencengkam jari kaki anda dalam dunia robotik. Dalam Instructable ini, kita akan memperincikan cara menukar Roomba sederhana menjadi rover terkawal yang secara serentak menganalisis persekitarannya. Senarai Bahagian1.) MATLAB2.) Roomb