Мазмұны:
- 1 -қадам: Жабдықтар
- 2 -қадам: Мәселе туралы мәлімдеме
- 3 -қадам: Bluetooth қашықтан басқару құралы
- 4 -қадам: әсерді тану
- 5 -қадам: Өмірді тану
- 6 -қадам: іске қосыңыз
Бейне: Марс Румба: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл нұсқаулық сізге Raspberry Pi басқарылатын Roomba вакуумдық ботын пайдалану бойынша нұсқаулық береді. Біз қолданатын операциялық жүйе MATLAB арқылы.
1 -қадам: Жабдықтар
Бұл жобаны жүзеге асыру үшін сізге не қажет:
- iRobot -тың Create2 Roomba шаңсорғыш боты
- Raspberry Pi
- Raspberry Pi камерасы
- MATLAB соңғы нұсқасы
- MATLAB үшін Roomba орнату құралдар тақтасы
- Ұялы құрылғыға арналған MATLAB қосымшасы
2 -қадам: Мәселе туралы мәлімдеме
Бізге MATLAB көмегімен ғалымдарға планетаның мәліметтерін жинауға көмектесу үшін Марста қолдануға болатын ровер жасауды тапсырдық. Біздің жобада қарастырылған функциялар қашықтан басқару, объектінің әсерін тану, суды тану, өмірді тану және суретті өңдеу болды. Бұл жетістіктерге жету үшін біз iRobot -тің Create2 Roomba көптеген функцияларын басқару үшін Roomba құралдар тақтасының пәрмендерін қолдана отырып кодтадық.
3 -қадам: Bluetooth қашықтан басқару құралы
Бұл слайд смартфон құрылғысының Bluetooth мүмкіндіктерін қолдана отырып, Roomba қозғалысын басқаруға арналған код бойынша өтеді. Бастау үшін MATLAB қосымшасын смартфонға жүктеп, Mathworks есептік жазбасына кіріңіз. Жүйеге кіргеннен кейін «қосымша», «параметрлерге» өтіп, компьютерге оның IP мекенжайын пайдаланып қосылыңыз. Қосылғаннан кейін «қосымша» бөліміне оралыңыз және «сенсорларды» таңдаңыз. Экранның жоғарғы құралдар тақтасындағы үшінші сенсорды түртіңіз де, бастау үшін түртіңіз. Енді сіздің смартфоныңыз қашықтан басқару пульті!
Код келесідей:
ал 0 == 0
кідірту (.5)
PhoneData = M. Orientation;
Ази = PhoneData (1);
Қадам = PhoneData (2);
Side = PhoneData (3);
соққылар = r.getBampers;
егер Side> 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);
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 -ның объектіге әсерін анықтау, содан кейін оның ағымдағы жолын түзету. Ол үшін бампер сенсорларының көрсеткіштері бар шартты белгілерді қолдану керек болды, олар объектінің соғылғанын анықтады. Егер робот затқа соғылса, ол 2 метр артқа шегінеді және қай бампер соғылғанын анықтайтын бұрышпен айналады. Элементті соққаннан кейін, мәзір пайда болады, онда «уф» сөзі көрсетіледі.
Код төменде көрсетілген:
ал 0 == 0
соққылар = r.getBampers;
r.setDriveVelocity (.1)
егер соққылар.солға == 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; imshow (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;
ал nine_plus_ten == 21 %жасыл - өмір
егер green_mean> жасыл_шекті && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('мүмкін өмір көзі табылды, орналасу орны');
кідірту (2)
жою (а)
[y2, Fs2] = аудио оқу ('z_speak2.wav');
дыбыс (y2, Fs2)
кідірту (2)
%өсімдік = r.getImage; %imshow (өсімдік);
%үнемдеу ('plant_img.mat', өсімдік ');
%учаскенің орналасуы жасыл түспен
i = 5;
үзіліс
басқа
тоғыз_плюс_тен = 19;
Соңы
Соңы
тоғыз_плюс_тен = 21;
ал nine_plus_ten == 21 %көк - водер
егер көк_ман> көк_шекті && жасыл_ман <жасыл_шек && ақ_ман <ақ_шек && қызыл_мән <қызыл_шек
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;
ал nine_plus_ten == 21 %ақ - шетелдіктер monkaS
егер ақ_мағынасы> ақ шегі && көк_мағынасы <көк_шегі && жасыл_мәні <жасыл_шегі
[y5, Fs5] = аудио оқу ('z_speak5.wav');
дыбыс (y5, Fs5);
кідірту (3)
r.setDriveVelocity (0,.5)
[ys, Fss] = аудио оқу ('z_scream.mp3');
дыбыс (ys, Fss);
кідірту (3)
r.stop
% шетелдік = r.getImage; %imshow (бөтен);
% үнемдеу ('alien_img.mat', бөтен);
i = 5;
үзіліс
басқа
тоғыз_плюс_тен = 19;
Соңы
Соңы
егер мен == 5
a = 1; %бұрылу бұрышы
t = 9; %үлкен циклды тоқтатады
i = 0;
Соңы
Соңы
6 -қадам: іске қосыңыз
Барлық код жазылғаннан кейін, бәрін бір файлға және воилаға біріктіріңіз! Сіздің Roomba ботыңыз енді толық жұмыс істейтін болады және жарнамаланғандай жұмыс істейді! Дегенмен, Bluetooth басқару элементі бөлек файлда болуы керек немесе кодтың қалған бөлігінен %% бөлінуі керек.
Роботты пайдаланудан ләззат алыңыз !!
Ұсынылған:
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Arduino Uno көмегімен акустикалық левитация Қадамдық қадам (8 қадам): 8 қадам
Акустикалық левитация Arduino Uno Қадамдық қадаммен (8-қадам): ультрадыбыстық дыбыс түрлендіргіштері L298N Dc әйелдер адаптерінің ток көзі еркек тоқ сымымен Arduino UNOBreadboard Бұл қалай жұмыс істейді: Біріншіден, сіз кодты Arduino Uno-ға жүктейсіз (бұл сандық жүйемен жабдықталған микроконтроллер) және кодты түрлендіру үшін аналогтық порттар (C ++)
Түймені іске қосатын қадам реттегіші: 4 қадам
Түймені іске қосатын қадам реттегіші:
Марс Roomba жобасы UTK: 4 қадам
Mars Roomba Project UTK: Жауапкершіліктен бас тарту: бұл тек жұмыс істейтін болады, егер робма әр түрлі жағдайда орнатылса, бұл нұсқаулық ТЕННЕСУЛАР УНИВЕРСИТЕТІ ЖӘНЕ ПАЙДАЛАНУҒА АРНАЛҒАН, бұл бөлмеде жергілікті код орнатылған. жазылған және
Инспектор Румба: 6 қадам (суреттермен)
Roomba инспекторы: Біздің көпшілігіміз iRobot Roomba роботтарын тек шаң сору үшін қолданамыз, бірақ оның жаңа роботтық жобалар үшін тамаша база екенін аз адамдар біледі. Барлық роботтар бұл роботты басқарудың қаншалықты оңай екенін білу үшін Roomba Open Interface (OI) сынап көруі керек. Бұл нұсқаулықта сіз