Spisu treści:
- Krok 1: Zdobądź niezbędne części i materiały
- Krok 2: Konfiguracja kamery i licznika Geigera-Mullera
- Krok 3: Połącz się z robotem Roomba i utwórz kod czujnika światła
- Krok 4: Utwórz kod przerywnika
- Krok 5: Utwórz kod do odczytu ekranu licznika, zinterpretuj go i wycofaj ze źródła
- Krok 6: Utwórz kod czujnika wysokości
- Krok 7: Wniosek
Wideo: RADbot: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
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
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
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
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
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
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
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
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:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
Lewitacja akustyczna z Arduino Uno krok po kroku (8 kroków): 8 kroków
Lewitacja akustyczna z Arduino Uno Krok po kroku (8-kroków): ultradźwiękowe przetworniki dźwięku Zasilacz żeński L298N Dc z męskim pinem dc Arduino UNOBreadboardJak to działa: Najpierw wgrywasz kod do Arduino Uno (jest to mikrokontroler wyposażony w cyfrowy oraz porty analogowe do konwersji kodu (C++)
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: 6 kroków
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: W tym samouczku dowiemy się, jak śledzić kroki silnika krokowego na wyświetlaczu OLED. Obejrzyj film demonstracyjny.Kredyt samouczka oryginalnego trafia do użytkownika YouTube „sky4fly”
Bolt - DIY Wireless Charging Night Clock (6 kroków): 6 kroków (ze zdjęciami)
Bolt - DIY Wireless Charging Night Clock (6 kroków): Ładowanie indukcyjne (znane również jako ładowanie bezprzewodowe lub ładowanie bezprzewodowe) to rodzaj bezprzewodowego przesyłania energii. Wykorzystuje indukcję elektromagnetyczną do dostarczania energii elektrycznej do urządzeń przenośnych. Najpopularniejszym zastosowaniem jest stacja ładowania bezprzewodowego Qi
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: 13 kroków (ze zdjęciami)
Jak zdemontować komputer za pomocą prostych kroków i zdjęć: To jest instrukcja demontażu komputera. Większość podstawowych komponentów ma budowę modułową i jest łatwa do usunięcia. Jednak ważne jest, abyś był w tym zorganizowany. Pomoże to uchronić Cię przed utratą części, a także ułatwi ponowny montaż