Мазмуну:
- 1 -кадам: 1 -кадам: Керектүү материалдар
- 2 -кадам: 2 -кадам: Орнотуу/Roomba кодун алуу
- 3 -кадам: 3 -кадам: Cliff сенсорлорун/LED чырактарын орнотуу
- 4 -кадам: 4 -кадам: Тоскоолдуктарды текшерүү
- 5 -кадам: 5 -кадам: Чийүү
Video: Roomba MATLAB долбоору: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
NASAнын Марс роверине карата учурдагы планы - бул маалымат чогултуучу жана Марстын айланасында жүрүү, Жерге кайра алып келүү үчүн топурактын үлгүлөрүн чогултуу, илимпоздор планетада мурунку жашоо формалары бар -жогун көрүш үчүн. Мындан тышкары, ровер илимпоздорго сүрөттөрдү кайра жөнөтөт, алар роверде навигацияга жана андагы көйгөйлөрдү чечүүгө жардам берет.
Биздин топтун биздин долбоор боюнча идеясы - бул 2020 -жылы жерди таштап кете турган NASAнын ровериндей эле, бирок ал жердин географиясын картага түшүрүү. Roomba аскаларды сезе алат жана кулай электе өзүн токтото алат, анан артка кайрылып, бурулуп, багытын өзгөртө алат, ошондо ал кулап кетпейт жана бузулбайт. Долбоорубузга киргизилген башка идеябыз - бул бөлмө көргөн жерлерди пландаштырып, цикл бүткөндө жана анын жүрүшү ишке ашкан сайын сюжетти көрсөтө алат.
Бул көрсөтмө, алардын Roomba үчүн бир эле түрдөгү кодду түзүүнү каалагандар үчүн.
1 -кадам: 1 -кадам: Керектүү материалдар
Сага керек болот:
- Roomba
- MATLAB
- Бул файл Roomba иштетүү үчүн
- Тегиз бет
- Столдун үстү "жар" катары иштейт
2 -кадам: 2 -кадам: Орнотуу/Roomba кодун алуу
Файлдарды киргизгенден кийин экраныңыз ушундай болот.
3 -кадам: 3 -кадам: Cliff сенсорлорун/LED чырактарын орнотуу
Бул код сиздин бөлмөңүзгө кайсы бурчту буруш керектигин, батареянын маалыматын текшерүүнү, бөлмөнүн ылдамдыгын жана камеранын камерасы аркылуу адамды текшерүүнү айтат. Ошондой эле, эгер ал адамды аныктап, жардан чыгып кетүүдөн мурун өзүн токтотсо, сигнал берет.
% аракет rob.setLEDDigits ('') x = 0; y = 0; тета = 0; тоскоолдук = ; цикл = 1; AngCorr = @(x) x + 3.059.*X.^0.4205; %Function rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1) %AA_checkperson (rob) rob.beep end %In Check for Cliff Sensor if AA_cliffcheck (rob)) rob.stop rob.setLEDDigits ('Cliff') тыным (0,5) тоскоолдук (цикл) = 2; AA_cliffbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end
4 -кадам: 4 -кадам: Тоскоолдуктарды текшерүү
Бул код бөлмөдө анын тегерегиндеги нерселерди текшерип турат жана өзүнө зыян келтирүүдөн мурун анын токтоп калганын текшерүү үчүн дөмпөк сенсорун текшерет.
%Жарык сенсорун текшериңиз, эгер AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Wall') пауза (0.5) тоскоолдук (цикл) = 1; %Wall AA_wallbeep (rob) %Back Up and Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') паузасы (0.5) тоскоолдук (цикл) = 1; %Wall AA_wallbeep (rob) %Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end %If if if if isempty (тоскоолдук) тоскоолдук (цикл) = 0; elseif узундугу (тоскоолдук) <цикл тоскоолдук (цикл) = 0; аяктоо
5 -кадам: 5 -кадам: Чийүү
Бул код сиздин бөлмөңүзгө саякатында эмнелер менен жолугушаарын айтып берет. Мындай сюжет Roomba токтогондон кийин пайда болот.
%Ордун алуу d = rob.getDistance; эгер цикл == 1 тета (цикл) = 0; x (цикл) = d.*cosd (тета (цикл)); x жалпы саякаттын бардык жолу (цикл) = d.*sind (тета (цикл)); % башка аралыкта саякаттын жалпы узактыгы тета (цикл) = тета (цикл-1) + rob.getAngle; x (цикл) = d.*cosd (тета (цикл)) + x (цикл-1); x жалпы саякаттын % д (цикл) = d.*sind (тета (цикл)).*d + y (цикл-1); %жалпы аралык y аягында %Break абалы rob.getButtons.clean break end %Artүү цикл цикли = цикл + 1; end rob.stop for i = 1: цикл эгерде тоскоолдук болсо (i) == 1 %Wall сюжети (x (i), y (i), 'Marker', 'square', 'MarkerEdgeColor', 'r') elseif (i) == 2 %Cliff сюжети (x (i), y (i), 'Marker', 'o', 'MarkerEdgeColor', 'k') акыркы текст (.9, 0.9, sprintf ('Square = Wall) nCircle = Cliff '),' Units ',' normalized ') % Кыйроонун Сигналын кармап туруңуз, эгер чыныгы rob.beep пауза (3) эгер rob.getButtons. таза үзүлүүнүн аягы % кармоо % rob.stop % end
Сунушталууда:
Arduino автоматташтырылган көлөкө экраны долбоору үчүн кадам моторун жана драйверди тандоо: 12 кадам (сүрөттөр менен)
Arduino автоматташтырылган көлөкө экраны долбоору үчүн тепкич моторун жана драйверди тандоо: Бул Нускамада мен Automated Shade Screen долбоорунун прототипине Step Motor жана Driver тандоо үчүн жасаган кадамдарымдан өтөм. Көлөкөлүү экрандар - бул популярдуу жана арзан Coolaroo кол менен жасалган моделдер, мен аны алмаштыргым келди
MATLAB көзөмөлдөгөн Roomba: 5 кадам
MATLAB Controlled Roomba: Бул долбоордун максаты MATLAB, ошондой эле өзгөртүлгөн iRobot программалуу роботту колдонуу. Биздин топ коддоо жөндөмүбүздү бириктирип, iRobotтун көптөгөн функцияларын колдонгон MATLAB сценарийин, анын ичинде жар жарак сенсорлорун, бампер сенсорун
Марс Roomba долбоору UTK: 4 кадам
Mars Roomba Project UTK: DISCLAIMER: БУЛ ГАНА ИШТЕЙТ, эгер РОМБА АРКАНДАЙ ЖОЛДО ОРНОТУЛСА, БУЛ НАСААТ ТЕННИСИ СТУДЕНТТЕР УНИВЕРСИТЕТИ ЖАНА КОЛДОНУУ ҮЧҮН КОЛДОНУЛГАН. жазылган жана
Roomba долбоору: 5 кадам (Сүрөттөр менен)
Roomba долбоору: Бул көрсөтмө Түштүк Флорида университетинин Макекурсунун (www.makecourse.com) долбоорунун талабын аткаруу үчүн түзүлгөн
Roomba MATLAB менен: 4 кадам (сүрөттөр менен)
Roomba MATLAB менен: Бул долбоор MATLAB жана iRobot Create2 программалуу роботун колдонот. MATLAB боюнча билимибизди сыноо менен, биз Create2ди сүрөттөрдү чечмелөө жана сигналдарды аныктоо үчүн программалай алабыз. Роботтун иштеши негизинен көз каранды