Innehållsförteckning:
- Steg 1: Skaffa nödvändiga delar och material
- Steg 2: Konfigurera kameran och Geiger-Muller-räknaren
- Steg 3: Anslut till din Roomba och skapa ljussensorkod
- Steg 4: Skapa stötfångarkod
- Steg 5: Skapa kod för att läsa räknaren, tolka den och dra tillbaka från källan
- Steg 6: Skapa en Cliff Sensor Code
- Steg 7: Slutsats
Video: RADbot: 7 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
Ett projekt av Jackson Breakell, Tyler McCubbins och Jakob Thaler för EF 230
På Mars kommer astronauterna att utsättas för en mängd olika faror, allt från extrema temperaturer till dammstormar. En faktor som ofta förbises är dock faran från kraftfulla radioisotoper som finns på planetens yta. RADbot hjälper till att utforska astronauter på Mars yta genom att identifiera bergprover med höga aktiviteter när den färdas, och har också inprogrammerade säkerhetsfunktioner som använder dess klippsensorer, ljussensorer, stötfångarsensorer och en kamera, vilket förhindrar att roboten skadas på den oförlåtande Mars -terrängen. Förutom att varna astronauter för eventuella radioaktiva faror på ytan kan robotens radioaktiva provplaceringsfunktion implementeras som ett verktyg för att identifiera områden som kan innehålla stora avlagringar av uran och andra aktinider. Astronauter kan bryta dessa element, berika dem tillräckligt och använda dem i kärnreaktorer och termoelektriska generatorer, vilket kan hjälpa till att driva en permanent, självbärande koloni på planeten.
Till skillnad från den typiska Mars-rovern, har vår design komponenter från hyllan och en rimlig prislapp. Förutsatt att du har medel och lust kan du till och med bygga en själv genom att följa den här guiden. Läs vidare för att lära dig hur du gör din egen RADbot.
Steg 1: Skaffa nödvändiga delar och material
Vad du behöver för att komma igång (Bilder placerade i den ordning de listas)
1. En Roomba (någon nyare modell)
2. En Geiger-Mueller-räknare
3. En Raspberry Pi
4. En kortkamera med ett USB -uttag
5. En mikro -USB till USB -kabel
6. En USB till USB -kabel
7. Ett radioaktivt prov med tillräcklig aktivitet (~ 5μSv eller högre)
8. En dator med Matlab installerat
9. Lim (helst gaffatejp för enkel borttagning)
Steg 2: Konfigurera kameran och Geiger-Muller-räknaren
Nu när du har allt material som krävs för att skapa RADbot börjar vi med att helt enkelt placera kameran så att den kan läsa aktiviteten på disken. Placera Geiger-Muller-räknaren så nära slutet av Roomba som möjligt och se till att dess sensor inte är blockerad. Säkra räknaren ordentligt med det lim du valt och fortsätt att montera kameran så att den vetter mot den. Placera kameran så nära räknarens display som möjligt för att förhindra att externa ingångar påverkar programmet och säkra den på plats när du känner dig bekväm. Vi rekommenderar dock att du sparar kamerans säkring för det sista, eftersom när din kod är klar kan du visa en bild från kameran på din dator, så att du kan placera kameran utifrån dess synfält. När både kameran och räknaren sitter ordentligt på plats ansluter du kameran till en av USB -ingångarna på Raspberry Pi med USB till USB -kabeln och ansluter Raspberry Pi till Roomba med mikro -USB till USB -kabeln.
Steg 3: Anslut till din Roomba och skapa ljussensorkod
Ladda först ner Roomba -verktygslådan på webbplatsen EF 230 och placera den i de angivna mapparna. För att ansluta till din Roomba, hänvisar du bara till klistermärket som är fäst på Raspberry Pi och anger "r = roomba (x)" i kommandofönstret, utan citattecken, och där x står för Roombas nummer. Roomba ska spela en melodi och rengöringsknappen ska visa en grön ring runt den. Starta din kod med ett "while" -uttalande och hänvisa till ljussensorerna som de visas i sensorlistan. Öppna sensorlistan genom att skriva "r.testSensors" i kommandofönstret.
Baserat på färgen på vårt objekt, som bestämmer hur mycket ljus som reflekteras, ställer du kraven för medan -satsen ska utföras som en> funktion. I vårt fall ställer vi in den främre ljussensorn för att köra koden i while -uttalandet om avläsningen på vänster eller höger mittljussensor var> 25. För det körbara uttalandet, ställ in Roombas hastighet för att sakta ner genom att skriva "r.setDriveVelocity (x, y)" där x och y är hastigheterna för vänster respektive höger hjul. Infoga ett "annat" -uttalande, så att Roomba inte saktar in för ospecificerade värden, och ange det inställda drivhastighetskommandot igen, utom med en annan hastighet. Avsluta medan -uttalandet med ett "slut". Detta kodsegment kommer att få Roomba att närma sig objektet och sakta ner när det når ett visst intervall för att minimera påverkan.
Bifogad är en skärmdump av vår kod, men du kan redigera den så att den bäst passar dina uppdragsparametrar.
Steg 4: Skapa stötfångarkod
Eftersom Roomba saktar ner, kommer den att minimera den inverkan den har på objektet, men inte så mycket att den inte utlöser den fysiska stötfångaren. För detta segment av kod, börja med en "while" -slinga igen och ställ in dess uttryck för att vara sant. För satsen, ställ in variabeln T lika med stötfångarens utgång, antingen 0 eller 1, för falskt och sant. Du kan använda "T = r.getBumpers" för detta. T kommer att matas ut som en struktur. Ange ett "if" -uttalande och ställ dess uttryck för understrukturen T.front till lika med 1, och ställ in satsen för att antingen ställa in drivhastigheten på 0 med "r.setDriveVelocity (x, y)" eller "r.stop ". Ange en "paus" så att Roomba kan flytta efter att villkoret i nästa kod är uppfyllt. Lägg till ett "annat" och ställ in dess uttalande för att ställa in drivhastigheten till den normala marschhastigheten för Roomba.
Bifogad är en skärmdump av vår kod, men du kan redigera den så att den bäst passar dina uppdragsparametrar.
Steg 5: Skapa kod för att läsa räknaren, tolka den och dra tillbaka från källan
Kärnan i vårt projekt är Geiger-Muller-räknaren och följande kodsegment används för att bestämma vad data på skärmen betyder med kameran. Med tanke på att vår räknares skärm ändrar färg baserat på källans aktivitet, kommer vi att ställa in kameran för att tolka skärmens färg. Starta din kod genom att ställa in en variabel som är lika med kommandot "r.getImage". Variabeln kommer att innehålla en 3D -uppsättning färgvärden för bilden den tog i rött, grönt och blått. Ställ in variabler som är lika med medelvärdena för respektive färgmatris med kommandot "medelvärde (medelvärde (img1 (:,:, x)))" där x är ett heltal från 1 till 3. 1, 2 och 3 representerar rött, grönt och blå respektive. Som med alla kommandon som refereras, inkludera inte citattecken.
Låt programmet pausa i 20 sekunder med hjälp av "paus (20)" så att räknaren kan få en korrekt avläsning av provet och sedan börja ett "om" -uttalande. Vi fick vårt Roomba -pip flera gånger genom att använda "r.beep" innan vi visade en meny med texten "Radioisotop hittad! Varning!" detta kan åstadkommas med kommandot "waitfor (helpdlg ({'texthere'})". Efter att ha klickat ok, fortsätter Roomba att följa resten av koden i "if" -uttalandet. Låt Roomba köra runt provet med en kombination av kommandona "r.moveDistance" och "r.turnAngle". Se till att avsluta if -satsen med "end".
Bifogad är en skärmdump av vår kod, men du kan redigera den så att den bäst passar dina uppdragsparametrar.
Steg 6: Skapa en Cliff Sensor Code
För att skapa en kod för att använda Roombas inbyggda klippsensorer, börja med en "while" -slinga och ställ in dess uttryck för att vara sant. Ställ in en variabel som är lika med "r.getCliffSensors", så kommer detta att resultera i en struktur. Starta ett "if" -uttalande och ställ in variablerna "X.leftFront" och "X.rightFront" från strukturen till att vara större än något förutbestämt värde, där "X" är variabeln du valde kommandot "r.getCliffSensors" till vara lika med. I vårt fall använde vi 1000, eftersom ett vitt papper användes för att representera en klippa, och när sensorerna närmade sig papperet växte värdena till långt över 1000, vilket säkerställer att koden bara körs när en klippa upptäcks. Lägg till kommandot "break" efter, och infoga sedan ett "else" -uttalande. För "annat" -uttalandet, som kommer att utföras om ingen klippa detekteras, ställ in drivhastigheten till den normala marschhastigheten för varje hjul. Om Roomba detekterar en klippa, kommer "pausen" att köras, och sedan kommer koden utanför while -slingan att exekveras. Efter att ha placerat "slutet" för "om" och "medan" -slingan, ställ in Roomba för att gå bakåt med kommandot flytta avstånd. För att varna astronauter att en klippa är i närheten, ställ in drivhastigheterna för varje hjul, x och y i kommandot för hastighet, till a och -a, där a är ett reellt tal. Detta kommer att få Roomba att snurra, varna astronauten för klippan.
Bifogad är en skärmdump av vår kod, men du kan redigera den så att den bäst passar dina uppdragsparametrar.
Steg 7: Slutsats
RADbotens slutliga mål på Mars är att hjälpa astronauter i deras utforskning och kolonisering av den röda planeten. Genom att identifiera radioaktiva prover på ytan är vår förhoppning att roboten eller rovern i det här fallet verkligen kan hålla astronauterna säkra och hjälpa till att identifiera kraftkällor för deras bas (er). Efter att ha följt alla dessa steg, och kanske med lite försök och fel, bör din RADbot vara igång. Placera det radioaktiva provet någonstans inom ditt testområde, kör koden och se rovern göra vad den var avsedd att göra. Njut av din RADbot!
-EF230 RADbot -teamet
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)