Mundarija:
- 1 -qadam: kerakli materiallar
- 2 -qadam: O'rnatish/Yuklab olish
- 3 -qadam: Kod 1 -qism: Kuzatish funktsiyasi
- 4 -qadam: Kod 2 -qism: Loop paytida
- 5 -qadam: Kod 3 -qism: Elektron pochta bo'limi
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Hozirgi vaqtda Mars sayyoralari turli xil usullar bilan Mars yuzasidagi ma'lumotlarni to'plash uchun ishlatiladi, natijada sayyoraning mikroblar hayoti salohiyati haqida ko'proq ma'lumotga ega bo'ladilar. Ma'lumot yig'ish uchun roverlar asosan fotografiya va tuproqni tahlil qilish vositalaridan foydalanadilar, ammo roverlarga navigatsiya asboblari, radiatsiya detektorlari, atmosfera sensorlar va tog 'namunalarini bug'lanish lazeri ham kiradi. NASA ma'lumotlariga ko'ra, 2020 yilgi rover missiyasining maqsadi asosan bir xil, lekin "tuproq va tog 'jinslarining namunalarini to'plash va kelajakda Yerga qaytishi uchun ularni keshlash" maxsus vazifasi bilan.
Biroq, kelajakda roverlar odamlarga yordam berish uchun ishlatiladi, degan xulosaga kelsak, bizning guruhimiz rover odamlarning qaysi jihatlarini kuzatishi mumkinligini ko'rib chiqdi. Biz shunday xulosaga keldikki, agar biron bir favqulodda vaziyatda kosmonavtni hayotiy ta'minoti va jihozlari ishlamay qolsa, u behush holatda qolsa, bizning sayohatchimiz kosmonavtning harakatsizligini kuzatib, qayg'u haqida xabar berib, mayday mayoq bo'lib xizmat qilishi mumkin. Odamga ergashish va harakatsizlikni aniqlash uchun rover odam poyafzalining rangi va uning harakati kabi ma'lumotlarni oladi. Shuni e'tiborga olish kerakki, favqulodda vaziyatda signal signalini uzatish uchun u o'z yo'lini eslab qolishi kerak. Bizning sayohatchimiz Marsdagi ehtiyojni qondiradi, chunki bunday chet elda qimmatga tushadigan missiyani amalga oshirish uchun bir nechta qatlamli seyflar kerak bo'ladi va agar kosmonavt kostyumning noto'g'ri ishlashi yoki hushidan ketishi tufayli o'z yordamiga ega bo'lolmasa, u boshqa odamlarni ogohlantirishi mumkin..
Bu yo'riqnoma o'quvchiga Roombani "kosmonavt" ni muvaffaqiyatli kuzatib borishi va kerak bo'lsa, signal signalini yuborishda yordam berish uchun mo'ljallangan.
1 -qadam: kerakli materiallar
1) Internetga ulanadigan kompyuter/noutbuk
2) MATLAB_R2018a
3) Roomba va Roomba -ni yuklab olish
2 -qadam: O'rnatish/Yuklab olish
Roomba -ga kirish uchun zarur bo'lgan dasturiy ta'minotni yuklab olish uchun MATLAB -da ushbu skriptni ishga tushiring (loyiha papkasida o'z faylida saqlanadi)
Qo'shimcha yordam:
% EF 230 Roomba loyihasi uchun o'rnatish dasturi% Oxirgi yangilanish: 2017 yil 13 sentyabr (HTTPS serveri bilan bog'liq tuzatilgan xavfsizlik muammolari va agar xatolik yuz bersa, o'chirilgan faylni o'chirish haqida ogohlantirish) funktsiyasi roombaInstall clc; Fayllarni o'rnatish uchun % fayllar ro'yxati = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; variantlardan o'rnatish uchun % manzil = weboptions ('CertificateFilename', ''); % sertifikat talablariga e'tibor bermaslikni aytadi server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba o'rnatish/yangilash'; % display maqsadi va tasdiq so'rovini oladi = {'Bu dastur EF 230 Roomba fayllarini yuklaydi:' '' strjoin (fayllar, '') '' 'bu papkaga:' '' cd '' 'Davom etishni xohlaysizmi? '}; ovozli signal; yn = questdlg (tezkor,… dlgTitle,… 'Ha', 'Yo'q', 'Ha');
if ~ strcmp (yn, 'Ha'), qaytish; oxiri
% mavjud fayllar ro'yxatini oling_files = fayllar (cellfun (@exist, files)> 0); if ~ isempty (mavjud_files) % ularni almashtirish haqiqatan ham to'g'ri ekanligiga ishonch hosil qiling prompt = {'Siz bu fayl (lar) ni almashtiryapsiz:' '' strjoin (mavjud_files, '') '' 'O'zgartirish kerakmi?' }; ovozli signal; yn = questdlg (tezkor,… dlgTitle,… 'Ha', 'Yo'q', 'Ha'); if ~ strcmp (yn, 'Ha'), qaytish; oxiri oxiri
% fayllarni yuklab olish cnt = 0; i = 1 uchun: uzunlik (fayllar) f = fayllar {i}; disp (['Yuklanmoqda' f]); url = [server f] ni sinab ko'ring; veb -saqlash (f, url, variantlar); xavfsizlik xatolarining oldini olish uchun % variantlar qo'shildi cnt = cnt + 1; catch disp (['Yuklab olishda xatolik' f]); qo'g'irchoq = [f '.html']; agar mavjud bo'lsa (qo'g'irchoq, 'fayl') == 2 o'chirish (qo'g'irchoq) end end end
if cnt == length (files) msg = 'O'rnatish muvaffaqiyatli bo'ldi'; kutish (msgbox (msg, dlgTitle)); else msg = 'O'rnatish xatosi - tafsilotlar uchun buyruq oynasiga qarang'; kutish (errordlg (msg, dlgTitle)); oxiri
end %roombaInstall
3 -qadam: Kod 1 -qism: Kuzatish funktsiyasi
Bu funksiya Roomba o'zgaruvchisini va kameradagi Roombadagi rasmni oladi va kuzatiladigan ob'ektning markaziy xy koordinatalarini topadi
Ushbu kodni boshqa papkada saqlang.
funktsiya [xm, ym] = kuzatuvchi ko'k (r) %Kirish: xona o'zgaruvchisi %Chiqish: quyidagi ob'ekt markazining x va y qiymati %Maqsad: tasvir berilgan ko'k ob'ektning markazini topadi %Foydalanish [x qiymati, y qiymat] = kuzatuv ko'k (xona o'zgaruvchisi) img = r.getImage; % robotni pastki qismidagi kamerani o'qiydi (1, 2, 2) pastki tasvir (img); %tasvirni yo'lning sarlavhasi bilan bir oynada ko'rsatadi ('Tasvirni kuzatish') red = img (:,,:, 1); yashil = img (:,,:, 2); ko'k = img (:,,:, 3); justBlue = ko'k - yashil/2 - qizil/2; bw = justBlue> 40; subplot (1, 2, 2) pastki tasvirini ushlab turish (bw); [x, y] = topish (bw); if ~ isempty (x) && ~ isempty (y) xm = yumaloq (o'rtacha (x)); ym = dumaloq (o'rtacha (y)); xx = maksimal (1, xm-5): min (xm+5, o'lcham (bw, 1)); yy = maksimal (1, ym-5): min (ym+5, o'lcham (bw, 2)); bwbw = nol (o'lcham (bw), 'uint8'); bwbw (xx, yy) = 255; (1, 2, 2) pastki tasvirni ushlab turish (justBlue + bwbw); oxiri
4 -qadam: Kod 2 -qism: Loop paytida
Bu kod Roombani ob'ektning x va y joylashuviga qarab kuzatuv funktsiyasidan haydab chiqaradi. Bu Roombani devorlar va jarliklarga, ko'k rangni qidirishga majbur qiladi. Bu, shuningdek, Roomba yo'lining x va y koordinatalarini oladi va kuzatuv tasviri bilan mos keladigan syujet yaratadi. Agar zarba sensori faollashtirilgan bo'lsa, u elektron pochta bo'limiga o'tadi
%Rover loyihasi
%Yunus Zahn, Ueyd Prays, Nuh Sloan %jzahn2, wprice15, nsloan1 %Kirishlar: xona qiymati, kamera ma'lumotlari, zarba, yorug'lik va devor datchiklari %Maqsad: Kosmonavtni kuzatadi va to'siqlardan qochadi. Agar ogohlantirilsa, Roomba xaritani va uning boshlang'ich pozitsiyasiga muvofiq qaerda ekanligini batafsil %elektron pochta xabarini yuboradi. %Foydalanish: faqat Roomba o'zgaruvchisini e'lon qilgan holda dasturni ishga tushiring, shuningdek %harakatlanuvchi yashil ob'ektga ega %Chiqish: tasvirni kuzatish rasmini, elektron pochta xaritasini va foydalanuvchiga matnni ko'rsatadi %% B = 0 bo'limidan so'ng; %O'zgaruvchilarni ishga tushirish c = 0; x = 0; y = 0; teta = 0; c == 0 %Loop esa ko'k ob'ekt va to'siqlarni t = r.timeGet aniqlashini ta'minlash uchun; d = r.getDistance; [xval, yval] = kuzatuvchi ko'k (r); jarlik = getCliffSensors (r); %sensorlar qiymatlari uchun tuzilmalarni ishga tushirish light = getLightBampers (r); bump = getBampers (r); agar light.leftCenter> = 10 || light.rightCenter> = 10 % r.stop r.setLEDDigits ('yordam') c = 1 % yaqinida devor borligini sezadi, b == 0 % bo'lsa bump.right == 1 || bump.left == 1 || bump.front == 1 % Devorni sezganidan keyin nimadir urilganini sezadi % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %Agar biror narsa urilgan bo'lsa, sezadi, agar shunday bo'lsa, u elektron pochta xabarini yuboradi r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightFront <= 100 || cliff.left <= 100 || cliff.right <= 100 %r.stop c = 1 r.setLEDDigits ('help') else yonida jarlik borligini sezadi %yval = 100 r.setDriveVelocity (0.1) boshqa bo'lsa 400 r.turnAngle (-5) oxiri oxiri teta = teta + r.getAngle; x = d.*cosd (teta) + x; % x xona koordinatasi y = d.*sind (teta).*d + y; % y xona jadvalining (1, 2, 1) uchastkasining koordinatasi (x, y, 'bd') % yo'lni belgilaydi va sarlavha sarlavhasini ('Roomba yo'li') qo'shib qo'yadi; oxiri
5 -qadam: Kod 3 -qism: Elektron pochta bo'limi
Bu chizilgan yo'l va tasvirni oladi va uni ko'rsatilgan elektron pochta manziliga yuboradi
(Bu erda elektron pochta namunasi ko'rsatilgan)
%% elektron pochta bo'limi
agar b == 1 saveas (gcf, 'rovermap.png') %setpref raqamini saqlasa ('Internet', 'SMTP_Server', 'smtp.gmail.com'); setpref ('Internet', 'E_mail', '[email protected]'); setpref -dan yuboriladigan % pochta hisobi ('Internet', 'SMTP_Username', '[email protected]'); % yuboruvchilar foydalanuvchi nomi setpref ('Internet', 'SMTP_Password', 'gssegsse'); % Yuboruvchilar parollari rekvizitlari = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'rost'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465'); sendmail ('elektron pochta namunasi', 'RoverBeacon', 'Astronavt harakatini to'xtatdi. Qayta tiklash uchun biriktirilgan fayldagi ko'rsatmalarga amal qiling.', 'rovermap.png') disp ('elektron pochta yuborildi') oxiri
Tavsiya:
Robot loyihasi UTK 2017: 3 qadam
Robot loyihasi UTK 2017: Vazifa: Bizning muhandislar jamoasi Froogle tomonidan ochiq manbali texnologiyalarni ishlab chiqish uchun notijorat jamg'armasi tomonidan Mars Roverga yordam beradigan innovatsion Inson yordamchi jamoasini ishga yollashdi. bu biz bir qator o'yinlarni kodlash uchun kodlagan xona
Jenerator - 9 Vt Led Lampochka 230 V: 3 qadam (rasmlar bilan) ishlaydigan Fidget Spinner
Jenerator - 9 Vt Led Lampochka 230 V quvvat oluvchi burilish moslamasi: Quyidagi qatorlarda biz qanday qilib kuchli fidgetli aylantiruvchi generatorni yaratish mumkinligini ko'rsatmoqchimiz. U boshida 100 voltli AC ishlab chiqaradi va 230 V 9 Vtli lampochkani yoqishi mumkin. Bir nechta materiallardan foydalangan holda o'quv loyihasi. Toping
EF 230: Uy tizimi 3000 ko'rsatma: 4 qadam
EF 230: Home System 3000 ko'rsatmasi: Uy tizimi 3000 - bu Arduino, harorat sensori, piezo -signal, optik detektor/fototransistor va servodan foydalanadigan qurilma bo'lib, u uyning energiya samaradorligini oshirish yo'llarini ko'rsatadi
Mars Roomba loyihasi UTK: 4 qadam
Mars Roomba Project UTK: DISCLAIMER: BU YALANGA ISHLAB CHIQARILADI, agar ROOMBA har xil usulda o'rnatilsa, bu ko'rsatma TENNESSEE STUDENTLARI UNIVERSITETI VA FACULTYTYTI uchun ishlatilgan, bu xona uchun mahalliy kod ishlatiladi. yozilgan va
EF 230 Quyoshni ushlaydi: 6 qadam
EF 230 Quyoshni ushlaydi: Ushbu yo'riqnomada shamol va quyosh energiyasidan foydalanishga yo'naltirilgan uy energiya tizimining prototipini yaratish uchun Arduino komplekti/elektron platasi va MATLABdan qanday foydalanish kerakligi batafsil bayon qilinadi. Kerakli materiallar va taqdim etilgan kod/sozlash yordamida siz