roboforum.ru

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

Вот и мой первый робот!

Re: Вот и мой первый робот!

space » 15 июн 2011, 13:59

Ок, значит не зря платку делал, кому то всё таки пригодилась)))
Мне оформлние не интересно)) Код я и так пойму :)

Нафик завязывать надо со статьями и робота своего продолжать делать, которого забросил)) И прикупить модуль блютуз 8)

Re: Вот и мой первый робот!

EasyTech » 23 июн 2011, 20:55

поделись секретом, как ты главные циклы пргограмм склеиваешь?! :cry:
Например, как ты тактильные датчики приделал к своему циклу?!

Re: Вот и мой первый робот!

Skyline » 23 июн 2011, 21:15

У меня все начинается с цикла "While, Wend" в котором идет прием команды с пульта, а затем переход к нужной подпрограмме.
Код: Выделить всёРазвернуть
A = 1                                                                           

While A > 0                                               
Getrc5(address , Command)
If Address <> 255 And Command <> 255 Then
Command = Command And &B01111111
End If
If Command = 1 Then : P = 1 : Waitms 100 : Gosub 1       
Elseif Command = 2 Then : P = 2 : Waitms 100 : Gosub 2   
Elseif Command = 3 Then : P = 3 : Waitms 100 : Gosub 3   
End If
Wend

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 09:08

А как ты указываешь к чему перейти?
ты что просто цикл другой программы пишешь вне цикла своей и делаешь к ней переход?

Добавлено спустя 15 минут 54 секунды:
Слушай подскажи:
Код: Выделить всёРазвернуть
Do

   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
       Waitms 0
  Elseif Command = 33 Then : Gosub Прямо : Wait 5000 : Gosub Вправо : Wait 5000
  Elseif Command = 32 Then : Gosub Назад : Wait 5000 : Gosub Влево : Wait 5000
    End If
Loop

Мне нужно сделать так чтобы он ехал вперед 5 сек., потом развернулся вправо и тоже ехал 5 сек.
ЗАписал это в цикле, а он едит только прямо :(

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 10:39

Переход осуществляется следующим образом, например к программе 1:
Код: Выделить всёРазвернуть
1:
P = 1 
...
сама программа
...
Gosub 1

Что касается твоего кода:
"Wait" - секунды
"Waitms" - миллисекунды
Получается у тебя задержка 5000 секунд!)

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 14:51

Skyline писал(а):Переход осуществляется следующим образом, например к программе 1:
Код: Выделить всёРазвернуть
1:
P = 1 
...
сама программа
...
Gosub 1

Что касается твоего кода:
"Wait" - секунды
"Waitms" - миллисекунды
Получается у тебя задержка 5000 секунд!)

а хахаха)) точно))
а вот такую тонкость ты не знаешь:
Библиотека $lib "lcd4.lbx" ставиться только на порты B?

Добавлено спустя 28 минут 35 секунд:
Я так понимаю ты нажимаешь на кнопку 1 пульта и выполняется программа 1 ?

Добавлено спустя 6 минут 41 секунду:
Тоесть внутри цикла главное есть "вложенные циклы?" и к ним идет переход? :lol:

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 14:56

EasyTech писал(а):а вот такую тонкость ты не знаешь:
Библиотека $lib "lcd4.lbx" ставиться только на порты B?

В BASCOMе данная библиотека работает с портом "B", но по-моему можно как-то менять и работать с другими портами.
EasyTech писал(а):Я так понимаю ты нажимаешь на кнопку 1 пульта и выполняется программа 1 ?

Да.

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 15:23

Проверь пожалуйста, а то что то не компилирует а ошибки я не вижу никакой(
Код: Выделить всёРазвернуть
Do
While A > 0                                                ' ждем команды с пульта и переходим к соответствующей программе
  Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
   Command = Command And &B01111111
   End If
  If Command = 1 Then : P = 1 : Waitms 100 : Gosub 1        'Управление через RC5 пульт
  Elseif Command = 2 Then : P = 2 : Waitms 100 : Gosub 2    ' Используется ШАРП
   End If
Wend
1:
'P=1
Gosub Прямо
Start Adc : Vout = Getadc(2)                                'Sharp connected for example to PA=0(ADC0)
If Vout > 240 Then : Gosub Влево : End If : Loop Until Vout < 240 : Gosub Прямо
If Vout > 240 Then : Gosub Вправо : End If : Loop Until Vout < 240 : Gosub Прямо
Gosub 1
2:
'P=2

   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
       Waitms 0
  Elseif Command = 33 Then
      Gosub Прямо
       Waitms 0
   Elseif Command = 32 Then
      Gosub Назад
       Waitms 0
   Elseif Command = 17 Then
      Gosub Влево
       Waitms 0
   Elseif Command = 16 Then
      Gosub Вправо
       Waitms 0
       End If
Gosub 2
Loop

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 15:53

Ошибки есть и довольно много. Исправив должно выглядеть как-то так:
Код: Выделить всёРазвернуть
A = 1
While A > 0                                               
  Getrc5(address , Command)
   If Address <> 255 And Command <> 255 Then
   Command = Command And &B01111111
   End If
  If Command = 1 Then : P = 1 : Waitms 100 : Gosub 1       
  Elseif Command = 2 Then : P = 2 : Waitms 100 : Gosub 2   
   End If
Wend

1:
P = 1
Gosub Прямо
Start Adc : Vout = Getadc(2)                                'Sharp connected for example to PA=0(ADC0)
If Vout > 240 Then : Gosub Влево : End If : Loop Until Vout < 240 : Gosub Прямо
If Vout > 240 Then : Gosub Вправо : End If : Loop Until Vout < 240 : Gosub Прямо
Gosub 1

2:
P = 2
Do
   Gosub Прием_rc5
   If Command = 255 Then
      Gosub Стоп
       Waitms 0
  Elseif Command = 33 Then
      Gosub Прямо
       Waitms 0
   Elseif Command = 32 Then
      Gosub Назад
       Waitms 0
   Elseif Command = 17 Then
      Gosub Влево
       Waitms 0
   Elseif Command = 16 Then
      Gosub Вправо
       Waitms 0
       End If
Return
Gosub 2

Ты переменные все ввел: "P", "A",...
Да и пытайся разбираться сам! Ни кто код за тебя писать не будет и вечную помощь оказывать тоже!

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 17:27

Отлично, я программу сделал))
Указал переменную P As Integer
Положил туда число 0 и всё заработало

Добавлено спустя 17 минут 45 секунд:
подскажи мне по какому принципу подключать вот этот бампера, и какой принцип программы:
http://robozone.su/2008/04/09/modul-ik- ... p2136.html

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 19:56

Слушай ни чего сложного там нет! И принцип подключения и программа там есть! Разбирайся!
Skyline писал(а):Ни кто код за тебя писать не будет и вечную помощь оказывать тоже!

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 22:42

Что ты будешь делать дальше, есть идеи в реализации робота?

ЗЫ. Я не прошу за меня писать код :) Я и сам всё прекрасно понимаю :roll:

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 22:52

EasyTech писал(а):Что ты будешь делать дальше, есть идеи в реализации робота?

Подключить BT-модуль для управления с компа и ИК-бампера для улучшения алгоритма объезда препятствий.

Re: Вот и мой первый робот!

EasyTech » 24 июн 2011, 22:53

Skyline писал(а):
EasyTech писал(а):Что ты будешь делать дальше, есть идеи в реализации робота?

Подключить BT-модуль для управления с компа и ИК-бампера для улучшения алгоритма объезда препятствий.

Управление с компа будет софт какой то ?

Re: Вот и мой первый робот!

Skyline » 24 июн 2011, 22:56

Управление думаю будет через терминалку.


cron
Rambler\'s Top100 Mail.ru counter