İçindekiler:

Mars Keşif Robotu: 4 Adım
Mars Keşif Robotu: 4 Adım

Video: Mars Keşif Robotu: 4 Adım

Video: Mars Keşif Robotu: 4 Adım
Video: NASA'nın robotu Mars görevine hazır 2024, Eylül
Anonim
Mars Keşif Robotu
Mars Keşif Robotu

Bu Eğitilebilir Kitap, Mars Keşif Robotunu programlamak ve komuta etmek için adım adım bir kılavuzdur.

Başlamak için aşağıdaki malzemelerin listesini edinmelisiniz: Tickle College of Eningeering University of Tennessee tarafından özelleştirilmiş şarjlı bir iRobot oluşturma, iRobot'ta Raspberry Pi'ye bağlı bir kablosuz ağ, UTK iRobot oluşturma şarj cihazı, Wifi özellikli MATLAB ve internet erişimi olan bilgisayar.

1. Adım: Roomba Araç Kutusu

Roomba Araç Kutusu
Roomba Araç Kutusu

MATLAB'ı açın ve projenizden depolanacak kod dosyaları için yeni bir klasör oluşturun. MATLAB'da yeni bir komut dosyası açın ve aşağıdaki kodu çalıştırın. Komut dosyası çalıştırıldıktan sonra, MATLAB'ın dosyaları aradığı dizine yeni klasörü ekleyin.

Kod:

işlev odasıbaInstallclc; % dosyaları yüklenecek dosyaların listesi = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; seçeneklerden kurulacak % konum = weboptions('CertificateFilename', ''); % sertifika gereksinimlerini göz ardı etmesini söyle server = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba Yükleme/Güncelleme'; % amacı göster ve onay al istemi = { 'Bu program şu EF 230 Roomba dosyalarını indirecek:' '' strjoin(files, ' ') '' 'bu klasöre:' '' cd '' 'Devam etmek istiyor musunuz? ' }; bip; yn = questdlg(istem, … dlgTitle, … 'Evet', 'Hayır', 'Evet');

~strcmp(yn, 'Evet'), ise dönüş; son

% var olan dosyaların listesini al Mevcut_dosyalar = files(cellfun(@exist, files) > 0); eğer ~isempty(existing_files) % onları değiştirmenin gerçekten uygun olduğundan emin olun komut istemi = {'Bu dosyaları değiştiriyorsunuz: ' '' strjoin(existing_files, ' ') '' 'Değiştirilecek mi?' }; bip; yn = questdlg(istem, … dlgTitle, … 'Evet', 'Hayır', 'Evet'); ~strcmp(yn, 'Evet'), ise dönüş; son son

% dosyaları indir cnt = 0; i=1 için:uzunluk(dosyalar) f=dosyalar{i}; disp(['İndiriliyor' f]); url'yi deneyin = [sunucu f]; websave(f, url, seçenekler); % güvenlik hatalarını önlemek için eklenen seçenekler cnt = cnt + 1; catch disp(['İndirmede hata' f]); kukla = [f '.html']; eğer varsa(kukla, 'dosya')==2 sil(kukla) son son son

if cnt == uzunluk(dosyalar) msg = 'Kurulum Başarılı'; waitfor(msgbox(msg, dlgTitle)); else msg = 'Kurulum Hatası - ayrıntılar için komut penceresine bakın'; waitfor(errordlg(msg, dlgTitle)); son

%roombaYüklemeyi sonlandır

2. Adım: Bağlanmaya Hazırlanma

Bağlanmaya Hazırlanıyor
Bağlanmaya Hazırlanıyor
Bağlanmaya Hazırlanıyor
Bağlanmaya Hazırlanıyor

Robottan çıkan mikro USB'yi Raspberry Pi'nin alt bağlantı noktasına bağlayın. Ardından Roomba'nın üst kısmındaki dock ve spot düğmelerine aynı anda basın ve Roomba üzerindeki ışık sönene kadar basılı tutun. Bıraktığınızda Roomba'dan elektronik bir tartı duymalısınız.

Adım 3: Robota Bağlanma

Robota Bağlanmak
Robota Bağlanmak

Bilgisayarınızdaki mevcut ağları açın ve bilgisayar ile Raspberry Pi arasında mevcut ağı seçin. MATLAB'ın mevcut klasöründe, mevcut proje klasörünüze sağ tıklayın ve 1. adımda indirilen roomba araç kutusunu seçin ve yola ekleyin. Birden çok Pi bağlantısı için tasarlanmış bir ağda, Roomba sınıfından bir nesne oluşturarak robotunuzu belirtin. Aşağıdaki örneğe bakın

7 numaraya atanmış bir Roomba'nız varsa, aşağıdakileri girin:

r=odaba(7)

%Bu değişkenin artık roomba'ya atandığını unutmayın, robota verilen herhangi bir komut, atanan değişken tarafından yönlendirilmelidir.

4. Adım: Kod

kod
kod

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

Yukarıdaki bağlantıyı kullanarak, tüm.m dosyalarını ana programın çalıştırılacağı verilen klasöre kaydedin. Bağlantı, bağlantıya sahip olan herkese açık olmalıdır. Geçerli klasörde yeni bir komut dosyası açın ve aşağıda görüldüğü gibi mycontrolprogram.m dosyasını çalıştırın:

fonksiyon mycontrolprogram(r)global m m = mobiledev; emailInit(); koşu = 1; global f global sayım sayısı = 0; f = r; genel yön yön = 0; r.getAngle; r.getDistance; global curLoc curLoc = [0, 0]; global puan puan = sıfırlar(1, 2, 2); manuel = doğru; grafikObs(1); v = 0.15; while < 50 if(manuel == false) obsDetect(r, v, pts); yön = yön + r.getAngle; r.setLEDDigits(num2str(sayım)); başka direc = direc + r.getAngle; manuelDrive(); bitiş bitiş figSend(); son

Robot şimdi tasarlanan işini yapmalıdır.

Önerilen: