ዝርዝር ሁኔታ:
- ደረጃ 1 - አቅርቦቶች
- ደረጃ 2 - የችግሩ መግለጫ
- ደረጃ 3 የብሉቱዝ የርቀት መቆጣጠሪያ
- ደረጃ 4 - ተጽዕኖ ዕውቅና
- ደረጃ 5 የሕይወት ዕውቅና
- ደረጃ 6: አሂድ
ቪዲዮ: ማርስ Roomba: 6 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:32
ይህ አስተማሪ በ Raspberry Pi ቁጥጥር የሚደረግበትን የ Roomba ቫክዩም ቦት ወደ ሥራ አቅጣጫ ይመራዎታል። እኛ የምንጠቀምበት ስርዓተ ክወና በ MATLAB በኩል ነው።
ደረጃ 1 - አቅርቦቶች
ይህንን ፕሮጀክት ለማካሄድ መሰብሰብ ያለብዎት-
- የ iRobot Create2 Roomba ቫክዩም ክሊነር ቦት
- Raspberry Pi
- Raspberry Pi ካሜራ
- የ MATLAB የቅርብ ጊዜ ስሪት
- የ Roomba መጫኛ መሣሪያ ለ MATLAB
- ለተንቀሳቃሽ መሣሪያ MATLAB ትግበራ
ደረጃ 2 - የችግሩ መግለጫ
የሳይንስ ሊቃውንት የፕላኔቷን መረጃ በመሰብሰብ ለማገዝ በማርስ ላይ ጥቅም ላይ ሊውል የሚችል ሮቨር ለማልማት MATLAB ን እንድንጠቀም ተልእኮ ተሰጥቶናል። በፕሮጀክታችን ውስጥ ያነጋገርናቸው ተግባራት የርቀት መቆጣጠሪያ ፣ የነገር ተፅእኖ ማወቂያ ፣ የውሃ ማወቂያ ፣ የሕይወት ዕውቅና እና የምስል ማቀነባበር ነበሩ። እነዚህን ግቦች ለማሳካት የ iRobot's Create2 Roomba ን በርካታ ተግባሮችን ለመቆጣጠር የ Roomba መሣሪያ ሳጥን ትዕዛዞችን በመጠቀም ኮድ አድርገናል።
ደረጃ 3 የብሉቱዝ የርቀት መቆጣጠሪያ
ይህ ተንሸራታች የስማርትፎን መሣሪያዎን የብሉቱዝ ችሎታዎች በመጠቀም የ Roomba ን እንቅስቃሴ ለመቆጣጠር በኮዱ ውስጥ ያልፋል። ለመጀመር ፣ የ MATLAB መተግበሪያን ወደ ዘመናዊ ስልክዎ ያውርዱ እና ወደ የሂሳብ ሥራዎች መለያዎ ይግቡ። አንዴ ከገቡ በኋላ ወደ “ተጨማሪ” ፣ “ቅንብሮች” ይሂዱ እና የአይፒ አድራሻውን በመጠቀም ከኮምፒዩተርዎ ጋር ይገናኙ። አንዴ ከተገናኙ በኋላ ወደ “ተጨማሪ” ይመለሱ እና “ዳሳሾች” ን ይምረጡ። በማያ ገጹ በላይኛው የመሳሪያ አሞሌ ላይ በሦስተኛው ዳሳሽ ላይ መታ ያድርጉ እና መጀመሪያ ላይ መታ ያድርጉ። አሁን የእርስዎ ዘመናዊ ስልክ የርቀት መቆጣጠሪያ ነው!
ኮዱ እንደሚከተለው ነው
0 == 0 እያለ
ለአፍታ አቁም (.5)
PhoneData = M. Orientation;
አዚ = PhoneData (1);
Pitch = PhoneData (2);
ጎን = PhoneData (3);
ጉብታዎች = r.getBumpers;
ከሆነ ጎን> 80 || ጎን <-80
r.stop
r.beep ('C ፣ E ፣ G ፣ C^፣ G ፣ E ፣ C')
ሰበር
elseif Side> 20 && Side <40
r.turnAngle (-5);
ሌላ ከሆነ ጎን> 40
r.turnAngle (-25);
ሌላ ከሆነ ጎን -40
r.turnAngle (5);
ሌላ ከሆነ ጎን <-40
r.turnAngle (25);
አበቃ
Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
አበቃ
አበቃ
ደረጃ 4 - ተጽዕኖ ዕውቅና
እኛ ተግባራዊ ያደረግነው ሌላው ተግባር የ Roomba ን ተፅእኖ ወደ አንድ ነገር መለየት እና የአሁኑን መንገድ ማረም ነበር። ይህንን ለማድረግ ፣ አንድ ነገር እንደተመታ ለማወቅ ከባምፐር አነፍናፊዎች ንባቦች ጋር ሁኔታዊ ሁኔታዎችን መጠቀም ነበረብን። ሮቦቱ አንድን ነገር ቢመታ ፣ ምትኬ ይይዛል ።2 ሜትር ፣ እና ባምፐር በተመታበት ማዕዘን ላይ ይሽከረከራል። አንድ ንጥል ከተመታ በኋላ “ኦፍ” የሚለውን ቃል የሚያሳይ ምናሌ ብቅ ይላል።
ኮዱ ከዚህ በታች ይታያል
0 == 0 እያለ
ጉብታዎች = r.getBumpers;
r.setDriveVelocity (.1)
bumps.left == 1
msgbox ('ኡፍ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r. TurnAngle (-35)
r.setDriveVelocity (.2)
ሌላ ከሆነ ጉብታዎች። ፊት == 1
msgbox ('ኡፍ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r. TurnAngle (90)
r.setDriveVelocity (.2)
ሌላ ከሆነ ጉብታዎች.እውቀት == 1
msgbox ('ኡፍ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
otherif bumps.leftWheelDrop == 1
msgbox ('ኡፍ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r. TurnAngle (-35)
r.setDriveVelocity (.2)
ሌላ ከሆነ ጉብታዎች.rightWheelDrop == 1
msgbox ('ኡፍ!');
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r. TurnAngle (35)
r.setDriveVelocity (.2)
አበቃ
አበቃ
ደረጃ 5 የሕይወት ዕውቅና
ከፊት ለፊቱ የነገሮችን ቀለሞች ለማንበብ የህይወት ማወቂያ ስርዓትን ኮድ አድርገናል። እኛ ኮድ የሰጠናቸው ሦስቱ የሕይወት ዓይነቶች ዕፅዋት ፣ ውሃ እና መጻተኞች ናቸው። ይህንን ለማድረግ የቀይ ፣ ሰማያዊ ፣ አረንጓዴ ወይም ነጭ አማካይ እሴቶችን ለማስላት ዳሳሾችን ኮድ አድርገናል። እነዚህ እሴቶች ካሜራው የሚመለከተውን ቀለም ለመወሰን በእጅ ከተዘጋጁት ገደቦች ጋር ተነጻጽረዋል። ኮዱ እንዲሁ ወደ ነገሩ የሚወስደውን መንገድ ያቅዳል እና ካርታ ይፈጥራል።
ኮዱ እንደሚከተለው ነው
t = 10;
እኔ = 0;
t == 10 እያለ
img = r.getImage; imshow (img)
ለአፍታ አቁም (0.167)
i = i + 1;
red_mean = አማካይ (አማካይ (img (:,:, 1))));
blue_mean = አማካይ (አማካይ (img (:,:, 3))));
green_mean = አማካይ (አማካይ (img (:,:, 2))));
white_mean = (ሰማያዊ_ማለት + አረንጓዴ_ማዕድን + ቀይ_ማለት) / 3; %100 ይህንን ቫል ይፈልጋሉ
ዘጠኝ_plus_ten = 21;
አረንጓዴ_መድረሻ = 125;
ሰማያዊ_መድረሻ = 130;
white_threshold = 124;
red_threshold = 115;
ዘጠኝ_plus_ten == 21 %አረንጓዴ - ሕይወት
ከሆነ አረንጓዴ_ማለት> አረንጓዴ_መድረሻ && ሰማያዊ_መጠን <ሰማያዊ_መድረሻ && 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;
ዘጠኝ_plus_ten == 21 %ሰማያዊ - woder
ከሆነ ሰማያዊ_ማለት> ሰማያዊ_መድረሻ && አረንጓዴ_መጠን <አረንጓዴ_መድረሻ && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('የውሃ ምንጭ ተገኝቷል ፣ ቦታው ታቅዷል');
ለአፍታ አቁም (2)
ሰርዝ (ሀ)
[y3, Fs3] = ኦዲዮ ንባብ ('z_speak3.wav');
ድምጽ (y3 ፣ Fs3);
%woder = r.getImage; %imshow (woder)
%አስቀምጥ ('water_img.mat', woder)
%የእቅድ ቦታ በሰማያዊ
i = 5;
ሰበር
ሌላ
ዘጠኝ_ፕላስ_ተን = 19;
አበቃ
አበቃ
ዘጠኝ_ፕላስ_ተን = 21;
ዘጠኝ_plus_ten == 21 %ነጭ - የውጭ ዜጎች monkaS
ከሆነ ነጭ_ማለት> ነጭ_መድረሻ && ሰማያዊ_መጠን <ሰማያዊ_መድረሻ && አረንጓዴ_መጠን <አረንጓዴ_መድረሻ
[y5, Fs5] = audioread ('z_speak5.wav');
ድምጽ (y5 ፣ Fs5);
ለአፍታ አቁም (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = audioread ('z_scream.mp3');
ድምጽ (ys ፣ Fss);
ለአፍታ አቁም (3)
r.stop
% እንግዳ = r.getImage; %imshow (እንግዳ);
% አስቀምጥ ('alien_img.mat', መጻተኛ);
i = 5;
ሰበር
ሌላ
ዘጠኝ_ፕላስ_ተን = 19;
አበቃ
አበቃ
እኔ == 5 ከሆነ
ሀ = 1; %አንግል ያዞራል
t = 9; %ትልቅ ዙር ያቋርጡ
እኔ = 0;
አበቃ
አበቃ
ደረጃ 6: አሂድ
ሁሉም ኮዱ ከተፃፈ በኋላ ሁሉንም በአንድ ፋይል ውስጥ ያጣምሩ እና voila! የእርስዎ Roomba bot አሁን ሙሉ በሙሉ ይሠራል እና እንደ ማስታወቂያ ይሠራል! ሆኖም ፣ የብሉቱዝ መቆጣጠሪያው በተለየ ፋይል ውስጥ ወይም ከ %% ጋር ከሌላው ኮድ መለየት አለበት።
ሮቦትዎን በመጠቀም ይደሰቱ !!
የሚመከር:
Roomba ን ወደ ማርስ ሮቨር ማዞር 5 ደረጃዎች
የእርስዎን Roomba ወደ ማርስ ሮቨር ማዞር
Raspberry Pi ን በመጠቀም ማርስ ሮቨር 5 ደረጃዎች
Raspberry Pi ን በመጠቀም ማርስ ሮቨር - ውድ ለሁሉም ታላላቅ ተማሪ ፣ ስለ ማርስ ሮቨር ለማወቅ ሁል ጊዜ የማወቅ ጉጉት አለኝ ፣ ይህም የማርስን ወለል ሁሉ ሄዶ ነገሮችን ከምድር ሊመረምር የሚችል 6 ጎማዎች አሉት። እኔ በላፕቶፕ ላይ በመቀመጥ ነገሮችን ማሰስ እፈልጋለሁ። ስለዚህ እሱን ለማድረግ ትክክለኛውን ጊዜ እወስዳለሁ እና
Roomba Bot the Bulider: 5 ደረጃዎች (ከስዕሎች ጋር)
Roomba Bot the Bulider: Bot ግንበኛው የ ‹ክፍልፋዮች› ነው ፣ እሱም ከ ‹ቀማኞች› ጋር። ከፊት ለፊት ተያይዞ ዕቃዎችን ለማንቀሳቀስ ይችላል። በእሱ ያለው ኮድ በመዳፊትዎ ጠቅታ ብቻ ሊቆጣጠሩት በሚችሉት GUI ሳጥን የመጀመሪያውን እንቅስቃሴ ለመመዝገብ ተዘጋጅቷል። ከዚያ በኋላ
MATLAB ቁጥጥር የሚደረግበት Roomba: 5 ደረጃዎች
በ MATLAB ቁጥጥር የሚደረግበት Roomba - የዚህ ፕሮጀክት ግብ MATLAB ን እንዲሁም የተቀየረውን iRobot ፕሮግራም -ተኮር ሮቦት መጠቀም ነው። የገደል አነፍናፊዎችን ፣ የመገጣጠሚያ ስሜትን ጨምሮ ብዙ የ iRobot ተግባሮችን የሚጠቀም የማቲላቢ ስክሪፕት ለመፍጠር ቡድናችን የኮድ ክህሎቶቻችንን አጣምሮ
ከ Roomba እስከ Rover በ 5 ደረጃዎች ብቻ !: 5 ደረጃዎች
በ 5 ደረጃዎች ብቻ ከ Roomba እስከ Rover! - Roomba ሮቦቶች በሮቦቶች ዓለም ውስጥ ጣቶችዎን ለመጥለቅ አስደሳች እና ቀላል መንገድ ናቸው። በዚህ አስተማሪ ውስጥ ፣ አንድ ቀላል Roomba ን ወደ ተቆጣጣሪ ሮቨር እንዴት እንደሚለውጡ በዝርዝር እንገልፃለን። ክፍሎች ዝርዝር 1) MATLAB2) Roomb