Покажи участието

От тук може да видиш всички публикации на този потребител.


Теми - Borislav

Страници: 1 ... 4 5 [6] 7
76
Бой на роботи-хуманоиди

Специално мен ме разсмя, възхити и... спря дъха ми! :) До какво съвършенство е Роботиката в Япония! Радиоуправляеми са!! Представете си, как се управлява нещо такова! :) Възхитително!

77
BEAM-роботи / Български BEAM-робот
« -: Юли 01, 2007, 05:20:14 pm »
И така...днес ми хрумна идея да сглобя нещо елементарно и много, много просто. Имах един стар мобилен телефон (Siemens C45), който вярно ми служеше до 2002 г., но батерията му умря (иначе си е куче :)). Та...поразопаковах го снощи, извадих му електродвигателя за вибрираща функция и реших да направя BEAM-робот. Сам по себе си той ще представлява паяк, който се задейства от 1 мотор. Ще снимам подробно изготвянето на робота, и после ще кача снимков материал. Сега ще погледна дали имам всичко необходимо, за да го сглобя. Проблемът ми в случая е да намеря достатъчно малка батерийка на 5V (Едва ли ще намеря слънчева..), защото мисля паякът да е с L293D. Моля, дайде предложения за нещо.. :) Мерси!

Борислав

78
Получих няколко оплаквания от потребители, че системата не изпраща активационен мейл... Е, вече тази настройка е в историята. :) Ако все пак имате някакъв проблем, моля напишете потребителското си име в тази тема. Можете да я напишете като Гост!

79
Ето един страхотен сайт за тези, които разбират английски...

О, не, това не са играчки... :) Това като нищо може да ви отреже пръст, ако не внимавате! Разгледайте сайта, в Америка има цяла лига за такива роботи!

http://sozbots.com/

80
Ето, че настана време да усложним още повече нашата конструкция за BEAM-робот... И след като го направихме Line Tracer, сега е време да си променим малко схемата, за да го направим и мобилен.

Схемата ще използваме тази:



Като драйвер за двигатели отново ще използваме L239D, чийто входове ще съединим с микроконтролера така, както е показано на схемата. В дадения случай можем да използваме който и да е от микропроцесорите от серията AVR. Тук ще разгледаме случая с ATmega8, но може да се използват и ATtiny2313, ATtiny26, или който и да е от семейството Mega.

На схемата, драйверът за двигатели е включен към изходите на порта С на микроконтролера ATmega8, но те могат да се сложат на който и да е изход, с изключение на това, че после ще се наложи да променяме малко програмата. :)
Електролитическият кондензатор C3 (1000мкф, 10-25в.) е необходим за това, че да изглади препадите на напрежение, породени от работата на моторите. За да се стабилизира още повече работата на микроконтролера, няма да е зле да сложим и керамически кондензатор с капацитет около 0,33 мкф, включен към изходите за захранване VCC, GND (крачета 7 и 8) и разположен в непосредствена близост с тях (на схемата не е указан!).

Механиката на робота трябва да е от "танков" тип, т.е. левият мотор предава движение на лявото колело, а десният - на дясното.

За да "оживее" нашият току-що сглобен робот му трябва програма. Тази програма ние трябва да напишем. Всичко, което трябва да знаете за програмите е в раздел "Алгоритми". Там има и как да настроите WinAVR. Та...нека да започваме!

/************************************************
ПРИМЕР 1 :: ВЪРТЕНЕ НА МОТОРИТЕ НАПРЕД-НАЗАД
*************************************************/

#include <avr/io.h>
#include <util/delay.h>

#define F_CPU 8000000UL  // 8 MHz

/***************** Функция на задържане ****************/
void delay(unsigned short ms) // Минимално задържане с кварц от 8 МХц - 1 мс
{
   unsigned short i, j, k; // обявяваме променливите

              for (i=0; i<ms; i++) // главен цикъл за формиране на задържането
                     for (j=0; j<185; j++) // въведен цикъл за формиране на задържането
                              k++; // произволно действие
}
/****************************************************/


int main(void) // начало на основната програма
{
   
   DDRC = 0xff; // всички изводи на порта C да се конфигурират като изходи

        while (1) {  // Безкраен цикъл

            // ---------- Въртене на мотора напред 1 сек ----------

            PORTC |= _BV(PC1); // установи "1" на линия 1 на порта C
            PORTC &= ~_BV(PC2); // установи "0" на линия 2 на порта C
            PORTC |= _BV(PC3); // установи "1" на линия 3 на порта C
            PORTC &= ~_BV(PC4); // установи "0" на линия 4 на порта C

            delay(1000); // чакаме 1 сек.
            // --------------------------------------------------


                        // ---------- въртене на моторите назад 1 сек ----------

                        PORTC &= ~_BV(PC1); // установи "0" на линия 1 на порта C
                        PORTC |= _BV(PC2); // установи "1" на линия 2 на порта C
                        PORTC &= ~_BV(PC3); // установи "0" на линия 3 на порта C
                        PORTC |= _BV(PC4); // установи "1" на линия 4 на порта C

                        delay(1000); // чакаме 1 сек.
                        // --------------------------------------------------


                   } // затваряща скоба на безкрайния цикъл

} // затваряща скоба на основната програма


Отсъединявайки програматора, ще проверим дали колелата се въртят правилно. Ако не са, сменете поляритета на моторите + на - и - на +.
Следващата ни стъпка ще бъде създаването на програма, която да осигури завиване на определен ъгъл, чрез спиране на един от моторите.

/************************************************
ПРИМЕР 2 :: ДВИЖЕНИЕ НАПРЕД СЪС ЗАВОЙ
*************************************************/
#include <avr/io.h>
#include <util/delay.h>

#define F_CPU 8000000UL  // 8 MHz

/***************** Функция на задържане ****************/
void delay(unsigned short ms) // Минимално задържане с кварц от 8 МХц - 1 мс
{
   unsigned short i, j, k; // обявяваме променливите

              for (i=0; i<ms; i++) // главен цикъл за формиране на задържането
                     for (j=0; j<185; j++) // въведен цикъл за формиране на задържането
                              k++; // произволно действие
}
/****************************************************/


int main(void) // начало на основната програма
{
   
   DDRC = 0xff; // всички изводи на порта C да се конфигурират като изходи

        while (1) {  // Безкраен цикъл

            // ---------- въртене на моторите напред 1 сек ------------

            PORTC |= _BV(PC1); // установи "1" на линия 1 на порта C
            PORTC &= ~_BV(PC2); // установи "0" на линия 2 на порта C
            PORTC |= _BV(PC3); // установи "1" на линия 3 на порта C
            PORTC &= ~_BV(PC4); // установи "0" на линия 4 на порта C

            delay(1000); // чакаме 1 сек.
            // ----------------------------------------------------


                        // ---------- спираме мотор M2 за 0,5 сек ------

                        PORTC |= _BV(PC1); // установи "1" на линия 1 на порта C
                        PORTC |= _BV(PC2); // установи "1" на линия 2 на порта C

                        delay(500); // чакаме 0,5 сек.
                        // ----------------------------------------------------


                   } // закриваща скоба на безкрайния цикъл

} // закриваща скоба на основната програма


Изменяйки времето на задържане, опитайте се да накарате робота да прави завой под прав ъгъл и да върви по квадратна траектория. За да се развъртява по-бързо роботът, опитайте се да направите реверс - т.е. когато дясното колело се върти за ляв завой, направете така, че лявото да се завърти в обратната посока!

Това е, вече сглобихме и програмирахме нашия първи мобилен робот! Надявам се тази статия да ви бъде от полза!
Желая успех на всички!!

Борислав

81
Правила за боеве на роботи по Мини-сумо

(Преправка и цялостен превод на Международния правилник за провеждане на боеве на роботи в клас Мини-сумо!)



Два автономно-управляеми робота се поставят на ринг.

Всеки робот трябва да избегне падането си извън пределите на ринга, не трябва да допуска изтикването си от противника извън пределите на полето и при това трябва да изтика своя съперник извън тези предели!

Онзи робот, който първи напусне очертанията на ринга, губи рунда. Роботът, победил два рунда се счита и за победител в мача.

След поместването на роботите на ринга и включването им, не се допуска никакво дистанционно управление, захранване, преместване или каквато и да била друга помощ. До свършването на рунда роботът е оставен сам на своите възможности!

При условие на съблюдение на другите правила, роботът може да е направен от всякакъв материал, да има двигател от всякакъв тип, мощност и напрежение. Роботът може да има всякакви процесори, датчици, и друга електроника, и всякакъв тип батерии.

Не се допуска използването на намаляващи теглото приспособления. За измерение се взима параметърът "маса", а не "тегло", защото теглото зависи от гравитационната константа, а масата е независим параметър. Например, абсолютно забранено е установяването на робота с хелиеви балони за намаляване на теглото.

Тъй като състезанието се състои в изтикване, приемущество има по-тежкият робот. Затова разработчикът трябва да се стреми към максимално приближение към допустимите правила за масо-габаритна характеристика.



Технически изисквания към роботите


Размери и маса:
Дължината на робота - не повече от 100 мм
Ширина на робота - не повече от 100 мм
Височината на робота е неограничена
Маса на робота - не повече от 500 гр

В началото на рунда, размерът на робота не трябва да превишава разрешеният (10х10 см). Ограничения за височина няма. След началото на движението си, роботът може да се развърти, падне, раздеки и разшири до неограничени размери!

Как се проверява:
В избягването на спорове по повод на интерпретацията на показанията на аналоговият кантар, за измерението на масата се използва кантар с цифрова скала. Роботът трябва да има малък запас по маса за това, защото трябва да се отчете възможната разлика в показанията на Вашия домашен кантар и показанията на състезанията.

За измерването на габаритите на роботите се използва щателно размерен "съндък" без дъно и капак. Съндъчето се поставя над робота и се спуска. Роботът се класира, ако той се побира без да докосва стените на кутийката.

Всеки рунд роботът е длъжен да започне в това положение, в което е преминал квалификацията. Като пример ще посоча това, че не се допуска роботът, поместен в измерителния съндък вертикално, да започва състезанието в хоризонтално положение.


Използване на височината:
Неопределената височина на робота позволява използването на електроника, двигатели и други елементи, които не се поместват в габаритите при ограничена височина на робота.

Също така може и творчески да се погледне и на възможностите за използване неограничената височина. Може да се направи падащ робот, който се движи след като измени своето положение от вертикално в хоризонтално. Може да се направи спускащо се рало, като на булдозер или разгъващи се панели от всички страни/

Безвредност:
В течение на цялото време, поведението на робота не трябва да бъде оскърбително, не разрушително и не пагубно за хората, роботите или оборудването! Това е неизменим принцип и няма значение, било ли е поведението на робота преднамерено или непреднамерено!

По време на проверката или в което и да е друго време, в течението на състезанието, съдиите могат да определят изменения или модификации на роботът, за съблюдаването на правилата на безвредност. Пагубните роботи не се допускат до състезание или се дисквалифицират след това, ако техните вредни качества бъдат доказани по-късно или са забелязани в процеса на боя.

Също така, съдиите проверяват, ще издържи ли конструкцията на робота сблъсъци, противостояние и други физически превратности на съдбата в процесът на борба.

Също ака, съдиите проверяват, ще издържи ли конструкцията на робота сблъсъци, защита и други физически преврати на съдбата в процеса на състезанието. Могат да бъдат направени предложения за укрепване на конструкцията за постигане безопастността на робота. Слабите роботи могат да бъдат допуснати на състезанието на свой собствен риск и отговорност.

По време на състезанието, съдията отбелязва, ако загубата на робота е породена от недостатъците в конструкцията му. Отговорността за неизправности, причинени от стърчащи кабели и други детайли, пада на робота, имащ тези неизправности.

Във всеки един момент сумоботът не трябва:
- да изхвърля дим или огън
- да протича, да се цапа или да се разпада
- да разсейва прах, твърди вещества или сажди
- да разпръсква аерозолен спрей
- да хвърля или използва снаряди
- да създава електросмущения, пречещи на нормалното функциониране на робота-противник
- да използва мрежи или връв, за заплитане или изхвърляне

В същото време, някакъв ущърб, причинен от "ралото" на всеки робот, така и при изменяне на стартовото положение или в процеса на борба, е неизбежен! Всички участници се съгласяват с него и той се счита за приемлив, в разумни граници!

Датчик за край на ринга (бялата линия):
Роботът-сумист е длъжен да върви спокойно по ринга, от единия до другия му край, и да не пада от него. Роботостроителите са длъжни да се погрижат за това, техният робот да може на време да предели границата на ринга и да не пада от него.

Черната повърхност на ринга много добре контрастира с ярката бяла линия по края му, която лесно може да се забележи от датчиците. По-малко попълярни са контактните датчици, които определят края на ринга.

Полет:
Роботът не трябва да лети или да прави движения, лишаващи го от контакт с повърхността на ринга за повече от 2 секунди!

Разделяне:
По време на всеки рунд, роботът може да се разделя на неограничен брой части.

"Лепкави" колела:
Забранено е използването в конструкцията на робота лепило, лепнещи колела и други пасивни средства, усилващи сцеплението му с повърхостта на ринга.

Как се проверява?:
Роботът, в изключено състояние, се слага на лист хартия (А4, плътността на листа да е не по-голяма от 90г/м2). След повдигането на робота нагоре, листът трябва да си лежи на мястото.


Преконфигуриране на робота:
Роботът може да се изменя между рундовете и мачовете, например, при ремонт или заменяне на батерии, или преконфигуриране. Трябва да се има впредвид, че съдията във всеки един момент може да поиска повторна проверка след провеждане на каквито и да било манипулации по робота.



Технически изисквания за ринга


Размер и материал:
Ринг за мини-сумо представлява плосък диск с диаметър 77 см. Той се прави от гладък, твърд материал, например, дърво, пластмаса или алуминий (всеки немагнетизиращ се материал).

Горната част на ринга се боядисва или се покрива с твърда гума. Горната повърхност на ринга е матово-черна, като изключим тънката гланцово-бяла граница (Tawara), която е с ширина 2,5 см. Двете стартови линии (Shikiri) са кафеви на цвят. Всички тези области се считат "във вътрешността" на ринга.

Рингът е приповдигнат над повърхността с 2,5 см, за да облегчи задачата на съдиите, в определянето на момента на падане извън него.

Външното пространство около ринга - то е минимум 100 см празно пространство, в което е забранено да има хора, обекти, огньове или друго, което да отвлече или да създаде смущения в работата на роботите. Повърхността в тази област може да бъде в цвят по избор.

Външното пространство и външната стена на приповдигнатия ринг се считат за "извън пределите" на ринга.

Рингът трябва да е установен абсолютно хоризонтално и достатъчно здраво. Най-добрият ринг е този, който има вградени винтове за регулиране на нивото на наклоненост.






Схема за провеждане на състезания


Проверка, тестове и квалификация:
Всеки робот минава задължителната проверка за съответстващите технически параметри.

В зависимост от нивото на турнира, преди състезанията могат да се проведат тестове и/или квалификация, представляващи следния тест: Всеки робот трябва поне два пъти да изблъска дървено кубче извън пределите на ринга за три опита, всеки от по три минути.

Това правило не е задължително, и не носи дисквалификация на роботите, неуспели да изтикат тестовия куб извън пределите на ринга. Поради факта, че участниците са пръснали време и пари, за създаването на роботите, това е достатъчно основателна причина да се състезават. Освен това е възможно роботите да имат програмни алгоритми, използващи за изблъскване масата и скоростта на движение на изтикания робот. Такъв робот няма да може да реагира на неодушевен предмен.

Времето за тестове се отчита като начална квалификация на участниците.

Стартова схема и система за отбор:
В зависимост от количеството участници могат да се използват различни стартови схеми и системи за отбор:

- Едно поражение
Роботът прекратява участието си в състезанието след един загубен мач. Това е най-строгият метод и не е много подходящ за определяне на истинския победител.

- Двойно поражение (Двойна елиминация)
Роботът прекратява участието си в състезанието след два загубени мача. Това е най-предпочитаната практика при голямо количество участници.

- Кръгова система
Всеки робот се състезава с всеки друг робот по ред. Това може да отнеме много време, но затова пък всеки робот получава шанс да се бори с всеки друг участващ робот и в резултат не само победителят ще бъде определен, но и има възможност за изчисление на рейтинга на всеки един робот.

- Групова система
Роботите се подреждат в няколко групи, във всяка от която се определя някоя от по-горните схеми. Победителите във всяка група попадат в групата на победителите и се състезават помежду си.

Независимо от избраната система за отбор, организаторите са задължени отрано да съобщят системата на провеждане на турнира, за да могат участниците да се подготвят и да я изучат.

Мач:
Роботът трябва да е готов в назначеното за мача време. Организаторите могат да направят разумна свобода на нещатни ситуации, но съдиите са в правото си да начислят поражение в рунда или в целия мач на този робот, който не е бил готов в началото.

В течение на цялото състезание алгоритмите (програмите), параметрите, компонентите и отделните части на всеки робот могат да се изменят, преконфигурират за конкретния противник или за конкретния ринг. При това, по правило се изисква при всички изменения на робота, поне една негова част, която го идентифицира, да остане непроменена. Всички промени в конструкцията на сумобота трябва да са в рамките на установените ограничения и правила.

Поместване на роботите на ринга:
Роботът с по-голям рейтинг или роботът, който току-що е спечелил рундът, се поставя на ринга първи.

Съперникът може да установи своя робот на което и да е място на ринга, не излизайки извън границите на удължената до краищата на ринга стартова линия (кръговата хорда на стартовата линия). Роботът се поставя на старта в същото положение, с което той е преминал квалификацията.

Роботът с по-малък рейтинг или току-що загубил рунд има приемущество, поставяйки го втори на ринга, тъй като разположението на противника му е известно.

Използвайки това приемущество, роботът може да се разположи по такъв начин, че да получи по-голям шанс за победа.

След поставянето на първия робот не се допуска изменение на неговата позиция, след като вече знае позицията на втория робот.

Натискане на копчето:
Роботите се включват с натискането на бутон. След старта не се допуска никакво допълнително управление, команди, преконфигурация и други методи за общуване с робота.

И двамата участника слагат пръсти на копчето за старт и чакат командата на съдията. Ако е открит проблем до командата "Стоп", участникът може да предупреди съдията, че роботът му не е готов и да отстрани причината без наказание.

Освобождаване на територията:
След натискането на копчето за старт, участниците незабавно напускат външната област около ринга. В течение на целия рунд не се допуска появяването на хора или предмети около ринга или от вътрешната му страна, за да не създават смущения.

След натискането на копчето за старт роботът е длъжен да започне да се движи в течение на 5 секунди. Заедно с това се допускат сигнални огньове, мигалки и друга сигнализация за обратно броене на робота.

Спиране на старта:
По време на обратното броене, участникът, забелязал проблеми в робота си, може да подаде сигнал на съдията и да прекъсне обратното броене. След отстраняването на причината за проблема, роботите отново се поместват на ринга.

Участникът получава предупреждение. След второто предупреждение, получено по какъвто и да е повод в течение на целия рунд, се наказва със загуба (на рунда)!

Това може да е изгодно, ако участникът вижда, че неговият робот е в неизправно състояние и продължението на обратното броене го застрашава от повреда. В този случай загубата на рунда ще бъде по-малкото зло!

Фалстарт:
Ако роботът започне движението си по време на 5-секундното обратно броене, това се счита за фалстарт. Участникът получава предупреждение, роботите отново се поместват на старта.

След второ предупреждение, получено по какъвто и да е повод в течение на целия рунд, участникът се наказва със загуба на рунда!

Разработчикът може да се съблазни да програмира таймера на време, по-малко от 5 секунди, за да започне да се движи малко по-рано и да получи шанс за бърза победа, но тази уловка е лесно уловима от съдиите и от съперника и в крайна сметка носи поражение в рунда, а при невъзможно бързо препрограмиране на таймера - поражение във всички следващи рундове!

Аут:
Роботът губи, ако която и да е негова част, включително и датчиците за линия, за прикосновение, "мустаци", рало или шасито се докосне до повърхността на пода зад пределите на ринга. Няма значение дали това е станало по причина - избутване от противника, или роботът е паднал самостоятелно.

Роботът, който първи докосне повърхостта зад пределите на ринга, губи, даже ако след него падне и другият робот. Ако съдията е определил, че и двата робота са паднали едновременно, рундът се анулира и започва отначало.

Ако някоя част (която и да е) на робота докосне повърхността на пода, зад пределите на очертанията на ринга, това се зачита като поражение, даже ако цялата останала част на робота е на ринга! Която и да е част, с тегло по-голямо от 5 гр., отронила се от робота зад пределите на ринга означава поражение на робота в дадения рунд.

Ако роботът се приземи зад пределите на ринга върху част от втория робот - на негов контакт-"мустак", на ралото му, или на друга негова част, за загубил се счита именно вторият робот. Това правило се опира на друго, което гласи, че роботът, който първи докосне повърхността зад пределите на ринга, се счита за загубил, даже ако след него веднага пада другият робот.

Не аут:
При фалстарт или при прекъсване в рунда поражение не се зачита, даже ако част от робота попадне зад пределите на ринга.

Прекъсване на двубоя:
По всяко време след края на петсекундното обратно броене, всеки от участниците може да прекъсне боя, подавайки сигнал на съдията или влизайки във външното пространство на ринга. Отброяването на времето се прекратява, а на участника се регистрира поражение в рунда.

Това може да бъде полезно, ако участникът види, че в резултат на неизправност, неговият робот може да получи повреда. В този случай, поражението в рунда е по-малкото зло!

Също така, всяко въздействие на роботите, например с помощта на ИЧ-излъчватели, ДУ или Лазер, се счита за прекъсване на двубоя с последващо поражение за този участник.

Прекъсване по инициатива на съдията:
По усмотрение на съдията, двубоят може да бъде прекъснат в един от следните случаи:
- изтичане на трите минути на двубоя (всеки рунд е по три (3) минути - без изключение)
- отсъствие на прогрес в течение на определено време
- роботите по някаква причина не могат да се докоснат един друг
- роботите се объркват или се блокират по друг начин
- и двата робота се отказват да започнат или и двамата участника сигнализират за спиране на двубоя

В тези случаи съдията определя победителя в рунда по свое усмотрение!

Завършване на рунда:
В края на рунда участниците взимат роботите си и се подготвят към следващия рунд. Първият робот, победил в два рунда, печели мача.

Това ограничава общото число рундове. Те могат да бъдат и два - бързи и кратки. Или три, ако след първите два рунда, резултатът е равен (1:1). Обща продължителност на всички рундове - три (3) пъти по три (3) минути, като времето за подготовка на роботите не се счита!

Разбира се, мачът може да завърши още по-бързо, ако един от роботите бъде дисквалифициран или по друг начин губи възможност за продължение на борбата.



Превод: Борислав - Българският портал по Роботика

82
Какво ще кажете за това:



Някои потребители могат да си спомнят тези играчки, които правихме като деца... Спомнете си, сапунерката, четките за зъби... и това е цялото шаси! :) А защо да не направим тази играчка робот? Това е и той! BEAM виброход-робот!!

Роботът е на базата на PIC12F629
Схемата на робота

Тук е описанието на елементите

А това тук е програмата за робота!

Надявам се да ви харесва! За моторчета, препоръчвам да се използват моторчета за вибрация на GSM! Много са добри! :)
Поздрави!

Борислав

83
Ето, че настана време да започваме да се учим на програмиране! Сега ще ви обясня основните настройки на програмата, с която ще програмираме. За целта ще използваме WinAVR - една от най-популярните програми за програмиране на роботи!

Първо е необходимо да създадем папка, където ще се намират файловете на Вашия проект. Названието на папката е по Ваш избор, а мястото и е добре да е там, където сте инсталирали пакета на WinAVR.

И така...да започваме! Отваряме редактора на програмиста Programmers Notepad [WinAVR]. Можете да си оставите иконка на Десктопа. В менюто на редактора трябва да изберете File -> New -> C/C++ и въвеждаме програма на езика Си.

/************************************************

ПРИМЕР ЗА МИГАНЕ НА СВЕТОДИОДИ

*************************************************/


   #include <avr/io.h>
   #include <avr/delay.h>
   #define F_CPU 8000000UL  // 8 MHz
   
   int main(void)              // начало на основната програма
   {
   
   DDRD = 0xff;            // Всички изводи на порта D трябва да се конфигурурат като изводи

        while (1) {              // Безкраен цикъл

PORTD = 0xff; // установяваме "1" на всички линии на порта D

_delay_ms(250);   // Чакаме 0.25 сек.

PORTD = 0x00;  // установяваме "0" на всички линии на порта D

_delay_ms(250);   // Чакаме 0.25 сек.

}       // закриваща скобка на безкрайния цикъл

   }      // Закриваща скобка на основната програма


Съхраняваме листингът на програмата във файл, с име "my_test.c" Името на файла е по ваш избор, без интервали, и с разширение ".c". След това затваряме Programmers Notepad.

84
Механика / Устройство на крак
« -: Юни 25, 2007, 07:51:59 am »
Някой би ли ми дал малко материал за устройството на крак за крачещ робот? Виждал съм много такива, но никъде не е имало детайлен чертеж! :) Ще ми се да направя някаква BEAM-буболечка, след като завърша сумиста.. :)

85
Line Tracer / Първият ни Line Tracer!
« -: Юни 24, 2007, 03:14:15 pm »
И така, това ще бъде първият ни Line Tracer!

Конструкцията на робота тук, която вече достатъчно усложнихме, е абсолютно достатъчна да направим робот, който следва линия!
Схемата е същата, а конструкцията на робота е следната:



Черната линията, нарисувана на бял фон, която следва роботът, не трябва да е по-тънка от 3 см! В противен случай, той ще я губи! Що се касае алгоритма на работа...Той е пределно прост. Когато двата датчика "виждат" бялата линия (отражение), роботът върви напред. Но ако някой от сензорите спре да "вижда" (т.е. няма отражение), същият мотор спира да се върти, и роботът компенсира дефекта. Когато всичко е наред, и има отражение и в двата датчика, нашият Line Tracer продължава пътя си напред! :) Можете да чертаете всякакви криви линии, роботът няма да се затрудни да я следва!

Желая успех на всички!
Борислав

Снимките са взаимствани от тук, като статията е авторска!

86
И така...вече веднъж усложнихме конструкцията на нашия първи BEAM-робот. Сега е време да го направим отново!

Този път, нашият робот ще следва ръката Ви... Този път схемата на нашия робот ще бъде малко по-сложна. Тя е именно тази:



Двата светодиода трябва да са ярки! Това са LED1 и LED2. Резисторите служат за защита от излизане от строя на датчиците.
Задачата на робота е следната - да следи ръката ви. Това се постига именно чрез светодиодите.
Самият робот изглежда така:



Добри резултати се постигат с използването на червени, или оранжеви светодиоди с яркост по-голяма от 1000 мКд. Настройката на робота е, като движите ръката си пред него. Той трябва да я търси и да я следва! Ако не следва ръката, подайте му бял лист... А ако не следва и него - търсете неизправност в електрониката си! :)
Това е като цяло, успех в направата на първия Ви робот! Ще усложним още малко конструкцията, и ще направим от същият този робот - Line Tracer! Но...това в съответната тема! :)

Поздрави и успех!
Борислав


Снимките са взаимствани от тук, като статията е авторска!

87
"Аудио касетата"


И така, сигурно сте се чудили какво откъде може да се вземе.. Сега ще ви покажа няколко идеи за това, какво можем да "свием" от една аудио касета! :)

В Роботиката е много важно да се решават трудни проблеми, с лесни средства! И така, нека започнем....

Първо, гледаме горката касетка... Как спокойно си седи в кутийката!  :twisted:



Първото нещо, което трябва да направим е да извадим касетката и да погледнем опаковката и... Та това е идеална кутийка за не голям контролер!



Трябва само да се срежат зъбчетата и вътре (в някои кутийки дори те липсват!) Ето, че вече добихме първата си вещ... Продължаваме нататък!

Е, за съжаление, и тук има спънки. Ако касетата е от модел, който няма малко болтчета в краищата, значи определено не ви е провървяло!



Определено от този вид касетка ще можете да вземете само кутийката!

Но ако предметът е от по-обикновения тип...а именно така:



То вече можете да си потривате доволно ръцете!  :twisted: Понякога това не са болтчета, а малки винтове... Тогава е още по-добре! Ще можете да си закрепите контролера за пластмасов корпус - този тип винтове пробиват пластмасата и проникват в нея, захващайки "на мъртво"!

И така, грабваме отвертката и започваме да развиваме болтчетата, докато не я отворим напълно!



Махаме всичко излишно, за да не ни пречи при отмотаването на лентата! И така..обърнете внимание на малките валячета встрани, които държат лентата. Те ще ни потрябват, като малки колелца за микроробот! А може и като съединение на "ставите" на робот с крака! Никога не е излишно!



Двете половинки на касетата могат да се използват като не голяма платформа за робота, или като начин за крепление на микроконтролера към шасито... Ако използвате правилно корпуса на касетката и опаковката, ще получите една наистина добра защита на микроконтролера от практически всички природни условия! :D

В последствие, ще имате куп от тези неща:



Така че....помнете от мен: Не изхвърляйте ненужните работи - ВИНАГИ ще се намери нещо, което може да бъде полезно! :)

С най-добри пожелания:
Борислав


Снимките са взети от тук, като статията е авторска!

88
И така, след като вече направихме един прост микроорганизъм, дойде ред и на нещо малко по-сложно.
Ще правим BEAM-робот с 2 фототранзистора! Той представлява следната платформа, на 3D модела:



Този робот върви напред, когато светлината попада и на двата му сензора. Ако светлината осветява само единия, то тогава роботът започва да я "търси", като се обръща към нея.. След това се включва и вторият мотор и той продължава пътя си към Светлината! :D

Схемата на робота представлява това:



Както виждате, тя е много лесна за изпълнение! Състои се само от няколко елемента!
Сега идва интересната част. Ако направите следния модел робот:



то той ще избягва светлината.. Своего рода "къртица", бягаща от светлината. :)

Ако обаче подадем положителен сигнал от батерията (+5V) на изходите INPUT2 и INPUT3 от драйвера ни за двигатели L239D, т.е. така:



то нашият робот ще започне да се обръща към източника на светлина!
Ето, че направихме нашия BEAM-робот малко по-сложен! Естествено, отново е с минимални разходи.. От първия робот го отличава и малко по-сложната конструкция (а именно - 2 независимо въртящи се колела и мотори). Но..това вече е въпрос на фантазия! :)

Очаквайте още информация и усложняване на конструкцията!


Снимките са взаимствани от тук, като статията е авторска!

89
И така, стига сме увъртали... Време е роботи да правим! :D

В тази статия ще разберете как да си направите най-лесния BEAM робот, който по-късно ще развиваме.. И ще докараме до абсолютно автономно състояние!

Това е 3D-моделът на роботът, който ще направим!



И така, да започваме. Този робот представлява най-простият автономен "жив" организъм! Той е снабден с един фототранзистор, който му помага да "вижда" светлината! И така, функциите му са доста ограничени. Той може да върви напред, когато на него попадне светлина, или да се "втрещява" на място, когато няма светлина! Това е много интересна електронна буболечка! :)

Нека пристъпим към схемата. Самата електроника на робота представлява един драйвер за двигатели, на основата на L293D (в Стара Загора струва малко над 3 лв/бр).



Моторчето - е от играчка. Шасито е парченце стъклотекстолит. Колелата могат да се изрежат от твърда гума, или да се вземат от детски конструктор (Предварително кажете на детето, че е изгубено безследно  :D  :twisted:  :roll: )... Можете за редуктор да направите това, което е показано на снимката. Махате едното колело, надявате на него гумено колелце от магнитолка за аудио-касетофон... И го прикрепяте по някакъв начин на стъклотекстолита. След това закрепвате моторчето така, че валът му да се търка в гуменото колелце от магнитолката!

Самият датчик представлява това:


Можете елементите да запоите на монтажна платка, която да служи и като шаси! :) Монтирате, прикрепяте колела и се наслаждавате на първия си робот!

По този начин си направихме един много прост BEAM робот! Да, елементарен е, но е робот! :)

И така... Времето за работа - не повече от 2 часа.
Цена на проекта: Около 4.50 лв.



Снимките са взети от Тук, а статията е авторска!

90
Ето един много лесен за изпълнение програматор! Подходящ е за начинаещи!

Схема

Пояснение: Той представлява 5 проводника, свързани от ISP-то на микроконтролера към компютъра (LPT). В случая, резисторите R1-R4 са задължителни! Ако ги няма, рискувате да изгорите LPR-порта на компютъра си!

Страници: 1 ... 4 5 [6] 7