roboforum.ru

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

 

rover p3 бесчеловечные эксперименты и ворклог

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 16 окт 2007, 21:57

вот чёрт
у меняж на этих ногах шим...

а я тупица сделал их выходами на мотор


ыыыы блин
может плату по новой развести и заново протравить\запаять???

атож вся идея иначе насмарку :(


блин чёж я раньше то не сделал табличку в которой все ноги распределил
понадеялся блин как всегда что авось не забуду...
и вот результат, на ноги на которые шим идёт у меня выведено управление драйвером мотора а вход для шима в драйвере закорочен на вечную 1
хм
щас отключил шим и всё остальное всё равно эти 2 ноги не работают...
может в курс слазить посмотреть? :lol:


блин
весь порт D не работает
ставлю в инициализации везде выход и 1
а ноги всё равно серого цвета в протеусе....

можете дать мне медаль за тупость....
я самое тупое животное на свете =/
я проект изменил а перекомпилить не догадался
и блин сижу думаю чёж у меня ничо не работает то....
вроде исправил код а всё равно не работает...
идиот :durak:



ага и ещё забыл сделать стоп
у меня либо вперёд либо назад а стопа нету =)
Последний раз редактировалось Myp 16 окт 2007, 22:17, всего редактировалось 1 раз.
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 22:15

проверь, нет ли соплей на с PD2 на PD1?

и вот немного оптимизировал твой код:
Код: Выделить всёРазвернуть
if  ( ('5' <= buffer[1]) | (buffer[1] <= '9') )
{
    // ( PORTD & 11110111 ) | 00000100
    PORTD = ( PORTD & (~(1<<3)) ) | (1<<2);
    pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
    putsf("\r\nRMot: FWD");
}
if  ( ('0' <= buffer[1]) | (buffer[1] <= '4') )
{
    PORTD = ( PORTD & (~(1<<2)) ) | (1<<3);
    pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
    putsf("\r\nRMot: BWD");
}
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 22:19

блин, действитно, чеж ты табличку то не сделал,
ща немног переделаю пример, чтоб ты не запутался, препроцессором все обзову, а там меняй скока хош
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 16 окт 2007, 22:20

Vooon писал(а):проверь, нет ли соплей на с PD2 на PD1?


нет? соплей нету я просто идиот =)
за код спасибо я чтото такое и хотел сделать =)
тока пожалуй R55 и L55 это будет стоп...
ато робот либо вперёд либо назад, остановить невозможно
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 22:22

воть:
Код: Выделить всёРазвернуть
#define OUT_PORT PORTD // hz kakoi teper', sam peredelaesh
#define OUT_RF 2
#define OUT_RB 3


if  ( buffer[1] == '5' )
{
   OUT_PORT = ( OUT_PORT & (~(1<<OUT_RB)) ) & (~(1<<OUT_RF));
   pwm = 0;
   putsf("\r\nRMot: STOP");
}
if  ( ('6' <= buffer[1]) | (buffer[1] <= '9') )
{
   // ( PORTD & 11110111 ) | 00000100
   OUT_PORT = ( OUT_PORT & (~(1<<OUT_RB)) ) | (1<<OUT_RF);
   pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
   putsf("\r\nRMot: FWD");
}
if  ( ('0' <= buffer[1]) | (buffer[1] <= '4') )
{
   OUT_PORT = ( OUT_PORT & (~(1<<OUT_RF)) ) | (1<<OUT_RB);
   pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
   putsf("\r\nRMot: BWD");
}
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 22:26

прада в этом вариатне выпадает все из 5х
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 16 окт 2007, 22:31

эммм

так этож тока для 1 мотора...

чёт не соображу вобще
мнеж сначало нуно определить каким момтором управлять по 1 символу в буфере
а потом уже делать твой код
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 22:37

ессно что для одного, чтоже я буду все переписывать,
нет уж, патч сам наложи, тем более что не сложно
для другого борта достаточно поменять дефайны с
Код: Выделить всёРазвернуть
#define OUT_RF 2
#define OUT_RB 3

на
Код: Выделить всёРазвернуть
#define OUT_LF 4
#define OUT_LB 5


и в тексте заменить OUT_.(.) на OUT_L\1
(привел регулярные выражения которыми бы воспользовался для автозамены)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 16 окт 2007, 22:51

эх нет предела моей печали
хорошо что я контроллер не запаивал а в кроватку поставил
выпаивать тока 1 конвертер уровней 16 ногий будет сложно
(пойду в магазин куплю кучу кроваток и все микрухи буду ставить в кроватки)

ессно что для одного, чтоже я буду все переписывать,

ну да, действительно :lol: я просто тут болею, так что не совсем адекватно мыслю.
вот родил...
Код: Выделить всёРазвернуть
{ 
if  ( buffer[0] == 'R' ) //правый  мотор
        {
        if  ( buffer[1] == '5' ) //стоп машина
        {
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_RB)) ) & (~(1<<OUT_RF));
                pwm = 0;
                putsf("\r\nRMot: STOP");
        }
        if  ( ('6' <= buffer[1]) | (buffer[1] <= '9') )
        {
                // ( PORTD & 11110111 ) | 00000100
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_RB)) ) | (1<<OUT_RF);
                pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
                putsf("\r\nRMot: FWD");
        }
        if  ( ('0' <= buffer[1]) | (buffer[1] <= '4') )
        {
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_RF)) ) | (1<<OUT_RB);
                pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
                putsf("\r\nRMot: BWD");
        }
}
if  ( buffer[0] == 'L' )  //левый мотор
        {
        if  ( buffer[1] == '5' )//стоп машина
        {
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_LB)) ) & (~(1<<OUT_LF));
                pwm = 0;
                putsf("\r\nRMot: STOP");
        }
        if  ( ('6' <= buffer[1]) | (buffer[1] <= '9') )
        {
                // ( PORTD & 11110111 ) | 00000100
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_LB)) ) | (1<<OUT_LF);
                pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
                putsf("\r\nLMot: FWD");
        }
        if  ( ('0' <= buffer[1]) | (buffer[1] <= '4') )
        {
                OUT_PORT = ( OUT_PORT & (~(1<<OUT_LF)) ) | (1<<OUT_LB);
                pwm = (buffer[1] - '0')*10 + (buffer[2] - '0');
                putsf("\r\nLMot: BWD");
        }

}
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Vooon » 16 окт 2007, 23:28

Myp писал(а):вот родил...

куда дефайны потерял?
если вынес в хнднр и не стал приводить - сори,
просто вдруг ты их потерял :) а потом опять будеш дымать почему не пашет :)

а что так все плохо? все погорело? :(
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3326
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 17 окт 2007, 09:36

Vooon писал(а):
Myp писал(а):вот родил...

куда дефайны потерял?
а что так все плохо? все погорело? :(

я их вынес =)
ну не погорело конечно, но пока буду выпаивать думаю погорит.
тем паче что паяльник у меня пока с резистором и 260 градусов я явно не выдерживаю...
пока буду отвёрткой поддевать да ноги греть наверняка сгорит...
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение rig » 17 окт 2007, 09:46

оловоотсос хорошая штука в таких случаях, по старинке можно экраном от кабеля воспользоватся
пользовался пару раз, но лучше конечно кроватка
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 17 окт 2007, 17:11

положу сюда дома скачаю


плата модернизированная с возможностью ШИМа

все пяточки сделал квадратные...
круглые у меня чото отваливаются иногда :lol:

блин ещё вспомнил
у меняж там транзистор стоит с током всего 100 мА слабенький такой транзюк
а я новых ик диодов прикупил, они каждый по 100 мА едят
Вложения
.JPG
.rar
(34.79 КиБ) Скачиваний: 21
Последний раз редактировалось Myp 17 окт 2007, 17:42, всего редактировалось 3 раз(а).
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение rig » 17 окт 2007, 17:20

Myp писал(а):ну не погорело конечно, но пока буду выпаивать думаю погорит.
тем паче что паяльник у меня пока с резистором и 260 градусов я явно не выдерживаю...
пока буду отвёрткой поддевать да ноги греть наверняка сгорит...

! вспомнил, можно же дорожки отрывать если плата не нужна , она и так скорей всего в негодность придет. подальше от микрухи дорожку нагреть, подцепить и отрывать с помощью паяльника.
Когдато так макетки делал из ненужных плат.
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: rover p3 бесчеловечные эксперименты и ворклог

Сообщение Myp » 18 окт 2007, 15:41

итак забубенил платку
использовал старый добрый журнал кабельщик =)
качество супер!
(правда 2 прохода подвели... с одного краю несостыковка примерно на 0.3 мм но это не заметно практически. дырочки 0.8 мм всё равно чотко протравились, разве что слегка овальные =) )

немного подтравилось там где большие площади тонера были(тонер совместимый поэтому качество говно), видны тёмные щербинки на меди, но после лужения всё стало идеально

буду вечером перепаивать детали на новую плату

пора доставать КПК и заряжать акумуляторы(у него заряда хватает от силы на пару дней в выключенном состоянии после того как я его чуть не угробил КЗ)
нуно будет попробовать как он будет жить без дисплея и подсветки

раздумывая над КПК придумал как мне сделать номаный разъём
я просто припаяю на плату плоский тонкий шлейф от принтера и выведу его наружу кпк в большой удобный разъём(я пока копался внутри повредил 1 детальку, розовая штучка 2 мм длинной с 4мя ногами с каждой стороны, хз что это но вроде работает...)

сижу пока бьюсь как мне отконфигурить контроллер
нужно сделать ШИМ на 2 ноги, нужно сделать ADC на одну ногу, и настроить усарт
плюс фьюзы выставить на внешний кварц...

а ещё нужно бутлоадер освоить...
чтоб прошивать мк без гимора

кстати оч неудобно
дома один исходник и проект
а на работе другой
приходится туда сюда файлы носить обновлять...
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 15949
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Пред.След.

Вернуться в Идеи

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

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

Mail.ru counter