Мы решили с другом создать простейшего робота на основе ноутука. В принципе решили что управление будет происходить через ком порт, в связи с чем и появилось пару вопросов: 1) На ноутбуке нет ком порта из-за чего и было принято купить переходник usb -> com Но какой лучше? как он определится в системе? есть ли в них защита от КЗ, встречного питания и так далее? Понимаю что это все можно найти в интернете, но блин там нет точного ответа (все пишут свое) 2) Может кто пытался уже собирать робота на основе компьютера, с какими проблемами можно сталкнуться? Да планируется что робот будет ориентироваться по дальномеру установленому на серво приводе и проверять доступность пути =) Модеры плиз не сносите тему я планирую (если вы не против) выкладывать сдесь результаты моей работы и задавать вопросы =)
имхо для начала напиши софт. эмуляцию серво привода прикрутить элементарно. а потом уже купиш всё, что надо и будеш отлаживать на железе. поидее должна быть. в любом случае её припаять несложно. хотя от кз незнаю.. её даже на юсб нет(по крайней мере на старом компе так и было)
Софт написать не проблема так как используется компьютер, в связи с чем можно использовать любой язык программирования. Вот тагже пишут на разных форумах и сайтах =)
По поводу защиты от кз однозначно ответа никто не даст, в магазах ведь везде различные переходники продают, различных производителей и соответственно в одних из них могут быть схемы защиты а в других нет! Но в любом случае хуже не будет если поставить свою собственную защиту в виде самовостанавливающегося предохранителя на ток 0,5А. Но вот хватит ли такого тока для того чтобы привести в движение робота (все зависит от того как будет реализована механика, от того какой массы будет робот). Если 2,5Вт будет мало, тогда прийдется подключать внешнее питание.
слабо на ActionScript?) почему лучше сначала софт? даже если вы всё напишите и подключите отлажимать вы уже будите на готовой конструкции. и едущий на колёсиках ноут врезающийся в стену не есть гуд. поэтому сначала нужно сделать софтовый эмулятор робота, обходящего препятствия(камеру (или что вы там юзаете в роли дальномера) всё-таки нужно купить). а потом уже, когда вё вродебы будет работать - отлаживать на релдьной конструкции.
Сперва нужно написать софт хотябы по той простой причине, что во время его написания будут встречаться различные подводные камни, которые исправить в программе проще чем изменять в железе. Можно например при разработке железа не учесть какойнибудь датчик или ещё чего, в результате прийдется изменять железо. А во время написания программы можно некоторые такие камни увидеть и заранее их предусмотреть. Во вторых это не самый простой проект, и поэтому на его реализацию уйдет не мало времени, за которое вся охота может пройти. Но всеже перед написанием программы следует разработать схему (но не собирать её в железе), для того чтобы писать программу именнно под конкретное железо, а не на обум. После того как будет закончена работа над первоначальным вариантом схемы можно будет приступить к написанию программы. По окончанию написания программы проводятся корректировки схемы и производится сборка в железе, затем уже на этом железе производиться отладка написанной программы. По крайней мере я всегда при разработке какого либо устройства стараюсь делать это именно в таком порядке.
Какой дороже - тот и лучше. Хороший (с защитами и развязкой) выльется примерно тыщи в три русских рублей. Думаю, не стоит с этим заморачиваться. При нормальной прямоте рук и китайский преобразователь за 400 руб. спалить будет трудновато. Все равно придется еще RS-232 в UART преобразовывать... а там по килоомному резистору на Rx, Tx и все будет хорошо. Какой контроллер на роботе собираетесь использовать? Возможно, лучше преобразовывать в RS485 - потом будет проще переходить на wireless, да и выигрыш небольшой будет по потреблению тока. Еще вариант: сразу замахнуться на беспроводную передачу, взять например модуль bluetoosh с UART-ом на выходе и управлением AT-командами. Цена вопроса уже меньше двух тысяч рублей. Все преобразователи являются CDC-классом USB устройств и определяются в системе как "железный" COM-порт. Можно, кстати, попробовать и какой-нибудь завалявшийся USB дата-кабель от телефона использовать (например на PL2303). Сам не пробовал, но помоему, вести он себя должен точно так же, как и преобразователь, но подключить можно будет прямо к контроллеру. распиши по подробнее структуру проекта. Какие исполнительные механизмы на роботе, какие датчики. Ато мысль в одном из постов о ноутбуке на колесиках как-то улыбнула.
Смотрел в интернете и почти везде про 1 и тодже переходник разные данные, Ну ничего свояем свою защиту =) А не подскажешь в каком эмуляторе можно прикрутить дальномер и проверить его работу? Как я представляю принцип работы подводных камней в конствукции не должно быть так как система определения места положения будет основана всего на двух датчиках. Это дальномер и серво привод который будет крутить перед роботом дальномер, следовательно при любой кривой сборки все можно решить программно. (имхо) Это конечно, но сейчас еще выираем железо и принцип его взаимодействия. В роле контроллера будет выступать схема на основе AVR'a (точно сказать не могу так как контроллер будет собирать друг) Проект планируется как проводной так как в будущем полностью переедет в системный блок =) Меня тоже это надоумило =) подойдет почти любой кабель от кпк под управлением palm os (ну надо будет еще почитать в нэте) на ноутбуке это дело будет отлаживаться а потом переедет полностью в системный блок компьютера =)) Робот будет передвигаться на гусиницах, что сделает возможным разворот на месте и меньше мароки с поворотным миханизмом, В роле датчика будет выступать дальномер (сейчас выбираем) и серво привод с возможностью отсчета от - к + (к примеру -45 +45) который будет вращать дальномер. Пойду почитаю
собственно вот) да и всегда в прогу можно передавать значения аналогичные дальномеру, а потом смотреть.
Не мы для горантии скорей всего будем использовать оптопару, чтоб в случае чего защетится и от встречного тока. Прошивка (так сказать) будет написана на python и С
Сейчас появилось пару свободных минут на работе и я решил написать что-то наподобе драйверов устройств робота. Писал на питоне, но и написал комеинтарии чтоб было понятно большенству. (прогу не проверил на работе питона нету) Code: import threading from Queue import Queue l_x=Queue() #глобальные переменные потоков r_x=Queue() ygol=Queue() maps{}=Queue() rastojanie=Queue() zaxod=Queue() class motor_l(threading.Thread): #поток управления левого мотора def napr_l(l_x): if l_x == 1: #если от логики придет 1 или 2 или 3 выпоняем определенное действие print 'krytim v pered' elif l_x == 2: print 'stoim na meste' elif l_x == 3: print 'edem nazad' class motor_r(threading.Thread): #поток управления правого мотора def napr_l(r_x): if r_x == 1: #если от логики придет 1 или 2 или 3 выпоняем определенное действие print 'krytim v pered' elif r_x == 2: print 'stoim na meste' elif r_x == 3: print 'edem nazad' class serva(threading.Thread): # поток управления серво приводом max_l = -45 #макс углы поворота сервы. указывать как углы сервы (если счет от нуля то и ставим ноль) max_r = 45 while 1: if zaxod % 2 == 0: #Проверяем в какую сторону двигать серву по количеству ее движения (по четности) ygol = max_l + 1 if ygol = max_r: zaxod = zaxod + 1 if zaxod % 2 > 0: ygol = Max_r - 1 if ygol = max_l: zaxod = zaxod + 1 class dalnomer(threading.Thread): #поток управления дальномером while 1: coordinata = coordinata + 1 #Считаем координату от начала движения сервы if distanchija < 81: #Если мы видем препядсвие записываем 1 rastojanie[coordinata] = 1 elif distanchija > 81: #Если не видем препядствие записываем 0 rastojanie[coordinata] = 0 class logika(threading.Thread): #Сдесь будет логика Пока нет логики но я ее допишу скоро =) И тагже принимаются советы по прошивке