roboforum.ru

Технический форум по робототехнике.

 

Помогите подобрать микроконтроллер и другое оборудование

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Помогите подобрать микроконтроллер и другое оборудование

Сообщение Yucca » 13 апр 2014, 16:02

Мне нужно придумать систему автопилотирования для складского погрузчика (дипломный проект). Система должна устанавливаться на обычный погрузчик и таким образом превращать его в автоматизированный. В качестве примера возьму погрузчик Toyota 7FGL15 с бензиновым двигателем. Сейчас занимаюсь подбором оборудования, чтобы начать писать программу:

1. Микроконтроллер. Исходя из каких характеристик выбирать МК? Думаю это будет точно AVR, но какой? Также интересует возможно ли использовать Ардуино? Насколько понимаю это готовая сборка и никаких доп. программаторов и т.д. уже не нужно?

2. Датчик для ориентации в пространстве. Первоначально планировалось система на основе видеокамеры и написанием программы на OpenCV, но чтобы упростить проект, решила использовать простой лазерный датчик для определения расстояния.. Подойдет ли такой вариант? http://carduino.ru/product_info.php?products_id=1925

3. Связь с компьютером. Запрос на поиск груза будет поступать с главного компьютера, связь думаю установить по WiFi - т.е. нужно на каждый погрузчик задействовать роутер и передача на МК будет вестись через его UART? Как это отразить в программе (С++) - может есть какие-то примеры подобной реализации?

4. Самый главный вопрос - я не могу понять как МК будет управлять движением погрузчика - т.е. например если выделить на МК 4 ножки для движения "вперед", "назад", "вправо", "влево" - то куда должны поступать эти сигналы? Это должен быть какой-то преобразователь для электронного управления открытием заслонки двигателя и управления рулевой рейкой?
Yucca
 
Сообщения: 19
Зарегистрирован: 10 апр 2014, 14:22

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Myp » 13 апр 2014, 16:59

1. любой какой нравится, желательно чтоб это была плата спаянная и готовая для работы.
2. простых лазерных датчиков не бывает, по ссылку ультразвуковой сонар, в принципе он дает точность в несколько сантиметров
но таких датчиков вероятно потребуется несколько штук.
3. если вайфай хочется то на каждый погрузчик можно поставить mr3020. mr3020 проводом соединён с МК.
4. нужен электро привод дроссельной заслонки, нужен некий электропривод который будет вращать рулевое колесо, нужен электропривод который будет нажимать на тормоз.
руль обычно крутят цепным приводом, кк в велосипеде, на руль одевают большую звёздочку а на электропривод маленькую
электпривод дроссельной заслонкой найди в интернете и по аналогии. тормоз - линейный привод.

не вижу вопроса про навигацию
как погрузчик будет понимать что он находится в определённой части склада а не протаранил например стену?
навигация как будет осуществляться? и как например погрузчик определит что он проехал 3 метра а не 3,5 например? так же и про повороты
вот это самая большая проблема. а прикрутить удалённое управление к погрузчику это фигня.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15896
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Yucca » 13 апр 2014, 17:25

Myp писал(а):2. простых лазерных датчиков не бывает, по ссылку ультразвуковой сонар, в принципе он дает точность в несколько сантиметров
но таких датчиков вероятно потребуется несколько штук.


Большое спасибо за развернутый ответ!

Если использовать Лидар, то можно обойтись одним?

Myp писал(а):4. нужен электро привод дроссельной заслонки, нужен некий электропривод который будет вращать рулевое колесо, нужен электропривод который будет нажимать на тормоз.
руль обычно крутят цепным приводом, кк в велосипеде, на руль одевают большую звёздочку а на электропривод маленькую
электпривод дроссельной заслонкой найди в интернете и по аналогии. тормоз - линейный привод.


Если взять электрический погрузчик, то будет проще? Я рассматриваю на примере системе RoboCV, там ни о каких доп. электроприводах не упоминается... http://robocv.ru//wp-content/uploads/20 ... MOTION.pdf
И как эти четыре сигнала с ножек будут распределяться? Т.е., например, при сигнале "поворот налево" будет подаваться сигнал на заслонку мотора и одновременно сигнал на поворот руля влево, но как он будет определять когда хватит поворачивать рулем, так можно и в поворот не вписаться..? Думаю сделать проще - движение только прямо или поворот на 90 градусов, но опять же этот прямой угол как ограничить, чтоб было именно 90?

Myp писал(а):не вижу вопроса про навигацию
как погрузчик будет понимать что он находится в определённой части склада а не протаранил например стену?
навигация как будет осуществляться? и как например погрузчик определит что он проехал 3 метра а не 3,5 например? так же и про повороты
вот это самая большая проблема. а прикрутить удалённое управление к погрузчику это фигня.


чтобы он не протаранил стену как раз и будет использоваться этот сонар, если впереди препятствие - поворачиваем налево, если и там препятствие - направо, как-то так.. или думаю заложить ему в память карту склада, сделать простую схему с несколькими поворотами, но только как эту карту привязать к положению погрузчика, чтобы он определял свое текущее положение? нужен опять какой-то датчик.. и датчик пройденного расстояния..
Yucca
 
Сообщения: 19
Зарегистрирован: 10 апр 2014, 14:22

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение AndreiSk » 13 апр 2014, 17:34

Я бы для диплома не стал бы использовать реальный погрузчик.
Для диплома можно взять что-то менее опасное.
Вы же будете рядом со своим изделием?
Подумайте сами, из-за ошибки в программе, этот погрузчик может припереть вас к стене,
и ему не скажешь - а нука отпусти. Такой погрузчик даже стену проломит.
Не шутка, сам занимаюсь летающим роботом, иногда случаются накладки. Поверьте,
иногда это страшно, когда не знаешь как остановить неуправляемый аппарат.
Предложил бы посмотреть в сторону радиоуправляемых машинок, например в формате 1:10,
они вполне грузоподъемны. Такие относительно медленно движущиеся машинки называются краулеры.
На нее вы сможете поставить компьютер типа Intel NUC (200грамм),
лидар (который по USB подсоединится к компьютеру, 200грамм), камеру (которая опять же к компьютеру, 100грамм).
Итого 500грамм веса.
Не надо будет роутер цеплять, в компьютере итак есть WiFi.
Управлять р.у. машинкой также можно.. с компьютера :) Цепляем на USB платку типа Pololu Maestro 6ch,
она дает 6 PWM каналов (для серв). На краулере есть Р.У.приемник, он ловит сигнал с передатчика и подает
их на драйвер моторов (который такой же как и для серв). Вы просто подменяете приемник платкой pololu
и так управляете двигателями.
Про лидар см. post288192.html#p288192
Просто хотел сказать, что можно обойтись и без микроконтроллера и съэкономить время. Диплом когда?
Я помню, в конце мая свой защищал...
Аватара пользователя
AndreiSk
 
Сообщения: 2618
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение esisl » 13 апр 2014, 18:24

Купите игрушечный р/у погрузчик. Или проводной - он вообще рублей 300 стоит.
esisl
 
Сообщения: 794
Зарегистрирован: 23 июл 2012, 15:24

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Myp » 13 апр 2014, 20:34

что-то по уровню вопросов кажется что проект не взлетит...

Yucca писал(а):Если использовать Лидар, то можно обойтись одним?

если вы не умеете ими пользоваться то даже 3 штуки не поможет.

лидар нужен для построения модели пространства.
построив моель пространсва и сравним в моделью которая хранится в памяти можно определить местоположение в этой запомненной эталонной модели.


Yucca писал(а):Если взять электрический погрузчик, то будет проще?

я с погрузчиками не очень знаком, но вобще если взять маленький погрузчик, который управляется джойстиком то проблема управления резко упростится.
опятьтаки вы сможете разобраться в электросхеме погрузчика и припаяться в нужные точки чтобы реализоватьу правление?
разобрать/собрать погрузчик и чтобы ничего не сгорело?


Yucca писал(а):чтобы он не протаранил стену как раз и будет использоваться этот сонар, если впереди препятствие - поворачиваем налево, если и там препятствие - направо, как-то так.. или думаю заложить ему в память карту склада, сделать простую схему с несколькими поворотами, но только как эту карту привязать к положению погрузчика, чтобы он определял свое текущее положение? нужен опять какой-то датчик.. и датчик пройденного расстояния..

вижу что нету даже каких то базовых понятий,
слова школьника пытающегося управлять истребителем.


AndreiSk писал(а):Диплом когда?
Я помню, в конце мая свой защищал...

к маю дай бог успеть уже купить и бегло прочитать чтобы хоть как-то защититься. :D

Добавлено спустя 2 минуты 6 секунд:
забудьте про погрузчик.
купите готового робота 4х колесного в сборе и работайте с ним.

кстати вы в курсе сколько стоит лидар? дешевле купить диплом чем лидар :D
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15896
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Yucca » 14 апр 2014, 03:55

AndreiSk писал(а):Я бы для диплома не стал бы использовать реальный погрузчик.
Для диплома можно взять что-то менее опасное.
Вы же будете рядом со своим изделием?
Подумайте сами, из-за ошибки в программе, этот погрузчик может припереть вас к стене,
и ему не скажешь - а нука отпусти. Такой погрузчик даже стену проломит.
Не шутка, сам занимаюсь летающим роботом, иногда случаются накладки. Поверьте,
иногда это страшно, когда не знаешь как остановить неуправляемый аппарат.
Предложил бы посмотреть в сторону радиоуправляемых машинок, например в формате 1:10,
они вполне грузоподъемны. Такие относительно медленно движущиеся машинки называются краулеры.
На нее вы сможете поставить компьютер типа Intel NUC (200грамм),
лидар (который по USB подсоединится к компьютеру, 200грамм), камеру (которая опять же к компьютеру, 100грамм).
Итого 500грамм веса.
Не надо будет роутер цеплять, в компьютере итак есть WiFi.
Управлять р.у. машинкой также можно.. с компьютера :) Цепляем на USB платку типа Pololu Maestro 6ch,
она дает 6 PWM каналов (для серв). На краулере есть Р.У.приемник, он ловит сигнал с передатчика и подает
их на драйвер моторов (который такой же как и для серв). Вы просто подменяете приемник платкой pololu
и так управляете двигателями.
Про лидар см. post288192.html#p288192
Просто хотел сказать, что можно обойтись и без микроконтроллера и съэкономить время. Диплом когда?
Я помню, в конце мая свой защищал...


Нет я не буду в реальности демонстрировать этот погрузчик, просто нужно чтобы проект был разработан для какого-то реального предприятия, то есть имел какой-то смысл, а не просто игрушка. Поэтому всё будет только на бумаге, а если останется время - хочу конечно попробовать сделать и маленькую демонстрационную модельку - но это не принципиально.
Диплом в начале июня..

Myp писал(а):вижу что нету даже каких то базовых понятий,
слова школьника пытающегося управлять истребителем.


не спорю - знаний в этой области практически ноль, но вот я и пытаюсь разобраться, затем и задаю эти "глупые" вопросы :)

Myp писал(а):кстати вы в курсе сколько стоит лидар? дешевле купить диплом чем лидар :D


лидар я покупать не собираюсь, как и диплом впрочем тоже :) проект будет целиком на бумаге, цель диплома - показать выгоду от применения автоматизированных погрузчиков на складах, главное правильно подобрать аппаратную часть и написать программу управления.. С программой думаю разберусь, С++ более-менее прилично знаю, когда-то даже начинала разбираться в программировании для AVR по книжке Шпака, но зря забросила.. А вот с аппаратной частью полная неразбериха..

Спасибо всем за ответы :)
Yucca
 
Сообщения: 19
Зарегистрирован: 10 апр 2014, 14:22

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение elmot » 14 апр 2014, 07:43

Возьмите проц мощнее, чем AVR. Есть хорошие мощные платы stm32. Напр. stm32f3-discovery. базовые датчики на борту уже есть. Можно добавить дешевых сонаров sr-04.

Вообще-то для изготовления дипломного прототипа неплох детский конструктор типа lego mindstorms.
Аватара пользователя
elmot
 
Сообщения: 5674
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение avr123.nm.ru » 14 апр 2014, 09:54

Yucca писал(а):цель диплома - показать выгоду от применения
этож чисто экономическая задача! бухгалтерия и финансы.
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение AndreiSk » 14 апр 2014, 10:17

Так, давайте расставим все точки на Ы. До диплома осталось 1.5 месяца.
За это время, даже если купить компоненты, крайне мало времени на сборку даже простого прототипа
и тем более на написание и отладку программы. Значит остается только "бумажный" диплом.
Ни о какой реальной прошивке для микроконтроллера не может быть и речи, ее просто не на чем будет отладить.
Ну разве что на какой девборде потестировать...
Остается только рисовать алгоритм в виде блок-схем и "реализовывать" на любой аппаратной части.
Как вариант можно попробовать написать симуляцию в Gazebo ( http://gazebosim.org/ )
или еще где, типа MSRS
Я помню, конкурс был недавно на автоматических машинах (газельки вроде), можно покопать там, почерпнуть идеи
как они рулили газелью...
Жаль, тема могла быть интересной, если бы автор не спала "до последнего" :pardon:
А счас это выглядит типа так "ой.. диплом.. надо что-то написать, а что..."
Аватара пользователя
AndreiSk
 
Сообщения: 2618
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Yucca » 14 апр 2014, 13:12

elmot писал(а):Возьмите проц мощнее, чем AVR. Есть хорошие мощные платы stm32. Напр. stm32f3-discovery. базовые датчики на борту уже есть. Можно добавить дешевых сонаров sr-04.

Вообще-то для изготовления дипломного прототипа неплох детский конструктор типа lego mindstorms.


AVR я выбрала потому что по ним очень много документации - устройство, как писать код и т.д., а по STM32 я таких фундаментальных руководств не нашла, думаю с ним лучше связываться уже на более продвинутом уровне.. А AVR разве не потянет управление погрузчиком?

avr123.nm.ru писал(а):
Yucca писал(а):цель диплома - показать выгоду от применения
этож чисто экономическая задача! бухгалтерия и финансы.


не-не, задача именно разработать какое-либо устройство автоматизации, но проект обязательно должен быть каким-то новшеством либо иметь преимущество перед уже существующими

AndreiSk писал(а):Так, давайте расставим все точки на Ы. До диплома осталось 1.5 месяца.
За это время, даже если купить компоненты, крайне мало времени на сборку даже простого прототипа
и тем более на написание и отладку программы. Значит остается только "бумажный" диплом.
Ни о какой реальной прошивке для микроконтроллера не может быть и речи, ее просто не на чем будет отладить.
Ну разве что на какой девборде потестировать...
Остается только рисовать алгоритм в виде блок-схем и "реализовывать" на любой аппаратной части.
Как вариант можно попробовать написать симуляцию в Gazebo ( http://gazebosim.org/ )
или еще где, типа MSRS
Я помню, конкурс был недавно на автоматических машинах (газельки вроде), можно покопать там, почерпнуть идеи
как они рулили газелью...
Жаль, тема могла быть интересной, если бы автор не спала "до последнего" :pardon:
А счас это выглядит типа так "ой.. диплом.. надо что-то написать, а что..."


Поэтому я и хочу пока просто выбрать МК и написать программу движения погрузчика, а уж потом если останется время воплотить это всё в реальности. Про симулятор этот посмотрела, он вроде на обычную винду не установится..
Yucca
 
Сообщения: 19
Зарегистрирован: 10 апр 2014, 14:22

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение AndreiSk » 14 апр 2014, 13:52

А зачем вы за микроконтроллер схватились то?
По любому, лидар или камера требуют компьютера, одним МК тут не обойдешься :pardon:
Любым механизмом можно управлять с компьютера, в т.ч. приводами.
Микроконтроллер тут явно лишний!
Микроконтроллер по своей сути - просто малюсенький компьютер, а зачем мучиться?
Поставьте нормальный компик. Размер Intel NUC около 10x10 см, у нас тут даже тема есть ( forum102/topic11627.html ). Если у вас нет понимания микроконтроллеров (ну не работали с ними раньше) - не трогайте их, на дипломе могут быть вопросы, на которые вы не ответите
Просто хотел донести мысль, что на МК вешают какие то специфические функции, которые только он делает хорошо,
но управление приводом, при наличии набортного компьютера, не является основанием для всовывания микроконтроллера.
Аватара пользователя
AndreiSk
 
Сообщения: 2618
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение legion » 14 апр 2014, 14:18

Если все-таки брать микроконтроллер, то предлагаю использовать навигацию в стиле следования по линии, тем более что многие автоматизированные складские системы так и работают. Система направляющих линий на полу, ведущих к жестко заданным "грузоместам". Маршрут задавать поворотами и количеством пропущенных поворотов, дальномеры не использовать. В качестве наглядного пособия показать комиссии переделанный linetracer, материалов по ним в сети много, должны быть и проекты с выложенной документацией, кодом.

Но даже это будет очень сложно успеть сделать, а еще понадобится время на оформление...
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение avr123.nm.ru » 14 апр 2014, 15:24

ниочем топик :(
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

Re: Помогите подобрать микроконтроллер и другое оборудование

Сообщение Yucca » 26 апр 2014, 13:32

AndreiSk писал(а):А зачем вы за микроконтроллер схватились то?
По любому, лидар или камера требуют компьютера, одним МК тут не обойдешься :pardon:
Любым механизмом можно управлять с компьютера, в т.ч. приводами.
Микроконтроллер тут явно лишний!
Микроконтроллер по своей сути - просто малюсенький компьютер, а зачем мучиться?
Поставьте нормальный компик. Размер Intel NUC около 10x10 см, у нас тут даже тема есть ( forum102/topic11627.html ). Если у вас нет понимания микроконтроллеров (ну не работали с ними раньше) - не трогайте их, на дипломе могут быть вопросы, на которые вы не ответите
Просто хотел донести мысль, что на МК вешают какие то специфические функции, которые только он делает хорошо,
но управление приводом, при наличии набортного компьютера, не является основанием для всовывания микроконтроллера.


Микроконтроллер у меня будет управлять передвижением погрузчика, все команды посылаться будут с компьютера (общего для всех погрузчиков) по WiFi.

legion писал(а):Если все-таки брать микроконтроллер, то предлагаю использовать навигацию в стиле следования по линии, тем более что многие автоматизированные складские системы так и работают. Система направляющих линий на полу, ведущих к жестко заданным "грузоместам". Маршрут задавать поворотами и количеством пропущенных поворотов, дальномеры не использовать. В качестве наглядного пособия показать комиссии переделанный linetracer, материалов по ним в сети много, должны быть и проекты с выложенной документацией, кодом.

Но даже это будет очень сложно успеть сделать, а еще понадобится время на оформление...


Ну да, но такая система требует полной переделки склада, а у меня задача - сделать систему, которая бы устанавливалась на готовые погрузчики с минимальными переработками.. Поэтому хочу постараться разобраться с Кинектом, чтобы погрузчик ориентировался по созданной им карте..

Добавлено спустя 5 минут 31 секунду:
Я начала помаленьку разбираться с контроллером и написала программу, пока там просто реализовано получение данных с USART и подключение дальномера HC-SR04. Подскажите, пожалуйста, насколько правильный получился код, т.к. проверить на каком-нибудь устройстве возможности нет.. За основу взяла программу для робота, объезжающего препятствия (тут с форума). МК выбран ATmega128

Код: Выделить всёРазвернуть
#include <avr/io.h> //Библиотека ввода/вывода
#include <avr/interrupt.h> //Библиотека прерываний
#include <util/delay.h>

#define BAUDRATE 9600 // Скорость обмена данными
#define F_CPU 16000000UL // Рабочая частота контроллера

//Прототипы подпрограмм
void  USART_Init( void );
void  USART_Byte_Transmit( unsigned char data );
void  USART_Transmit( char* string );
void Forklift_Go( int place );
void Rotate(uint8_t arr, uint8_t durr);
void RotateLeft();
void RotateRight();
void GoStraight();
void Forklift_Get( int item );
void Forklift_Release();
void Forklift_Stop();
void Timer_Init();
uint16_t GetDistance();
uint16_t GetTime();

//Подпрограмма-обработчик прерывания по приходу байта на модуль  USART
ISR( USART0_RX_vect )
{
int data;
data = UDR0; //Присваиваем переменной b содержимое регистра UDR, в котором хранится принятый байт

sei(); // Разрешаем вложенные прерывания для возможности отправки сигнала остановки погрузчика..

// Выполняем обработку принятого байта
if (data=='1')
{
int number;
int finalplace;
number=data;
USART_Transmit("Ready to go\r\n"); //Сообщение о готовности к выполнению задания
Forklift_Go(number); //Передвижение к месту расположения конкретного груза
Forklift_Get(number); //Взятие груза
USART_Transmit("Got it!\r\n"); //Сообщение об успешной идентификации груза
Forklift_Go( finalplace ); //Передвижение к месту выдачи груза
Forklift_Release(); //Отпускаем груз
USART_Transmit("Done!\r\n"); //Сообщение об успешной доставке груза
}
else
if (data=='2')
{
Forklift_Stop();
USART_Transmit("Stopped\r\n"); //Сообщение об остановке
}
}

void  USART_Init( void ) //Инициализация модуля  USART
{
/* Задаем скорость работы  USART  */   
UBRR0H = (F_CPU/BAUDRATE/16-1)>>8;
UBRR0L = (F_CPU/BAUDRATE/16-1);

UCSR0B=(1<<RXEN)|( 1<<TXEN); // Разрешаем прием и передачу по  USART
UCSR0B |= (1<<RXCIE);  // Разрешаем прерывания по завершению приема

UCSR0C = (1<<USBS)|(3<<UCSZ0); //Устанавливаем формат данных 8 бит данных, 2 стоп бита
}

void  USART_Byte_Transmit( unsigned char data ) //Функция отправки бита данных
{
while ( !(UCSR0A & (1<<UDRE)) ); //Ожидание опустошения буфера приема
UDR0 = data; //Начало передачи данных                
}

void USART_Transmit( char* string ) //Функция отправки строки
{
while(*string != '\0')
{
USART_Byte_Transmit(*string);
string++;
}
}


void Forklift_Go( int place )
{

int thisplace; //Переменная отражающая текущее местоположение погрузчика (надо как-то привязать это к картированию)
uint8_t stat=0;

while ( thisplace != place) {     // Пока не доехал до места назначения проводим измерения до препятствий
   uint16_t dist=GetDistance();

   if( dist < 10) {Rotate(stat, 255);} else   
    if( dist < 20) {Rotate(stat, 200);} else
    if( dist < 40) {Rotate(stat, 130);} else
                   {GoStraight(); stat=~stat;}   
}
}

void Rotate(uint8_t arr, uint8_t dur) {

switch (arr)
    {
    case 0:    RotateRight();
      break;
    case 1:    RotateLeft();
      break;   
    }
    _delay_ms(dur);   
    Forklift_Stop();

}

void RotateLeft() {

;//Управление каким-то образом поворотом погрузчика влево

}

void RotateRight() {

;//Управление каким-то образом поворотом погрузчика вправо

}

void GoStraight() {

;//Движение прямо

}

void Forklift_Get( int item ) {

;//Функция захвата груза

}
void Forklift_Release() {

;//Функция опускания груза

}
void Forklift_Stop() {

;//Остановить погрузчик

}

void Timer_Init() {  //Инициализация 16-разр. таймера-счетчика

    TCCR1A = 0b00000000;
    TCCR1B = 0b00000000;
    TCCR1C = 0b00000000;
    TCNT1H = 0b00000000;
    TCNT1L = 0b00000000;
    TIMSK = 0b00000000;
}


uint16_t GetDistance() {

uint16_t distance;
PORTB |= (1<<0); // Подаем напряжение на выход PB0 (к пину Trig)
_delay_us(10); // Ожидание 10 мкс (запускается процедура измерения сигнала)
PORTB &= ~(1<<0); // Сбрасываем PB0
distance = GetTime(); // Измеряем длительность ответного сигнала
return distance;
}

uint16_t GetTime() { //Функция определения времени с помощью таймера

uint16_t distance;
  while( (PINB & (1<<1)) == 0 ); //Ожидание появления сигнала Echo
TCCR1B = 0b00000010; // clk/8   Запуск таймера
while( (PINB & (1<<1)) != 0 ); //Ожидание окончания сигнала
TCCR1B = 0b00000000; // Остановка таймера
distance = TCNT1L; //Запись значения длительности импульса в переменную
distance |= TCNT1H;
return distance/7; //Перевод в сантиметры
}


int main(void) //Главная  программа
{
USART_Init ();
Timer_Init();

DDRB |=(1<<0); // Устанавливаем линию PB0 на выход (к пину дальномера Trig)
DDRB &=~(1<<1);  // Устанавливаем линию PB1 на вход (от пина Echo)

USART_Transmit("Ok!\r\n");//Передаем при включении
sei(); //разрешаем глобально прерывания

while(1) //вечный цикл
{ }
}


И еще меня мучает вопрос с Кинектом, есть ли какие-нибудь примеры отрисовки карты на С++? Ничего понять не могу с чего начать...

И передача данных у меня сейчас идет с USART, а он получается подключаться должен к роутеру, там ведь тоже какая-то программа должна быть установлена чтоб он работал в таком режиме? И с компьютера каким образом установить связь с роутером (отправлять данные откуда)?
Yucca
 
Сообщения: 19
Зарегистрирован: 10 апр 2014, 14:22

След.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Mail.ru counter