INHOUDSOPGAWE:
- Stap 1: Benodigde onderdele
- Stap 2: Lêers en kamerakonfigurasie
- Stap 3: Aanvanklike Roomba -toetsing
- Stap 4: Voorbeeld MATLAB -kode
Video: Ruimte-assisterende Roomba: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Hierdie projek word gemaak deur gebruik te maak van die Raspberry Pi 3 aan boord van die iRobot Create Version 2. MATLAB word gebruik om die robot te programmeer om spesifieke instruksies te volg met behulp van sy sensors en kamera. Die sensors en kameras word gebruik om spesifieke take uit te voer wat 'n ruimtevaarder volg en hom/haar die geleentheid bied om met sy/haar tuisbasis te kommunikeer as iets verkeerd loop.
Stap 1: Benodigde onderdele
1. iRobot Skep weergawe 2
Die iRobot Create is die belangrikste deel van hierdie projek, aangesien dit programmeerbaar is en 'n uitstekende voorstelling kan wees vir 'n werklike rover wat ruimtevaarders volg en hulle in die toekoms help
2. Framboos Pi 3
Die Raspberry Pi was die programmeerbare program wat vir hierdie projek gebruik is. Die kode is ontwerp vir die Pi en die weergawe van die aangehegte Pi is die 3 (model B). Ander programmeerbare borde soos arduino is bruikbaar, maar arduino en die meeste ander borde benodig ander kodering as wat in 'n ander stap beskryf word
3. Framboos Pi -kameramodule
Die enigste vreemde verbinding met die Raspberry Pi wat nodig is vir hierdie projek, is die kameramodule. Die kameramodule is die integrale deel van hierdie projek, aangesien die roomba slegs take sal verrig op grond van wat dit in die kamera sien
4. MATLAB 2018a
MATLAB se tweede mees onlangse weergawe, 2018a, is gebruik vir die kodering wat by hierdie opset betrokke is. Dit is waarskynlik dat baie ander weergawes van MATLAB hiermee sal werk, aangesien die roomba -programmering al 'n rukkie bestaan
Stap 2: Lêers en kamerakonfigurasie
1. Raspberry Pi en kamera verbindings met die roomba
- Die Pi kan direk met die iRobot verbind word met 'n mikro -USB. Dit is al wat dit nodig het om gereed te wees om te gebruik. Dit word egter aanbeveel dat dit veilig op die roomba geplaas word, soos op die prente tot dusver op die foto's getoon is.
- Die kamera het 'n direkte verbinding met die Raspberry Pi en dit word sterk aanbeveel dat iets gekoop of gemaak word om die kamera regop te hou. Daar is geen regte punt vir die kamera as dit nie vasgehou kan word om te wys wat die kamerba sien nie.
2. Lêers
- Nadat u alles opgestel en gekoppel het, moet u seker maak dat die robot herstel en gereed is deur die knoppies "Spot" en "Dock" 10 sekondes bymekaar te hou.
- Dit is waar MATLAB eers nodig is. Die lêers vir die roomba moet eers geïnstalleer word, en al wat nodig is om hierdie lêers uit te voer, is die kode wat op hierdie skakel verskaf word:
- https://ef.engr.utk.edu/ef230-2017-08//projects/ro…
Stap 3: Aanvanklike Roomba -toetsing
Daar is baie aanvanklike kontrole wat op die roomba uitgevoer moet word om seker te maak dat dit werk.
1. Maak seker dat u aan dieselfde WiFi -netwerk as die roomba gekoppel is. Sonder dit sal u nooit via MATLAB konnekteer nie.
2. Vind uit na watter nommer u roomba toegewys is, sodat u spesifiek kan skakel met die roomba wat u gekies het. As u roomba se nommer byvoorbeeld 30 is, kan u daaraan koppel deur roomba (30) in die opdragvenster in MATLAB in te tik.
3. Die roomba kan beheer word deur strukture in MATLAB. As u byvoorbeeld u kode vir roomba (30) op die veranderlike 'r' stel, kan die robot vorentoe geskuif word met die opdrag r.moveDistance (0.2, 0.1).
4. Daar is baie verskillende opdragte wat aan die roomba gekommunikeer kan word, en dit kan gesien word deur 'doc roomba' in die opdragvenster in te tik.
5. Die sensors vir lig-, stamp- en kranslesings kan almal gelees word met behulp van die opdragte in 'doc roomba', maar 'n manier om 'n konstante, netjiese spyskaart te hê om die sensordata te sien, kan met behulp van 'r.testSensors' gesien word '.
6. Nadat u dit alles getoets het, kan u die beeldversamelingsagteware van die robot gebruik om foto's wat geneem is, te lees en te sien. Die basiese kode hiervoor is img = r.getImage en imshow (img);.
7. Die RGB -waardes van die prent kan gevind word met die kodes red_mean = mean (gemiddelde (img (:,:, 1)));
green_mean = gemiddelde (gemiddelde (img (:,:, 2))); en blue_mean = gemiddelde (gemiddelde (img (:,:, 3)));.
Stap 4: Voorbeeld MATLAB -kode
Op hierdie punt is u nou gereed om die sensors en sagteware vir die neem van foto's te gebruik om u eie draai op 'n mens-ondersteunende prototipe Mars Rover te skep. Ons voorbeeld is om die ruimtevaarder te volg deur die kleur wit op te spoor en daarheen te beweeg. Die robot sal piep as die sensors hoë waardes lees, sodat die ruimtevaarder die robot kan herstel as hy vas is, of dit kan optel en terugstel as hy op 'n krans vassteek. Dit lees egter slegs hierdie foute solank dit wit is. Sonder om die kleur wit te sien, gaan die robot in die foutmodus. Dit is geprogrammeer om twee verskillende soorte e -posse terug te stuur na die tuisbasis, afhangende van wat dit sien. As dit die velkleur van die ruimtevaarder sien, is dit natuurlik nie goed nie, so dit sal die tuisbasis waarsku as die ruimtevaarder vel vertoon met 'n pakpak. Die ander boodskap word voorberei as die ruimtevaarder eenvoudig uit die oog verdwyn. As daar geen wit of velkleur vir die kameras verskyn nie, draai die robot om en stuur 'n ander, maar ander e -pos. Die beelde waar die roomba die ruimtevaarder nie kan sien nie, word saam met die boodskap in die e -posse gestuur. Die kode vir ons projek word hieronder getoon:
vir i = 1:.1: 3 img = r.getImage; beeld (img) red_mean = gemiddelde (gemiddelde (img (:,:, 1))); green_mean = gemiddelde (gemiddelde (img (:,:, 2))); blue_mean = gemiddelde (gemiddelde (img (:,:, 3)))); as red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || stamp.links> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || krans.linksVoor <10 || cliff.rightFront <10 || cliff.right700 || lig.linksVoor> 700 || lig.sentrum> 700 || light.rightCenter> 700 || light.rightFront> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop anders vir i = 1: 2 r.moveDistance (0.2, 0.1) r. setDriveVelocity (.3,.2) r.stop end end end if green_mean <35 && blue_mean <35 %velkleur vertoon (moet aangepas word volgens astronaut se velkleur) r.beep (); r.biep (); r.biep (); mail = '[email protected]'; %stuur e -pos met die teken dat die pak af is psswd = 'yeah'; host = 'smtp.gmail.com'; poort = '465'; emailto = '[email protected]'; m_subject = 'onderwerp'; m_text = 'toets'; setpref ('Internet', 'E_mail', pos); setpref ('Internet', 'SMTP_Server', gasheer); setpref ('Internet', 'SMTP_Username', pos); setpref ('Internet', 'SMTP_Password', psswd); rekwisiete = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pos); props.setProperty ('mail.smtp.host', gasheer); props.setProperty ('mail.smtp.port', poort); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', poort); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'The astronauts uniform is off!', afb); eindig as red_mean 135 || groen_middel 135 || blue_mean 135 vir j = 1: 2 %as wit nie deur die robot gevind kan word nie r.turnAngle (360) mail = '[email protected]'; psswd = 'ja'; host = 'smtp.gmail.com'; poort = '465'; emailto = '[email protected]'; m_subject = 'onderwerp'; m_text = 'toets'; setpref ('Internet', 'E_mail', pos); setpref ('Internet', 'SMTP_Server', gasheer); setpref ('Internet', 'SMTP_Username', pos); setpref ('Internet', 'SMTP_Password', psswd); rekwisiete = java.lang. System.getProperties; props.setProperty ('mail.smtp.user', pos); props.setProperty ('mail.smtp.host', gasheer); props.setProperty ('mail.smtp.port', poort); props.setProperty ('mail.smtp.starttls.enable', 'true'); props.setProperty ('mail.smtp.debug', 'true'); props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.port', poort); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.fallback', 'false'); sendmail (emailto, 'Help!', 'Die ruimtevaarder kan nie gevind word nie!', img); r.stop end end end
Dit is duidelik rommelig hier, maar dit moet uitgehaal word sodra dit gekopieer is. Wagwoorde en e -posse hiervoor moet natuurlik verskaf word deur diegene wat hierdie projek doen.
Ons voorbeeld is egter net een van die vele maniere waarop u met hierdie robot kan mors, sodat dit by almal pas. Daar is baie verskillende dinge wat u moet doen, wat u by uself kan pas.
Aanbeveel:
RUIMTE ROBOT: 8 stappe
RUIMTE ROBOT: AUTOMATIESE REMSTELSINLEIDING PRODUKSIE: EERSTE VERSIE: EK HET MY PROJEK BEGIN MET 'N AUTOMATIESE REMSTEL IN' N VOERTUIG. EK HET DIT GEMAAK OMDAT, IN INDIA VIR ELKE VIER MINUTE 'N Ongeluk. VERGELYKING MET DIE DOOD WAT OP DIE GEBIED GEVOLG WORD
Cosmo -horlosie - verander kleur elke keer as 'n ruimtevaarder die ruimte betree: 8 stappe (met foto's)
Cosmo -horlosie - verander kleur elke keer as 'n ruimtevaarder die ruimte betree: Hallo! Is u 'n ruimte -entoesias? Indien wel, hi-fi! Ek hou van ruimte en sterrekunde. Dit is duidelik dat ek geen ruimtevaarder is om daarheen te gaan en die heelal van nader te bekyk nie. Maar elke keer as ek agterkom dat 'n mens van die aarde na die lug gereis het, word ek inspirerend
Meer blaarslaai in minder ruimte of Groeiende blaarslaai in die ruimte, (meer of minder) .: 10 stappe
Groeiende meer sla in minder ruimte of … Groeiende blaarslaai in ruimte, (meer of minder): Dit is 'n professionele voorlegging aan die Growing Beyond Earth, Maker Contest, wat deur Instructables ingedien word. Ek kon nie meer opgewonde wees om vir die produksie van ruimtegewasse te ontwerp en my eerste Instructable te plaas nie. Om mee te begin, het die wedstryd ons gevra om
Eenvoudige "robotstel" vir klubs, ruimte vir onderwysers, ens .: 18 stappe
Eenvoudige "Robot -kit" vir klubs, Makerspace -onderwysers, ens.: Die idee was om 'n klein, maar uitbreidbare kit te bou vir ons lede van die " Middle TN Robotic Arts Society ". Ons beplan werkswinkels rondom die kit, veral vir kompetisies, soos lyn volg en vinnige reis. Ons het 'n Arduino opgeneem
Hoe om ruimte -invallers op mikro -bit te maak: 4 stappe
Hoe om ruimte -invallers op mikro -bit te maak: die eerste stap is dus om ons skip te skep. U gaan na " Basic " en voeg 'n " By aanvang " blok. Dan gaan jy na " Veranderlikes " en jy skep 'n veranderlike genaamd " SHIP " en kies 'n blok uit die " Veranderlikes " oortjie t