Isi kandungan:
- Langkah 1: Bahan Yang Diperlukan
- Langkah 2: Persediaan / Muat turun
- Langkah 3: Kod Bahagian 1: Fungsi Penjejakan
- Langkah 4: Kod Bahagian 2: While Loop
- Langkah 5: Kod Bahagian 3: Bahagian E-mel
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Pada masa ini, rover Mars digunakan untuk mengumpulkan data di permukaan Mars melalui pelbagai kaedah, hingga akhir mempelajari lebih lanjut mengenai potensi planet ini untuk kehidupan mikroba. Rover terutamanya menggunakan alat fotografi dan analisis tanah untuk pengumpulan data, tetapi rover juga termasuk instrumen navigasi, pengesan radiasi, sensor atmosfera, dan laser untuk pengewapan sampel batu. Matlamat misi rover 2020 yang dirancang kebanyakannya sama, tetapi dengan tugas khas untuk "mengumpulkan sampel tanah dan batu dan menyimpannya di permukaan untuk kemungkinan kembali ke Bumi oleh misi masa depan," menurut NASA.
Namun, di bawah premis bahawa peninjau masa depan akan digunakan untuk bantuan manusia, pasukan kami mempertimbangkan aspek apa yang dapat dipantau oleh rover. Kami sampai pada kesimpulan bahawa sekiranya keadaan darurat membuat seseorang angkasawan tidak sedarkan diri dengan sokongan dan peralatan hidup yang gagal, penumpang kami dapat berfungsi sebagai lampu isyarat bergerak dengan memperhatikan bahawa angkasawan yang diikuti itu tidak bergerak dan menyampaikan mesej kesusahan. Untuk mengikuti manusia dan menentukan pergerakan, pemandu akan mengambil input seperti warna kasut manusia dan pergerakannya. Input lain yang perlu dipertimbangkan adalah bahawa ia harus mengingat jalannya untuk menyampaikan isyarat bahaya sekiranya berlaku kecemasan. Pelancong kami memenuhi keperluan di Marikh kerana percubaan misi yang mahal di wilayah asing seperti itu memerlukan banyak lapisan peti keselamatan, dan sekiranya angkasawan tidak dapat mendapatkan bantuan mereka sendiri kerana tidak berfungsi atau tidak sedarkan diri, penumpang dapat memberi amaran kepada orang lain.
Instructable ini dirancang untuk membantu pembaca dalam memprogram Roomba untuk berjaya mengikuti "angkasawan" dan untuk mengirim isyarat bahaya jika berlaku.
Langkah 1: Bahan Yang Diperlukan
1) Komputer / komputer riba yang boleh diakses oleh internet
2) MATLAB_R2018a
3) Muat turun Roomba dan Roomba
Langkah 2: Persediaan / Muat turun
Jalankan skrip ini dalam MATLAB untuk memuat turun perisian yang diperlukan untuk mengakses Roomba (disimpan dalam failnya sendiri dalam folder projek)
Bantuan Tambahan:
% Program pemasangan untuk Projek EF 230 Roomba% Kemas kini terakhir: 13 September 2017 (Memperbaiki masalah keselamatan yang berkaitan dengan pelayan https dan amaran penghapusan fail yang dikeluarkan sekiranya berlaku kesilapan) fungsi roombaInstall clc; % senarai fail untuk memasang fail = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % lokasi untuk dipasang dari options = weboptions ('CertificateFilename', ''); % suruh untuk mengabaikan pelayan keperluan sijil = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba Install / Update'; % tujuan paparan dan dapatkan prompt pengesahan = {'Program ini akan memuat turun fail EF 230 Roomba ini:' '' strjoin (files, '') '' '' ke folder ini: '' 'cd' '' Adakah anda mahu meneruskan? '}; bip; yn = questdlg (prompt,… dlgTitle,… 'Ya', 'Tidak', 'Ya');
jika ~ strcmp (yn, 'Ya'), kembali; akhir
% dapatkan senarai fail yang ada_files = files yang ada (cellfun (@exist, files)> 0); if ~ isempty (sedia ada_files)% pastikan betul-betul baik untuk menggantinya prompt = {'Anda mengganti fail ini:' '' strjoin (υπάρχον_files, '') '' 'OK untuk diganti?' }; bip; yn = questdlg (prompt,… dlgTitle,… 'Ya', 'Tidak', 'Ya'); jika ~ strcmp (yn, 'Ya'), kembali; hujung akhir
% memuat turun fail cnt = 0; untuk i = 1: panjang (fail) f = fail {i}; disp (['Memuat turun' f]); cuba url = [pelayan f]; penyimpanan laman web (f, url, pilihan); % menambahkan pilihan untuk mengelakkan kesalahan keselamatan cnt = cnt + 1; catch disp (['Kesalahan memuat turun' f]); dummy = [f '.html']; jika ada (dummy, 'file') == 2 hapus (dummy) hujung hujung
jika cnt == panjang (fail) msg = 'Pemasangan Berjaya'; tunggu (msgbox (msg, dlgTitle)); else msg = 'Ralat Pemasangan - lihat tetingkap arahan untuk perincian'; tunggu (errordlg (msg, dlgTitle)); akhir
akhir% roombaInstall
Langkah 3: Kod Bahagian 1: Fungsi Penjejakan
Fungsi ini mengambil pemboleh ubah Roomba dan gambar dari kamera pada Roomba dan mencari koordinat pusat xy dari objek yang dilacak
Simpan kod ini dalam fail lain dalam folder yang sama.
fungsi [xm, ym] = trackingblue (r)% Input: roomba variable% Output: x dan y nilai pusat objek berikut% Tujuan: mencari pusat objek biru yang diberi gambar% Penggunaan [nilai x, y nilai] = trackingblue (pemboleh ubah roomba) img = r.getImage; % membaca kamera dari subplot robot (1, 2, 2) sub gambar (img); % menunjukkan gambar di tetingkap yang sama dengan tajuk jalan ('Tracking Image') merah = img (:,:, 1); hijau = img (:,:, 2); biru = img (:,:, 3); justBlue = biru - hijau / 2 - merah / 2; bw = justBlue> 40; tahan subplot (1, 2, 2) subimage (bw); [x, y] = cari (bw); jika ~ isempty (x) && ~ isempty (y) xm = bulat (min (x)); ym = bulat (min (y)); xx = maks (1, xm-5): min (xm + 5, saiz (bw, 1)); yy = maks (1, ym-5): min (ym + 5, ukuran (bw, 2)); bwbw = nol (ukuran (bw), 'uint8'); bwbw (xx, yy) = 255; tahan subplot (1, 2, 2) subimage (justBlue + bwbw); akhir
Langkah 4: Kod Bahagian 2: While Loop
Kod ini mendorong Roomba berdasarkan lokasi x dan y objek dari fungsi penjejakan. Ini akan membuat Roomba memperhatikan dinding dan tebing, sambil mencari warna biru. Ini juga akan mengambil koordinat x dan y dari laluan Roomba dan membuat plot yang sesuai dengan gambar penjejakan. Sekiranya sensor bump diaktifkan, ia akan beralih ke bahagian e-mel
Projek% Rover
% Jonah Zahn, Harga Wade, Noah Sloan% jzahn2, wprice15, nsloan1% Input: nilai roomba, data kamera, bump, sensor cahaya dan dinding% Tujuan: Mengikuti angkasawan dan mengelakkan halangan. Sekiranya diberitahu, roomba akan menghantar e-mel% yang memperincikan peta dan di mana ia sesuai dengan kedudukan permulaannya. % Penggunaan: jalankan program dengan menyatakan pemboleh ubah roomba, juga% mempunyai objek hijau bergerak% Output: menunjukkan gambar penjejakan gambar, peta e-mel dan teks kepada pengguna %% Mengikuti Bahagian b = 0; % Memulakan pemboleh ubah c = 0; x = 0; y = 0; theta = 0; sementara c == 0% Gelung untuk membuatnya mengesan objek biru dan halangan t = r.timeGet; d = r.getDistance; [xval, yval] = trackblue (r); cliff = getCliffSensors (r); % memulakan struktur untuk sensor nilai cahaya = getLightBumpers (r); bump = getBumpers (r); jika light.leftCenter> = 10 || light.rightCenter> = 10% Sense jika terdapat dinding berhampiran r.stop r.setLEDDigits ('help') c = 1% manakala b == 0% jika bump.right == 1 || bonggol.kiri == 1 || bump.front == 1% Mengenakan jika telah membongkok sesuatu setelah merasakan dinding% c = 1% b = 1% disp ('bump')% end% end elseif bump.right == 1 || bongkok.kiri == 1 || bump.front == 1% Mengenakan jika telah membongkar sesuatu, jika ya, ia akan menghantar e-mel r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || tebing <kiri> = 100 || cliff.right <= 100% Mengenakan jika terdapat tebing berhampiran r.stop c = 1 r.setLEDDigits ('help') else% Menetapkan halaju pemacu mengikut warna biru jika yval = 100 r.setDriveVelocity (0.1) lain jika yval 400 r.turnAngle (-5) akhir akhir theta = theta + r.getAngle; x = d. * cosd (theta) + x; % x koordinat roomba y = d. * sind (theta). * d + y; % y koordinat subplot roomba (1, 2, 1) plot (x, y, 'bd')% merancang jalan dan menambah tajuk tajuk ('Roomba Path') tahan; akhir
Langkah 5: Kod Bahagian 3: Bahagian E-mel
Ini akan mengambil jalan dan gambar yang dirancang dan menghantarnya ke alamat e-mel yang ditentukan
(Ditunjukkan di sini dengan e-mel contoh)
%% Bahagian E-mel
jika b == 1 saveas (gcf, 'rovermap.png')% menyimpan angka setpref ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); % akaun mel yang akan dihantar dari setpref ('Internet', 'SMTP_Username', '[email protected]'); % pengirim nama pengguna setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Props kata laluan Pengirim = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'benar'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail ('contoh e-mel', 'RoverBeacon', 'Angkasawan telah berhenti bergerak. Untuk pemulihan, ikuti arahan dalam fail yang dilampirkan.', 'rovermap.png') disp ('email dihantar') akhir
Disyorkan:
Projek Robot UTK 2017: 3 Langkah
Robot Project UTK 2017: Misi: Pasukan jurutera kami telah disewa oleh Froogle, yayasan Nonprofit untuk pengembangan teknologi sumber terbuka, untuk membangunkan pasukan Human Rusting Mars Rover yang inovatif. &Quot; rover " adalah roomba yang kami kodkan untuk menjalankan siri
Generator - Fidget Spinner Powering 9W Led Bulb 230 V: 3 Steps (with Pictures)
Generator - Fidget Spinner Powering 9W Led Bulb 230 V: Pada baris di bawah ini kami ingin menunjukkan bagaimana penjana fidget spinner yang kuat dapat dibuat. Ia akan menghasilkan 100 Volt Ac pada permulaannya dan akan dapat menyalakan mentol LED 230 V 9 W. Projek pendidikan, dengan hanya menggunakan beberapa bahan. Cari
EF 230: Sistem Rumah 3000 Diajar: 4 Langkah
EF 230: Home System 3000 Instructable: Home System 3000 adalah peranti yang menggunakan Arduino, sensor suhu, buzzer piezo, pengesan optik / phototransistor, dan servo untuk menunjukkan cara untuk meningkatkan kecekapan tenaga rumah
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
EF 230 Menangkap Matahari: 6 Langkah
EF 230 Menangkap Matahari: Instructable ini akan memperincikan cara menggunakan kit Arduino / papan litar dan MATLAB untuk membuat prototaip sistem tenaga rumah yang memberi tumpuan kepada pemerolehan tenaga angin dan solar. Dengan bahan yang betul dan dengan menggunakan kod / persediaan yang disediakan, anda dapat