roboforum.ru

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

iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

dccharacter » 16 ноя 2012, 21:03

НО ЗАЧЕМ????? Отправляй 0xFF и 0x38 ?!?!?!

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

elmot » 16 ноя 2012, 21:12

А что надо-то?

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

Kitam1n » 16 ноя 2012, 22:22

dccharacter писал(а):НО ЗАЧЕМ????? Отправляй 0xFF и 0x38 ?!?!?!

Ну переводить в 16-ю систему же все равно надо, и разделять. А отправлять уже в любом виде можно как я понимаю.

Добавлено спустя 32 секунды:
elmot писал(а):А что надо-то?

В смысле?

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

dccharacter » 16 ноя 2012, 23:41

Слуш, я тебе честно признаюсь, я процентов на 50 понимаю только, что происходит. Но вот пример:

Код: Выделить всёРазвернуть
void main(void)
{
signed int si = -2000;
signed char left_byte;
left_byte = si >> 8;
signed char right_byte;
right_byte = si;
si = (left_byte << 8)+right_byte;
printf("%i", si);
}


Можешь протестировать его тут: http://codepad.org/bJOUoy8S
Он работает на этом компиляторе. Не факт, чтобудет работать на другом. Подстава в том, что не всегда очевидно как компилятор делает преобразования signed ->unsigned. Некоторые делают это прозрачно, т.е. автоматически конвертят значения. Некоторые этим не озадачиваются. Я, честно, говоря, немног удивлен, что пример работает. Потому что при честном сплите 2's complement (т.е. если написать на листочке бинарное число и просто провести посередине черту) это не должно получиться. Но получается, т.е. там какая-то магия происходит в бэкграунде. Но это всегда легко протестировать. Главное, используй сдвиг, а не суммирование/вычитание/деление (отличный совет, который полностью херит твою программу, если ты компиляешь каким-нить 32-битном эмбеддед компилером - он старшие 8 бит просто откажется двигать и трындец).
Короче пробуй. Не надо ничего ни во что конвертировать. Тупо сдвигай и режь пополам.

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

Kitam1n » 17 ноя 2012, 20:44

Все нормально понимаешь, уж при любом раскладе получше меня. Мне нужно слать управляющие команды для движения и поворота, для этого dec нужно переводить в hex.
Для тупого движения по заранее заданному алгоритму это все можно посчитать и запрограмировать на калькуляторе, типа ехать вперед столько то, повернуть в сторону на столько то и ехать дальше... Но это все румба делает и так сама.
Мне же нужно интерактивное управление например с геймпада, а для этого нужно переводить одно в другое на лету, в этом то мне и поможет это.
Короче попробую.

И вообще СПАСИБО ВАМ ВСЕМ за помощь!

Помните как Амстронг сказал: "Это маленький шаг для человека и огромный скачок для человечества."
А у меня тут наоборот: ваша маленькая подсказка - огромный шаг для меня... :beer: :friends: :good:

Re: iRobot Roomba 4230 Remote Scheduler Robotic Vacuum

Kitam1n » 10 дек 2012, 13:52

Научился управлять:



Добавлено спустя 2 минуты 54 секунды:
Че бы дальше сделать? Прицепить на борт ноут?


Rambler\'s Top100 Mail.ru counter