İçindekiler:
Video: Roomba Explorer: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
MATLAB ve iRobot'un Create2 Robot'unu kullanan bu proje, bilinmeyen bir konumun çeşitli alanlarını keşfedecek. Tehlikeli bir arazide manevra yapmaya yardımcı olmak için Robot üzerindeki sensörleri kullandık. Ekli bir Raspberry Pi'den fotoğraf ve video beslemesi alarak Robot'un karşılaşacağı engelleri belirledik ve bunlar sınıflandırılacak.
Parçalar ve Malzemeler
Bu proje için ihtiyacınız olacak
-bir bilgisayar
-MATLAB'ın en yeni versiyonu (bu proje için MATLAB R2018b kullanılmıştır)
- roombaInstall araç kutusu
-iRobot'un Create2 Robotu
-Kameralı Raspberry Pi
Adım 1: Başlatma ve Sensörler
Herhangi bir programlamaya başlamadan önce, Robotun farklı bileşenlerine erişim sağlayan roombaInstall araç kutusunu indirdik.
Başlangıçta, herhangi bir Robotu başlatmak için bir GUI oluşturduk. Bunu yapmak için, giriş olarak Robot numarasını yazmanız gerekir. Bu, robotun karşılaşacağı birçok arazide manevra yapmasını sağlamak için çalıştığımız Robota programımızı çalıştırma erişimini sağlayacaktır. Uçurum Sensörlerini, Işık Çarpma Sensörlerini ve Fiziksel Çarpma Sensörlerini, çıkışlarını kullanarak Robotu hızını ve/veya yönünü değiştirmek için harekete geçirmek için kullandık. Altı Işık Çarpma Sensöründen herhangi biri bir nesne algıladığında, çıktıları değer düşecek ve tam hızda çarpışmayı önlemek için Robotun hızının düşmesine neden olacaktır. Robot sonunda bir engelle çarpıştığında, Fiziksel Çarpma sensörleri sıfırdan büyük bir değer bildirir; bu nedenle, Robot duracak, böylece daha fazla çarpışma olmayacak ve daha fazla fonksiyon devreye sokulabilecek. Uçurum Sensörleri için etraflarındaki alanın parlaklığını okuyacaklardır. Değer 2800'den büyükse, Robot'un sabit bir zeminde ve güvenli olacağını belirledik. Ancak, değer 800'den küçükse, Uçurum Sensörleri bir uçurum algılayacak ve düşmemek için hemen duracaktır. Aradaki herhangi bir değerin suyu temsil ettiği belirlendi ve Robotun hareketini durdurmasına neden olacak. Yukarıdaki sensörler kullanılarak Robotun hızı değiştirilerek herhangi bir tehlike olup olmadığını daha iyi belirleyebiliriz.
Aşağıdaki kod (MATLAB R2018b'den)
%% Başlatma
dlgPrompts = {'Oda Numarası'};
dlgTitle = 'Roomba'nızı Seçin';
dlgDefaults = {''};
opts. Resize = 'açık';
dlgout = inputdlg(dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % Kullanıcıdan oda numarasını girmesini isteyen pencere oluştur
n=str2double(dlgout{1});
r=odaba(n); % Kullanıcı tarafından belirlenen Roomba %% Hız belirlemeyi Light Bump Sensörlerinden başlatırken true s=r.getLightBumpers; % ışık çarpma sensörleri olsun
lbumpout_1=extractfield(s, 'sol'); % sensörlerin sayısal değerlerini alır ve onları daha kullanışlı hale getirir lbumpout_2=extractfield(s, 'leftFront');
lbumpout_3=extractfield(s, 'leftCenter');
lbumpout_4=extractfield(s, 'rightCenter');
lbumpout_5=extractfield(s, 'rightFront');
lbumpout_6=extractfield(s, 'sağ');
lbout=[lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] %, değerleri matrise dönüştürür
sLbump=sort(lbout); % matrisi en düşük değere göre sıralar
lowLbump=sLbump(1); speed=.05+(lowLbump)*.005 Hızı belirlemek için yakın engelleri temsil eden en düşük değeri kullanarak, hiçbir şey algılanmadığında daha yüksek hız
r.setDriveVelocity(hız, hız)
son
% Fiziksel Tamponlar
b=r.getTamponlar; %Çıkış doğru, yanlış
bsen_1=extractfield(b, 'sol')
bsen_2=extractfield(b, 'sağ')
bsen_3=extractfield(b, 'ön')
bsen_4=extractfield(b, 'leftWheelDrop')
bsen_5=extractfield(b, 'rightWheelDrop')
tümsekler=[bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump=toplam(serseriler)
if tbump>0 r.setDriveVelocity(0, 0)
son
% Uçurum Sensörleri
c=r.getCliffSensors %% 2800 güvenli, yoksa su
csen_1=extractfield(c, 'sol')
csen_2=extractfield(c, 'sağ')
csen_3=extractfield(c, 'leftFront')
csen_4=extractfield(c, 'rightFront')
uçurumlar=[csen_1, csen_2, csen_3, csen_4]
ordcliff=sort(uçurumlar)
ordcliff(1) < 2750 ise
r.setDriveVelocity(0, 0)
eğer uçurum<800
disp 'uçurum'
Başka
'su' dağıtmak
son
r. Dönüş Açısı(45)
son
2. Adım: Veri Alma
Fiziksel Çarpma Sensörleri tetiklendikten sonra, Robot, engelin fotoğrafını çekmek için yerleşik Raspberry Pi'yi uygulayacaktır. Bir fotoğraf çektikten sonra, resimde metin varsa metin tanıma özelliğini kullanarak Robot engelin ne olduğunu ve engelin ne söylediğini belirleyecektir.
img = r.getImage; imshow(img);
imwrite(img, 'imgfromcamera.jpg')
fotoğraf = imread('imgfromcamera.jpg')
ocrResults = ocr(fotoğraf)
tanınanText = ocrResults. Text;
figür;
imshow(fotoğraf) text(220, 0, tanınanText, 'BackgroundColor', [1 1 1]);
Adım 3: Görevi Bitirmek
Robot engelin EV olduğunu belirlediğinde görevini tamamlayacak ve evde kalacaktır. Görevin tamamlanmasından sonra Robot, eve döndüğüne dair bir e-posta uyarısı gönderecek ve yolculuğu boyunca çektiği görüntüleri gönderecektir.
% E-mail göndermek
setpref('İnternet', 'SMTP_Sunucusu', 'smtp.gmail.com');
setpref('İnternet', 'E_mail', '[email protected]'); setpref'ten gönderilecek % posta hesabı('İnternet', 'SMTP_Kullanıcı Adı', 'gönderen e-posta adresini girin'); % gönderici kullanıcı adı setpref('İnternet', 'SMTP_Password', 'gönderen şifresini girin'); % Gönderici şifresi
sahne = java.lang. System.getProperties; props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');
sendmail('Alma e-postasını girin', 'Roomba', 'Roomba eve döndü!!', 'imgfromcamera.jpg') Gönderilecek % posta hesabı
Ardından Robot tamamlanır.
4. Adım: Sonuç
Dahil edilen MATLAB programı, Robot ile kullanılan tüm komut dosyasından ayrılmıştır. Son taslakta, tamponların sürekli çalıştığından emin olmak için başlatma adımı dışındaki tüm kodu bir süre döngüsüne koyduğunuzdan emin olun. Bu program kullanıcının ihtiyaçlarına göre düzenlenebilir. Robotumuzun konfigürasyonu gösterilir.
*Hatırlatma: MATLAB'ın Robot ve yerleşik Raspberry Pi ile etkileşime girmesi için roombaInstall araç kutusunun gerekli olduğunu unutmayın.
Önerilen:
Roomba'nızı Mars Gezgini'ne Dönüştürmek: 5 Adım
Roomba'nızı Mars Gezgini'ne Dönüştürmek:
Robot Explorer: 13 Adım
Robot Keşifçisi: Mekatronik için en iyi teknolojiler ve teknolojiler, kapasiteler de poder gerçek proyectos que birleştirilmiş farklı olanaklar, en iyi elektronik program, la elektronik. A continuacion se explicara los pasos a seguir para la realizacion de un
Roomba Bulider Botu: 5 Adım (Resimlerle)
Roomba Bot the Bulider: Bot the Builder, "yakalayıcılar" içeren bir roomba'dır. Ön tarafa takılan nesneleri hareket ettirebilecektir. Bununla birlikte kod, sadece farenizi tıklatarak kontrol edebileceğiniz bir GUI kutusu ile ilk hareketi kaydedecek şekilde ayarlanmıştır. Sonra
Internet Explorer için Klavye Kısayolları!!: 4 Adım
Internet Explorer için Klavye Kısayolları !!: Bu Eğitim Tablosu size internet explorer için bazı yararlı klavye kısayollarını gösterecektir.Lütfen kanalıma abone olunTeşekkürler
Otobüs Korsan 3EEPROM Explorer Kurulu: 5 Adım
Bus Pirate 3EEPROM Explorer Board: Hack a Day'in Otobüs Korsanlarından birine sahipseniz, onunla ne yaparsınız? 3EEPROM gezgin kartı ile 1 kablolu, I2C ve SPI EEPROM'lar hakkında bilgi edinin (biz buna THR-EE-PROM diyoruz). EEPROM, sürekli bir güç olmadan verileri depolayan bir bellek yongası türüdür