Obsah:

RADbot: 7 kroků
RADbot: 7 kroků

Video: RADbot: 7 kroků

Video: RADbot: 7 kroků
Video: Radbot 1 - understanding how it works and how it can save you energy 2024, Říjen
Anonim
RADbot
RADbot

Projekt Jacksona Breakella, Tylera McCubbinse a Jakoba Thalera pro EF 230

Na Marsu budou astronauti vystaveni nejrůznějším nebezpečím, od extrémních teplot až po prachové bouře. Jedním z faktorů, které jsou často přehlíženy, je však nebezpečí, které představují silné radioizotopy sídlící na povrchu planety. RADbot poskytuje pomoc při průzkumu astronautů na povrchu Marsu identifikací horninových vzorků s vysokými aktivitami při cestování a má také naprogramované bezpečnostní funkce, které využívají jeho útesové senzory, světelné senzory, senzory nárazníku a kameru, čímž zabraňují poškození robota na nemilosrdném marťanském terénu. Kromě varování astronautů před možným radioaktivním nebezpečím na povrchu by mohla být funkce robotického umístění radioaktivního vzorku implementována jako nástroj k identifikaci oblastí, které by mohly obsahovat velká ložiska uranu a dalších aktinidů. Astronauti by mohli těžit tyto prvky, dostatečně je obohacovat a používat v jaderných reaktorech a termoelektrických generátorech, které by mohly pomoci napájet trvalou, soběstačnou kolonii na planetě.

Na rozdíl od typického roveru Mars náš design obsahuje běžně dostupné komponenty a rozumnou cenu. Za předpokladu, že máte prostředky a touhu, můžete si jej dokonce vytvořit sami podle tohoto průvodce. Pokračujte v čtení, abyste se dozvěděli, jak si vytvořit vlastního RADbot.

Krok 1: Získejte potřebné součásti a materiály

Získejte potřebné díly a materiály
Získejte potřebné díly a materiály
Získejte potřebné díly a materiály
Získejte potřebné díly a materiály
Získejte potřebné díly a materiály
Získejte potřebné díly a materiály

Co budete potřebovat, abyste mohli začít (obrázky v pořadí, v jakém jsou uvedeny)

1. One Roomba (jakýkoli novější model)

2. Jeden Geiger-Muellerův čítač

3. Jeden Raspberry Pi

4. Jednodesková kamera s USB výstupem

5. Jeden kabel micro USB na USB

6. Jeden kabel USB na USB

7. Jeden radioaktivní vzorek dostatečné aktivity (~ 5μSv nebo vyšší)

8. Jeden počítač s nainstalovaným Matlabem

9. Lepidlo (nejlépe lepicí páska pro snadné odstranění)

Krok 2: Konfigurace kamery a čítače Geiger-Muller

Konfigurace kamery a čítače Geiger-Muller
Konfigurace kamery a čítače Geiger-Muller

Nyní, když máte všechny potřebné materiály k vytvoření RADbot, začneme jednoduchým umístěním kamery, aby mohla číst aktivitu na pultu. Umístěte počítadlo Geiger-Muller co nejblíže konci robota Roomba a ujistěte se, že jeho senzor není zablokován. Zajistěte počítadlo na místě pevně zvoleným lepidlem a pokračujte v montáži kamery čelem k němu. Umístěte kameru co nejblíže k displeji pultu, abyste zabránili vnějším vstupům ovlivňovat program, a zajistěte ji na místě, jakmile se budete cítit pohodlně. Doporučujeme však uložit zabezpečení fotoaparátu jako poslední, protože po dokončení kódu můžete zobrazit obrázek z kamery na počítači, což vám umožní umístit kameru podle jejího zorného pole. Jakmile je kamera i počítadlo pevně na svém místě, zapojte kameru do jednoho z USB vstupů Raspberry Pi pomocí kabelu USB na USB a zapojte Raspberry Pi do Roomby pomocí kabelu micro USB na USB.

Krok 3: Připojte se k robotu Roomba a vytvořte kód světelného senzoru

Připojte se k robotovi Roomba a vytvořte kód světelného senzoru
Připojte se k robotovi Roomba a vytvořte kód světelného senzoru

Nejprve si stáhněte soubor nástrojů Roomba z webu EF 230 a umístěte jej do určených složek. Chcete -li se připojit k robotu Roomba, jednoduše se podívejte na nálepku připojenou k Raspberry Pi a do příkazového okna zadejte „r = roomba (x)“bez uvozovek a kde x znamená číslo Roomby. Roomba by měla hrát melodii a tlačítko Clean by mělo kolem ní zobrazovat zelený kroužek. Začněte kód příkazem „while“a odkazujte na světelná čidla, jak se objevují v seznamu čidel. Otevřete seznam senzorů zadáním „r.testSensors“do příkazového okna.

Na základě barvy našeho objektu, která určuje, kolik světla se odráží, nastavte požadavky na příkaz while, který má být proveden jako> funkce. V našem případě jsme nastavili snímač předního světla tak, aby spustil kód v příkazu while, pokud byla hodnota na levém nebo pravém středním světelném senzoru> 25. Pro spustitelný příkaz nastavte rychlost robota Roomba na zpomalení zadáním „r.setDriveVelocity (x, y)“, kde xay jsou rychlosti levého a pravého kola. Vložte příkaz „else“, aby Roomba nezpomalila pro neurčené hodnoty, a zadejte příkaz pro nastavení rychlosti jízdy znovu, s výjimkou jiné rychlosti. Ukončete příkaz while „koncem“. Díky tomuto segmentu kódu se robot Roomba přiblíží k objektu a zpomalí, jakmile dosáhne určitého rozsahu, aby se minimalizoval dopad.

V příloze je snímek obrazovky našeho kódu, ale můžete jej upravit tak, aby co nejlépe vyhovoval parametrům vaší mise.

Krok 4: Vytvořte kód nárazníku

Vytvořte kód nárazníku
Vytvořte kód nárazníku

Jak Roomba zpomaluje, bude minimalizovat dopad, který má na objekt, i když ne natolik, aby nespouštěl fyzický nárazník. U tohoto segmentu kódu začněte znovu smyčkou „while“a nastavte jeho výraz na hodnotu true. Pro příkaz nastavte proměnnou T rovnající se výstupu nárazníku, buď 0 nebo 1, pro false a true. K tomu můžete použít "T = r.getBumpers". T bude vystupovat jako struktura. Zadejte příkaz „if“a nastavte jeho výraz pro substrukturu T.front na hodnotu 1 a nastavte příkaz buď na nastavení rychlosti pohonu na 0 pomocí „r.setDriveVelocity (x, y)“nebo „r.stop “. Zadejte „přestávku“, aby se Roomba mohla pohybovat po splnění podmínky v dalším kódu. Přidejte „else“a jeho příkazem nastavte rychlost jízdy na normální cestovní rychlost Roomby.

V příloze je snímek obrazovky našeho kódu, ale můžete jej upravit tak, aby co nejlépe vyhovoval parametrům vaší mise.

Krok 5: Vytvořte kód pro čtení obrazovky čítače, jeho interpretaci a ústup ze zdroje

Vytvořte kód pro čtení obrazovky čítače, jeho interpretaci a ústup od zdroje
Vytvořte kód pro čtení obrazovky čítače, jeho interpretaci a ústup od zdroje

Jádrem našeho projektu je počítadlo Geiger-Muller a následující segment kódu slouží k určení, co data na obrazovce znamenají pomocí kamery. Vzhledem k tomu, že obrazovka našeho čítače mění barvu na základě aktivity zdroje, nastavíme kameru tak, aby interpretovala barvu obrazovky. Začněte kód nastavením proměnné rovnající se příkazu „r.getImage“. Proměnná bude obsahovat 3d pole barevných hodnot obrázku, který byl pořízen v červené, zelené a modré. Nastavte proměnné rovnající se průměrům těchto příslušných barevných matic pomocí příkazu „průměr (průměr (img1 (:,:, x)))“, kde x je celé číslo od 1 do 3. 1, 2 a 3 představují červenou, zelenou a respektive modrá. Stejně jako u všech odkazovaných příkazů neuvádějte uvozovky.

Nechte program na 20 sekund pozastavit pomocí „pauzy (20)“, aby čítač mohl získat přesné čtení vzorku, a poté začněte s příkazem „if“. Náš robot Roomba jsme několikrát zapípali pomocí „r.beep“a poté zobrazili nabídku s textem „Radioisotope found! Caution!“toho lze dosáhnout příkazem „waitfor (helpdlg ({'texthere'})“. Po kliknutí na tlačítko Roomba bude i nadále sledovat zbytek kódu v příkazu „if“. Nechejte robot Roomba projet vzorek pomocí kombinace příkazů „r.moveDistance“a „r.turnAngle“. Příkaz if ukončete příkazem „end“.

V příloze je snímek obrazovky našeho kódu, ale můžete jej upravit tak, aby co nejlépe vyhovoval parametrům vaší mise.

Krok 6: Vytvořte kód senzoru útesu

Vytvořte kód senzoru útesu
Vytvořte kód senzoru útesu

Chcete-li vytvořit kód, který bude využívat vestavěné snímače útesu Roomba, začněte smyčkou „while“a nastavte její výraz na pravdivý. Nastavte proměnnou na „r.getCliffSensors“a výsledkem bude struktura. Začněte příkazem „if“a nastavte proměnné „X.leftFront“a „X.rightFront“ze struktury tak, aby byly větší než nějaká předem stanovená hodnota, kde „X“je proměnná, kterou jste vybrali příkazem „r.getCliffSensors“být rovno. V našem případě jsme použili 1000, protože kus bílého papíru byl použit k reprezentaci útesu, a jak se senzory přiblížily, papír, hodnoty vzrostly na hodně přes 1000, což zajišťuje, že kód se spustí pouze při detekci útesu. Poté přidejte příkaz „break“a poté vložte příkaz „else“. Pro příkaz „else“, který bude proveden, pokud není detekován žádný útes, nastavte rychlost jízdy na normální cestovní rychlost pro každé kolo. Pokud robot Roomba detekuje útes, provede se „zlom“a poté se provede kód mimo smyčku while. Po umístění „konce“pro smyčky „if“a „while“nastavte Roombu na pohyb vzad pomocí příkazu move distance. Abyste astronauty varovali, že se poblíž nachází útes, nastavte rychlosti pohonu každého kola, x a y v příkazu rychlosti jízdy, na a a -a, kde a je skutečné číslo. To způsobí, že se Roomba otočí a upozorní astronauta na útes.

V příloze je snímek obrazovky našeho kódu, ale můžete jej upravit tak, aby co nejlépe vyhovoval parametrům vaší mise.

Krok 7: Závěr

Závěr
Závěr

Konečným cílem RADbota na Marsu je pomáhat astronautům při jejich průzkumu a kolonizaci rudé planety. Při identifikaci radioaktivních vzorků na povrchu doufáme, že robot nebo rover v tomto případě může skutečně udržet astronauty v bezpečí a pomoci identifikovat zdroje energie pro jejich základnu (základny). Po provedení všech těchto kroků a pravděpodobně při pokusu a omylu by měl být váš RADbot v provozu. Umístěte radioaktivní vzorek někam do testovací oblasti, spusťte kód a sledujte, jak rover dělá to, k čemu byl navržen. Užijte si svůj RADbot!

-Tým EF230 RADbot

Doporučuje: