Բովանդակություն:
- Քայլ 1: Պաշարներ
- Քայլ 2: Խնդրի հայտարարություն
- Քայլ 3: Bluetooth հեռակառավարում
- Քայլ 4: Ազդեցության ճանաչում
- Քայլ 5: Կյանքի ճանաչում
- Քայլ 6: Գործարկեք այն
Video: Mars Roomba: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս Instructable- ը ձեզ կառաջնորդի Raspberry Pi- ով վերահսկվող Roomba վակուումային բոտը գործարկելու ուղղություններով: Օպերացիոն համակարգը, որը մենք օգտագործելու ենք, MATLAB- ի միջոցով է:
Քայլ 1: Պաշարներ
Այն, ինչ ձեզ հարկավոր է հավաքել այս նախագիծն իրականացնելու համար.
- iRobot- ի Create2 Roomba փոշեկուլ բոտը
- Ազնվամորի Պի
- Raspberry Pi տեսախցիկ
- MATLAB- ի վերջին տարբերակը
- Roomba- ի տեղադրման գործիքների տուփը MATLAB- ի համար
- MATLAB հավելված բջջային սարքի համար
Քայլ 2: Խնդրի հայտարարություն
Մեզ հանձնարարվեց օգտագործել MATLAB- ը մարսագնաց ստեղծելու համար, որը կարող է օգտագործվել Մարսի վրա, որպեսզի օգնի գիտնականներին մոլորակի տվյալների հավաքագրման գործում: Մեր նախագծում անդրադարձած գործառույթներն էին ՝ հեռակառավարումը, օբյեկտների ազդեցության ճանաչումը, ջրի ճանաչումը, կյանքի ճանաչումը և պատկերի մշակումը: Այս նվաճումներին հասնելու համար մենք կոդավորեցինք Roomba գործիքների տուփի հրամաններով ՝ iRobot- ի Creat2 Roomba- ի բազմաթիվ գործառույթները շահարկելու համար:
Քայլ 3: Bluetooth հեռակառավարում
Այս սլայդը կանցնի կոդի միջոցով ՝ Roomba- ի շարժումը վերահսկելու համար ՝ օգտագործելով ձեր սմարթֆոնի սարքի Bluetooth հնարավորությունները: Սկսելու համար ներբեռնեք MATLAB հավելվածը ձեր սմարթֆոնին և մուտք գործեք ձեր Mathworks հաշիվ: Մուտք գործելուց հետո անցեք «ավելին», «կարգավորումներ» և միացեք ձեր համակարգչին ՝ օգտագործելով նրա IP հասցեն: Միանալուց հետո վերադառնաք «ավելին» և ընտրեք «տվիչներ»: Հպեք էկրանի վերին գործիքագոտու երրորդ սենսորին և կտտացրեք մեկնարկի վրա: Այժմ, ձեր սմարթֆոնը հեռակառավարիչ է:
Կոդը հետևյալն է.
մինչդեռ 0 == 0
դադար (.5)
PhoneData = M. Orientation;
Azi = PhoneData (1);
Սկիպիդար = PhoneData (2);
Կողք = PhoneData (3);
bumps = r.getBumpers;
եթե Կողմ> 80 || Կողմ <-80
ռ. դադարեցնել
r.epep ('C, E, G, C^, G, E, C')
ընդմիջում
elseif Կողք> 20 && Կողք <40
r.turnAngle (-5);
elseif Կողմ> 40
r.turnAngle (-25);
elseif Կողմ -40
r.turnAngle (5);
elseif Կողմ <-40
r.turnAngle (25);
վերջ
եթե Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
վերջ
վերջ
Քայլ 4: Ազդեցության ճանաչում
Մեկ այլ գործառույթ, որը մենք իրականացրեցինք, Roomba- ի ազդեցությունը օբյեկտի վրա հայտնաբերելն էր, այնուհետև ուղղել նրա ընթացիկ ուղին: Դա անելու համար մենք պետք է օգտագործեինք պայմանական պայմաններ բամպերի սենսորների ընթերցումներով ՝ որոշելու, թե արդյոք առարկան հարվածել է: Եթե ռոբոտը հարվածի օբյեկտին, այն հետ կքաշվի: Երբ որևէ տարր հարվածել է, հայտնվում է ընտրացանկ, որտեղ ցուցադրվում է «օֆ» բառը:
Կոդը ներկայացված է ստորև.
մինչդեռ 0 == 0
bumps = r.getBumpers;
r.setDriveVelocity (.1)
եթե bumps.left == 1
msgbox ('Օֆ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('Օֆ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('Օֆ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('Օֆ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Օֆ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
վերջ
վերջ
Քայլ 5: Կյանքի ճանաչում
Մենք ծածկագրեցինք կյանքի ճանաչման համակարգը `դրա դիմաց գտնվող առարկաների գույները կարդալու համար: Կյանքի երեք տեսակները, որոնց համար մենք ծածկագրել ենք, բույսերն են, ջուրը և այլմոլորակայինները: Դա անելու համար մենք կոդավորեցինք սենսորները ՝ հաշվարկելու կարմիր, կապույտ, կանաչ կամ սպիտակի միջին արժեքները: Այս արժեքները համեմատվում էին այն շեմերի հետ, որոնք ձեռքով սահմանվել էին ՝ տեսախցիկի դիտած գույնը որոշելու համար: Կոդը նաև գծագրում է դեպի օբյեկտ տանող ճանապարհը և ստեղծում քարտեզ:
Կոդը հետևյալն է.
t = 10;
i = 0;
իսկ t == 10
img = r.getImage; ցուցադրել (img)
դադար (0.167)
i = i + 1;
red_mean = միջին (միջին (միջին (img (:,:, 1)));
blue_mean = միջին (միջին (միջին (img (:,:, 3)));
green_mean = միջին (միջին (միջին (img (:,:, 2)));
սպիտակ_միջոց = (կապույտ_գույն + կանաչ_միջոց + կարմիր_միջոց) / 3; %-ը ցանկանում է, որ այս արժեքը մոտ 100 լինի
ինը_պլյուս_թեն = 21;
կանաչ_շեմ = 125;
կապույտ_շեմ = 130;
սպիտակ_շեմ = 124;
կարմիր_շեմ = 115;
իսկ ինը_պլյուս_թեն == 21 %կանաչ - կյանք
եթե green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('հնարավոր կյանքի աղբյուրը գտնված է, գտնվելու վայրը գծագրված');
դադար (2)
ջնջել (ա)
[y2, Fs2] = audioread ('z_speak2.wav');
ձայն (y2, Fs2)
դադար (2)
%գործարան = r.getImage; %imshow (գործարան);
%խնայողություն ('plant_img.mat', գործարան ');
%հողամասի գտնվելու վայրը կանաչ գույնով
i = 5;
ընդմիջում
ուրիշ
ինը_պլյուս_թեն = 19;
վերջ
վերջ
ինը_պլյուս_թեն = 21;
մինչդեռ ինը_պլյուս_թեն == 21 %կապույտ `մսեղեն
եթե blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox («ջրի աղբյուր է գտնվել, գտնվելու վայրը գծապատկերված է»);
դադար (2)
ջնջել (ա)
[y3, Fs3] = audioread ('z_speak3.wav');
ձայն (y3, Fs3);
%woder = r.getImage; %imshow (woder)
%խնայողություն ('water_img.mat', woder)
%հողամասի գտնվելու վայրը կապույտ գույնով
i = 5;
ընդմիջում
ուրիշ
ինը_պլյուս_թեն = 19;
վերջ
վերջ
ինը_պլյուս_թեն = 21;
իսկ nine_plus_ten == 21 %սպիտակ - այլմոլորակայիններ monkaS
եթե white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5, Fs5] = audioread ('z_speak5.wav');
ձայն (y5, Fs5);
դադար (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
ձայն (ys, Fss);
դադար (3)
ռ. դադարեցնել
% խորթ = r.getImage; %imshow (այլմոլորակային);
% խնայողություն ('alien_img.mat', այլմոլորակային);
i = 5;
ընդմիջում
ուրիշ
ինը_պլյուս_թեն = 19;
վերջ
վերջ
եթե ես == 5
a = 1; %պտտման անկյուն
t = 9; %դադարեցնել մեծ օղակը
i = 0;
վերջ
վերջ
Քայլ 6: Գործարկեք այն
Ամբողջ ծածկագիրը գրվելուց հետո այն միացրեք մեկ ֆայլի և voila- ի: Ձեր Roomba բոտը այժմ լիովին կգործի և կգործի այնպես, ինչպես գովազդվում է: Այնուամենայնիվ, Bluetooth- ի վերահսկիչը պետք է լինի կամ առանձին ֆայլում կամ անջատված լինի մնացած կոդից %% - ով:
Վայելեք ձեր ռոբոտի օգտագործումը !!
Խորհուրդ ենք տալիս:
Ձեր սենյակը վերածեք Mars Rover- ի ՝ 5 քայլ
Ձեր Roomba- ն վերածելով Mars Rover- ի
Mars Rover- ը օգտագործելով Raspberry Pi: 5 քայլ
Mars Rover- ը ՝ օգտագործելով Raspberry Pi- ն: Ես նաև ուզում եմ ինչ -որ բան ուսումնասիրել ՝ նստելով իմ նոութբուքի վրա: Այսպիսով, ես հիմա հասկացա, որ դա պատրաստելու ճիշտ ժամանակն է և
Mars Roomba Project UTK: 4 քայլ
Mars Roomba Project UTK. ՀԱՅՏԱՐԱՐՈԹՅՈՆ. ՍԱ ՄԻԱՅՆ ԱՇԽԱՏԱՆՔ ԵԹԵ ՌՈՄԲԱ -ն ՇԱՏ ՇԱՏ ՀԱՏՈԿ ԱՆԱՊԱՐՀՈՄ Է, ԱՅՍ հրահանգը ստեղծվել և մտադրվել է օգտագործել ՏԵՆԱՆՍԱԿԱՆ ՈIVՍԱՆՈՆԵՐԻ ՀԱՄԱԼՍԱՐԱՆՈ ANDԹՅՈՆԸ և ֆակուլտետային ծառայություն: գրված է և
Mars հետախուզական ռոբոտ ՝ 4 քայլ
Mars Reconnaissance Robot. This Instructable- ը քայլ առ քայլ ուղեցույց է Mars Reconnaissance Robot- ը ծրագրավորելու և պատվիրելու համար: Սկսելու համար պետք է ձեռք բերել հետևյալ նյութերի ցանկը
IRobot Create-Mars Expedition Rover Mark I: 4 քայլ
IRobot Create-Mars Expedition Rover Mark I. Այս հրահանգը կսովորեցնի ձեզ, թե ինչպես ստեղծել iRobot Create- ը ՝ օգտագործելով MatLab կոդավորումը: Ձեր ռոբոտը հնարավորություն կունենա հանքանյութեր որոնել ՝ տարբերելով ձևերը, մանևրելու խորդուբորդ տեղանքը ժայռերի տվիչների միջոցով և կարողություն