Домашен робот Mini Sumo » Направи си сам роботи
Пръстенът е готов. Вярно е, че е малко по-малък, отколкото трябва да бъде според правилата, но не виждам нищо лошо в 69 см срещу 77 см - подходящ е за тренировка. Основното нещо е да изработите сензорите на ръба и да практикувате върху "тухлата".
Реших да направя робот, базиран на модифицирани сервоприводи на Futaba (нека производителите ми простят за такава подигравка с техния продукт). Факт е, че серво задвижването е почти идеално пригодено за роботика. Малък е, там двигателят е маломощен, консумацията на ток е от 80 mA (за модела S4003, който използвах). Скоростната кутия е нискошумна, с добра ефективност, монтиран е метален сачмен лагер. Просто трябва да отрежете няколко издатини и да запоите проводниците директно към двигателя, защото не е толкова лесно да го контролирате. Някой умен е измислил стандарт и за да го използвате, трябва да отделите много време за писане на контролна програма. Реших проблема просто като запоих проводниците директно към мотора.
Ето няколко снимки:
Ще се опитам да актуализирам по-често.
"Корпусът" е направен от парче дуралуминиев лист. Дебелината е около 1мм, изрязано е добре с ножица за метал. Този материал също се пробива добре. Формата се вижда от снимката. Мисля, че може да се направи дори по-лесно. НО! Оказа се, че теглото на робота е далеч от 500 грама, които са разрешени от конкуренцията. Така че мисля какво да правя. Можете да увеличите броя на батериите до 8 и да ги направите паралелни или да използвате още 1 реле във веригата, което да превключва захранванията. Би било хубаво, въпреки че времето, прекарано на ринга, е 3 минути. Но ако си представите такъв вариант, роботът търси противник (използва батерии 600mAh), намира го и започва да бута. В този момент се свързва по-мощенбатерии - 2000mAh. Или можете да използвате 4 и 5 батерийни пакета. Сервото може да работи до 6 V (въпреки че това, мисля, не е ограничението), така че можете да използвате пакет от 5 1,2 V батерии за "шутове".
Колелата са направени от шперплат. Но вече купих гумени пръстени на пазара. Пробвано - страхотно като колела. Просто трябва да се свържете със сервото.
Докато не направих edge сензори и не свързах микроконтролера. Ще използвам ли IR броня? още не знам Трябва да съберете поне един робот.
Сензорът за ръбове ще изглежда по следния начин:
Има един проблем с него - не е лесно да го настроите. Тримерните резистори са разположени на същото място като оптоелектрониката. Ще трябва да го настроите по следния начин: завъртете го, нагласете го, насочете робота около ринга, след това до точка 1 и отново. Малко неудобно, но мисля, че ще реша този проблем. Също така трябва да направите бутон на платката за конфигуриране и да напишете част от програмата, която ще отговаря за конфигурирането на сензора.
И най-доброто нещо е да напишете отделен код, за да проверите производителността на целия робот (самотестване). Но това е в плановете. Междувременно трябва да се разработи нова дъска. Само не знам дали да направя универсална или специализирана дъска? Като цяло извадих MK от леглото и дъската е "празна". трябва да помисля.
Ето снимка на първия сензор (вдясно), който обърках. Когато отпечатах окабеляването на принтера, забравих за огледалото. Още когато пробих дупки, разбрах, че съм сбъркал. С всеки се случва. Ето какво означава да правиш няколко неща наведнъж.
Долу вляво е новата гравирана долна сензорна платка. Схемата е по-горе, само аз използвах 2 канала (повече все още не е необходимо). Следващия път ще използвам SMD чип, защото DIP заема твърде много място.
Монтиран сензор за ръбовеГравирах дъска специално за този робот. На платката: микроконтролер AT90S2313, честота - 4 MHz, драйвер на двигателя L293D, без диоди, също на платката има IR предавател и приемник TSOP1736.
Докато пиша този материал, роботът вече е сглобен и вече се движи по ринга и пада :-) за сега.
Роботът най-накрая кара около ринга и НЕ ПАДВА.
Роботът избутва буркан от ринга - вижте клипа (размер 428 kb, 2 секунди).
Да, бях очарован от сумо робота. Разбира се, очаквах, че ще бъде много дълго и трудно да го науча да се бори, но се оказа, че „тестът с тухла“ е доста лесен за изпълнение. Друго нещо е, че алгоритъмът за търсене на друг робот все още не е съвършен и все още не съм настроил IR сензора, но има успехи.
Опитах се да снимам с моята уеб камера, но стаята беше тъмна и не се получи много добре.
Е, сега по-подробно.
Сега роботът има доста прост алгоритъм.
Взех 2 регистъра (реших да не използвам памет) reg_count - брояч за обратно броене и reg_motor - реално кодиран тип движение. След стартиране motor=2 и обратното броене също е зададено на някаква стойност. Програмата върви на цикли. Разпитва подовия сензор, разпитва IR сензора. Ако не открият нищо, се връща в началото и намалява reg_count. Когато стойността намалее до 0, стойността на двигателя се променя на 1 (беше 2), броячът се зарежда и контролът се прехвърля към блока на подовия сензор. Когато броячът приключи отново и стойността на двигателя = 1, тя се променя обратно на 2 и броячът се зарежда.
Дотук 2= движение напред, 1= ляв двигател напред. Роботът се движи почти в кръг. Това, разбира се, е минус, защото не винаги може да открие "тухлата". Надявам се, че ще измисля произволен ход или нещо по-прогресивно.
Освен това, ако IR сензорът "вижда" върнатия сигнал, моторъте настроен на 9 и роботът се движи само напред. Броячът е зареден, но когато се нулира. нищо не се случва - роботът продължава да бута обекта.
Блок за заминаване. Досега числата 5 и 6 са запазени за това, но тъй като този блок е написан най-напред, той работи "трудно" - част от кода е запазена за това. Двигателите се включват и отзад, след което в зависимост от това кой датчик се задейства (десен или ляв) се включва съответният двигател. По това време роботът не вижда пода и IR сензорът не работи. Но задачата на робота е бързо да напусне опасната зона. Това е основното. След като е в безопасност, той може да продължи да „търси плячка“. Ако роботът "види" врага и той внезапно изчезне (което може да е в реална битка), тогава програмата проверява какво е било състоянието и ако е имало отговор от сензора и след това е изчезнал, тогава 2 се записва в регистъра на двигателя и роботът започва да търси врага отново.
Тактиката, разбира се, е "дъб" и е предназначена за "тухла", но. Не съдете строго, всичко тепърва започва. Вярно, един колега днес попита в писмо "кога ще е състезанието?". В България имам предвид. Не знам, защото за мен България е чужбина. Киев ми е по-близо, но ако има състезания в Москва или Санкт Петербург, тогава може би ще отида. Просто трябва да построите нормален робот - този все още е доста слаб.
Първият ми сумо робот има следните данни:
Дължина - 10 см ширина - 11 см тегло - около 250 грама. Батерии - описани по-долу Хардуер - беше по-горе, 2313 + L293 Програма за асемблер. Размер на кода - 129 думи (от 500 възможни)
Смятам да намаля ширината до стандартната, като сложа нови гуми. заготовките вече лежат, просто трябва да направите колела въз основа на тях. Лесно е и да напълнеете. Дизайнът на робота ви позволява да инсталирате 3батерия (4 броя). Тествах с 2 комплекта - 4xNiCd600mAh и 4xNiMh2100mAh. Батериите имат неприятна особеност - една от 4-те сяда и съответно токът рязко намалява и тягата намалява. Ако смените тази батерия, токът се възстановява. Преди имах идеята да свържа няколко източника, а сега още повече бих искал да го направя. например при търсене се използват по-слаби батерии от 600 mAh, а ако врагът е пред робота, включете по-мощни или дори 2 комплекта батерии наведнъж. Ето една идея! А? Теглото го прави възможно.
Свободната памет ви позволява да правите много повече. Не е изкуствен интелект, но все пак МК е един от най-простите. Можете да вземете Mega8 - все още е много по-готин! Но реших да започна с това, което е налично.
Междувременно снимка на Monster и Sumo-1
Уча Abobe Premiere, така че ако нещо не е наред, не се обиждайте. WMV се оказа най-добрият формат за интернет. Надявам се всеки да има какво да види. Файловете са много малки, включително комутируеми 28.8k и 56k.
Фрагмент №2 (224 kb, 47 секунди) във формат WMV. Това е по-дълъг фрагмент (вариант на фрагмент № 1), който показва как роботът, след като избута всички настрани, продължава да "рови" около ринга.
Фрагмент №3 (103 kb, 22 секунди) във формат WMV. Това е дуел на Сумо-1 с Чудовище-1. За съжаление, Monster-1 все още няма IR сензор за откриване на врага - той просто се опитва да се движи и да не падне от ринга. По това време Sumo-1 го преследва (по същество сляп робот) и все пак го избутва от ринга. Трудно е да си представя какво ще се случи, ако Monster-1 придобие зрение (все още работя върху сензори), но очевидно той имадостатъчно мощност, за да свали всеки робот. Липсва му тегло, вярно, и не отговаря на размера на мини-сумо роботите, така че засега е подходящ само за спаринг партньор на Sumo-1.
видим е почти целият робот (90kb) В началото беше планирано двойно захранване на управляващите вериги и частта на двигателя, но те работеха добре от един и същ източник на захранване и направих джъмпер, за да захранвам всички вериги от една батерия.