Помогите с программой TSOP

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Помогите с программой TSOP

Сообщение DiNoZawR » 29 сен 2009, 01:08

Собрал схемку с TSOP.
Теперь немогу написать прогу.
Подскажите как сгенерировать сигнал 30 килогерц (использую TSOP 1730)?
Если нужно использовать шим, то как это сделать?
Все делаю в CVAVR на си.
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

Re: Помогите с программой TSOP

Сообщение Yuraskas » 29 сен 2009, 06:02

Если воспользоваться поиском, то можно найти, например, эту тему.
Ну и сам в свою очередь прошу чтобы ткнули мордой. Кодов в которых работает один бампер много, а хотелось бы посмотреть на код робота, реализующий управление двигателями и определение препятствий ТСОПами. Интересует вопрос, как МК может крутить моторы, генерить сигнал для ИК светодиода и отслеживать сигнал с ТСОПа одновременно.
Ты приснись ей, ангел белый, пусть ей будет хорошо...
Аватара пользователя
Yuraskas
 
Сообщения: 119
Зарегистрирован: 20 июл 2009, 13:59
Откуда: Канск

Re: Помогите с программой TSOP

Сообщение EdGull » 29 сен 2009, 07:52

если программно, то никак, а если аппартано, то считай что в МК есть независимые сопроцессоры (но можно "как бы" одновременно, путем очень быстрого переключения между задачами)
Например, движки крутят ШИМами,выставил с какой крутить и пошел заниматься своими делами, ШИМ сам будет генерировать сигнал, пока ты ему не дашь другую команду.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Помогите с программой TSOP

Сообщение =DeaD= » 29 сен 2009, 08:23

Да ладно "если программно, то никак", 30КГц не такая безумная величина, другое дело что нафиг это не надо :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Помогите с программой TSOP

Сообщение yak-40 » 29 сен 2009, 11:19

я делел просто: формировал пачку импульсов с частотой 30 кгц, затем контролировал выход с ТСОП-а. Всё прекрасно работает. Для ИК бампере пойдёт.
Видать у ТСОП-а инерционность есть, он не сразу сигнал отключает. И этим можно воспользоваться.
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Помогите с программой TSOP

Сообщение =DeaD= » 29 сен 2009, 11:23

Еще бы у ТСОПа инерционности не было :)

Как же он отличит спад произошедший за 1-3мкс из-за прекращения передачи от спада из-за перехода к следующему импульсу? ;)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Помогите с программой TSOP

Сообщение Yuraskas » 29 сен 2009, 11:30

Нет, формировать импульсы и смотреть что придёт с ТСОПа - это понятно, но мне же в этот момент еще нужно и моторы крутить и, например, смотреть что я по полу еду, а не вишу в воздухе и еще что-нибудь там себе думать...
Ты приснись ей, ангел белый, пусть ей будет хорошо...
Аватара пользователя
Yuraskas
 
Сообщения: 119
Зарегистрирован: 20 июл 2009, 13:59
Откуда: Канск

Re: Помогите с программой TSOP

Сообщение DiNoZawR » 29 сен 2009, 12:30

Вообщем скажите просто.
Вот мне нужно 30 килогерц скважность 50% (вроде для TSOP 1730 она такая)
текст такой написал
Код: Выделить всё
PORTD.0 = 1;
delay_us(16);
PORTD.0 = 0;
delay_us(16);

Ровно 30 там вроде как не получиться, но хоть так покатит?

Добавлено спустя 28 секунд:
Это все в цикле соответственно.
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

Re: Помогите с программой TSOP

Сообщение =DeaD= » 29 сен 2009, 12:34

Если скважность нужна 50%, то вроде да.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Помогите с программой TSOP

Сообщение contr » 29 сен 2009, 12:59

Интересует вопрос, как МК может крутить моторы, генерить сигнал для ИК светодиода и отслеживать сигнал с ТСОПа одновременно.

Обычно МК имеет на борту 1..2 независимых ШИМ модуля. Они моторы и крутят, а в это время:
проверяем TSOPs,
принимаем решение,
даем команду изменения ШИМ,
повторямс

Поскольку TSOP достаточно инерционный и принимает не длинную пачку кодов, а пакет, отраженный от препятствия, то на опрос бампера уходит меньше 1мс. Т.е. выдали с десяток импульсов (15+15)*10=300мкс и сразу проверили "0" на входе.
Малость сложнее, если ШИМ реализован программно и TSOP еще и коды управления принимает. Тогда в относительно длинный процесс приема кода врезаются подпрограммы ШИМ, опроса бамперов и пр.
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re: Помогите с программой TSOP

Сообщение =DeaD= » 29 сен 2009, 13:04

Yuraskas писал(а):Нет, формировать импульсы и смотреть что придёт с ТСОПа - это понятно, но мне же в этот момент еще нужно и моторы крутить и, например, смотреть что я по полу еду, а не вишу в воздухе и еще что-нибудь там себе думать...

Формировать импульсы для ТСОПа не надо полчаса, ему 20мс наверное вполне хватит, а с частотой 50Гц всё остальное делать вполне можно.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Помогите с программой TSOP

Сообщение contr » 29 сен 2009, 13:33

Формировать импульсы для ТСОПа не надо полчаса, ему 20мс наверное вполне хватит

не надо гадать, постом выше точное время указано :P
contr
 
Сообщения: 987
Зарегистрирован: 17 апр 2009, 15:09
Откуда: Rostov-Don

Re: Помогите с программой TSOP

Сообщение yak-40 » 29 сен 2009, 14:23

Yuraskas писал(а):Нет, формировать импульсы и смотреть что придёт с ТСОПа - это понятно, но мне же в этот момент еще нужно и моторы крутить и, например, смотреть что я по полу еду, а не вишу в воздухе и еще что-нибудь там себе думать...

Не понимаю в чём проблеммы?
Пишем цикл:
1. посылаем в порт направление вращения моторов
2. передать пачку импульсов
3. принять сигнал с ТСОП.
4. есть сигнал меняем направление моторов (затем по таймеру восстанавливаем), нет сигнала идём дальше
5. смотрим под ноги.
6. делаем ещё чего нибудь.
7. делаем ещё что-то
8. идём к пункту 2
Во всяком случае у меня так работает :)
- Этот человек - не человек! это робот!
- Как? уже делают?!
- Делают!!!
Аватара пользователя
yak-40
 
Сообщения: 3037
Зарегистрирован: 23 окт 2007, 22:03
Откуда: Москва
прог. языки: С
ФИО: Евгений Яковец

Re: Помогите с программой TSOP

Сообщение DiNoZawR » 29 сен 2009, 14:41

Чтото я совсем запутался.
Подскажите плиииз как сформировать пачку на 30 kHz 50% скважность.

Добавлено спустя 19 секунд:
Если можно дайте код на си.
E=mc2
Аватара пользователя
DiNoZawR
 
Сообщения: 25
Зарегистрирован: 18 дек 2008, 09:54
Откуда: Москва

Re: Помогите с программой TSOP

Сообщение EdGull » 29 сен 2009, 15:13

ты свой код выложи, а мы подправим, а то у нас халявщиков не любят... ;)
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

След.

Вернуться в Микроконтроллеры

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

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