Daftar Isi:

Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)
Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)

Video: Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)

Video: Roomba Dengan MATLAB: 4 Langkah (dengan Gambar)
Video: Getting Started with MATLAB Support Package for Raspberry Pi 2024, November
Anonim
Roomba Dengan MATLAB
Roomba Dengan MATLAB

Proyek ini menggunakan MATLAB dan robot yang dapat diprogram iRobot Create2. Dengan menguji pengetahuan kami tentang MATLAB, kami dapat memprogram Create2 untuk menginterpretasikan gambar dan mendeteksi sinyal. Fungsionalitas robot terutama bergantung pada aplikasi seluler MATLAB dan modul kamera Raspberry Pi.

Langkah 1: Bagian dan Bahan

Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan
Bagian dan Bahan

1. iRobot Buat, Versi 2

- Ini adalah robot yang dapat diprogram yang terlihat seperti Roomba. Ketahuilah bahwa produk dari iRobot ini bukan ruang hampa. Hal ini dimaksudkan untuk pemrograman kustom oleh pengguna.

2. MATLAB 2017a

- Sebagian besar versi lama akan kompatibel dengan kode yang kami gunakan di bawah ini. MATLAB akan mengidentifikasi perintah yang tidak kompatibel dengan versi yang Anda miliki dan akan menyarankan perintah yang paling sesuai.

3. Raspberry Pi 3 Model B, Versi 1.2

- Periksa untuk melihat Raspberry Pi mana yang kompatibel dengan iRobot Anda. Lihat tautan ini untuk bantuan lebih lanjut: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Instruksi ini mengasumsikan Anda bekerja dengan Raspberry Pi yang telah diprogram sebelumnya. Perlu diketahui bahwa Anda harus bekerja dengan Pi yang telah diprogram sebelumnya agar langkah-langkah berikut dapat berfungsi. Menggunakan Pi yang telah diprogram akan memungkinkan Anda untuk melakukan semua pengkodean Anda di MATLAB saja.

4. Modul Kamera V2 (untuk Raspberry Pi)

- Anda mungkin terkejut; terlepas dari ukurannya, Modul Kamera Raspberry Pi memiliki kualitas yang sangat baik. Ini adalah opsi termurah dan paling kompatibel untuk proyek ini.

Opsional: Dudukan cetak 3D. Ini digunakan untuk menstabilkan kamera. Ini tidak mempengaruhi fungsionalitas robot, tetapi akan membantu membantu pengkodean Anda jika Anda ingin menggunakan data pencitraan untuk pengenalan warna dan/atau objek.

Langkah 2: Konfigurasi

Konfigurasi
Konfigurasi
Konfigurasi
Konfigurasi

1. Menghubungkan Raspberry Pi dan modul kamera (Hardware)

- Untuk memberi daya pada Raspberry Pi, Anda perlu menjalankan USB mikro ujung jantan ke port daya betina pada mikrokontroler. Opsional: Pengatur tegangan dapat digunakan untuk memastikan tegangan tidak melebihi 5V. Setelah menyalakan Raspberry Pi, Anda dapat menghubungkannya ke robot Anda dengan menjalankan male end USB a dari motherboard ke port USB A pada mikrokontroler.

- Setelah menghubungkan Pi ke Roomba, kamera siap dipasang. Modul Kamera akan jauh lebih kecil dari yang Anda harapkan. Perhatikan bahwa lensa dipasang ke sensor, dan pita putih memanjang dari kamera. JANGAN melepas atau merobek pita! Ini adalah kabel yang Anda butuhkan untuk menghubungkannya ke Raspberry Pi. Pertama, pegang ujung pita dan temukan konektor perak dan kabel biru. Ini berada di sisi yang berlawanan. Selanjutnya, temukan slot antara port ethernet dan HDMI di Raspberry Pi Anda. Perhatikan ada kunci putih kecil yang menutupinya. Angkat kunci secara perlahan, tetapi jangan lepaskan dari slotnya, karena akan patah dan rusak secara permanen. Setelah Anda mengangkat kunci, ambil pita dan arahkan konektor perak ke port HDMI. Sisi biru akan menghadap port Ethernet. Perlahan geser pita ke dalam slot saat masih terbuka. Anda tidak perlu memaksanya masuk ke dalam slot. Setelah penyisipan, dorong kunci kembali ke bawah. Jika kamera Anda diamankan dengan benar, Anda seharusnya dapat (dengan lembut) menarik pita dan merasakan ketegangan. Pita tidak boleh longgar. Setelah menghubungkan kamera Anda ke Pi, Anda mungkin memperhatikan betapa longgarnya itu. Inilah sebabnya kami menggunakan dudukan cetak 3D untuk menstabilkannya. Adalah pilihan Anda untuk menentukan bahan apa yang ingin Anda gunakan untuk menjaga kamera Anda tetap diam untuk pencitraan berkualitas tinggi.

2. Menginstal File yang Tepat dan Menghubungkan Roomba ke Komputer Anda Setelah semua perangkat keras Anda dikonfigurasi, Anda sekarang dapat melanjutkan untuk menginstal MATLAB bersama dengan m-file terkait yang memungkinkan Anda untuk berkomunikasi dengan robot. Untuk melakukan ini, buka MATLAB dan buat folder baru untuk menyimpan semua file terkait. Gunakan skrip ini untuk menginstal/memperbarui file yang diperlukan:

- Semua file sekarang akan muncul di folder yang Anda buat. Klik kanan di jendela Folder Saat Ini dan pilih 'Tambahkan ke Jalur' untuk menambahkan jalur itu ke daftar direktori tempat MATLAB mencari file. Pastikan semua file Anda berada di jalur yang benar.

3. Setelah file terinstal, Anda sekarang dapat mulai terhubung ke robot Anda. Mulailah dengan menyalakan robot Anda dan kemudian hard reset langsung setelah start up (jangan lupa hard reset robot Anda setiap kali sebelum dan sesudah digunakan). Kedua, hubungkan robot dan laptop Anda ke jaringan wifi yang sama. Setelah ini, kita akan berbicara dengan Raspberry Pi yang telah diprogram melalui MATLAB dengan memanggil Roomba menggunakan nama yang diberikan dan fungsi roomba. Sebagai contoh, saya akan menghubungkan ke robot 28 dengan menggunakan baris berikut: R = roomba(28).

- Perhatikan bagaimana saya menetapkan objek ke variabel R. Sekarang saya dapat mengakses fungsi Roomba terkait dari file instal dengan memperlakukan variabel R seperti struktur.

- R.turnAngle(90) Jika semuanya berjalan dengan baik, nada musik akan diputar, mengkonfirmasikan koneksi.

Langkah 3: Logika MATLAB

Dokumen PDF di bagian bawah langkah ini adalah bagan alur logika terperinci untuk proses pengkodean kami di MATLAB. Kami mengaktifkan sensor tebing, cahaya, dan tonjolan cahaya untuk memungkinkan robot berkomunikasi dengan kami saat mendeteksi objek di sekitarnya. Misalnya, ketika robot bergerak maju, sensor cahayanya memindai objek di jalurnya sesuai dengan vektor yang dilaluinya. Kami memilih ambang jarak untuk robot sehingga ketika mendekati suatu objek, ia akan mundur alih-alih bertabrakan dengannya. Robot kami juga dikonfigurasi dengan Twitter, yang kami tentukan dalam proses pengkodean kami (ini akan ditampilkan di bawah).

Untuk meningkatkan pengalaman, kami menggunakan aplikasi MATLAB di perangkat seluler kami sehingga kami dapat mengontrol gerakan robot hanya dengan memiringkan ponsel kami. Ini adalah aktivitas opsional, karena Anda pasti dapat membuat robot bergerak dengan menggunakan perintah moveDistance di segmen kode MATLAB. Ingatlah bahwa menggunakan perintah MATLAB untuk mengontrol robot Anda lebih disukai jika tujuan Anda tepat. Jika Anda ingin mengarahkan robot Anda sehingga kamera mengambil gambar di lokasi tertentu, mungkin lebih baik untuk mengkodekan gerakan robot di MATLAB. Sementara menghibur, menggunakan aplikasi MATLAB untuk mengontrol robot Anda tidak diinginkan untuk akurasi.

Kode memerintahkan Roomba untuk melakukan pengaturan dasar kemudian melanjutkan melalui loop berkelanjutan. Awalnya laptop akan menyiapkan tautan dengan Roomba menggunakan perintah Roomba(). Itu juga mengatur koneksi Twitter menggunakan perintah webwrite() di MATLAB. Loop berisi lima aliran logis utama tergantung pada lingkungan di sekitar Roomba. Pertama, Roomba memeriksa rintangan, dan menyesuaikan ke belakang jika ternyata terhalang. Tertanam dalam loop itu adalah jalur kedua yang memperingatkan pengguna jika Roomba sedang dibawa pergi. Utilitas penting di Zona Perang Mars yang keras. Setelah Roomba menentukan posisinya aman, ia melihat ke perangkat seluler untuk menentukan gerakan selanjutnya. Jika perangkat seluler dimiringkan ke depan, ia akan menghitung kecepatan dasar tergantung pada tingkat keparahan pengukuran gulungan daripada menyesuaikan kecepatan roda individu untuk berbelok berdasarkan tingkat pitch. Ponsel ini juga dapat menggerakkan Roomba secara terbalik. Status perangkat seluler netral membuka dua jalur terakhir. Roomba yang sedang beristirahat akan mencari bendera Alien dan memperingatkan pengguna dengan tepat.

Di bawah ini adalah kode kami (selesai dalam MATLAB 2017a)

% input: Data orientasi dari perangkat yang terhubung wifi, kamera

%informasi, data sensor

%output: gerakan dikendalikan oleh perangkat yang terhubung dengan wifi dan gerakan

% adalah keamanan diperiksa dengan membaca data sensor. Jika kamera mendeteksi

% bendera alien kemudian roomba merespons dengan menge-tweet bendera musuh

% telah terlihat.

%tujuan: perangkat kita hidup tanpa tujuan kecuali untuk melindungi mereka yang

% membuatnya, ia melayani penciptanya dan melakukannya

% persis seperti yang diceritakan.

% Penggunaan: pada dasarnya program akan berjalan sendiri.

hapus semua, tutup semua, clc

%Menginisialisasi Objek dan Variabel

r=kamarba(28);

m=pengembangan seluler;

%use response = webwrite(nama host, data)

hostname = 'https://api.thingspeak.com/apps/thingtweet/1/status/update';

API='SGZCTNQXCWAHRCT5';

tweet='RoboCop Beroperasi…Menunggu Perintah';

data = strcat('api_key=', API, '&status=', tweet);

respon=penulisan web(nama host, data);

%terus berjalan loop

sementara 1 = 1

%Struktur yang Mengandung Data Relavent

o=m.orientasi; %orientasi Perangkat Seluler

cahaya=r.getLightBumpers(); % Nilai Bumper Ringan

a = r.getCliffSensors(); % Nilai Sensor Tebing

benjolan = r.getBumper(); % Sensor Bumper

%periksa bumper

jika bertemu.kanan==1 || bump.left==1 ||bump.front==1

r.moveDistance(-.2,.2);

%periksa Sensor cahaya

elseif light.left>60 || light.leftDepan>60 || light.leftTengah>60 || light.right>60 || light.rightFront>60 || light.rightCenter>60

r.moveDistance(-.2,.2);

%periksa Sensor Tebing

%Sinyal dan pemberitahuan Anti-Pencurian

lainjika a.kiri<300 && a.kanan<300 && a.kiriDepan<300 && a.kananDepan<300

r.stop();

r.bip();

tweet='RoboCop telah dicabut!'

data = strcat('api_key=', API, '&status=', tweet);

respon=penulisan web(nama host, data);

%Operasi Penghindaran Tebing Normal

lain jika a.kiri<300 || a.benar<300 || a.kiriDepan<300 || a.depan kanan<300

r.moveDistance(-.2,.2);

%Roomba lulus pemeriksaan dan sekarang akan berjalan dengan operasi normal.

%Awalnya gulungan perangkat diukur dan menjadi alas

%kecepatan yang kemudian digunakan untuk menghitung kecepatan roda

%Gerakan Maju

elseif o(3)>=0 && o(3)<=60

baseVel=(-.5/60)*(o(3)-60);

jika o(2)>=-70 && o(2)<0

r.setDriveVelocity(baseVel+(.3/50)*abs(o(2)), baseVel-(.3/50)*abs(o(2)));

jika tidak o(2)=0

r.setDriveVelocity(baseVel-(.3/50)*abs(o(2)), baseVel+(.3/50)*abs(o(2)));

lain r.stop

akhir

%Gerakan Mundur

lainjika o(3)>100 && o(3)<150

r.setDriveVelocity(-.2, -.2)

r.bip();

r.bip();

%resting roomba akan mencari Bendera Alien yang ditandai sebagai fluorescent

% hijau Sepotong kertas

lain

r.stop

img=r.getGambar(); %ambil gambar

ambang=graythresh(img(200:383,:, 2))+.1; %kalkulasi level hijau

jika ambang >.42

tweet='Musuh Terlihat!!'

data = strcat('api_key=', API, '&status=', tweet);

respon=penulisan web(nama host, data);

lain

r.stop

akhir

akhir

akhir

Langkah 4: Kesimpulan

Ingat, Anda dapat menggunakan skrip yang kami tulis di atas, tetapi Anda selalu dapat mengubahnya sesuai dengan kebutuhan Anda. Itu tidak harus dikendalikan oleh ponsel Anda! (Namun, itu membuatnya lebih menyenangkan.) Pilih metode mana yang ingin Anda gunakan untuk mengontrol robot Anda. Berkeliling dengan robot Anda dan nikmatilah!

Direkomendasikan: