roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 21:32

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Помогите сделать программу
СообщениеДобавлено: 12 апр 2011, 16:39 
Не в сети

Зарегистрирован: 29 дек 2010, 14:08
Сообщения: 155
Откуда: Ростов-на-Дону
Skype: levanchik322
прог. языки: С++
Сделал электронику, теперь нужна программа.
Робот состоит:
1) "Мозг" - atmega16, собран по схеме MRC40, на 16 Mhz
2) ДД с робоспейс, на l293d
3) RC5 модуль.
4) 1 SHARP (2Y0A21) на 10-80см.
5) 1 Севропривод.
6) моторы - сдвоенный редуктор TAMIYA.
Брал за пример kapandu.

Вот вроде бы программа, но я не знаю как подключать RC5. Помогите, за одно проверьте программу.
Код:
*******************************************************************************

$regfile = "m16def.dat"                    'используем мк ATmega16
$crystal = 16000000                    'частота кварцевого резонатора 16MHz

'****************************Настройка таймеров и сервоприводов*****************

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down       ' таймер для ШИМ двигателей
Config Servos = 1 , Servo1 = Portc.2 , Reload = 12          ' Указываем кол-во серв, присваеваем имя Servo1 порту PC2, указываем длину импульса.

'*************************** Порт A ********************************************

' Поключили дальномер, порт A7, настройки АДС ниже

'*************************** Порт В ********************************************

'*************************** Порт C ********************************************

Config Pinc.2 = Output                    ' Подключили серву1 к порту С2, настройки сервы выше

'*************************** Порт D ********************************************

Config Pinc.6 = Output : Dr1 Alias Portc.6                  'ногу сконфигурировали как выход и обозвали Dr1
Config Pinc.7 = Output : Dr2 Alias Portc.7                  'ногу сконфигурировали как выход и обозвали Dr2
Config Pinc.5 = Output                    'ногу ШИМа 1-ого  движка сконфигурировали как выход
Config Pinc.4 = Output                    'ногу ШИМа 2-ого движка сконфигурировали как выход

'*****************************Настройка ADC*************************************

Config Adc = Single , Prescaler = Auto , Reference = Internal

'*******************************************************************************

Enable Interrupts                    ' разрешаем прерывания

'************************Переменные и константы*********************************

Dim Speed As Integer , Sharp As Integer                         
Dim I As Integer                       
Dim Vout As Word

'*****************************Основной цикл*************************************
Speed = 255
1:
Do

Gosub Вперёд                    ' Если сигнала от ик-датчика(Sharp) не поступает, значит двигаемся всё время прямо

'******************Вращение сервопривода и датчика Sharp************************

For I = 45 To 90 Step 1                    ' Вращаем сервой справа на лево
      Gosub Sharp_right                    ' считаем что шарп смотрит вправо
      Servo(1) = I
      Waitms 12                    ' ждем 12 мс
Next

For I = 90 To 135 Step 1                    ' Вращаем сервой справа на лево
      Servo(1) = I
      Gosub Sharp_left                    ' считаем что шарп смотрит влево
      Waitms 12                    ' ждем 12 мс
Next

For I = 135 To 90 Step -1                    ' Вращаем сервой слева на право
      Gosub Sharp_left                    ' считаем что шарп смотрит вправо
      Servo(1) = I
      Waitms 12                    ' ждем 12 мс
Next

For I = 90 To 45 Step -1                    ' Вращаем сервой слева на право
      Gosub Sharp_right                    ' считаем что шарп смотрит влево
      Servo(1) = I
      Waitms 12                    ' ждем 12 мс
Next

Loop

'*******************************************************************************
'      Включение комбинации моторов для движения в заданном направлении
'*******************************************************************************

Стоп:                    ' стоим на месте
Dr1 = 0 : Dr2 = 0 : Pwm1a = 0 : Pwm1b = 0
Return

Вперёд:
                       ' едим вперёд на заданной скорости
Dr1 = 0 : Dr2 = 0 : Pwm1a = Speed : Pwm1b = Speed
Return

Назад:                    ' едим назад на заданной скорости

Dr1 = 1 : Dr2 = 1 : Pwm1a = Speed : Pwm1b = Speed
Return

Разворот_вправо:                    ' делаем Разворот_вправо на заданной скорости

Dr1 = 0 : Dr2 = 1 : Pwm1a = Speed : Pwm1b = Speed
Return

Разворот_влево:                    ' делаем Разворот_влево на заданной скорости

Dr1 = 1 : Dr2 = 0 : Pwm1a = Speed : Pwm1b = Speed
Return

'***********************************Sharp***************************************

Sharp_right:

Start Adc : Vout = Getadc(7)                    'Sharp connected for example to PA=0(ADC0)
Stop Adc
If Vout > 240 Then : Sharp = 1 : Else : Sharp = 0 : End If
If Sharp = 1 Then : Led1 = 1
      Gosub Разворот_влево : Waitms 500 : Led1 = 0 : Gosub Вперёд : End If

Return

Sharp_left:

Start Adc : Vout = Getadc(7)                    'Sharp connected for example to PA=0(ADC0)
Stop Adc
If Vout > 240 Then : Sharp = 1 : Else : Sharp = 0 : End If
If Sharp = 1 Then : Led2 = 1
      Gosub Разворот_вправо : Waitms 500 : Led2 = 0 : Gosub Вперёд : End If

Return

End

'*******************************************************************************


Я вот не знаю как подключить этот ДД:
http://robotsspace.ucoz.ru/publ/7-1-0-50
Для чего нужны контакты: En1, En2.
Нужно же подключать: in3, in4, in2, in1
Код:
Config Pinc.6 = Output : Dr1 Alias Portc.6                  'ногу сконфигурировали как выход и обозвали Dr1
Config Pinc.7 = Output : Dr2 Alias Portc.7                  'ногу сконфигурировали как выход и обозвали Dr2
Config Pinc.5 = Output                    'ногу ШИМа 1-ого  движка сконфигурировали как выход
Config Pinc.4 = Output                    'ногу ШИМа 2-ого движка сконфигурировали как выход

Вот программа для ДД. Скажите какие порты под какой контакт этого ДД?
Помогите плиз.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите сделать программу
СообщениеДобавлено: 12 апр 2011, 17:27 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Нравишься ты мне, но прям вот убить охота.
Открой даташит на l293d и почитай - это ответ на один из твоих вопросов.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите сделать программу
СообщениеДобавлено: 12 апр 2011, 17:32 
Не в сети

Зарегистрирован: 29 дек 2010, 14:08
Сообщения: 155
Откуда: Ростов-на-Дону
Skype: levanchik322
прог. языки: С++
Блин, я знаю весь даташит l293d назубок...
В принципе, это не важно, как насчет всей программы? есть ошибки ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите сделать программу
СообщениеДобавлено: 12 апр 2011, 18:11 
Не в сети
Аватара пользователя

Зарегистрирован: 05 фев 2008, 15:33
Сообщения: 2687
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович
По ДД у тебя используется 6 контактов а в программе описано 4е.
На En1, En2 идут ШИМ
На in3, in4, in2, in1 идут цифровые выходы которые определяют направление движения.

_________________
Никто кроме нас!!!
4Robots.ru - Все для роботов!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите сделать программу
СообщениеДобавлено: 12 апр 2011, 21:27 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2007, 23:44
Сообщения: 565
Откуда: Тула
прог. языки: Bascom AVR Basic, CodeVisionAVR
ФИО: Замотаев Кирилл Игоревич
Krish писал(а):
Блин, я знаю весь даташит l293d назубок...
В принципе, это не важно, как насчет всей программы? есть ошибки ?

знал бы, ни задавал бы таких глупых вопросов.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 4 часа


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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO