INHOUDSOPGAWE:

Die RADbot: 7 stappe
Die RADbot: 7 stappe

Video: Die RADbot: 7 stappe

Video: Die RADbot: 7 stappe
Video: 4Werke - Jy Slaan Die Wind In My Seile 2024, Oktober
Anonim
Die RADbot
Die RADbot

'N Projek van Jackson Breakell, Tyler McCubbins en Jakob Thaler vir EF 230

Op Mars sal ruimtevaarders aan verskillende gevare blootgestel word, wat wissel van uiterste temperature tot stofstorms. Een faktor wat egter dikwels oor die hoof gesien word, is die gevaar wat kragtige radio -isotope op die planeet se oppervlak inhou. Die RADbot bied hulp aan die verkenning van ruimtevaarders op Mars se oppervlak deur rotsmonsters te identifiseer met hoë aktiwiteite terwyl dit reis, en het ook geprogrammeerde veiligheidsfunksies wat gebruik maak van sy kransensors, ligsensors, buffersensors en 'n kamera, wat die robot nie beskadig nie op die onvergewensgesinde Mars -terrein. Behalwe dat ruimtevaarders gewaarsku word oor moontlike radioaktiewe gevare op die oppervlak, kan die robot se funksie vir radioaktiewe monsterneming van die robot geïmplementeer word as 'n hulpmiddel om gebiede te identifiseer wat groot afsettings Uranium en ander aktiniede kan bevat. Ruimtevaarders kan hierdie elemente ontgin, dit voldoende verryk en in kernreaktors en termo-elektriese kragopwekkers gebruik, wat 'n permanente, selfonderhoudende kolonie op die planeet kan dryf.

Anders as die tipiese Mars-rover, bevat ons ontwerp komponente uit die rak en 'n redelike prys. Mits u die geld en die begeerte het, kan u selfs een bou deur hierdie gids te volg. Lees verder om te leer hoe u u eie RADbot kan maak.

Stap 1: Verkry die nodige onderdele en materiaal

Verkry die nodige onderdele en materiaal
Verkry die nodige onderdele en materiaal
Verkry die nodige onderdele en materiaal
Verkry die nodige onderdele en materiaal
Verkry die nodige onderdele en materiaal
Verkry die nodige onderdele en materiaal

Wat u nodig het om aan die gang te kom (prente geplaas sodat hulle gelys word)

1. Een Roomba (enige nuwer model)

2. Een Geiger-Mueller-toonbank

3. Een Framboos Pi

4. Eenbordkamera met 'n USB -aansluiting

5. Een mikro -USB na USB -kabel

6. Een USB na USB kabel

7. Een radioaktiewe monster met voldoende aktiwiteit (~ 5μSv of hoër)

8. Een rekenaar met Matlab geïnstalleer

9. Kleefmiddel (verkieslik kleefband vir maklike verwydering)

Stap 2: Stel die kamera en Geiger-Muller-teller op

Die opstel van die kamera en Geiger-Muller-toonbank
Die opstel van die kamera en Geiger-Muller-toonbank

Noudat u al die nodige materiaal het om die RADbot te skep, begin ons net met die kamera sodat dit die aktiwiteit op die toonbank kan lees. Plaas die Geiger-Muller-toonbank so na as moontlik aan die einde van die Roomba en maak seker dat die sensor nie geblokkeer is nie. Bevestig die toonbank stewig met die gom wat u gekies het, en monteer die kamera om dit te sien. Plaas die kamera so na as moontlik aan die skerm van die toonbank om te voorkom dat insette van buite die program beïnvloed, en bevestig dit sodra u gemaklik voel. Ons beveel egter aan dat u die kamera vir die laaste keer nie bewaar nie, want as u kode klaar is, kan u 'n beeld van die kamera op u rekenaar vertoon, sodat u die kamera kan posisioneer op grond van sy gesigsveld. As beide die kamera en die toonbank stewig vas is, steek die kamera in een van die USB -ingange van die Raspberry Pi met die USB -na -USB -kabel en steek die Raspberry Pi in die Roomba met die mikro -USB na USB -kabel.

Stap 3: Koppel aan u Roomba en skep ligsensorkode

Koppel aan u Roomba en skep 'n ligsensorkode
Koppel aan u Roomba en skep 'n ligsensorkode

Laai eers die Roomba -gereedskapskas van die EF 230 -webwerf af en plaas dit in die gespesifiseerde vouers. Om 'n verbinding met u Roomba te maak, verwys u eenvoudig na die plakker wat aan die Raspberry Pi geheg is en voer "r = roomba (x)" in die opdragvenster in sonder die aanhalingstekens, en waar x staan vir die Roomba se nommer. Die Roomba moet 'n deuntjie speel, en die skoonknoppie moet 'n groen ring omring. Begin u kode met 'n "while" -verklaring, en verwys na die ligsensors soos dit in die sensorlys verskyn. Maak die sensorlys oop deur "r.testSensors" in die opdragvenster te tik.

Op grond van die kleur van ons voorwerp, wat bepaal hoeveel lig gereflekteer word, stel die vereistes vir die while -verklaring as 'n> funksie. In ons geval het ons die voorste ligsensor ingestel om die kode in die while -verklaring uit te voer as die lesing aan die linker- of regterkantste sensor in die middel> 25 was. Vir die uitvoerbare stelling, stel die snelheid van die Roomba in om te vertraag deur "r.setDriveVelocity (x, y)" in te tik waar x en y die snelhede van die linker- en regterwiele is. Voeg 'n 'anders' -verklaring in sodat die Roomba nie ongespesifiseerde waardes vertraag nie, en voer die opgestelde dryfsnelheidsopdrag weer in, behalwe met 'n ander snelheid. Beëindig die terwyl -stelling met 'n "einde". Hierdie kodesegment laat die Roomba die voorwerp nader en vertraag sodra dit 'n sekere reeks bereik om die impak te verminder.

Aangeheg is 'n skermkiekie van ons kode, maar u kan dit gerus wysig om die beste by u missie parameters te pas.

Stap 4: Skep buffer kode

Skep buffer kode
Skep buffer kode

Aangesien die Roomba stadiger word, verminder dit die impak wat dit op die voorwerp het, maar nie so baie dat dit nie die fisiese buffer veroorsaak nie. Begin vir hierdie segment van die kode weer met 'n "while" lus en stel die uitdrukking daarvan waar. Stel vir die stelling die veranderlike T gelyk aan die uitset van die buffer, óf 1 óf 1, as onwaar en waar. U kan die 'T = r.getBumpers' hiervoor gebruik. T sal as 'n struktuur uitvoer. Voer 'n "as" -verklaring in, en stel die uitdrukking daarvan vir die onderbou T.front gelyk aan 1, en stel die verklaring om óf die dryfsnelheid op 0 te stel, met behulp van "r.setDriveVelocity (x, y)" of "r.stop ". Voer 'n "breek" in sodat die Roomba kan beweeg nadat aan die voorwaarde in die volgende kode voldoen is. Voeg 'n 'anders' by en stel sy stelling in om die dryfsnelheid in te stel op die normale kruissnelheid van die Roomba.

Aangeheg is 'n skermkiekie van ons kode, maar u kan dit gerus wysig om die beste by u missie parameters te pas.

Stap 5: Skep kode om die skerm van die toonbank te lees, interpreteer dit en trek terug uit die bron

Skep kode om die toonbankskerm te lees, interpreteer dit en trek terug uit die bron
Skep kode om die toonbankskerm te lees, interpreteer dit en trek terug uit die bron

Die kern van ons projek is die Geiger-Muller-toonbank en die volgende kodesegment word gebruik om te bepaal wat die data op die skerm met die kamera beteken. Aangesien die skerm van ons toonbank van kleur verander op grond van die aktiwiteit van die bron, stel ons die kamera in om die kleur van die skerm te interpreteer. Begin u kode deur 'n veranderlike op te stel wat gelyk is aan die opdrag "r.getImage". Die veranderlike bevat 'n 3D -reeks kleurwaardes van die prentjie wat dit in rooi, groen en blou geneem het. Stel veranderlikes gelyk aan die gemiddeldes van hierdie onderskeie kleurmatrikse deur die opdrag "gemiddelde (gemiddelde (img1 (:,:, x)))" te gebruik, waar x 'n heelgetal van 1 tot 3. 1, 2 en 3 is rooi, groen en blou onderskeidelik. Soos met al die opdragte waarna verwys word, moet aanhalingstekens nie ingesluit word nie.

Laat die program 20 sekondes onderbreek met 'pouse (20)', sodat die toonbank 'n akkurate lesing van die monster kan kry en dan 'n 'as' -verklaring begin. Ons het ons Roomba verskeie kere laat hoor deur 'r.beep' te gebruik voordat ons 'n spyskaart met die teks 'Radioisotoop gevind!' dit kan bereik word met die opdrag "waitfor (helpdlg ({'texthere'})". Nadat u op OK geklik het, sal die Roomba die res van die kode in die 'if' -verklaring volg. Laat die Roomba deur die monster ry 'n kombinasie van die opdragte "r.moveDistance" en "r.turnAngle". Maak seker dat u die if -stelling met 'n "einde" eindig.

Aangeheg is 'n skermkiekie van ons kode, maar u kan dit gerus wysig om die beste by u missie parameters te pas.

Stap 6: Skep 'n Cliff Sensor Code

Skep 'n Cliff Sensor Code
Skep 'n Cliff Sensor Code

Om 'n kode te skep om gebruik te maak van die Roomba se ingeboude kransensors, begin met 'n "while" lus en stel die uitdrukking daarvan waar. Stel 'n veranderlike gelyk aan "r.getCliffSensors", en dit sal 'n struktuur tot gevolg hê. Begin 'n 'as' -stelling en stel die veranderlikes' X.leftFront 'en' X.rightFront 'van die struktuur af groter as 'n voorafbepaalde waarde, waar' X 'die veranderlike is waarop u die opdrag' r.getCliffSensors 'gekies het gelyk wees aan. In ons geval het ons 1000 gebruik, aangesien 'n stuk wit papier gebruik is om 'n krans voor te stel, en namate die sensors die papier nader, het die waardes tot meer as 1000 gegroei, wat verseker dat die kode eers uitgevoer word wanneer 'n krans opgespoor word. Voeg die opdrag "breek" daarna by, en voeg dan 'n 'anders' verklaring in. Stel die dryfsnelheid op die normale kruissnelheid vir elke wiel vir die 'anders' -verklaring, wat uitgevoer sal word as geen krans bespeur word nie. As die Roomba 'n krans opspoor, word die 'breek' uitgevoer en dan word die kode buite die while -lus uitgevoer. Nadat u die "einde" vir die "as" en "terwyl" lus geplaas het, stel u die Roomba in om agteruit te beweeg met die opdrag vir afstandsafstand. Om ruimtevaarders te waarsku dat 'n krans naby is, stel die dryfsnelhede van elke wiel, x en y in die aandryfsnelheidsopdrag, in a en -a, waar a 'n reële getal is. Dit sal die Roomba laat draai, wat die ruimtevaarder op die krans laat weet.

Aangeheg is 'n skermkiekie van ons kode, maar u kan dit gerus wysig om die beste by u missie parameters te pas.

Stap 7: Gevolgtrekking

Afsluiting
Afsluiting

Die uiteindelike doel van die RADbot op Mars is om ruimtevaarders te help met die verkenning en kolonisering van die rooi planeet. Deur radioaktiewe monsters op die oppervlak te identifiseer, hoop ons dat die robot of rover in hierdie geval ruimtevaarders werklik kan bewaar en kan help om kragbronne vir hul basis (s) te identifiseer. Nadat u al hierdie stappe gevolg het, en miskien met 'n bietjie proef en fout, behoort u RADbot aan die gang te wees. Plaas die radioaktiewe monster iewers in u toetsarea, voer u kode uit en kyk hoe die rover doen wat dit bedoel is om te doen. Geniet u RADbot!

-Die EF230 RADbot -span

Aanbeveel: