Форум myROBOT.ru » Шаг за шагом » Делаем роботов » Tank-bot v6

Страниц (4): « 1 [2] 3 4 »
 

16. KitaPro - 18 Октября, 2011 - 19:36:47 - перейти к сообщению
А у Вас есть схема? не совсем понятно. 2 ик светодиода не описываются в void setup? они горят постоянно?
17. nestandart - 18 Октября, 2011 - 20:25:24 - перейти к сообщению
Цитата:
А у Вас есть схема?

Схему рисовать не на чем.

Цитата:
они горят постоянно?

Они грят постоянно с частотой 36КГЦ.

Цитата:
2 ик светодиода не описываются в void setup?

Ставте один светодиод , просто у меня они запаралелены.

Для понимания пока не ставьте транзистор .
Частота выдается на пин 9 , к этому пину подключаете ИК светодиод
(через резистор 100-220 ОМ).
Все , ИК светодиод у вас мерцает с частотой 36КГц.
Далее ловите это дело опросм пина к кторому подключен TSOP.
Если отраженный сигнал поступает на TSOP , то на этом пине будет лог 0 ,
если нет - лог 1.



Дальность такого датчика составит 5-10 см.
Чтобы ее увеличить уменьшите номинал резистора на светодиоде.
18. KitaPro - 18 Октября, 2011 - 20:31:44 - перейти к сообщению
Как-то очень простенько. Это хорошо для меня. А если использовать например myTsoper, так код будет такой же? только частота там не программно задается?
19. nestandart - 18 Октября, 2011 - 20:43:36 - перейти к сообщению
Цитата:
только частота там не программно задается?

Именно так , частоту там задает микросхема.
И декодирует частоту в прямой сигнал другая микросхема.


Цитата:
А если использовать например myTsoper, так код будет такой же?


Не имеет смысла городить myTsoper если вы используете МК.
А код там будет еще проще , частоту там генерировать не нужно , нужно только принять
сигнал с TSOPа.

Цитата:
Как-то очень простенько.

Это самый простой пример .
Не надейтесь что дальше будет так же просто.
Мой датчик реагирует на энергосберегающие лампы и яркое солнце.
Сейчас я работаю над модуляцией ИК частоты (наложение одной частоты на другую).


Кстати этим же датчиком можно принимать сигналы с ИК ДУ пультов , только программа там значительно сложнее.


Вот вам для ознакомления .

Управление тем же роботом с ИК ДУ пульта.

(вперед , назад , влево , вправо)

CODE:


unsigned long val=0;
unsigned long val2=0;
unsigned long val3=0;
unsigned long val4=0;
unsigned long val5=0;
unsigned long val6=0;
unsigned long val7=0;
unsigned long val8=0;


#include <Servo.h>
Servo myservo;

void setup()

{
pinMode(19,INPUT);
pinMode(1,INPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);

pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
myservo.attach(5);
}
void loop()

{


if(pulseIn(2,LOW)<1)
{
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);

}




val=pulseIn(2,LOW);
val=(val/1000);



if(val==2)
{
val2=pulseIn(2,LOW);
val3=pulseIn(2,LOW);
val4=pulseIn(2,LOW);
val5=pulseIn(2,LOW);
val6=pulseIn(2,LOW);
val7=pulseIn(2,LOW);
val8=pulseIn(2,LOW);



if((val2/1000)==0&&(val3/1000)==0&&(val4/1000)==1&&(val5/1000)==0&&
(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==1)
{


digitalWrite(13,HIGH);//вперд
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);






}







if((val2/1000)==0&&(val3/1000)==0&&(val4/1000)==1&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==0)
{


digitalWrite(13,LOW);//вправо
digitalWrite(12,HIGH);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);

}





if((val2/1000)==1&&(val3/1000)==1&&(val4/1000)==0&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==0)
{



digitalWrite(13,HIGH);//лево
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);


}



if((val2/1000)==1&&(val3/1000)==0&&(val4/1000)==1&&
(val5/1000)==0&&(val6/1000)==1&&(val7/1000)==1&&(val8/1000)==1)
{



digitalWrite(13,LOW);//назад
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);

}
}








}
20. KitaPro - 18 Октября, 2011 - 21:06:46 - перейти к сообщению
Так. Тогда Tsoper отпадает. А у Вас сделан бампер примерно по такой схеме? Там еще есть модуль аппаратного генератора, стоит его городить или пока можно обойтись програмным генерированием?

Цитата:
И декодирует частоту в прямой сигнал другая микросхема.

что за другая микросхема?
21. nestandart - 18 Октября, 2011 - 21:15:29 - перейти к сообщению
Цитата:
А у Вас сделан бампер примерно по такой схеме?


Нет , у меня гораздо проще.
Половина этой схемы это это защита TSOPа по питанию и сглаживание ложных сигналов.
Уменя этого нет (хотя наверно должно быть).

Вторая половина почти как у меня
(только там добавлен переменный резистор для регулировки дальности обнаружения
и кондер на питании).
Светодиоды включаются через мосфет .

Можете собрать и этот датчик , он тоже должен работать.

Цитата:
что за другая микросхема?



К155АГ3

На ней собран одновибратор (выпрямитель импульсов).
(Добавление)
Цитата:
Там еще есть модуль аппаратного генератора, стоит его городить или пока можно обойтись програмным генерированием?



Повторяю еще раз .

Если у вас есть возможность генерировать частоту програмно , то зачем делать
то же самое на отдельной микросхеме ?
22. cjA - 18 Октября, 2011 - 21:28:55 - перейти к сообщению
nestandart
затем что пока мы генерим частоту программно- мы не можем отслеживать сигнал от бампера. А если от него пришел сигнал по прерыванию- мы не можем точно знать, что это за сигнал, наш или нет, наш то програмный генератор в это время стоял? Тут нужно какую то цепь задержки от бампера придумать. Чтобы те 13 импульсов декодированные тсопом- точно были _нашими_ 13 импульсами сгенерированными МК.

В голову пока приходит обычная RC цепь задержки, может этого и достаточно?
23. KitaPro - 18 Октября, 2011 - 21:38:20 - перейти к сообщению
А для чего К155АГ3 в бампере. Чот я там его не вижу
24. nestandart - 18 Октября, 2011 - 21:38:33 - перейти к сообщению
Цитата:
затем что пока мы генерим частоту программно- мы не можем отслеживать сигнал от бампера.

1. Это почему ?

2. Это и не нужно . TSOP опрашивается в строго определенные моменты программы.
А прерывание там ... несколько для другой цели.


Цитата:
мы не можем точно знать, что это за сигнал, наш или нет, наш то програмный генератор в это время стоял?


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


Пульт то , вроде , нормально реализован .
На незапрограмированые кнопки пульта робот не реагирует.
(Добавление)
Цитата:
А для чего К155АГ3 в бампере. Чот я там его не вижу

Вы про какой бампер сейчас говорите ?
Если myTSOPer , то она там есть.
25. cjA - 18 Октября, 2011 - 21:57:39 - перейти к сообщению
секунду- тсоп сидит на одном МК, а генератор - на другом? ну тогда и не вопрос.
26. KitaPro - 18 Октября, 2011 - 21:58:42 - перейти к сообщению
А все понял.
27. cjA - 18 Октября, 2011 - 22:00:21 - перейти к сообщению
но это не так, правильно? По сообщению от 17.10.2011 20:40
28. nestandart - 18 Октября, 2011 - 22:05:10 - перейти к сообщению
Цитата:
секунду- тсоп сидит на одном МК, а генератор - на другом? ну тогда и не вопрос

Нет .
Прием и выдачу частоты осуществляет один МК.
29. cjA - 19 Октября, 2011 - 01:18:35 - перейти к сообщению
то есть _не_одновременно_!
вот об том и речь.
Когда опрашиваем тсоп- наш генератор стоит.
Когда работает генератор- мы тсоп не опрашиваем, некогда.
30. nestandart - 19 Октября, 2011 - 10:31:29 - перейти к сообщению
Цитата:
то есть _не_одновременно_!


Да бросте вы , там временные задержки крайне малы .