roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 мар 2025, 23:18

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




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: управления мобильным роботом
СообщениеДобавлено: 17 май 2012, 11:21 
Не в сети

Зарегистрирован: 17 май 2012, 10:50
Сообщения: 7
Добрый день.
Помогите написать программу на C++ или C для управления мобильным роботом Rover 5 с 2-мя энкодерами (pololu).
С помощью программы мы должны контролировать скорость и пройденный путь.

Т.е. самого робота у меня нету. программа должна дать возможность пользователю задавать скорость и растояние которое нужно проехать и перед нами должен выйти график с импульсами такого вида Изображение или Изображение

никогда не занимался серьезно программированием на с++ тем более контроллеров


Последний раз редактировалось atew 17 май 2012, 14:26, всего редактировалось 2 раз(а).

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

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

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


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

Зарегистрирован: 17 май 2012, 10:50
Сообщения: 7
dccharacter писал(а):
жесть
купи себе этого робота, кока-колы и печенья, позови на вечеринку друзей-одноклассников, подключи к энкодеру осциллограф, и перед вами выйдет график с импульсами такого вида без всяких С/С++

нигде не могу его найти, а программу нужна как можно быстрее написать.

нашел готовую прогу на сайте http://forum.pololu.com/viewtopic.php?t=484
Код:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/interrupt.h>

//global variables: encoder position and direction of rotation
unsigned int enc_pos;
unsigned char enc_dir;

/*
PORTC Pin change interrupt service routine. Decodes the encoder.
For algorithm, see Scott Edwards article from Nuts&Volts V1 Oct. 1995
(righthand bit of old A,B) xor (lefthand bit of new A,B) => dir.
Increment or decrement encoder position accordingly
*/

ISR (PCINT1_vect) {
static unsigned char enc_last=0,enc_now;
enc_now = (PINC & (3<<4))>>4; //read the port pins and shift result to bottom bits
enc_dir = (enc_last & 1)^((enc_now & 2) >> 1);   //determine direction of rotation
if(enc_dir==0) enc_pos++; else enc_pos--;    //update encoder position
enc_last=enc_now;    //remember last state
}

#include "lcd.c"

int main(void)
{
unsigned char buf[8];

enc_pos=0;    //Initialize encoder position

LCDInit();    //Initialize LCD display

DDRC &=~(3<<4); //Port C pins 4 and 5 as input
PCMSK1 |= (3<<PCINT12);    //enable interrupt on pin change, bits 4&5 PORTC
PCICR |= 1<<PCIE1;    //enable interrupt on pin change, PORTC
sei();    //enable global interrupts

while (1){
LCDSendCommand(LCD_Line1);    //display current direction of rotation on line 1
itoa(enc_dir,buf,10);
LCDPrintString(buf);
LCDSendCommand(LCD_Line2);    //display current encoder position on line 2
itoa(enc_pos,buf,10);
LCDPrintString(buf);
}
}


но её нужно прошить в робот, как я понял робот будет определять пройденный пусть и двигаться с заданной скоростью?!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: управления мобильным роботом
СообщениеДобавлено: 17 май 2012, 17:50 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
Скорее всего просто выводить на экран состояние энкодеров. И все.

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: управления мобильным роботом
СообщениеДобавлено: 18 май 2012, 10:59 
Не в сети

Зарегистрирован: 17 май 2012, 10:50
Сообщения: 7
RootAdmin писал(а):
Скорее всего просто выводить на экран состояние энкодеров. И все.


да, а но как, если нету энкодера под рукой, нужно эмулятор сделать что ли...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: управления мобильным роботом
СообщениеДобавлено: 18 май 2012, 16:59 
Не в сети

Зарегистрирован: 07 авг 2010, 21:29
Сообщения: 1725
Откуда: КМВ
прог. языки: C
ФИО: Андрей
Лучший эмулятор - это ROS.
http://robocraft.ru/blog/technology/449.html

_________________
Дым, идущий из всех устройств в помещении предвещает появление электрика.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: управления мобильным роботом
СообщениеДобавлено: 20 май 2012, 02:29 
Не в сети
Аватара пользователя

Зарегистрирован: 09 май 2011, 16:43
Сообщения: 536
Откуда: Украина, Киев
прог. языки: Нецензурный
ФИО: Евгений НеОН
Сессии пошли ,что ли? ТС, объясните, как проводить отладку на железе, не имея оного? Симуляторы не в счёт.

_________________
Никогда не бойся делать то, что ты не умеешь. Ковчег был сооружен любителем. Профессионалы построили “Титаник“
2:5020/2140.1979@fidonet


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

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


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

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


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

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