Daftar Isi:

Roomba yang Membantu Astronot: 4 Langkah
Roomba yang Membantu Astronot: 4 Langkah

Video: Roomba yang Membantu Astronot: 4 Langkah

Video: Roomba yang Membantu Astronot: 4 Langkah
Video: TANPA SENGAJA MEREKA PERGI KE BUMI BERUMUR 4 MILYAR TAHUN YANG LALU !!! 2024, Juli
Anonim
Ruang Pembantu Astronot
Ruang Pembantu Astronot

Proyek ini dibuat dengan memanfaatkan Raspberry Pi 3 pada iRobot Create Versi 2. MATLAB digunakan untuk memprogram robot untuk mengikuti instruksi tertentu menggunakan sensor dan kameranya. Sensor dan kamera digunakan untuk melakukan tugas tertentu yang akan mengikuti astronot dan memberinya kemampuan untuk berkomunikasi dengan pangkalannya jika terjadi kesalahan.

Langkah 1: Bagian yang Dibutuhkan

Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan
Bagian yang dibutuhkan

1. iRobot Buat Versi 2

iRobot Create adalah bagian terpenting dari proyek ini karena dapat diprogram dan dapat menjadi representasi yang bagus untuk penjelajah nyata yang mengikuti astronot dan membantu mereka di masa depan

2. Raspberry Pi 3

Raspberry Pi adalah programmable yang digunakan untuk proyek ini. Kode dirancang untuk Pi dan versi Pi terlampir adalah 3 (model B). Papan yang dapat diprogram lainnya seperti arduino dapat digunakan, namun, arduino dan sebagian besar papan lainnya akan memerlukan pengkodean yang berbeda dari yang dijelaskan pada langkah lain

3. Modul Kamera Raspberry Pi

Satu-satunya koneksi asing ke Raspberry Pi yang dibutuhkan untuk proyek ini adalah Modul Kamera. Modul kamera adalah bagian integral dari proyek ini, karena roomba hanya akan melakukan tugas berdasarkan apa yang dilihatnya di kamera

4. MATLAB 2018a

Versi terbaru kedua MATLAB, 2018a, digunakan untuk pengkodean yang terlibat dalam pengaturan ini. Kemungkinan banyak versi MATLAB lain akan bekerja dengan ini karena pemrograman roomba telah ada untuk sementara waktu

Langkah 2: Konfigurasi File dan Kamera

Konfigurasi File dan Kamera
Konfigurasi File dan Kamera

1. Koneksi Raspberry Pi dan Kamera ke roomba

  • Pi dapat terhubung ke iRobot secara langsung dengan micro USB. Itu saja yang dibutuhkan untuk siap digunakan. Namun, disarankan agar ditempatkan dengan aman di roomba seperti yang ditunjukkan pada gambar selama presentasi sejauh ini.
  • Kamera memiliki koneksi langsung ke Raspberry Pi dan sangat disarankan agar sesuatu dibeli atau dibuat untuk memegang kamera secara langsung. Tidak ada gunanya kamera jika tidak dapat ditahan di tempat untuk menunjukkan apa yang dilihat roomba.

2. File

  • Setelah semuanya diatur dan terhubung, pastikan robot disetel ulang dan siap digunakan dengan menahan tombol "Spot" dan "Dock" selama 10 detik secara bersamaan.
  • Disinilah MATLAB pertama kali dibutuhkan. File untuk roomba perlu diinstal terlebih dahulu dan semua yang diperlukan untuk menjalankan file ini adalah kode yang disediakan di tautan ini:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

Langkah 3: Pengujian Roomba Awal

Ada banyak pemeriksaan awal yang harus dilakukan pada roomba untuk memastikannya berfungsi.

1. Pastikan Anda terhubung ke jaringan WiFi yang sama dengan roomba. Tanpa ini, Anda tidak akan pernah terhubung melalui MATLAB.

2. Cari tahu ke nomor berapa roomba Anda ditugaskan sehingga Anda dapat secara khusus terhubung ke roomba yang Anda pilih. Misalnya, jika nomor roomba Anda adalah 30, Anda akan menghubungkannya dengan mengetik roomba(30) ke dalam jendela perintah di MATLAB.

3. Roomba dapat dikontrol melalui struct di MATLAB. Misalnya, jika Anda menetapkan kode untuk roomba(30) ke variabel 'r', robot dapat dipindahkan ke depan dengan perintah r.moveDistance(0.2, 0.1).

4. Ada banyak perintah berbeda yang dapat dikomunikasikan ke roomba dan ini dapat dilihat dengan mengetikkan 'doc roomba' ke dalam jendela perintah.

5. Sensor untuk pembacaan cahaya, benjolan, dan tebing semua dapat dibaca dengan menggunakan perintah yang terlihat di 'doc roomba' tetapi cara untuk memiliki menu yang konstan dan rapi untuk melihat data sensor dapat dilihat dengan menggunakan 'r.testSensors '.

6. Setelah menguji semua ini, perangkat lunak pengumpul gambar robot dapat digunakan untuk membaca dan melihat gambar yang diambil. Kode dasar untuk ini adalah img = r.getImage dan imshow(img);.

7. Nilai RGB pada gambar dapat dicari dengan kode red_mean = mean(mean(img(:,:, 1)));

green_mean = mean(rata-rata(img(:,:, 2))); dan blue_mean=mean(mean(img(:,:, 3)));.

Langkah 4: Contoh Kode MATLAB

Contoh Kode MATLAB
Contoh Kode MATLAB

Pada titik ini, Anda sekarang siap untuk menggunakan sensor dan perangkat lunak pengambilan gambar untuk membuat putaran Anda sendiri pada Prototipe Mars Rover yang Membantu Manusia. Contoh kita adalah mengikuti astronot dengan melacak warna putih dan bergerak ke arahnya. Robot akan berbunyi bip jika sensornya membaca nilai tinggi sehingga astronot dapat mengatur ulang robot jika macet atau pergi dan mengambilnya dan mengatur ulang jika macet di tebing. Namun, itu hanya membaca kesalahan ini selama terlihat putih. Tanpa bisa melihat warna putih, robot akan masuk ke mode error. Itu diprogram untuk mengirim dua jenis email yang berbeda kembali ke home base tergantung pada apa yang dilihatnya. Jika melihat warna kulit astronot, itu jelas tidak bagus, sehingga akan memperingatkan home base jika astronot memiliki kulit yang menunjukkan malfungsi jas. Pesan lain disiapkan jika astronot menghilang begitu saja dari pandangan. Jika tidak ada warna putih atau kulit yang terlihat pada kamera, robot akan berputar dan mengirim email lain, tetapi berbeda. Gambar di mana roomba tidak dapat melihat astronot akan dikirim bersama dengan pesan di email. Kode untuk proyek kami ditunjukkan di bawah ini:

untuk i=1:1:3 img=r.getImage; gambar(img) red_mean = mean(mean(img(:,:, 1))); green_mean = mean(rata-rata(img(:,:, 2))); blue_mean = mean(rata-rata(img(:,:, 3))); jika red_mean > 110 && red_mean 110 && blue_mean 110 && green_mean0 || benjolan.kiri>0 || bump.front>0 r.beep() r.beep() r.beep() r.stop elseif cliff.left<10 || tebing.kiriDepan<10 || tebing.kananDepan<10 || tebing.right700 || light.leftDepan>700 || light.leftTengah>700 || light.rightCenter>700 || light.rightFront>700 || light.right>700 r.beep() r.beep() r.beep() r.beep() r.beep() r.stop lain untuk i=1:2 r.moveDistance(0.2, 0.1) r. setDriveVelocity(.3,.2) r.stop end end end end if green_mean <35 && blue_mean<35 %penampilan warna kulit (perlu disesuaikan berdasarkan warna kulit astronot) r.beep(); r.bip(); r.bip(); surat = '[email protected]'; %mengirim email yang menunjukkan setelan tidak aktif psswd = 'yeah'; host = 'smtp.gmail.com'; pelabuhan = '465'; emailto = '[email protected]'; m_subjek = 'subjek'; m_text = 'tes'; setpref('Internet', 'E_mail', surat); setpref('Internet', 'SMTP_Server', host); setpref('Internet', 'SMTP_Username', email); setpref('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', email); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'benar'); props.setProperty('mail.smtp.auth', 'benar'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'salah'); sendmail(emailto, 'Bantuan!', 'Seragam astronot tidak aktif!', img); akhiri jika red_mean 135 || green_mean 135 || blue_mean 135 untuk j = 1:2 %jika putih tidak dapat ditemukan oleh robot r.turnAngle(360) mail = '[email protected]'; psswd = 'ya'; host = 'smtp.gmail.com'; pelabuhan = '465'; emailto = '[email protected]'; m_subjek = 'subjek'; m_text = 'tes'; setpref('Internet', 'E_mail', surat); setpref('Internet', 'SMTP_Server', host); setpref('Internet', 'SMTP_Username', email); setpref('Internet', 'SMTP_Password', psswd); props = java.lang. System.getProperties; props.setProperty('mail.smtp.user', email); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'benar'); props.setProperty('mail.smtp.auth', 'benar'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'salah'); sendmail(emailto, 'Help!', 'Astronot tidak dapat ditemukan!', img); r.stop end end end

Jelas itu berantakan di sini, tetapi harus digosok setelah disalin. Kata sandi dan email untuk ini harus diberikan oleh mereka yang melakukan proyek ini dengan jelas.

Namun, contoh kami hanyalah salah satu dari banyak cara untuk bermain-main dengan robot ini agar cocok untuk semua orang. Ada banyak hal berbeda yang harus dilakukan, yang dapat Anda sesuaikan dengan diri Anda sendiri.

Direkomendasikan: