Mündəricat:

RADbot: 7 addım
RADbot: 7 addım

Video: RADbot: 7 addım

Video: RADbot: 7 addım
Video: BIT.TRIP RUNNER 2-7 Radbot 2024, Oktyabr
Anonim
RADbot
RADbot

Jackson Breakell, Tyler McCubbins və Jakob Thaler tərəfindən EF 230 üçün bir layihə

Marsda astronavtlar həddindən artıq temperaturdan toz fırtınalarına qədər müxtəlif təhlükələrə məruz qalacaqlar. Tez -tez gözdən qaçan bir amil planetin səthində yaşayan güclü radioizotopların yaratdığı təhlükədir. RADbot, səyahət edərkən yüksək aktivliyə malik qaya nümunələrini müəyyən edərək Mars səthində astronavtların araşdırılmasına kömək edir və robotun zədələnməsinin qarşısını alan uçurum, işıq, tampon sensorlar və kameradan istifadə edən proqramlaşdırılmış təhlükəsizlik xüsusiyyətlərinə malikdir. bağışlanmaz Mars ərazisinə. Astronavtları səthdə baş verə biləcək radioaktiv təhlükələr barədə xəbərdar etməklə yanaşı, robotun radioaktiv nümunə yerləşdirmə xüsusiyyəti, böyük uran və digər aktinid yataqlarını saxlaya biləcək sahələri müəyyən etmək üçün bir vasitə kimi tətbiq oluna bilər. Astronavtlar bu elementləri çıxarıb, onları kifayət qədər zənginləşdirə və nüvə reaktorlarında və termoelektrik generatorlarında istifadə edə bilərdi ki, bu da planetdə daimi, öz-özünə dayanıqlı bir koloniyaya enerji verə bilərdi.

Tipik Mars gəmisindən fərqli olaraq, dizaynımız hazır komponentlərdən və münasib qiymət etiketindən ibarətdir. Pulunuz və arzunuz varsa, bu təlimatı izləyərək özünüz də qura bilərsiniz. Öz RADbotunuzu necə edəcəyinizi öyrənmək üçün oxuyun.

Addım 1: Lazımi hissələri və materialları əldə edin

Lazımi hissələri və materialları əldə edin
Lazımi hissələri və materialları əldə edin
Lazımi hissələri və materialları əldə edin
Lazımi hissələri və materialları əldə edin
Lazımi hissələri və materialları əldə edin
Lazımi hissələri və materialları əldə edin

Başlamaq üçün nələrə ehtiyacınız var (Şəkillər siyahıya alınmaq üçün yerləşdirilib)

1. One Roomba (hər hansı yeni model)

2. Bir Geiger-Mueller sayğacı

3. Bir Raspberry Pi

4. USB çıxışı olan bir lövhəli kamera

5. Bir mikro USB -dən USB kabelinə

6. Bir USB -dən USB -yə kabel

7. Kifayət qədər aktivliyin bir radioaktiv nümunəsi (~ 5μSv və ya daha yüksək)

8. Matlab quraşdırılmış bir kompüter

9. Yapışqan (Asanlıqla çıxarıla bilən yapışqan bant)

Addım 2: Kamera və Geiger-Muller sayğacının konfiqurasiyası

Kamera və Geiger-Muller sayğacının konfiqurasiyası
Kamera və Geiger-Muller sayğacının konfiqurasiyası

İndi RADbot yaratmaq üçün lazım olan bütün materiallara sahib olduğunuz üçün, kameranı fəaliyyətin tezgahda oxuya bilməsi üçün yerləşdirərək işə başlayacağıq. Geiger-Muller sayğacını Roombanın sonuna mümkün qədər yaxın qoyun və sensorunun tıxanmadığından əmin olun. Tezgahı seçdiyiniz yapışqan ilə möhkəm bir şəkildə bərkidin və kameranı üzünə montaj etməyə davam edin. Kənar girişlərin proqramı təsir etməməsi üçün kameranı sayğacın ekranına mümkün qədər yaxın qoyun və rahat hiss etdikdən sonra onu yerində sabitləyin. Kameranızın təhlükəsizliyini birdəfəlik saxlamağı məsləhət görürük, çünki kodunuz bitdikdə kameranı görüntü sahəsinə uyğun olaraq kompüterinizə yerləşdirə bilərsiniz. Həm kamera, həm də sayğac möhkəm oturduqdan sonra, kameranı Raspberry Pi -nin USB girişlərindən birinə USB -USB kabeli ilə bağlayın və Raspberry Pi -ni mikro USB -USB kabeli ilə Roomba'ya qoşun.

Addım 3: Roombanıza qoşulun və İşıq Sensoru Kodu yaradın

Roombanıza qoşulun və İşıq Sensoru Kodu yaradın
Roombanıza qoşulun və İşıq Sensoru Kodu yaradın

Əvvəlcə EF 230 veb saytının Roomba alət qutusunu yükləyin və göstərilən qovluqlara yerləşdirdiyinizə əmin olun. Roombanıza qoşulmaq üçün sadəcə Raspberry Pi -yə yapışdırılmış stikere istinad edin və "r = roomba (x)" əmr pəncərəsinə tırnak işarəsi olmadan daxil edin və burada x Roombanın nömrəsini ifadə edir. Roomba bir melodiya çalmalıdır və təmiz düymənin ətrafında yaşıl üzük göstərilməlidir. Kodunuzu "while" ifadəsi ilə başlayın və sensorlar siyahısında göründüyü kimi işıq sensorlarına baxın. Komanda pəncərəsinə "r.testSensors" yazaraq sensor siyahısını açın.

İşığın nə qədər əks olunacağını təyin edən obyektimizin rənginə əsaslanaraq,> funksiyası olaraq yerinə yetiriləcək while ifadəsinin tələblərini təyin edin. Bizim vəziyyətimizdə, sol və ya sağ mərkəzi işıq sensorlardakı oxu> 25 olarsa, ön işığın sensorunu while ifadəsində işlədəcək şəkildə təyin edirik. İcra edilə bilən ifadə üçün Roombanın sürətini "r.setDriveVelocity (x, y)" yazaraq yavaşlatmaq üçün təyin edin, burada x və y sırasıyla sol və sağ təkərlərin sürətləridir. Roombanın təyin olunmamış dəyərlər üçün yavaşlamaması üçün "başqa" ifadəsi daxil edin və fərqli bir sürət istisna olmaqla, təyin edilmiş sürücü sürəti əmrini yenidən daxil edin. While ifadəsini "son" ilə bitirin. Bu kod seqmenti, Roombanı obyektə yaxınlaşdıracaq və təsirini minimuma endirmək üçün müəyyən bir diapazona çatdıqda yavaşlayacaq.

Kodumuzun bir ekran görüntüsü əlavə olunur, ancaq missiya parametrlərinizə ən uyğun şəkildə düzəltməkdən çekinmeyin.

Addım 4: Tampon Kodu yaradın

Tampon kodu yaradın
Tampon kodu yaradın

Roomba yavaşladıqca, fiziki tamponu tetiklemeyecek qədər olmasa da, obyektə təsirini minimuma endirəcək. Bu kod seqmenti üçün yenidən "while" döngəsi ilə başlayın və ifadəsini doğru olaraq təyin edin. Açıqlama üçün, T dəyişənini tamponun çıxışına bərabər qoyun, ya 0, ya da 1 yanlış və doğru. Bunun üçün "T = r.getBumpers" istifadə edə bilərsiniz. T bir quruluş olaraq çıxacaq. "If" ifadəsini daxil edin və T.front alt quruluşu üçün ifadəsini 1 -ə bərabər edin və ifadəni ya "r.setDriveVelocity (x, y)" və ya "r.stop" istifadə edərək sürücü sürətini 0 olaraq təyin edin. ". Növbəti koddakı şərt yerinə yetirildikdən sonra Roomba hərəkət edə bilməsi üçün "fasilə" daxil edin. "Başqa" əlavə edin və sürücünün sürətini Roombanın normal seyr sürətinə təyin etmək üçün ifadəsini təyin edin.

Kodumuzun bir ekran görüntüsü əlavə olunur, ancaq missiya parametrlərinizə ən uyğun şəkildə düzəltməkdən çekinmeyin.

Addım 5: Sayğac Ekranı oxumaq, onu şərh etmək və Mənbədən çəkilmək üçün Kod yaradın

Sayğac Ekranı oxumaq, onu şərh etmək və mənbədən çəkilmək üçün kod yaradın
Sayğac Ekranı oxumaq, onu şərh etmək və mənbədən çəkilmək üçün kod yaradın

Layihəmizin mərkəzində Geiger-Muller sayğacı dayanır və ekrandakı məlumatların kameradan istifadə edərək nə demək olduğunu müəyyən etmək üçün aşağıdakı kod seqmentindən istifadə olunur. Sayğacımızın ekranının mənbənin aktivliyinə əsaslanaraq rəngi dəyişdiyini nəzərə alaraq kameranı ekranın rəngini şərh edəcək şəkildə quracağıq. "R.getImage" əmrinə bərabər bir dəyişən təyin edərək kodunuza başlayın. Dəyişən, qırmızı, yaşıl və göy rəngdə çəkdiyi şəklin 3d rəng dəyərlərindən ibarət olacaq. "Xəritənin orta (img1 (:,,: x)))" əmrini istifadə edərək bu rəng matrislərinin ortalamalarına bərabər olan dəyişənləri təyin edin, burada x 1 -dən 3 -ə qədər olan bir ədəddir. 1, 2 və 3 qırmızı, yaşıl və sırasıyla mavi. İstinad edilən bütün əmrlərdə olduğu kimi, tırnak işarələri də daxil etməyin.

Proqramı "pause (20)" istifadə edərək 20 saniyə fasilə verin, belə ki sayğac nümunəni dəqiq oxuya bilər və sonra "if" ifadəsinə başlaya bilər. Roomba "r.beep" istifadə edərək bir neçə dəfə "Radioizotop tapıldı! Diqqət!" Bu, "waitfor (helpdlg ({'texthere'})") "əmri ilə həyata keçirilə bilər. Ok düyməsini basdıqdan sonra Roomba" if "ifadəsindəki kodun qalan hissəsini izləməyə davam edəcək. "r.moveDistance" və "r.turnAngle" əmrlərinin birləşməsi. if ifadənizi "son" ilə bitirməyinizə əmin olun.

Kodumuzun ekran görüntüsü əlavə edilmişdir, ancaq missiya parametrlərinizə ən uyğun şəkildə redaktə etməkdən çekinmeyin.

Addım 6: Cliff Sensor Kodu yaradın

Cliff Sensor Kodu yaradın
Cliff Sensor Kodu yaradın

Roomba'nın quraşdırılmış uçurum sensorlarından istifadə etmək üçün bir kod yaratmaq üçün "while" döngəsi ilə başlayın və ifadəsini doğru olaraq təyin edin. "R.getCliffSensors" a bərabər bir dəyişən təyin edin və bu bir quruluşla nəticələnəcək. "If" ifadəsinə başlayın və "X.leftFront" və "X.rightFront" dəyişənlərini quruluşdan əvvəlcədən təyin edilmiş bir dəyərdən böyük olaraq təyin edin, burada "X" "r.getCliffSensors" əmrini seçdiyiniz dəyişəndir. bərabər olmaq. Bizim vəziyyətimizdə, uçurumu təmsil etmək üçün bir ağ kağız parçası istifadə edildiyi kimi, 1000 -dən istifadə etdik və sensorlar yaxınlaşdıqca kağız, dəyərlərin 1000 -dən çox artdı və kodun yalnız uçurum aşkar edildikdə icra olunmasını təmin etdi.. "Break" əmrini əlavə edin və sonra "başqa" ifadəsi daxil edin. Heç bir uçurum aşkar edilmədikdə yerinə yetiriləcək "başqa" ifadəsi üçün sürücü sürətini hər bir təkər üçün normal seyr sürətinə təyin edin. Roomba bir uçurum aşkar edərsə, "fasilə" icra ediləcək və sonra while döngəsinin xaricindəki kod icra ediləcək. "If" və "while" döngəsi üçün "sonu" qoyduqdan sonra, Roombanı hərəkət məsafəsi əmrindən istifadə edərək geriyə doğru hərəkət etməsi üçün təyin edin. Astronavtlara bir uçurumun yaxın olduğunu xəbərdar etmək üçün, sürətin əmrində x və y hər təkərin hərəkət sürətlərini a və -a olaraq təyin edin, burada a həqiqi ədəddir. Bu, Roomba'nın fırlanmasına səbəb olacaq və astronavtı uçurumdan xəbərdar edəcək.

Kodumuzun bir ekran görüntüsü əlavə olunur, ancaq missiya parametrlərinizə ən uyğun şəkildə düzəltməkdən çekinmeyin.

Addım 7: Nəticə

Nəticə
Nəticə

RADbot -un Marsdakı son məqsədi astronavtlara qırmızı planetin araşdırılması və kolonizasiyasında kömək etməkdir. Səthdə radioaktiv nümunələri müəyyən edərək, ümidlərimiz robotun və ya roverin bu vəziyyətdə həqiqətən astronavtları təhlükəsiz saxlaya biləcəyi və baza (lar) ı üçün enerji mənbələrinin müəyyənləşdirilməsinə kömək edə biləcəyidir. Bütün bu addımları izlədikdən sonra və bəlkə də bəzi sınaq və səhvlərlə RADbotunuz işə düşməlidir. Radioaktiv nümunəni test sahənizin daxilində bir yerə qoyun, kodunuzu icra edin və roverin nə üçün nəzərdə tutulduğunu görsün. RADbotunuzdan zövq alın!

-EF230 RADbot Komandası

Tövsiyə: