roboforum.ru

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

управления мобильным роботом

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

управления мобильным роботом

Сообщение atew » 17 май 2012, 11:21

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

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

никогда не занимался серьезно программированием на с++ тем более контроллеров
Последний раз редактировалось atew 17 май 2012, 14:26, всего редактировалось 2 раз(а).
atew
 
Сообщения: 7
Зарегистрирован: 17 май 2012, 10:50

Re: управления мобильным роботом

Сообщение dccharacter » 17 май 2012, 12:12

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

Re: управления мобильным роботом

Сообщение atew » 17 май 2012, 12:47

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);
}
}


но её нужно прошить в робот, как я понял робот будет определять пройденный пусть и двигаться с заданной скоростью?!
atew
 
Сообщения: 7
Зарегистрирован: 17 май 2012, 10:50

Re: управления мобильным роботом

Сообщение RootAdmin » 17 май 2012, 17:50

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

Re: управления мобильным роботом

Сообщение atew » 18 май 2012, 10:59

RootAdmin писал(а):Скорее всего просто выводить на экран состояние энкодеров. И все.


да, а но как, если нету энкодера под рукой, нужно эмулятор сделать что ли...
atew
 
Сообщения: 7
Зарегистрирован: 17 май 2012, 10:50

Re: управления мобильным роботом

Сообщение RootAdmin » 18 май 2012, 16:59

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

Re: управления мобильным роботом

Сообщение NeON79 » 20 май 2012, 02:29

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


Вернуться в Новичкам или основы основ роботостроения.

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

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