Форум по Роботика

Технически форум => Общ форум => Темата е започната от: anton_sh в Май 19, 2013, 08:00:30 pm

Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 19, 2013, 08:00:30 pm
Здравейте,
За пръв път се занимавам с такъв тип проект. Имам познания по линукс и програмиране. Крайната ми идея е да управлявам количка чрез браузър. За съжаление не съм запознат много с електроника. За сега съм избрал този модул, който всъщност ще играе ролята на количката (http://compulab.co.il/products/computer-on-modules/cm-fx6/?gclid=CPLDpKOA8rYCFQeW3god2BAA6A#overview). Съответно този модул има Serial Ports (UARTs) и смятам през него да командвам управлението на количката. Проблемът ми е следният: как мога да управлявам електростъпков мотор чрез този порт?. До сега разбрах, че се нуждая от някакъв междинен контролер между Serial Ports (UARTs) и мотора. Точно този контролер не съм сигурен какъв трябва да бъде, има ли възможност да се закупи готов, да не се налага да програмирам контролери, защото не разбирам от такъв тип програмиране. Намерих и разни контролери в този сайт(http://dx.com/p/28ybt-48-stepper-motor-with-uln2003-driver-dc-5v-126409), но не знам ще ми свършат ли работа. Междудругото четох за Ардоино, но изкючвам този вариант. Предпочитам да наблегна на линукс и управлението през уеб, а не да уча нов език за програмиране. Може ли да ми дадете някакви насоки?
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 19, 2013, 09:00:43 pm
Ух... Малко е като да имаш копче и да чакаш да му пришият палто...
"Мозъкът" е някакъв микроконтролер. Той управлява мотор(ите) чрез междинен драйвер. От другата страна е комуникационен модул, който да осъществява комуникацията с браузъра.
Един от начините е да използваш библиотека, позволяваща микроконреолерът да работи като WEB сървър. Така при свързване той ще ти генерира отговорите.
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 19, 2013, 10:30:11 pm
Под "Мозъкът" имаш предвид CM-FX6 Computer-On-Module, който съм избрал ли? Мен не ме притеснява комуникацията с браузера. Идеята ми е да инсталирам на този модул линукс и уеб сървър. От там нататък комуникацията ми между браузъра и този модул не ме притеснява. Разбрах също и как да подавам информация към Serial Ports (UARTs). Не ми е ясно как да процедирам от там нататък. Именно след като подам някаква информация на този порт, от какво тя ще се обработи и как ще накара да се завъртят тези мотори. Ако може за това да ми дадете повече информация и дори и примери ако е възможно, защото не ми е много ясно.
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 20, 2013, 11:11:09 am
Понеже си се ориентирал към такъв подход, аз виждам нещата така: Качваш си операционната система и сървъра на този модул. Към него свързваш през серийния порт някакъв друг микроконтролер, който програмираш да разпознава командите и подава импулси на драйвера.
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 20, 2013, 01:18:21 pm
Да това ясно, общата картинка ми е ясна. Проблемът е този микроконтролер между порта и електростъпковия мотор. Има ли вариант да се използва нещо готово, тоест да не се налага да програмирам микроконтролера(защото никога не съм се занимавал с такова нещо). Представям си го като готов микроконтролер който е предназначен именно за управление на такъв тип мотори и знае какво трябва да му се подаде като информация от порта и какво да направи. Съществува ли такова нещо?
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 20, 2013, 03:52:33 pm
Има такива устройства, но не е оправдано в случая, според мен - като цена и заемано място.
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 20, 2013, 04:17:36 pm
Можеш ли да ми дадеш някакъв пример за такова устройство?
Другият ми вариант до колкото гледах в интернет е Arduino UNO R3 board. Него да го вържа към CM-FX6 Computer-On-Module. Но не съм сигурен колко мотора могат да се управляват от това ардоино.
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 20, 2013, 05:59:57 pm
Хайде сега по ред: колко мотора трябва да се управляват?
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 20, 2013, 06:03:04 pm
Еми един мотор за управлението на количката, един за движението напред и назад и един който ще използвам в много по- късен етап за въртене на камера ако сложа такава,но все пак трябва да съм го предвидил. В крайна сметка става на въпрос за три мотора.
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 21, 2013, 12:07:46 am
Ще можеш да управляваш с Ардуино 3 мотора.
Ако ти се занимава, мога да ти изпратя файл с платка за драйвер за 4 мотора. Но трябва да го правиш в платкаджийница, защото е трудничък за ръчна изработка. Иначе е малко по-разточителен(има по един контролер за всеки мотор), но позволява четирите мотора да работят абсолютно независимо един от друг. Предвидена е шина за комуникация(с Ардуино), по която се задават параметри(брой стъпки, скорост) и разрешаващ вход, който определя кога да се изпълни зададеното и кога да спре(ако е зададено безконечно въртене). Другото хубаво е, че е правен за голям брой мотори и чрез FLAT10 кабел може да се добави следващ и следващ модул...
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 21, 2013, 08:57:38 am
Варианта с платката ми звучи много добре, обаче ще се налага ли да програмирам контролерите на тази платка или не? И другото, което ме притеснява е, че казваш че има предвидена шина за комуникация с Ардоино. В моя случай трябва комуникация с Serial Ports
(UARTs). Има ли такъв вариант тази платка?
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 21, 2013, 11:19:28 am
Платката е направена за реализация на паралелни процеси с различни характеристики(различни скорости). Не е единственият начин, разбира се. Самата платка е предвидена да се използва с Ардуино. Има 4х2W драйвери за стъпкови мотори и 4 микроконтролера, свързани към 4 проводна шина(позволява SPI или I2C комуникация, както и дефиниран от потребителя протокол). Има и още една "екстра" - по две отделно изведени линии към всеки микроконтролер(всичко е с ICD10 конектори), така че е възможно да има обръщане само към един управляващ микроконтролер, без другите да слушат - т.е. преминаване в режим "приемане" само при съответно ниво на този микроконтролер, а другите изпълняват зададеното, без да подлушват постоянно линията.  
Трябва да се програмират и микроконтролерите на платката, за да разбират какво им казва Ардуиното. Серийната комуникация се осигурява от Ардуиното. Имам и някакви примерни кодове, но съм работил с Мега, защото управлявах над 30 мотора - някаква модификация на ксилофон за изпълнение на мелодии.
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Май 21, 2013, 12:53:31 pm
Е щом е предвидена да се използва с ардоино, знащи няма да ми свърши работа. Аз нали описах по- горе, че ще работя с CM-FX6 Computer-On-Module(дал съл линк в първия пост) Следователно ми остават два варианта: или да използвам Аrduino UNO R3 board, който да управлява моторите или да използвам въпросното устройство, което спомена, че не се нуждае от програмиране. Дай някакъв пример за такова нещо,  ако е възможно, за да прочета в интернет повече по въпроса. А нещо отсносно това ->  http://dx.com/p/28ybt-48-stepper-motor-with-uln2003-driver-dc-5v-126409 можеш ли да споделиш. Няма ли да ми свърши работа?
Титла: Проект управляема количка чрез wifi
Публикувано от: Dare_Devil в Май 21, 2013, 01:01:37 pm
@emil74: Би ли споделил все пак тази платка, че и на някой друг може да му е от полза :) На мен например ще ми е интересно да я разгледам :)
Титла: Проект управляема количка чрез wifi
Публикувано от: tonko_lonko в Май 21, 2013, 02:58:00 pm
Вместо CM-FX6 Computer-On-Module замислял ли си се за Android TV Dongle /Tv Box/.Има по 40$.Може да се върже с Arduino през USB/те всички TV dongle-и имат поне един HOST usb/.Можеш да сложиш и камера ако TV dongle-a няма както и 3G флашка да излезеш извън обхвата на Wifi-to.
To Твоя CM-FX6 Computer-On-Module е напрактика като TV dongle но е малко по скъп и слаб и сигурно по труден за намиране.
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 21, 2013, 07:50:05 pm
Цитат на: "Dare_Devil"
@emil74: Би ли споделил все пак тази платка, че и на някой друг може да му е от полза :) На мен например ще ми е интересно да я разгледам :)

Засега е ТУК (http://szrefekt.com/download/STEP_MOTOR_DRIVER.rar). Ще бъде премахнат, обаче, след известно време(проектът не е планиран за share)
ТОВА (http://szrefekt.com/download/StepMotorDriver.jpg) е снимка на резервната платка. Не са поставени процесорите и кварцовете към тях, както и няколко изтеглящи резистора.
Захранването през клемите е за напрежението за моторите. Захранването на контролерите е през ICD10 конектора горе и трябва да е стабилизирано напрежение 5V, по правилата за захранване на микроконтролери. На същия конектор е и шината за данни (b0-b3). Долният конектор(вляво долу) е с по две отделни линии към всеки контролер.
Титла: Проект управляема количка чрез wifi
Публикувано от: bateAz в Май 22, 2013, 09:15:24 am
Много процесори !  :shock:
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 22, 2013, 10:47:18 am
Преди да преминем към този вариант направихме проучване за подходите в подобни случаи. Платката е предназначена за изпълняване на мелодия чрез ксилофон(металофон), което налага едновременно управляване на множество мотори с различни скорости и различна начална и крайна точка. Има и обратна връзка към всеки мотор. Почти единодушно всички, до които се допитахме, посочиха отделен процесор за всеки мотор, синхронизираща платка и съответен софтуер.
Ето например ТУК (http://mcu-bg.com/mcu_site/viewtopic.php?f=2&t=10010) консултация по подобен казус. Не мога сега да изровя и други места, където сме търсили.
Предимството се вижда, ако имаш 20 мотора, като в момента, докато единият се връща с време(на импулса) 800us, втори прави 20 стъпки с време 3ms, трети, пет стъпки преди втория да е ударил започва - 10 стъпки с време 5 ms, трети - 15 стъпки, с време 4 ms и т.н. Ако има повтаряемост на движение, достатъчно е само да се зададат стъпки и скорост и да му се подават сигнали за напред-назад, докато важи настройката. Моторите с идентични данни се програмират едновременно, а останалите работят, без да слушат шината. Ако сметнем оскъпяване от 1,5-2 евро на мотор, съпоставено с бюджета на подобни проекти, мисля, че е нищо. Пример: проект за интерактивна стена с около 100 мотора е с бюджет 50-80 хил. евро, а допълнителният разход - 200 евро, т.е. 0,25-0,4%...
Има, разбира се, други начини, но този се очерта като най-универсален.
Титла: Проект управляема количка чрез wifi
Публикувано от: bateAz в Май 22, 2013, 12:28:52 pm
За 20+ мотора един процесор е може би малко...
Пробвал съм 4 мотора на един процесор MSP430F6638 ( 16bit, 20MHz ) и по един 74HC373 за мотор + драйверни транзистори. Процесорчето се справя, като му остава време и за доста други неща. Максималната честота на смяна на стъпките беше май към 5 кХц, поддържа двупосочно въртене, поддържа еднополярни и двуполярни намотки на двигателите, ускорение и спиране според характеристиките на механичната система. Всеки мотор може да се върти по различен закон и с различни обороти.
Следи се и актуалната позиция на ротора; по броя стъпки, по краен изключвател, или по ФРП.
Затова реших, че по един процесор на мотор май е много. Още повече, че тия процесори май нищо друго няма да правят, освен да въртят. Ама в тоя бранш решенията са  много, и нито едно не е абсолютно правилно или грешно. :lol:
Титла: Проект управляема количка чрез wifi
Публикувано от: emil74 в Май 22, 2013, 01:00:23 pm
Правил съм проект с 1 CPLD за 16 мотора и драйверни транзистори. За 96 мотора. След този проект реших, когато е възможно, да избягвам този вариант. Бяха на 6 общи платки, качени на 12 метра височина. Изглежда, че имаше проблем и в монтажа(не бяхме го правили ние). Научих да сглобявам скеле по-бързо от строител! През седмица от нагряването се отлепяше по някой елемент(заради мястото всичко беше SMD)! Да видиш как се запоява 0805 елемент при 30-40 см осцилация на скелето... Развих прасци като на римски пехотинец, заради баланса! Оттогава - DIP драйвер, с предвидена солдер маска за охлаждане(както е на тази платка) и няма проблем.
Титла: Проект управляема количка чрез wifi
Публикувано от: Alternative в Юни 23, 2013, 04:15:52 am
Привет! Има ли напредък по проекта?
Преди време и аз имах такъв проект в главата, но като ни натовариха в университета, трябваше да се замързи.
Аз се бях спрял да използвам Raspberry Pi. На него върви Debian(или тяхното Rasbian + може и Arch Linux, има избор), като има достатъчно GPIO-та, I2C, SPI, 2*USB, etc. Не е необходимо да се използват стъпкови мотори, с обикновенни DC ти е практически необходимо няколко транзистора (аз се бях спрял на вече разработените платки от yasko [надявам се темата да не е затрупана], просто защото имах налични). И в двата варианта може да ги управляваш чрез ШИМ, като си имаш отделна нишка в процесора, която се грижи да генерира точни импулси върху изведените GPIO пинове. Относно ротирането на камерата, щях да използвам серва, които отново ще минат по същата процедура.
https://github.com/23pointsNorth/tsrp Тук бях започнал да пиша, но така и не се стигна до хакатона :D Използвам ROS (Robot Operating System), като идеята зад него е да може, ако се прави по-тежък процессинг, да мине на някакъв друг сървър или подобно, + да може лесно да се размножът платформите с вече направена комуникационна инфраструктура м/у тях. Като цяло ако правиш нещо роботско на по-високо ниво, е невероятно удобно и допълнително има страшно много различни библиотеки.
В крайна сметка, ще има един Apache сървър, отваряш страничката, кликаш/пращах команда, тя се изпраща към ros node (инстанция на програмата, да речем), която си spawn-ва нишка, а тя се грижи примерно на този пин да има такъв ШИМ.    
Камерката се закача на USB-то, като буквално на 5 реда с OpenCV (вече част от ROS) може да вземеш кадър, да го покажеш на web-страничката или да го изпратиш някъде в локалната мрежа. Може да се сложи малко Image Processing и да се напише нещо автономно - примерно роботчето се движи на някъде, като види човек/лице, обръща се към него, тилтва камерата, следи го. Като му свършва батерията, може да се прибере и да се зареди само.
Тъй като имаш Линукс + платформата подържа хардуерно различни варианти, може да правиш каквото си искаш, да връзваш високоговорители, микрофони,  акселерометри, жироскопи, термални датчици, въображението е единствената граница. :)
Титла: Проект управляема количка чрез wifi
Публикувано от: anton_sh в Юли 08, 2013, 03:58:34 pm
За съжаление и при мен проектът е спрян. Най вероятно ще го продължа в края на лятото. Аз стигнах до следния вариант: за компютър ще използвам PCDuino (на който ще сложа линукс) към него ще вържа Ардуино уно R3 и чрез него ще управлявам моторите. Един мотор за движение напред и назад, един за завиване и един за движение на камерата. Относно софтуера за видеото мислех да използвам Real-time communication with WebRTC Тове е нещо ново, което се предлага от google, но никога не съм го използвал. Самата комуникация между PCDuino-то и сървъра, където ще е качен сайта за управление на количката, ще я направя с php socket. Всичко е само на теория. Надявам се наистина да го осъществя.