Robo.com.ua Портал любителей робототехники

Главная · Проекты на Робо · Форумы · Ссылки · Статьи · Файловый архив · Поиск January 25 2022 18:13:24
Навигация
Главная
Проекты на Робо
Форумы
Ссылки
Статьи
Файловый архив
ЧаВо
Поиск
Блоги
YouTube




Последние статьи
Новая система складс...
Эксперимент с ИК при...
Проект ROBER или роб...
Программатор STK200 ...
Схема программатора ...
Партнерские ссылки
Просмотр темы
Robo.com.ua Портал любителей робототехники | Общий | Новичкам
Страница 1 из 3 1 2 3 >
Автор ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 24-04-2006 21:29
Давайте обсудим схему ИК -бампера, а так же программу для него желательно на языке С.А то я даже не имею представления как писать прогу для него.smiley


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 18-06-2006 22:33
Ну вот нашел схему тока там прога на ассеме.
но я решил напишу на С в WinAvre.
Вот она:
#include<avr/io.h>
#include<avr/delay.h>
#define F_CPU 4000000UL
#define TIK 900
int a,i,u;
int main(void)
{ a=(1/36000)*1000000;
PORTB = PORTD = 0xFF;
DDRB |=_BV(PB7);
DDRB |=_BV(PB6);
DDRB |=_BV(PB5);
DDRB |=_BV(PB4);
DDRB |=_BV(PB3);
PORTB |=_BV(PB7);
PORTB &=~_BV(PB6);
while(1)
{
for(i=0;i<10;i++)
{PORTB|= _BV(PB3);_delay_us(a); PORTB&=~_BV(PB3);_delay_us(a);}
for(u=0;u<14;u++) _delay_us(a);
if(bit_is_clear(PINB,PB2)){
PORTB |=_BV(PB4);
PORTB &=~_BV(PB3);
}
}
}
Тока не знаю влияет ли частота кварца на delay.
ЗЫ- делать обработку Tsop'a прерываниями или как.
Если есть ошибки-скажите!smiley




fox199115 присоединил изображение:

Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
Reboot_s
Пользователь

Avatar пользователя

Сообщений: 87
Откуда: Черновцы
Зарегистрирован: 27.03.06
Опубликовано 19-06-2006 14:08
Эх, я в Си не разбираюсь,, только в асме. Но сам принцип построения алгоритма обсудить непрочь.


Не напрягайся - перезагрузись!
199611461 Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 19-06-2006 15:29
Ну какой смысл.Если Tsop 1736 то сигнал должен быть 36 кГц Посылаем сигналы частотой 36 кГц - 10 раз.потом ждем
14 раз и проверяем был ли сигнал от Tsopa.


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 19-06-2006 15:33
Самій прикол в том что я не знаю куда в проге ставить проверку сигнала:во-время когда посылаются сигналы или после отправки всех сигналов ?smiley


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
Reboot_s
Пользователь

Avatar пользователя

Сообщений: 87
Откуда: Черновцы
Зарегистрирован: 27.03.06
Опубликовано 19-06-2006 21:36
Что-то я не понял "ждем 14 раз". Есть сигнал 36 кГц, послали десять импульсов, дальше?


Не напрягайся - перезагрузись!
199611461 Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 19-06-2006 22:42
Ждем 14 раз по 36Кгц-насколько я понял это нужно экономии батареи.


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
Reboot_s
Пользователь

Avatar пользователя

Сообщений: 87
Откуда: Черновцы
Зарегистрирован: 27.03.06
Опубликовано 20-06-2006 12:55
Впечатление как будто я в танкеsmiley Так туго до меня доходит.
ЗНачит мы послали 10 импульсов, подождали 14 импульсов, а если препятствие близко и сигнал придет на 10 импульсе?
Или так и задумано? Приемник не связан с передатчиком во времени?


Не напрягайся - перезагрузись!
199611461 Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 21-06-2006 11:15
Ну вот -у меня точно такое-же мнение!Может простоя не понял прогу на асеме для этой схемы.
Зы:Нашел это на старом робоклубовском сайте.
Вот собственно прога:

;********************************************************************
;* ИК-локатор: ИК-светодиод на PB4 дает пачки импульсов с частотой
;* около 36кГц, а TSOP1736 на PB3 их отслеживает
;*
;* MCU: ATtiny12@1MHz (c) RoboClub 2003
;********************************************************************


.include "tn12def.inc"

rjmp RESET ;reset handle


;* Объявление переменных

.def t1 = r1 ;счетчик для "длинных" задержек
.def temp = r19 ;счетчик времени задержки
.def count = r20 ;счетчик числа импульсов в пачке

;* Определения

.equ led = 0 ;LED на PB0
.equ tsop = 3 ;TSOP на PB3
.equ ir_led = 4 ;IR LED на PB4

;* Начало кода

RESET:
sbi DDRB, led ;подключаем LED на выход PORTB линия 5
sbi DDRB, ir_led ;подключаем IR LED на выход PORTB линия 3

cbi DDRB, tsop ;подключаем TSOP на вход PORTB линия 2
sbi PORTB,tsop ;включаем "подтяжку"

;* Задание значений

.equ TIME1 = 4 ;длительность импульса
.equ TIME2 = 5 ;задержка между импульсами
.equ TIME3 = 20 ;задержка между пачками импульсов
.equ COUNT = 10 ;число импульсов в пачке


; Главный цикл программы
; ----------------------
start:
ldi count, COUNT ;загружаем в счетчик число импульсов в пачке

; цикл выдачи пачки импульсов
flash:
cbi PORTB, ir_led ;зажигаем IR LED

ldi temp, TIME1 ;загружаем в temp длительность импульса
Delay1: dec temp ;уменьшаем на единицу temp, пока
brne Delay1 ; не станет равным 0

sbi PORTB, ir_led ;гасим IR LED

ldi temp, TIME2 ;загружаем в temp длительность паузы между импульсами
Delay2: dec temp ;уменьшаем на единицу temp, пока
brne Delay2 ; не станет равным 0


dec count ;уменьшаем на 1 счетчик числа импульсов
brne flash ;если не 0, то посылаем следующий импульс

;когла пачка импульсов выдана - проверяем, есть ли сигнал от TSOP

sbis PINB, tsop ;если уровень на выходе TSOP низкий (т.е. сигнал есть)
rjmp ledon ;то идем зажигать LED
cbi PORTB, led ;иначе гасим LED
rjmp wait_next ;и переходим к ожиданию следующей пачки

ledon: sbi PORTB, led ;гасим LED

;задержка перед следующей пачкой импульсов
wait_next:

clr t1 ;сбрасываем t1 (т.е. t1=0 или, что тоже t1=256)
ldi temp, TIME3 ;устанавливаем число задержек

Delay3: dec t1 ;задержка по счетчику t1 от 256 до 0
brne Delay3 ; т.е. 256*3 тактов
dec temp ;повторяем TIME3 раз задержку по t1
brne Delay3 ; т.е. всего (TIME3*256*3 + TIME3*3) тактов

rjmp start ;переходим к началу главного цикла


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 21-06-2006 11:18
Ты знаешь формулу соотношения тактовой частоты кварца и таймера(Delay на С)?


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
Reboot_s
Пользователь

Avatar пользователя

Сообщений: 87
Откуда: Черновцы
Зарегистрирован: 27.03.06
Опубликовано 21-06-2006 20:52
Вопроса я не понял, соотношения чего? тактовой частоты и функции задержки (Delay) или тактовой частоты и таймера(устройства), хотя в этой програме таймер не используется.
А алгоритм выглядит следующим образом:
Формируется импульс, потом задержка и так 10 раз - 10 импульсов.
Потом проверяется сигнал на приемнике TSOP.
Если сигнал есть, то зажигается светодиод, если нет, то просто не зажигается, или гасит, если уже был зажжен.
Потом независимо от наличия или отсутствия сигнала, идет задержка и все начинается сначала.
Но я не вижу хоть какой привязки к частоте 36 кГц. И на схеме не видно, я просто не помню если в тиньке 12 внутренний генератор. Судя по схеме должен быть.


Не напрягайся - перезагрузись!
199611461 Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 25-06-2006 15:13
Я имею ввиду ,что от тактовой частоты зависит время задержки(если я не ошибаюсь) так вот насколько,как?.Я уже собрал схему, прогу на С новую написал но-не работает.


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 25-06-2006 15:20
Не ну причем тут привязка к 36 кГц*ам,ты можешь найти и Tsop17xx
где xx- любая частота в кГц.


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
YuriY
Пользователь

Сообщений: 16
Откуда: Донецк
Зарегистрирован: 02.03.05
Опубликовано 29-06-2006 15:37
Посылаешь десять импульсов с частотой 36кНz потом опрашиваешь TSOP, а потом задержка и так по кругу.
202733967 http://www.iplanet.nm.ru Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 29-06-2006 18:26
Так я так и делаю кстати Юра на каком языке ты програмируеш?


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 29-06-2006 18:28
Но не работает smiley


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
YuriY
Пользователь

Сообщений: 16
Откуда: Донецк
Зарегистрирован: 02.03.05
Опубликовано 30-06-2006 10:00
Критична частота 36kHz если пара килогерц вверх или вниз то чувствительность падает очень значительно.
Я программировал до последнего на ассемблере, а прогу ИК локатора делал на основе Робоклубовской (выше по форуму). Вариант моей проги для локатора можно посмотреть здесь http://www.iplanet.nm.ru/.
Сейчас перехожу на Си.
202733967 http://www.iplanet.nm.ru Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
avr123
Пользователь

Avatar пользователя

Сообщений: 164
Откуда: Москва
Зарегистрирован: 01.07.06
Опубликовано 01-07-2006 19:22
Уважаемый fox199115 похоже вы взяли мой аватар с форума авиабазы - ник termostat ! не красиво ! прошу вас заменить его.

Ивините за ОФФ.


avr123.nm.ru - краткий курс - самоучитель - МК AVR с нуля на примерах и в картинках.
http://avr123.nm.ru Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
fox199115
Пользователь

Сообщений: 110
Откуда: Запорожье
Зарегистрирован: 27.01.06
Опубликовано 02-07-2006 22:43
Ну не знал.Ладно поменяю.


Послать приватное сообщение
Автор RE: ИК-бампер-конструкция и программа
andruha
Пользователь

Сообщений: 96
Откуда: Николаев
Зарегистрирован: 27.03.06
Опубликовано 12-07-2006 17:58
Reboot_s написал:
ЗНачит мы послали 10 импульсов, подождали 14 импульсов, а если препятствие близко и сигнал придет на 10 импульсе?
Или так и задумано? Приемник не связан с передатчиком во времени?

Может это немного прояснит вопрос: я скачал даташит (http://www.daisy-laser.com/products/CD/handset/handset1/irreceiv.pdf) - там сказано, что рекомендованное минимальное количество импульсов - 10 (f=36KHz). Задержка в детектируемом сигнале - от 7 до 15 периодов с момента первого импульса. После окончания серии импульсов выход детектора активен еще в течение 6 периодов.
Так-что вполне логично, что мы сначала посылаем 10 (наверное, можно и чуть больше) импульсов, а затем в течение 6-11 периодов (T1имп.=1/36000) имеем шанс детектировать отраженный сигнал
Послать приватное сообщение
Страница 1 из 3 1 2 3 >
Перейти на форум:
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 651
Не активированный пользователь: 3204
Посетитель: knevech
Last Seen Users
disop73 weeks
EpicOne120 weeks
overlocker144 weeks
Driver_UA145 weeks
knevech153 weeks
Petro160 weeks
admin187 weeks
BOBKA198 weeks
salavat211 weeks
nik22218 weeks
Мини-чат
Вам необходимо залогиниться.

Нет присланных сообщений.
robo.com.ua Copyright © 2004-2015. EMail admin_shs()robo.com.ua