Spisu treści:

RADbot: 7 kroków
RADbot: 7 kroków

Wideo: RADbot: 7 kroków

Wideo: RADbot: 7 kroków
Wideo: BIT.TRIP RUNNER 2-7 Radbot 2024, Październik
Anonim
RADbot
RADbot

Projekt Jacksona Breakella, Tylera McCubbinsa i Jakoba Thalera dla EF 230

Na Marsie astronauci będą narażeni na różne niebezpieczeństwa, od ekstremalnych temperatur po burze piaskowe. Jednym z często pomijanych czynników jest jednak niebezpieczeństwo, jakie niosą ze sobą potężne radioizotopy znajdujące się na powierzchni planety. RADbot zapewnia pomoc w eksploracji astronautów na powierzchni Marsa, identyfikując próbki skał o wysokiej aktywności podczas podróży, a także ma zaprogramowane funkcje bezpieczeństwa, które wykorzystują czujniki urwiska, czujniki światła, czujniki zderzaka i kamerę, zapobiegając uszkodzeniu robota na bezlitosnym marsjańskim terenie. Oprócz ostrzegania astronautów o możliwych zagrożeniach radioaktywnych na powierzchni, funkcja lokalizacji próbek radioaktywnych robota może zostać zaimplementowana jako narzędzie do identyfikowania obszarów, w których mogą znajdować się duże złoża uranu i innych aktynowców. Astronauci mogliby wydobywać te pierwiastki, dostatecznie je wzbogacać i wykorzystywać w reaktorach jądrowych i generatorach termoelektrycznych, które mogłyby pomóc w zasilaniu stałej, samowystarczalnej kolonii na planecie.

W przeciwieństwie do typowego łazika marsjańskiego, nasz projekt zawiera gotowe komponenty i rozsądną cenę. Pod warunkiem, że masz fundusze i pragnienie, możesz nawet zbudować go samodzielnie, postępując zgodnie z tym przewodnikiem. Czytaj dalej, aby dowiedzieć się, jak stworzyć własnego RADbota.

Krok 1: Zdobądź niezbędne części i materiały

Zdobądź niezbędne części i materiały
Zdobądź niezbędne części i materiały
Zdobądź niezbędne części i materiały
Zdobądź niezbędne części i materiały
Zdobądź niezbędne części i materiały
Zdobądź niezbędne części i materiały

Czego potrzebujesz, aby rozpocząć (obrazy umieszczone w kolejności, w jakiej są wymienione)

1. Jedna robota Roomba (każdy nowszy model)

2. Jeden licznik Geigera-Muellera

3. Jeden Raspberry Pi

4. Kamera jednopłytowa z gniazdem USB

5. Jeden kabel micro USB na USB

6. Jeden kabel USB na USB

7. Jedna próbka radioaktywna o wystarczającej aktywności (~5μSv lub więcej)

8. Jeden komputer z zainstalowanym programem Matlab

9. Klej (najlepiej taśma klejąca do łatwego usuwania)

Krok 2: Konfiguracja kamery i licznika Geigera-Mullera

Konfiguracja kamery i licznika Geigera-Mullera
Konfiguracja kamery i licznika Geigera-Mullera

Teraz, gdy masz już wszystkie wymagane materiały do stworzenia RADbota, zaczniemy od umieszczenia kamery tak, aby mogła odczytywać aktywność na blacie. Umieść licznik Geigera-Mullera jak najbliżej końca robota Roomba i upewnij się, że jego czujnik nie jest zablokowany. Zamocuj solidnie blat za pomocą wybranego kleju i przystąp do montażu kamery tak, aby była przodem do niej. Umieść kamerę jak najbliżej wyświetlacza licznika, aby zapobiec wpływowi zewnętrznych sygnałów wejściowych na program i zabezpiecz ją na miejscu, gdy poczujesz się komfortowo. Zalecamy jednak zachowanie zabezpieczenia kamery na koniec, ponieważ po zakończeniu kodu możesz wyświetlić obraz z kamery na komputerze, co pozwoli ci ustawić kamerę na podstawie jej pola widzenia. Gdy kamera i licznik są już na swoim miejscu, podłącz kamerę do jednego z wejść USB Raspberry Pi za pomocą kabla USB do USB i podłącz Raspberry Pi do Roomby za pomocą kabla micro USB do USB.

Krok 3: Połącz się z robotem Roomba i utwórz kod czujnika światła

Połącz się z robotem Roomba i utwórz kod czujnika światła
Połącz się z robotem Roomba i utwórz kod czujnika światła

Najpierw pobierz zestaw narzędzi Roomba ze strony internetowej EF 230 i umieść go w określonych folderach. Aby połączyć się z Roombą, po prostu odnieś się do naklejki dołączonej do Raspberry Pi i wpisz „r=roomba(x)” w oknie poleceń, bez cudzysłowów, gdzie x oznacza numer Roomby. Roomba powinna zagrać melodię, a przycisk czyszczenia powinien wyświetlać wokół niego zielony pierścień. Rozpocznij swój kod od wyrażenia „while” i odnieś się do czujników światła, które pojawiają się na liście czujników. Otwórz listę czujników, wpisując „r.testSensors” w oknie poleceń.

Na podstawie koloru naszego obiektu, który określa, ile światła jest odbijane, ustaw wymagania, aby instrukcja while była wykonywana jako funkcja >. W naszym przypadku ustawiamy przedni czujnik światła tak, aby uruchamiał kod w instrukcji while, jeśli odczyt na lewym lub prawym środkowym czujniku światła był >25. Dla instrukcji wykonywalnej ustaw prędkość Roomby na spowolnienie, wpisując „r.setDriveVelocity(x, y)”, gdzie x i y są odpowiednio prędkościami lewego i prawego koła. Wstaw stwierdzenie „else”, aby robot Roomba nie zwalniał przy nieokreślonych wartościach, i ponownie wprowadź polecenie ustawienia prędkości napędu, chyba że przy innej prędkości. Zakończ instrukcję while znakiem „end”. Ten segment kodu sprawi, że Roomba zbliży się do obiektu i zwolni, gdy osiągnie określony zakres, aby zminimalizować wpływ.

W załączniku znajduje się zrzut ekranu naszego kodu, ale możesz go edytować, aby najlepiej pasował do twoich parametrów misji.

Krok 4: Utwórz kod przerywnika

Utwórz kod przerywnika
Utwórz kod przerywnika

Ponieważ Roomba zwalnia, zminimalizuje wpływ, jaki wywiera na obiekt, chociaż nie na tyle, aby nie wywołać fizycznego zderzaka. W przypadku tego segmentu kodu ponownie zacznij od pętli „while” i ustaw jej wyrażenie na wartość true. W oświadczeniu ustaw zmienną T równą wartości wyjściowej zderzaka, albo 0 albo 1, dla fałszu i prawdy. Możesz do tego użyć "T=r.getBumpers". T wypisze jako strukturę. Wprowadź instrukcję „if” i ustaw jej wyrażenie dla podbudowy T.front na równe 1 i ustaw tę instrukcję, aby ustawić prędkość napędu na 0, używając „r.setDriveVelocity(x, y)” lub „r.stop”. Wprowadź „przerwę”, aby robot Roomba mógł się poruszać po spełnieniu warunku w następnym kodzie. Dodaj „inny” i ustaw jego stwierdzenie, aby ustawić prędkość napędu na normalną prędkość przelotową Roomby.

W załączniku znajduje się zrzut ekranu naszego kodu, ale możesz go edytować, aby najlepiej pasował do twoich parametrów misji.

Krok 5: Utwórz kod do odczytu ekranu licznika, zinterpretuj go i wycofaj ze źródła

Utwórz kod, aby odczytać ekran licznika, zinterpretować go i wycofać się ze źródła
Utwórz kod, aby odczytać ekran licznika, zinterpretować go i wycofać się ze źródła

Sercem naszego projektu jest licznik Geigera-Mullera, a następujący segment kodu służy do określenia, co oznaczają dane na ekranie za pomocą aparatu. Biorąc pod uwagę, że ekran naszego licznika zmienia kolor w zależności od aktywności źródła, ustawimy kamerę tak, aby interpretowała kolor ekranu. Rozpocznij swój kod, ustawiając zmienną równą poleceniu „r.getImage”. Zmienna będzie zawierać trójwymiarową tablicę wartości kolorów zrobionego zdjęcia w kolorze czerwonym, zielonym i niebieskim. Ustaw zmienne równe średniej z tych odpowiednich macierzy kolorów za pomocą polecenia "mean(mean(img1(:,:, x)))" gdzie x jest liczbą całkowitą od 1 do 3. 1, 2 i 3 reprezentują kolor czerwony, zielony i odpowiednio niebieski. Podobnie jak w przypadku wszystkich przywołanych poleceń, nie należy umieszczać cudzysłowów.

Zatrzymaj program na 20 sekund używając "pause(20)", aby licznik mógł uzyskać dokładny odczyt próbki, a następnie rozpocznij instrukcję "if". Kilka razy wyemitowaliśmy nasz Roomba sygnał dźwiękowy, używając „r.beep”, zanim wyświetlił menu z tekstem „Znaleziono radioizotop! Uwaga!” można to osiągnąć za pomocą polecenia „waitfor(helpdlg({'textthere'})”. Po kliknięciu przycisku OK Roomba będzie nadal postępować zgodnie z resztą kodu w instrukcji „if”. kombinację poleceń „r.moveDistance” i „r.turnAngle”. Upewnij się, że wypowiedź if kończysz słowem „end”.

W załączniku znajduje się zrzut ekranu naszego kodu, ale możesz go edytować, aby najlepiej pasował do twoich parametrów misji.

Krok 6: Utwórz kod czujnika wysokości

Utwórz kod czujnika klifu
Utwórz kod czujnika klifu

Aby utworzyć kod, który będzie korzystał z wbudowanych czujników klifu Roomby, zacznij od pętli „while” i ustaw jej wyrażenie jako prawdziwe. Ustaw zmienną na równą "r.getCliffSensors", a to da strukturę. Rozpocznij instrukcję "if" i ustaw zmienne "X.leftFront" i "X.rightFront" ze struktury tak, aby były większe niż jakaś z góry określona wartość, gdzie "X" jest zmienną wybraną przez polecenie "r.getCliffSensors" do Być równe. W naszym przypadku użyliśmy 1000, ponieważ kawałek białego papieru został użyty do przedstawienia klifu, a gdy czujniki zbliżyły się do papieru, wartości wzrosły do znacznie ponad 1000, zapewniając, że kod zostanie wykonany tylko po wykryciu klifu. Dodaj polecenie „break” po, a następnie wstaw instrukcję „else”. W przypadku instrukcji „else”, która zostanie wykonana, jeśli nie zostanie wykryte urwisko, ustaw prędkość napędu na normalną prędkość przelotową dla każdego koła. Jeśli Roomba wykryje urwisko, zostanie wykonana „przerwa”, a następnie zostanie wykonany kod poza pętlą while. Po umieszczeniu „koniec” pętli „if” i „while”, ustaw Roombę tak, aby poruszał się do tyłu za pomocą polecenia przesunięcia odległości. Aby ostrzec astronautów, że w pobliżu znajduje się urwisko, ustaw prędkości napędu każdego koła, x i y w poleceniu prędkości napędu, na a i -a, gdzie a jest liczbą rzeczywistą. Spowoduje to, że Roomba zacznie się obracać, ostrzegając astronautę o klifie.

W załączniku znajduje się zrzut ekranu naszego kodu, ale możesz go edytować, aby najlepiej pasował do twoich parametrów misji.

Krok 7: Wniosek

Wniosek
Wniosek

Ostatecznym celem RADbota na Marsie jest pomoc astronautom w eksploracji i kolonizacji Czerwonej Planety. Identyfikując próbki radioaktywne na powierzchni, mamy nadzieję, że robot lub łazik, w tym przypadku, naprawdę zapewni astronautom bezpieczeństwo i pomoże zidentyfikować źródła zasilania ich baz. Po wykonaniu wszystkich tych kroków i być może po wykonaniu kilku prób i błędów, Twój RADbot powinien być gotowy do pracy. Umieść próbkę radioaktywną gdzieś w obszarze testowym, wykonaj kod i obserwuj, jak łazik robi to, do czego został zaprojektowany. Miłego RADbota!

-Zespół EF230 RADbot

Zalecana: