Daftar Isi:

Mars Roomba: 6 Langkah
Mars Roomba: 6 Langkah

Video: Mars Roomba: 6 Langkah

Video: Mars Roomba: 6 Langkah
Video: Amazing arduino project 2024, Juli
Anonim
Mars Roomba
Mars Roomba

Instruksi ini akan memandu Anda ke arah pengoperasian bot vakum Roomba yang dikendalikan Raspberry Pi. Sistem operasi yang akan kita gunakan adalah melalui MATLAB.

Langkah 1: Persediaan

Apa yang perlu Anda kumpulkan untuk melaksanakan proyek ini:

  • bot penyedot debu Create2 Roomba dari iRobot
  • Raspberry Pi
  • Kamera Raspberry Pi
  • Versi terbaru MATLAB
  • Kotak alat penginstalan Roomba untuk MATLAB
  • Aplikasi MATLAB untuk perangkat seluler

Langkah 2: Pernyataan Masalah

Pernyataan Masalah
Pernyataan Masalah

Kami ditugaskan untuk menggunakan MATLAB untuk mengembangkan penjelajah yang dapat digunakan di Mars untuk membantu para ilmuwan dalam mengumpulkan data planet. Fungsi yang kami bahas dalam proyek kami adalah kendali jarak jauh, pengenalan dampak objek, pengenalan air, pengenalan kehidupan, dan pemrosesan gambar. Untuk mencapai prestasi ini, kami membuat kode menggunakan perintah kotak peralatan Roomba untuk memanipulasi banyak fungsi dari Create2 Roomba iRobot.

Langkah 3: Kendali Jarak Jauh Bluetooth

Kendali Jarak Jauh Bluetooth
Kendali Jarak Jauh Bluetooth

Slide ini akan memandu kode untuk mengontrol pergerakan Roomba menggunakan kemampuan Bluetooth perangkat smartphone Anda. Untuk memulai, unduh aplikasi MATLAB ke ponsel cerdas Anda dan masuk ke akun Mathworks Anda. Setelah masuk, buka "lebih", "pengaturan", dan sambungkan ke komputer Anda menggunakan alamat IP-nya. Setelah terhubung, kembali ke "lebih" dan pilih "sensor." Ketuk sensor ketiga di bilah alat atas layar, dan ketuk mulai. Sekarang, smartphone Anda adalah remote control!

Kodenya adalah sebagai berikut:

sedangkan 0 == 0

jeda(.5)

PhoneData = M. Orientasi;

Azi = Data Telepon(1);

Pitch = Data Telepon(2);

Samping = PhoneData(3);

benjolan = r.getBumper;

jika Sisi>80 || Sisi<-80

r.stop

r.bip('C, E, G, C^, G, E, C')

merusak

elseif Sisi>20 && Sisi<40

r.turnAngle(-5);

elseif Sisi> 40

r.turnAngle(-25);

elseif Sisi-40

r.turnAngle(5);

sisi lain jika <-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: Pengenalan Dampak

Pengenalan Dampak
Pengenalan Dampak

Fungsi lain yang kami terapkan adalah mendeteksi dampak Roomba ke dalam objek dan kemudian memperbaiki jalurnya saat ini. Untuk melakukan ini, kami harus menggunakan kondisional dengan pembacaan dari sensor bumper untuk menentukan apakah suatu objek dipukul. Jika robot menabrak objek, ia akan mundur sejauh.2 meter, dan berputar pada sudut yang ditentukan oleh bumper mana yang dipukul. Setelah item dipukul, menu muncul menampilkan kata "oof."

Kode ditunjukkan di bawah ini:

sedangkan 0 == 0

benjolan = r.getBumper;

r.setDriveVelocity(.1)

jika terbentur.kiri == 1

msgbox('Aduh!');

r.moveDistance (-0,2)

r.setTurnVelocity(.2)

r.turnAngle (-35)

r.setDriveVelocity(.2)

elseif bumps.front == 1

msgbox('Aduh!');

r.moveDistance (-0,2)

r.setTurnVelocity(.2)

r.turnAngle(90)

r.setDriveVelocity(.2)

elseif bumps.right == 1

msgbox('Aduh!');

r.moveDistance (-0,2)

r.setTurnVelocity(.2)

r.turnAngle(35)

r.setDriveVelocity(.2)

elseif bumps.leftWheelDrop ==1

msgbox('Aduh!');

r.moveDistance (-0,2)

r.setTurnVelocity(.2)

r.turnAngle (-35)

r.setDriveVelocity(.2)

elseif bumps.rightWheelDrop ==1

msgbox('Aduh!');

r.moveDistance (-0,2)

r.setTurnVelocity(.2)

r.turnAngle(35)

r.setDriveVelocity(.2)

akhir

akhir

Langkah 5: Pengakuan Kehidupan

Pengakuan Hidup
Pengakuan Hidup

Kami mengkodekan sistem pengenalan kehidupan untuk membaca warna objek di depannya. Tiga jenis kehidupan yang kami kodekan adalah tumbuhan, air, dan alien. Untuk melakukan ini, kami mengkodekan sensor untuk menghitung nilai rata-rata merah, biru, hijau, atau putih. Nilai-nilai ini dibandingkan dengan ambang batas yang ditetapkan secara manual untuk menentukan warna yang dilihat kamera. Kode juga akan memplot jalur ke objek dan membuat peta.

Kodenya adalah sebagai berikut:

t = 10;

saya = 0;

sedangkan t == 10

img = r.getGambar; tampilkan (img)

jeda(0.167)

saya = saya + 1;

red_mean = mean(rata-rata(img(:,:, 1)));

blue_mean = mean(rata-rata(img(:,:, 3)));

green_mean = mean(rata-rata(img(:,:, 2)));

white_mean = (blue_mean + green_mean + red_mean) / 3; %ingin nilai ini kira-kira 100

sembilan_plus_ten = 21;

green_threshold = 125;

ambang_biru = 130;

ambang_putih = 124;

ambang_merah = 115;

sementara nine_plus_ten == 21 %hijau - hidup

if green_mean > green_threshold && blue_mean < blue_threshold && red_mean < red_threshold

r.moveDistance(-.1)

a = msgbox('kemungkinan sumber kehidupan ditemukan, lokasi diplot');

jeda (2)

hapus (a)

[y2, Fs2] =audioread('z_speak2.wav');

suara (y2, Fs2)

jeda (2)

%tanaman = r.getImage; %imshow(tanaman);

%save('plant_img.mat', tanam');

%plot lokasi berwarna hijau

saya = 5;

merusak

lain

sembilan_plus_ten = 19;

akhir

akhir

sembilan_plus_ten = 21;

sementara nine_plus_ten == 21 %biru - heran

if blue_mean > blue_threshold && green_mean < green_threshold && white_mean < white_threshold && red_mean < red_threshold

r.moveDistance(-.1)

a = msgbox('sumber air telah ditemukan, lokasi diplot');

jeda (2)

hapus (a)

[y3, Fs3] =audioread('z_speak3.wav');

suara(y3, Fs3);

%woder = r.getImage; %imshow(mengherankan)

%save('water_img.mat', woder)

%plot lokasi dengan warna biru

saya = 5;

merusak

lain

sembilan_plus_ten = 19;

akhir

akhir

sembilan_plus_ten = 21;

sementara nine_plus_ten == 21 %putih - alien monkaS

if white_mean > white_threshold && blue_mean < blue_threshold && green_mean < green_threshold

[y5, Fs5] =audioread('z_speak5.wav');

suara(y5, Fs5);

jeda(3)

r.setDriveVelocity(0,.5)

[ys, Fss] =audioread('z_scream.mp3');

suara(ys, Fss);

jeda(3)

r.stop

% alien = r.getImage; %imshow(alien);

% save('alien_img.mat', alien);

saya = 5;

merusak

lain

sembilan_plus_ten = 19;

akhir

akhir

jika saya == 5

a = 1; % putaran sudut

t = 9; %mengakhiri putaran besar

saya = 0;

akhir

akhir

Langkah 6: Jalankan

Setelah semua kode ditulis, gabungkan semuanya menjadi satu file dan voila! Bot Roomba Anda sekarang akan berfungsi penuh dan beroperasi seperti yang diiklankan! Namun, kontrol Bluetooth harus berada dalam file terpisah atau terpisah dari kode lainnya dengan %%.

Nikmati menggunakan robot Anda!!

Direkomendasikan: