İçindekiler:
- Adım 1: Gerekli Parçalar
- 2. Adım: Dosyalar ve Kamera Yapılandırması
- 3. Adım: İlk Roomba Testi
- Adım 4: Örnek MATLAB Kodu
Video: Astronot Yardım Odasıba: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu proje, iRobot Create Version 2 üzerindeki Raspberry Pi 3 kullanılarak yapılmıştır. MATLAB, robotu sensörlerini ve kamerasını kullanarak belirli talimatları takip edecek şekilde programlamak için kullanılır. Sensörler ve kameralar, bir astronotu takip edecek ve ona bir şeyler ters giderse ana üssü ile iletişim kurma yeteneği sağlayacak belirli görevleri yerine getirmek için kullanılır.
Adım 1: Gerekli Parçalar
1. iRobot Oluşturma Sürüm 2
iRobot Create, programlanabilir olduğundan ve astronotları takip eden ve onlara gelecekte yardımcı olan gerçek bir gezici için harika bir temsil olabileceğinden bu projenin en önemli parçasıdır
2. Ahududu Pi 3
Raspberry Pi, bu proje için kullanılan programlanabilirdi. Kod Pi için tasarlanmıştır ve ekli Pi'nin sürümü 3'tür (model B). Arduino gibi diğer programlanabilir kartlar kullanılabilir, ancak arduino ve diğer kartların çoğu, başka bir adımda açıklanandan farklı kodlama gerektirecektir
3. Raspberry Pi Kamera Modülü
Bu proje için Raspberry Pi'ye gerekli olan tek harici bağlantı Kamera Modülüdür. Roomba yalnızca kamerada gördüklerine göre görevleri gerçekleştireceğinden, kamera modülü bu projenin ayrılmaz bir parçasıdır
4. MATLAB 2018a
Bu kurulumda yer alan kodlama için MATLAB'ın en son ikinci versiyonu olan 2018a kullanıldı. Roomba programlaması bir süredir var olduğundan, MATLAB'ın diğer birçok versiyonunun bununla çalışması muhtemeldir
2. Adım: Dosyalar ve Kamera Yapılandırması
1. Odaya Raspberry Pi ve Kamera bağlantıları
- Pi, iRobot'a doğrudan bir mikro USB ile bağlanabilir. Kullanıma hazır olması gereken tek şey bu. Ancak, şimdiye kadar sunum boyunca resimlerde gösterildiği gibi odabaya güvenli bir şekilde yerleştirilmesi tavsiye edilir.
- Kameranın Raspberry Pi ile doğrudan bağlantısı vardır ve kamerayı doğrudan yukarıda tutmak için bir şeyler satın alınması veya yapılması şiddetle tavsiye edilir. Roomba'nın gördüğünü göstermek için yerinde tutulamıyorsa, kameranın gerçek bir anlamı yoktur.
2. Dosyalar
- Her şeyi kurup bağladıktan sonra, "Spot" ve "Dock" düğmelerini 10 saniye boyunca bir arada tutarak robotun sıfırlandığından ve çalışmaya hazır olduğundan emin olun.
- MATLAB'a ilk ihtiyaç duyulan yer burasıdır. Önce roomba dosyalarının yüklenmesi gerekir ve bu dosyaların çalışması için gereken tek şey bu bağlantıda verilen koddur:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
3. Adım: İlk Roomba Testi
Roomba'nın çalıştığından emin olmak için yapılması gereken birçok başlangıç kontrolü vardır.
1. Roomba ile aynı WiFi ağına bağlı olduğunuzdan emin olun. Bu olmadan, MATLAB aracılığıyla asla bağlantı kuramazsınız.
2. Roomba'nızın hangi numaraya atandığını öğrenin, böylece seçtiğiniz roomba'ya özel olarak bağlanabilirsiniz. Örneğin, roomba'nızın numarası 30 ise MATLAB'de komut penceresine roomba(30) yazarak ona bağlanırsınız.
3. Roomba, MATLAB'deki yapılar aracılığıyla kontrol edilebilir. Örneğin, roomba(30) için kodunuzu 'r' değişkenine ayarlarsanız, robot r.moveDistance(0.2, 0.1) komutuyla ileri hareket ettirilebilir.
4. Roomba'ya iletilebilecek birçok farklı komut vardır ve bunlar komut penceresine 'doc roomba' yazılarak görülebilir.
5. Işık, çarpma ve uçurum okumaları için sensörlerin tümü 'doc roomba'da görülen komutlar kullanılarak okunabilir, ancak sensör verilerini görmek için sabit, düzenli bir menüye sahip olmanın bir yolu 'r.testSensors kullanılarak görülebilir. '.
6. Tüm bunları test ettikten sonra, çekilen resimleri okumak ve görmek için robotun görüntü toplama yazılımı kullanılabilir. Bunun temel kodu img = r.getImage ve imshow(img);.
7. Resmin RGB değerleri red_mean = ortalama(mean(img(:,:, 1)));
green_mean = ortalama(ortalama(img(:,:, 2))); ve blue_mean=mean(mean(img(:,:, 3)));.
Adım 4: Örnek MATLAB Kodu
Bu noktada, artık bir İnsan Destekli Prototip Mars Gezgini üzerinde kendi dönüşünüzü yaratmak için sensörleri ve görüntü alma yazılımını kullanmaya hazırsınız. Örneğimiz, beyaz rengi takip ederek ve ona doğru hareket ederek astronotları takip etmektir. Robot, sensörleri yüksek değerler okuyorsa bip sesi çıkarır, böylece astronot, robotu sıkışmışsa sıfırlayabilir veya bir uçurumda sıkışmışsa gidip alıp alır ve sıfırlar. Ancak bu hataları sadece beyaz gördüğü sürece okur. Beyaz rengi göremeden robot hata moduna girer. Gördüğü şeye bağlı olarak ana üsse iki farklı türde e-posta göndermek üzere programlanmıştır. Astronotun ten rengini görürse, bu açıkça iyi değildir, bu nedenle astronotun bir takım elbise arızası ile görünen derisi varsa ana üssü uyaracaktır. Diğer mesaj, astronot basitçe gözden kaybolursa hazırlanır. Kameralar için beyaz veya ten rengi görünmüyorsa, robot kendi etrafında dönecek ve başka, ancak farklı bir e-posta gönderecektir. Roomba'nın astronotu göremediği görüntüler, e-postalardaki mesajla birlikte gönderilecektir. Projemizin kodu aşağıda gösterilmiştir:
i=1:.1:3 için img=r.getImage; image(img) red_mean = ortalama(mean(img(:,:, 1))); green_mean = ortalama(ortalama(img(:,:, 2))); blue_mean = ortalama(ortalama(img(:,:, 3))); red_mean > 110 && red_mean 110 && blue_mean 110 && green_mean0 || yumru.sol>0 || bump.front>0 r.bip() r.bip() r.bip() r.stop elseif uçurum.left<10 || cliff.leftÖn<10 || cliff.rightÖn<10 || cliff.right700 || light.leftÖn>700 || light.leftCenter>700 || light.rightCenter>700 || light.rightÖn>700 || light.right>700 r.bip() r.bip() r.bip() r.bip() r.bip() r.stop için i=1:2 r.moveDistance(0.2, 0.1) r. setDriveVelocity(.3,.2) r.stop end end eğer green_mean <35 && blue_mean<35 %ten rengi gösteriliyor(astronotun ten rengine göre ayarlanması gerekiyor) r.beep(); r.bip(); r.bip(); mail = '[email protected]'; % takımın kapalı olduğunu gösteren bir e-posta gönderir psswd = 'evet'; ana bilgisayar = 'smtp.gmail.com'; bağlantı noktası = '465'; emailto = '[email protected]'; m_subject = 'konu'; m_text = 'deneme'; setpref('İnternet', 'E_posta', posta); setpref('İnternet', 'SMTP_Sunucusu', ana bilgisayar); setpref('İnternet', 'SMTP_Kullanıcı Adı', posta); setpref('İnternet', 'SMTP_Parolası', psswd); sahne = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'yanlış'); sendmail(emailto, 'Yardım!', 'Astronotların üniforması kaldırıldı!', img); red_mean ise biter 135 || green_mean 135 || j = 1:2 için blue_mean 135 beyaz robot tarafından bulunamazsa r.turnAngle(360) mail = '[email protected]'; psswd = 'evet'; ana bilgisayar = 'smtp.gmail.com'; bağlantı noktası = '465'; emailto = '[email protected]'; m_subject = 'konu'; m_text = 'deneme'; setpref('İnternet', 'E_posta', posta); setpref('İnternet', 'SMTP_Sunucusu', ana bilgisayar); setpref('İnternet', 'SMTP_Kullanıcı Adı', posta); setpref('İnternet', 'SMTP_Şifre', psswd); sahne = java.lang. System.getProperties; props.setProperty('mail.smtp.user', mail); props.setProperty('mail.smtp.host', host); props.setProperty('mail.smtp.port', port); props.setProperty('mail.smtp.starttls.enable', 'true'); props.setProperty('mail.smtp.debug', 'true'); props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.port', port); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.fallback', 'yanlış'); sendmail(emailto, 'Yardım!', 'Astronot bulunamadı!', img); r.durdur son uç
Açıkçası burası dağınık, ama kopyalandıktan sonra parlaması gerekiyor. Bunun için şifreler ve e-postalar açıkça bu projeyi yapanlar tarafından sağlanacaktır.
Bununla birlikte, örneğimiz, bu robotu herkese uygun hale getirmenin birçok yolundan sadece biridir. Yapılması gereken, kendinize uygun birçok farklı şey var.
Önerilen:
Sağırlara Yardım: 5 Adım
Sağırlar için Yardım: arna__k tarafından tasarlanan Instructables'ta gördüğüm bu tasarımı kopyalamaya ve değiştirmeye karar verdim. Bu, babam gibi işitme engelliler, mağazalara, restoranlara veya herhangi bir yere giden, basit konuşmalarla tamamlayamayan insanlar için harika bir araç
Cosmo Clock - Bir Astronot Uzaya Her Girdiğinde Renk Değiştirir: 8 Adım (Resimlerle)
Cosmo Clock - Bir Astronot Uzaya Her Girdiğinde Renk Değiştirir: Merhaba! Uzay meraklısı mısınız? Evet ise, o zaman hi-fi! Uzayı ve astronomiyi seviyorum. Açıkçası oraya gidip evrene daha yakından bakacak astronot değilim. Ama ne zaman topraktan bir insanın göğe gittiğini öğrensem, ilham alıyorum
LED Işıklar ve Demir Tutucu ile DIY Yardım Eli: 3 Adım
LED Işıklı ve Demir Tutuculu Kendin Yap Yardım Eli: Pakistan'da normal bir 3.5x yardım eli yaklaşık 1000 Rs (6-7 dolar) tutuyor ve benim gibi bir öğrenci kolayca karşılayamıyor, bu yüzden hurda metal plakalar, somunlar ve vidalar alıyordum, bazı klipsler, usb kablosu, ledler vb. böylece bir tane yaptım. ayrıca magn'ı da ekleyebildim
Google Yardım Evcil Hayvan Besleyici: 3 Adım
Google Assistance Pet Fedder: Giriş: Görünüşe göre, çok tembelim ve evcil hayvanımı beslemek için Bolt bulut konsolunda oturum açmak biraz fazlaydı. telefonumda Google Asistan'a bunu yapmasını söylediğimde evcil hayvanımı besle.TLD
Açık Otoklav: Bir İnsani Yardım Yapıcı Projesi: 4 Adım
Açık Otoklav: İnsani Yardım Yapıcı Projesi: Bu projeyi neden yaptım? Dünyada 3 milyar insanın güvenilir elektriğe sahip olmayan kırsal alanlarda yaşadığını ve bu nedenle çoğu zaman erişemediklerini söyleyen bir Dünya Sağlık Örgütü raporunu okudum. cerrahi bakım. Nedeni ise