Mündəricat:

Mars Kəşfiyyat Robotu: 4 addım
Mars Kəşfiyyat Robotu: 4 addım

Video: Mars Kəşfiyyat Robotu: 4 addım

Video: Mars Kəşfiyyat Robotu: 4 addım
Video: Они все полетели на Марс Что из этого вышло 2024, Noyabr
Anonim
Mars Kəşfiyyat Robotu
Mars Kəşfiyyat Robotu

Bu Təlimat Mars Kəşfiyyat Robotunu proqramlaşdırmaq və idarə etmək üçün addım-addım bələdçidir.

Başlamaq üçün aşağıdakı materialların siyahısını əldə etməlisiniz: Tennessee Eningeering Universitetinin Tickle Kolleci tərəfindən xüsusi olaraq hazırlanmış bir yüklənmiş iRobot, iRobot-da Raspberry Pi-yə qoşulmuş simsiz şəbəkə, UTK iRobot şarj cihazı, Wifi ilə işləyən MATLAB və internetə çıxışı olan kompüter.

Addım 1: Roomba Toolbox

Roomba alət qutusu
Roomba alət qutusu

MATLAB -ı açın və layihənizdə saxlanacaq kod faylları üçün yeni bir qovluq yaradın. MATLAB -da yeni bir skript açın və aşağıdakı kodu işlədin. Skript işə salındıqdan sonra yeni qovluğu MATLAB -ın faylları axtardığı qovluğa əlavə edin.

Kod:

roombaInstallclc funksiyası; Faylların quraşdırılacağı faylların % siyahısı = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; variantlardan yükləniləcək % yer = weboptions ('CertificateFilename', ''); % sertifikat tələblərinə məhəl qoymamağı söyləyin server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba Quraşdır/Yeniləyin'; % keçirmək məqsədi və təsdiq sorğusu alın = {'Bu proqram bu EF 230 Roomba fayllarını yükləyəcək:' '' strjoin (files, '') '' 'bu qovluğa:' '' cd '' 'Davam etmək istəyirsiniz? '}; bip; yn = questdlg (sorğu,… dlgTitle,… 'Bəli', 'Xeyr', 'Bəli');

if ~ strcmp (yn, 'Yes'), return; bitmək

% mövcud faylların siyahısını əldə edin_files = fayllar (cellfun (@exist, files)> 0); if ~ isempty (existing_files) % onları dəyişdirməyin həqiqətən yaxşı olduğundan əmin olun = {'Bu faylları dəyişdirirsiniz:' '' strjoin (mevcut_files, '') '' 'Əvəz etmək yaxşıdır?' }; bip; yn = questdlg (sorğu,… dlgTitle,… 'Bəli', 'Xeyr', 'Bəli'); if ~ strcmp (yn, 'Yes'), return; sonu son

% faylları yükləyin cnt = 0; i = 1 üçün: uzunluq (fayllar) f = fayllar {i}; disp (['Yüklənir' f]); url = [server f] cəhd edin; websave (f, url, seçimlər); Təhlükəsizlik səhvlərinin qarşısını almaq üçün əlavə variantlar cnt = cnt + 1; catch disp (['Yükləmə xətası' f]); kukla = [f '.html']; varsa (kukla, 'fayl') == 2 silmək (kukla) son ucu sonu

if cnt == length (files) msg = 'Quraşdırma Uğurlu'; waitfor (msgbox (msg, dlgTitle)); else msg = 'Quraşdırma xətası - ətraflı məlumat üçün komanda pəncərəsinə baxın'; waitfor (səhv (msg, dlgTitle)); bitmək

son %roombaInstall

Addım 2: Bağlanmağa hazırlaşırıq

Qoşulmağa Hazırlaşır
Qoşulmağa Hazırlaşır
Qoşulmağa Hazırlaşır
Qoşulmağa Hazırlaşır

Robotdan çıxan mikro USB-ni Raspberry Pi-nin alt limanına qoşun. Sonra Roombanın yuxarısında, eyni anda dok və spot düymələrini basıb saxlayın və Roomba üzərindəki işıq sönənə qədər saxlayın. Sərbəst buraxdıqdan sonra Roombadan bir elektron tərəzi eşitməlisiniz.

Addım 3: Robota qoşulun

Robota qoşulma
Robota qoşulma

Kompüterinizdəki mövcud şəbəkələri açın və kompüterlə Raspberry Pi arasındakı mövcud şəbəkəni seçin. MATLAB -ın cari qovluğunda, mövcud layihə qovluğunuza sağ vurun və 1 -ci addımda yüklənmiş roomba alət qutusunu seçin və yola əlavə edin. Birdən çox Pi bağlantısı üçün hazırlanmış bir şəbəkədə, Roomba sinifli bir obyekt yaradaraq robotunuzu təyin edin. Aşağıdakı nümunəyə baxın

7 nömrəsinə təyin edilmiş bir Roomba varsa, aşağıdakıları daxil edin:

r = otaq (7)

Unutmayın ki, bu dəyişən artıq Roomba -ya təyin olunur, robota verilən hər hansı bir əmr təyin edilmiş dəyişən tərəfindən idarə olunmalıdır.

Addım 4: Kod

Kod
Kod

drive.google.com/drive/folders/1OVR5oTHUsn…

Yuxarıdakı bağlantıdan istifadə edərək, bütün.m fayllarını əsas proqramın işlədiləcəyi qovluğa qeyd edin. Bağlantı, linki olan hər kəs üçün açıq olmalıdır. Mövcud qovluqda yeni bir skript açın və aşağıda göründüyü kimi mycontrolprogram.m proqramını işə salın:

mycontrolprogram funksiyası (r) qlobal m m = mobiledev; emailInit (); qaçış = 1; qlobal f qlobal sayım sayı = 0; f = r; qlobal direc direc = 0; r.getAngle; r.getDistance; qlobal curLoc curLoc = [0, 0]; qlobal pts pts = sıfır (1, 2, 2); manual = doğru; graphObs (1); v = 0.15; while <50 if (manual == false) obsDetect (r, v, pts); direc = direc + r.getAngle; r.setLEDDigits (sayı2str (say)); başqa direc = direc + r.getAngle; manualDrive (); end end figSend (); bitmək

Robot artıq öz işini yerinə yetirməlidir.

Tövsiyə: