Բովանդակություն:
- Քայլ 1. Նախնականացում և տվիչներ
- Քայլ 2: Տվյալների ստացում
- Քայլ 3: Ավարտելով առաքելությունը
- Քայլ 4: Եզրակացություն
![Roomba Explorer: 4 քայլ Roomba Explorer: 4 քայլ](https://i.howwhatproduce.com/images/006/image-15086-9-j.webp)
Video: Roomba Explorer: 4 քայլ
![Video: Roomba Explorer: 4 քայլ Video: Roomba Explorer: 4 քայլ](https://i.ytimg.com/vi/syZgAa17JLg/hqdefault.jpg)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
![Roomba Explorer Roomba Explorer](https://i.howwhatproduce.com/images/006/image-15086-10-j.webp)
Օգտագործելով MATLAB- ը և iRobot- ի Create2 ռոբոտը ՝ այս նախագիծը կուսումնասիրի անհայտ տեղանքի տարբեր տարածքներ: Մենք ռոբոտի սենսորների օգնությամբ օգնեցինք վտանգավոր տեղանքով մանևրել: Լուսանկարներ և տեսաֆիլմեր ստանալով կից Raspberry Pi- ից, մենք կարողացանք որոշել այն խոչընդոտները, որոնց բախվելու է Ռոբոտը, և դրանք դասակարգվելու են:
Մասեր և նյութեր
Այս նախագծի համար ձեզ հարկավոր կլինի
-համակարգիչ
-MATLAB- ի վերջին տարբերակը (այս նախագծի համար օգտագործվել է MATLAB R2018b)
- roomba Տեղադրեք գործիքատուփ
-iRobot- ի Create2 ռոբոտը
-Ազնվամորու Պի տեսախցիկով
Քայլ 1. Նախնականացում և տվիչներ
![Սկզբնականացում և սենսորներ Սկզբնականացում և սենսորներ](https://i.howwhatproduce.com/images/006/image-15086-11-j.webp)
Նախքան որևէ ծրագրավորում սկսելը, մենք ներբեռնեցինք roombaInstall գործիքների տուփը, որը թույլ էր տալիս մուտք գործել Ռոբոտի տարբեր բաղադրիչներ:
Սկզբում մենք ստեղծեցինք GUI ՝ ցանկացած ռոբոտ նախաստորագրելու համար: Դա անելու համար հարկավոր է մուտքագրել Ռոբոտի համարը ՝ որպես մուտքագրում: Սա թույլ կտա մուտք գործել մեր ծրագիրը Ռոբոտին: Մենք աշխատել ենք Ռոբոտին մանևրելու այն բազմաթիվ վայրերում, որոնց նա կհանդիպի: Մենք կիրառեցինք Cliff սենսորները, Light Bump Sensors- ը և Physical Bump Sensors- ը ՝ օգտագործելով դրանց ելքերը ՝ ռոբոտին ճամփորդելու և արագությունը և ուղղությունը փոխելու համար: Երբ վեց լույսի հարվածների սենսորներից որևէ մեկը օբյեկտ է հայտնաբերում, դրանց թողած արժեքը կնվազի ՝ պատճառելով, որ ռոբոտի արագությունը նվազի ՝ լիարժեք արագության բախումից խուսափելու համար: Երբ Ռոբոտը վերջապես բախվի որևէ խոչընդոտի, Physical Bump սենսորները կհայտնեն զրոյից մեծ արժեք; դրա պատճառով Ռոբոտը կդադարի, այնպես որ այլ բախումներ չեն լինի, և ավելի շատ գործառույթներ կարող են գործի դրվել: Cliff Sensors- ի համար նրանք կկարդան իրենց շրջակայքի պայծառությունը: Եթե արժեքը գերազանցում է 2800 -ը, մենք որոշեցինք, որ Ռոբոտը կլինի կայուն հողի վրա և ապահով: Բայց, եթե արժեքը 800 -ից պակաս է, Cliff Sensors- ը հայտնաբերում է ժայռը `անմիջապես կանգ առնելով, որպեսզի չընկնի: Միջանկյալ ցանկացած արժեք որոշվել է, որ ներկայացնում է ջուրը և կհանգեցնի Ռոբոտին դադարեցնել իր գործողությունը: Օգտագործելով վերը նշված սենսորները, Ռոբոտի արագությունը փոխվում է, ինչը թույլ է տալիս մեզ ավելի լավ որոշել, արդյոք կա որևէ վտանգ:
Ստորև բերված է կոդը (MATLAB R2018b- ից)
%% Նախնականացում
dlgPrompts = {'Roomba համարը'};
dlgTitle = 'Ընտրեք ձեր սենյակը';
dlgDefaults = {''};
opts. Resize = 'միացված';
dlgout = մուտքագրում
n = str2 կրկնակի (dlgout {1});
r = roomba (n); % Նախնականացնում է օգտվողի կողմից նշված Roomba %% Արագության որոշումը Light Bump Sensors- ից իսկ ճշմարիտ s = r.getLightBumpers; % -ը ստանում են թեթև հարվածի տվիչներ
lbumpout_1 = extractfield (ներ, «ձախ»); % -ը վերցնում է տվիչների թվային արժեքները և դրանք դարձնում ավելի օգտագործելի lbumpout_2 = extractfield (ներ, 'leftFront');
lbumpout_3 = extractfield (ներ, 'leftCenter');
lbumpout_4 = extractfield (ներ, 'rightCenter');
lbumpout_5 = extractfield (ներ, 'rightFront');
lbumpout_6 = extractfield (ներ, «աջ»);
lbout = [lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % -ը արժեքները վերածում է մատրիցի
sLbump = տեսակավորում (lbout); %տեսակավորման մատրիցան մինչև ամենացածր արժեքը կարող է հանվել
lowLbump = sLbump (1); արագություն =.05+(lowLbump)*. 005 %օգտագործելով ամենացածր արժեքը, որը ներկայացնում է սերտ խոչընդոտներ, արագությունը որոշելու համար, ավելի բարձր արագություն, երբ ոչինչ չի հայտնաբերվում
r.setDriveVelocity (արագություն, արագություն)
վերջ
% Ֆիզիկական բամպերներ
b = r.getBumpers; %Արդյունքը ճիշտ է, կեղծ
bsen_1 = extractfield (բ, «ձախ»)
bsen_2 = extractfield (բ, «աջ»)
bsen_3 = extractfield (բ, «առջև»)
bsen_4 = extractfield (b, 'leftWheelDrop')
bsen_5 = extractfield (b, 'rightWheelDrop')
bumps = [bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump = գումար (bums)
եթե tbump> 0 r.setDriveVelocity (0, 0)
վերջ
Cliff սենսորներ
c = r.getCliffSensors %% 2800 անվտանգ, այլապես ջուր
csen_1 = extractfield (գ, «ձախ»)
csen_2 = արդյունահանման դաշտ (գ, «աջ»)
csen_3 = extractfield (գ, «ձախակողմյան ճակատ»)
csen_4 = extractfield (գ, «աջ ճակատ»)
ժայռեր = [csen_1, csen_2, csen_3, csen_4]
ordcliff = տեսակավորում (ժայռեր)
եթե ordcliff (1) <2750
r.setDriveVelocity (0, 0)
եթե ժայռ <800
ցրել «ժայռ»
ուրիշ
ջուր թափել
վերջ
r. TurnAngle (45)
վերջ
Քայլ 2: Տվյալների ստացում
Ֆիզիկական հարվածի սենսորների գործարկումից հետո Ռոբոտը կիրականացնի իր Raspberry Pi նավը ՝ խոչընդոտը լուսանկարելու համար: Լուսանկարելուց հետո, օգտագործելով տեքստի ճանաչումը, եթե նկարի մեջ տեքստ կա, Ռոբոտը կորոշի, թե որն է խոչընդոտը և ինչ է ասում խոչընդոտը:
img = r.getImage; imshow (img);
imwrite (img, 'imgfromcamera.jpg')
լուսանկար = imread ('imgfromcamera.jpg')
ocrResults = ocr (լուսանկար)
ճանաչվածՏեքստ = ocrResults. Text;
գործիչ;
imshow (լուսանկար) տեքստ (220, 0, ճանաչված տեքստ, 'BackgroundColor', [1 1 1]);
Քայլ 3: Ավարտելով առաքելությունը
Երբ Ռոբոտը որոշի, որ խոչընդոտը ՏՈEՆ է, նա կավարտի իր առաքելությունը և կմնա տանը: Առաքելության ավարտից հետո Ռոբոտը կուղարկի էլ.
% Ուղարկելով էլ
setpref («Ինտերնետ», «SMTP_Server», «smtp.gmail.com»);
setpref («Ինտերնետ», «E_mail», «[email protected]»); % փոստի հաշիվ setpref- ից ուղարկելու համար («Ինտերնետ», «SMTP_Username», «մուտքագրեք ուղարկողի էլ. հասցե»); % ուղարկողների օգտվողի անուն setpref ('Ինտերնետ', 'SMTP_Password', 'մուտքագրեք ուղարկողի գաղտնաբառը'); % Ուղարկողների գաղտնաբառ
props = java.lang. System.getProperties; props.setProperty ('mail.smtp.auth', 'true'); props.setProperty ('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty ('mail.smtp.socketFactory.port', '465');
sendmail ('Մուտքագրեք ստացող էլ. փոստ', 'Roomba', 'Roomba վերադարձել է տուն !!', 'imgfromcamera.jpg') % փոստի հասցե ուղարկելու համար
Ռոբոտն այնուհետև ավարտված է:
Քայլ 4: Եզրակացություն
![Եզրակացություն Եզրակացություն](https://i.howwhatproduce.com/images/006/image-15086-12-j.webp)
Ներառված MATLAB ծրագիրը առանձնացված է ամբողջ սցենարից, որն օգտագործվել է Ռոբոտի հետ: Վերջնական նախագծում, համոզվեք, որ ամբողջ ծածկագիրը, բացառությամբ սկզբնավորման քայլի, մի որոշ ժամանակի մեջ դրեք, որպեսզի համոզվեք, որ բամպերներն անընդհատ աշխատում են: Այս ծրագիրը կարող է խմբագրվել `օգտվողի կարիքներին համապատասխան: Robուցադրված է մեր Ռոբոտի կոնֆիգուրացիան:
*Հիշեցում. Մի մոռացեք, որ roombaInstall գործիքակազմը անհրաժեշտ է MATLAB- ին Robot- ի և Raspberry Pi- ի հետ փոխազդելու համար:
Խորհուրդ ենք տալիս:
Roomba Bot the Bulider: 5 քայլ (նկարներով)
![Roomba Bot the Bulider: 5 քայլ (նկարներով) Roomba Bot the Bulider: 5 քայլ (նկարներով)](https://i.howwhatproduce.com/images/004/image-11051-2-j.webp)
Roomba Bot the Bulider. ճակատին ամրացված կկարողանա առարկաները տեղաշարժել: Նրա հետ ծածկագիրը սահմանված է գրանցելու առաջին շարժումը GUI տուփով, որը կարող եք կառավարել միայն մկնիկի կտտոցով: Հետո
MATLAB վերահսկվող Roomba: 5 քայլ
![MATLAB վերահսկվող Roomba: 5 քայլ MATLAB վերահսկվող Roomba: 5 քայլ](https://i.howwhatproduce.com/images/005/image-12462-14-j.webp)
MATLAB Controlled Roomba. Այս նախագծի նպատակն է օգտագործել MATLAB- ը, ինչպես նաև փոփոխված iRobot ծրագրավորվող ռոբոտը: Մեր խումբը համատեղեց մեր կոդավորման հմտությունները `ստեղծելու համար MATLAB սցենար, որն օգտագործում է iRobot- ի բազմաթիվ գործառույթներ, ներառյալ ժայռերի տվիչները, բամպերի զգայունությունը
Ստեղնաշարի դյուրանցումներ Internet Explorer- ի համար: 4 քայլ
![Ստեղնաշարի դյուրանցումներ Internet Explorer- ի համար: 4 քայլ Ստեղնաշարի դյուրանցումներ Internet Explorer- ի համար: 4 քայլ](https://i.howwhatproduce.com/images/006/image-16871-2-j.webp)
Internet Explorer- ի ստեղնաշարի դյուրանցումներ
Roomba Scout Explorer: 8 քայլ
![Roomba Scout Explorer: 8 քայլ Roomba Scout Explorer: 8 քայլ](https://i.howwhatproduce.com/images/002/image-3289-102-j.webp)
Roomba Scout Explorer. Որպես ամերիկյան ամենասպասված և շատ հետազոտված նախագծերից մեկը, Mars rover- ի նախագծերը դարձել են մարդկային նվաճումներ բարձր տեխնոլոգիական ինքնավար համակարգերի անընդհատ առաջադեմ արտադրության մեջ `միմիայն հետաքննության և
Bus Pirate 3EEPROM Explorer Board: 5 քայլ
![Bus Pirate 3EEPROM Explorer Board: 5 քայլ Bus Pirate 3EEPROM Explorer Board: 5 քայլ](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11123307-bus-pirate-3eeprom-explorer-board-5-steps-j.webp)
Bus Pirate 3EEPROM Explorer Board. Եթե դուք ունեք Hack a Day's Bus Pirates- ից որևէ մեկը, ինչ եք անում դրա հետ: Իմացեք 1-մետաղալարերի, I2C- ի և SPI EEPROM- ների մասին 3EEPROM Explorer- ի տախտակով (մենք այն անվանում ենք THR-EE-PROM): EEPROM- ը հիշողության չիպի տեսակ է, որը պահպանում է տվյալները առանց շարունակական էներգիայի