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

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


Публикации - sv_shady

Страници: [1] 2 3 ... 38
1
Как се дефинира хоби роботика според теб? Къде е границата между "професионална" и "хоби" роботика?

2
Програмиране / Re: Генетичен алгоритъм
« -: Декември 30, 2013, 11:07:57 pm »
Презентациите, към които бях дал линкове вече не са свободно достъпни, но пък може да разгледате материалите от Ден 2 на миналогодишния курс по приложен изкуствен интелект, който водих - има и видео запис и презентация. Ако има въпроси ще се радвам да ги обсъждаме тук във форума :)


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

4
Line Tracer / Линия за Line Tracer
« -: Юли 23, 2013, 10:25:33 am »
1. Общо взето различни хора организират такива състезания и ползват различни линии, но обикновено са около 30 мм, така че ползвай такава за тестове.
2. Да, линията е черна на бял фон.
3. Ами състезания се организират, но няма стандартен график.
4. Mожеш винаги сам да си начертаеш пистата и да я изпринтиш на отделни листове. Може също да си нарисуваш линията, въобще варианти много.
5. Зависи от трудността на трасето - може да прочетеш ето  ТУК

5
Ардуино (Arduino) / Проблем с код
« -: Юни 19, 2013, 12:03:11 pm »
Ако съм те разбрал правилно значи не ти трябва do-while, ами нещо подобно:

case 1:     /* Zapochva pulnene Hidrofor OFF */
     
     delay (100);
     digitalWrite(RELAY_P1_PIN, LOW); /*Pompa ON */
     digitalWrite(RELAY_P2_PIN, LOW); /*Hidrofor OFF*/
     
     while (hWatherCm > 5)
     {
         int uS = sonar.ping_median();
         int hWatherCm = (uS / US_ROUNDTRIP_CM);
     }
     
     Serial.print (hWatherCm);
     delay (100);
                                       
    //delay(DELAY_1);
    break;


Това би трябвало да включи помпата докато водата не се приближи достатъчно до сензора. Не забравяй, че мериш разстояние до водното огледало, а не ниво на водата.

6
Ардуино (Arduino) / Проблем с код
« -: Юни 18, 2013, 10:54:04 pm »
Кой от двата do-while защото и на двата условието е променливата да е по-малка от 5, на по-голяма от някаква константа. След като казваш, че не достига желаната стойност и излиза от цикъла значи условието на цикъла е грешно или операциите в тялото му.

7
Други роботи / Първи Робот
« -: Март 08, 2013, 07:23:18 pm »
Е да, но пък си научил повече, след време ще знаеш какво точно прави хардуера в контролера, няма да е магическа черна кутия :) Arduino е страхотно за начало, но за да продължиш напред трябва да се мине на следващото ниво на трудност. Също така, за да избегнеш това греене на схемата управляваща моторите, за следващия робот си направи сам H-мост, но с MOSFET транзистори. Няма да ги имаш тези проблеми, защото техните съпротивления са в порядъка mOhms (miliOhms) и съответно разсейват много по-малка мощност.

8
Ами много зависи какъв ще е мотора, на какво напрежение, какъв ток. Има доста интегрални схеми, които предлагат защита по ток - тоест, ако  тока мине даден праг спират мотора или дори му обръщат захранването, така ще започне да се отваря вратата. Разгледай тук и си харесай (доставят до БГ, а можеш да си поръчаш и през Comet): http://bg.farnell.com/jsp/search/browse.jsp?N=2003+203654&Ntk=gensearch&Ntt=DC+motor+driver&Ntx=mode+matchallpartial

Трябва да помислиш и за крайни изключватели, така че да знае системата, кога е затворена/отворена вратата.

9
Привет на всички,

Проектите и интересните неща стават все повече и повече и не мога да се включвам, толкова често колкото ми се иска. Въпреки това идеята ми да поразкажа това онова пред по-широка публика започна да придобива материален вид: http://academy.telerik.com/algoacademy/artificial-intelligence

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

10
Практика / Мярка гр*см ?
« -: Октомври 27, 2012, 09:44:31 pm »
Ще добавя, че това е стандартна постановка за тестване на електромотори. Освен това си е доста разумно да предположиш, че моторът ще работи на планета с гравитационно ускорение 9.8 :)

11
Електроника / Сензори
« -: Октомври 21, 2012, 12:34:59 am »
Ами когато са комбирани те пак мерят спрямо собствените си оси на измерване, но можеш реално да измериш всякакъв вид преместване в пространството - ротация и транслация. Акселерометърът независимо дали работи само или не, той винаги засича земното ускорение.

12
Електроника / Сензори
« -: Октомври 20, 2012, 03:53:21 pm »
Здравей,

За да разбереш какво точно означават всички тези неща ти трябва малко физика и математика от 8 - 9ми клас, но ще се опитам да ти разкажа.

Нека започнем с това, че има два вида движения - линейно и въртящо. Представи си една движеща се кола по прав път с дадена скорост, т.е. колата се движи по дадена права. Математическият термин за такова движение е "транслация". За да се движи обаче колата гумите и се въртят, а математическият термин за такова движение е "ротация".
Праволинените движения се дължат на приложена сила, която води до промяна в линейното ускорението  и следователно в линейната скорост.
Ротациони движения се дължат на приложен въртящ момент, който води до изменение в ъгловото ускорение и следователно в ъгловата скорост.
Тоест трябва да правиш разлика между линейна скорост - ъглова скорост и линейно ускорение - ъглово ускорение.

Едноосен акселерометър мери линейните ускорения по една ос, т.е. ако акселерометърът се движи по посоката, която сочи оста му, тогава ще можеш да имериш ускорението по тази ос. Едноосен акслерометър не може измери ускорения перпендикулярни на оста му на измерване. Триосен акселерометър може да мери линейните ускореният и по трите оси (X, Y и Z) - накъдето и да го движиш ще можеш да измериш резултантното линейното ускорение, което в векторната сума на измерените стойносто по X, Y и Z оста.

В този ред на мисли жироскопът измерва ъглова скорост на въретене спрямо всяка от осите му - затова и идва мерната единица градус / секунда (линейния й аналог е метър за секунда).

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

Надявам се поне малко да съм разбулил мъглата :)

13
Историята, че е "Марсоход" е дост дълга, но накратко в програмата на всички второкурсни в моята специалност влиза едно отборно състезание. То протича по предтекст, че се изследва друга планета и трябва да се снемат данни - карта на района, температура, сезимична дейност, записване и разкодиране на звукови съобщения и т.н. Отборът, който се справи най-добре е победител и получава разни награди от Microchip. Миналата година аз бях победител и реших тази година като третокурсник да участвам отново, но само за слава :Р Тъй като съм член на LEGO клуба в университета реших да е LEGO робот.

Та сега по същество - софутера го сглобих за 20на часа, така че сигурно има много концептуални недоглеждания, но ни трябваше нещо бързо и работещо. В основата на софтуера на робота седи Robot Operating System. Това е дистрибутирана псевдо-операционна система позволяваща управлението и комуникацията между много процеси върху множество компютри. Защо псевдо - защото върви върху линукс и управлява линукски процеси.

Имайки предвид архитектурата на ROS, ето как е организиран и софта за робота. Първо има един възел, който чете джойстика и публикува съобщения с позицията и натиснатите копчета. Идеята на възела е, че публикувайки информацията други n на брой възела (процеса), работещи на различни машини, имат достъп до нея. Освен това възелът идва с ROS и всичко се свежда само да пускането му с един ред в терминала, не губихме време да четем сами джойстика. Възелът е основната функционална единица на ROS - аналогично на процес при конвенционалните операционни системи.

Защо малкия лаптоп - защото искахме да стане бързо. Беше най-лесно да имаме машина с ROS на робота (то така се прави принципно с истинските и скъпите роботи управлявани от ROS). Освен това лаптопа има WiFi и камера - 1 куршум, много зайци :) Написах втори възел (езикът е С++), който върви върху лаптопа на робота, слуша за съобщения от джойстика, обработва информацията и пресмята ориентацията и скоростта на колелата. След като пресметне тези параметри ги праща към два стандартни LEGO микроконтролерни модула - RCX, чрез инфраред. RCX модулите управляват колелата и следят ротационните енкодери. За съжаление разполагаме със старите LEGO модули, с които може да се комуникара единствено чрез инфраред. Инфраред трансмитера е стандартна LEGO инфрачервена "кула" - на видето можете да я видите зад екрана на малкия лаптоп върху робота. Успях да намеря библиотека, която да управлява "кулата" кодирайки съобщението с информацията, така че двата RCX-a да го разберат.
Та работата на лаптопа се свежда до търкаляне на ROS възел, който слуша информация от джойстика, пресмята ориентацията и скоростта на колелата и изпраща тези параметри чрез инфраред до двата RCX-a. Както казах, възела го написах на C++, а средата gedit + gxx :) Просто още не съм седнал да видя как се правят ROS възли с Еclipse.

Двата RCX-а принципно имат стандартен LEGO фърмуер, който обаче е малко ограничен от към комуникация по инфраред - не поддържа адресиране, а тъй като имаме 2 RCX-a това е необходимо. Затова ги префлашнахме с къстъм фърмуер наречен BrickOS. Този BrickOS позволява да си пишеш С код, като използваш техните библиотеки, после само крос компайлваш с gcc за Hitachi H8/300 - това е микроконтролера в RCX-a. Библиотеките на BrickOS позволяват да контролираш скоростта на всеки мотор, да четеш ротационните енкодери и т.н., така че кода за самите RCX-ове е сравнително елементарен също.

Ето обобщение как преминава информацията:

Джойстик => Стационарен Лаптоп => ROS Възел - Джойстик  => WiFi => ROS Възел - Мобилен Робот => Мобилен Лаптоп => Кинематичен Модел => Ифраред трансмитер => ляв и десен RCX => скорост и ориентация на четирите колела

Знам, че е малко пресилено и същото нещо може да се реализира много по-ефективно, но това не е комерсиален проект, трябваше да стане бързо, а и все пак нещо да понауча :) Най-готиното на това решение, според мен, е че ако имаме още един идентичен робот, просто пускаме захранването му и той ще прави абсолютно същото - тоест това решение позволява управлението на множество роботи (друг е въпросът дали има смисъл да управляваш множество роботи да изпълняват еднакви движения).

14
Привет на всички,

Искам да ви покажа едно от нещата, които завърших миналия семестър, но чак сега имам време да го постна. Става въпрос за "марсоход" с векторно управление, по който работих с още две момчета - едното от тях е Alternative от фурма. Векторно завиване означава, че може от спряло положение да тръгне в произволна посока, т.е. може да се движи настрани по диагонал и т.н. Роботът притежева още два режима на маневриране. Първият е стандартно акерман завиване, където предните гуми завиват в една посока и заднате в противоположна. При втория режим левите и десните гуми се завъртат огледално така, че роботът да може да се ротира около оста си.

Роботът е изграден от LEGO - използва 8 DC мотора, 4 ротационни енкодера за ориентацията на всяка гума, както и 2 RCX-а, които се командват през инфрачервена кула, управлявана от малък ноутбук върху робота. Контролът на робота се осъществява, чрез джойстик свързан към отделен лаптоп, който праща информация към малкия ноутбук върху робота чрез WiFi. Комуникацията се осъществява чрез Robot Operating System (ROS), а софтуера върху двата RCX-а (стандартен микроконтролерен модул на ЛЕГО) използва BrickOS. Цялото е писано от нулата на С++.

Ето и видео:

LEGO Rover using ROS

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

15
Електроника / Стъпков мотор
« -: Април 03, 2012, 05:02:43 pm »
Колко проводника излизат от мотора - 4 или 6?

Страници: [1] 2 3 ... 38