У свету је сваким даном све популарнија међу роботским чистачима. Захваљујући тако малим помагачима, кућа постаје много чистија, а у чишћење се улаже много мање труда. Постоји пуно различитих модификација робота, а све се разликују у функционалности, величини и другим параметрима.
Конкретно, овај чланак ће размотрити пример како
уради сам Можете направити једноставног робота, који ће сам по потреби усисавати собу. Регулатор се овде користи као "мозак"
Ардуино.
Материјали и алати за израду робота:- плоча која контролише рад мотора (Ардуино штит мотора);
- Ардуино даска;
- два мотора са зупчаницима (мотори на 3 В и брзини вртње око 100 о / мин.);
- точкови (могу бити израђени од алуминијумских лименки;
- хладњак из рачунарског напајања (могуће и на 5В и 12В);
- напајање 5В (батерија);
- жице и плоча за уградњу радио елемената;
- да бисте направили кућиште, требаће вам пластична посуда;
- Још један мали контејнер за прављење канте за смеће;
- вруће лепак;
- магнети;
- картон.
Процес производње робота:
Први корак. Софтверски део робота и скице:
Срце робота је Ардуино контролер. Да бисте га програмирали, требаће вам рачунар и посебан софтвер.
Да бисте преузели скицу на плочу, требаће вам Ардуино ИДЕ програм. Испод можете узети програмски код робота и видјети главни круг.
/*
Програм за контролу робота са два мотора.
Робот се окреће када мотори мењају брзину и смер.
Предњи одбојници с лијеве и десне стране откривају препреке.
Ултразвучни сонари се могу повезати на аналогне улазе (тестирани на ЛВ-МакСонар-ЕЗ1):
- ставите игле у низу сонарПинс следећим редоследом: лево, десно, предње, итд.
Примери:
1. само леви и десни сонари повезани на игле 2 и 3: сонарПинс [] = {2,3}
2. леви, десни и предњи сонари повезани на игле 2, 3 и 5: сонарПинс [] = {2,3,5}
3. само предњи сонар спојен на пин 5: сонарПинс [] = {-1, -1.5}
4. само леви сонар спојен на пин 2: сонарПинс [] = {2}
5. једини десни сонар спојен на игле 3: сонарПинс [] = {-1,3}
6,5 сонара повезаних на игле 1,2,3,4,5: сонарПинс [] = {1,2,3,4,5}
Моторни штит користи се за покретање мотора.
*/
цонст инт Бауд = 9600; // УАРТ брзина порта
// Сонарна својства
инт сонарПинс [] = {1, 2}; // Аналогни пинови са сонарским сензором Пин АН
цонст лонг МинЛефтДистанце = 20; // Минимално дозвољено лево растојање
цонст лонг МинРигхтДистанце = 20; // Минимално дозвољено право растојање
Мин.ФронтДистанце = 15; // Минимално дозвољено предње растојање
цонст инт СамплесАмоунт = 15; // више узорака - глађе мерење и веће заостајање
цонст инт СонарДисплаиФрекуенци = 10; // приказује само један од ових редова - не сви
инт сонарДисплаиФрекуенциЦоунт = 0;
Фактор дужине = 2,54 / 2;
дуги узорци [сизеоф (сонарПинс)] [СамплесАмоунт];
инт самплеИндек [сизеоф (сонарПинс)];
// десна страна
цонст инт пинРигхтМоторДирецтион = 4; // ово се на оклопу мотора може означити као "ДИР А"
цонст инт пинРигхтМоторСпеед = 3; // ово се на оклопу мотора може означити као "ПВМ А"
цонст инт пинРигхтБумпер = 2; // где је спојен десни браник
// лева страна
цонст инт пинЛефтМоторДирецтион = 7; // ово се на оклопу мотора може означити као "ДИР Б"
цонст инт пинЛефтМоторСпеед = 6; // ово се на оклопу мотора може означити као "ПВМ Б"
цонст инт пинЛефтБумпер = 8; // где је спојен десни браник
// коментирајте сљедећа два реда ако Мотор Схиелд има пукнуће
// цонст инт пинРигхтМоторБреак = ПУТ_БРЕАК_ПИН_ХЕРЕ; // ово се на оклопу мотора може означити као "БРЕАКЕ А"
// цонст инт пинЛефтМоторБреак = ПУТ_БРЕАК_ПИН_ХЕРЕ; // ово се на оклопу мотора може означити као "БРЕАКЕ Б"
// поља
цонст инт турнРигхтТимеоут = 100;
цонст инт турнЛефтТимеоут = 150;
// подесите у бројачу колико дуго мотор ради: Н / 10 (у милисекундама)
инт цоунтДовнВхилеМовингТоРигхт;
инт цоунтДовнВхилеМовингТоЛефт;
// Иницијализација
воид сетуп () {
Сериал.бегин (Бауд);
инитПинс ();
// коментирајте наредна 4 реда ако моторни штит има провале
// пинМоде (пинЛефтМоторБреак, ОУТПУТ);
// пинМоде (пинРигхтМоторБреак, ОУТПУТ);
// дигиталВрите (пинЛефтМоторБреак, ЛОВ); // искључити прекиде
// дигиталВрите (пинРигхтМоторБреак, ЛОВ); // искључити прекиде
рунРигхтМоторФорвард ();
рунЛефтМоторФорвард ();
стартМоторс ();
}
// Главна петља
воид лооп () {
верифиАндСетРигхтСиде ();
верифиАндСетЛефтСиде ();
процессРигхтСиде ();
процессЛефтСиде ();
кашњење (10); // понављајте сваких 10 милисекунди
}
//---------------------------------------------------
воид инитПинс () {
пинМоде (пинРигхтМоторДирецтион, ОУТПУТ);
пинМоде (пинРигхтМоторСпеед, ОУТПУТ);
пинМоде (пинРигхтБумпер, ИНПУТ);
пинМоде (пинЛефтМоторДирецтион, ОУТПУТ);
пинМоде (пинЛефтМоторСпеед, ОУТПУТ);
пинМоде (пинЛефтБумпер, ИНПУТ);
фор (инт и = 0; и <сизеоф (сонарПинс); и ++)
пинМоде (сонарПинс [и], ИНПУТ);
}
воид стартМоторс () {
сетМоторСпеед (пинРигхтМоторСпеед, 255);
сетМоторСпеед (пинЛефтМоторСпеед, 255);
}
воид ваитВхилеАниБумперИсПресс () {
док (цхецкБумперИсНотПресс (пинРигхтБумпер)
&& цхецкБумперИсНотПресс (пинЛефтБумпер) {
кашњење (20); // проверавати сваких 20 милисекунди
}
}
воид процессРигхтСиде () {
иф (цоунтДовнВхилеМовингТоРигхт МинФронтДистанце) // проверава да ли није достигнута минимална дозвољена удаљеност
повратак
иф (цхецкЦоунтерИсНотСет (цоунтДовнВхилеМовингТоЛефт)) // ако бројач још не одбројава
рунЛефтМоторБацквард (); // покрените десни мотор уназад
цоунтДовнВхилеМовингТоЛефт = турнЛефтТимеоут; // постави бројач на максималну вредност да би се започело одбројавање
}
боол цхецкЦоунтерИсНотСет (инт бројач) {
повратни бројач = СамплесАмоунт)
самплеИндек [пинИндек] = 0;
сампле [пинИндек] [самплеИндек [пинИндек]] = вредност;
повратак истинит;
}
дуга калкулацијаАварагеДистанце (инт пинИндек) {
дуги просек = 0;
фор (инт и = 0; и <СамплесАмоунт; и ++)
просек + = узорци [пинИндек] [и];
повратни просек / СамплесАмоунт;
}
Корак други Припрема основних елемената робота
Картон се користи као основа за причвршћивање свих компоненти робота, укључујући батерију, управљачке плоче и моторе.
Турбина мора бити правилно залепљена или на било који други начин причвршћена на мали пластични контејнер у коме ће се направити рупа за упијање прљавштине. Накнадно је овај дизајн залепљен на картонску подлогу. Поред тога, у контејнеру мора бити додатна рупа кроз коју ће излазити ваздух. Требао би постојати филтер, аутор је одлучио да за то користи синтетичку тканину.
У следећој фази, хладњак је потребно залепити сервословима, а затим је овај дизајн инсталиран на картонску подлогу.
Трећи корак За робота правимо точкове
За прављење точкова потребно је узети алуминијумске лименке и одсећи горњи и доњи део. Затим су ови елементи залепљени. Сада остаје само правилно причврстити точкове на сервомоторе са топлим лепилом. Важно је схватити да точкови морају бити јасно фиксирани у средишту осовина серво-уређаја. Иначе робот возит ће се криво и трошиће енергију.
Корак четврти Коначни поступак састављања робота
Након постављања батерије и спајања свих елемената робота, остаје да се структура постави у издржљив кофер. Велика пластична посуда је одлична за ове сврхе. Пре свега, морају се направити рупе у носу тела робота, кроз које ће се излазити контакти који ће дати сигнал електроника када се робот судари са препреком.
Да би се случај брзо и лако уклонио, магнети се користе за његово поправљање, у овом случају их је осам. Магнети се залепљују на унутрашњост усисивача и на сам контејнер, сваки по 4 комада.
То је све. Сада је робот састављен, и може се испробати у пракси. Упркос чињеници да робот није у стању да се поново напуни и има прилично ограничену способност у погледу навигације, за пола сата моћи ће да очисти смеће у кухињи или малој соби. Предности робота су у томе што се све компоненте могу лако пронаћи и нису веома скупе. Нема сумње домаће Можете да побољшате додавањем нових сензора и осталих елемената.