roboforum.ru

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

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

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

Myp » 16 окт 2007, 21:57

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

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


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

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


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


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

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



ага и ещё забыл сделать стоп
у меня либо вперёд либо назад а стопа нету =)
Последний раз редактировалось Myp 16 окт 2007, 22:17, всего редактировалось 1 раз.

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

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

Vooon » 16 окт 2007, 22:19

блин, действитно, чеж ты табличку то не сделал,
ща немног переделаю пример, чтоб ты не запутался, препроцессором все обзову, а там меняй скока хош

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

Myp » 16 окт 2007, 22:20

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


нет? соплей нету я просто идиот =)
за код спасибо я чтото такое и хотел сделать =)
тока пожалуй R55 и L55 это будет стоп...
ато робот либо вперёд либо назад, остановить невозможно

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

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

Vooon » 16 окт 2007, 22:26

прада в этом вариатне выпадает все из 5х

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

Myp » 16 окт 2007, 22:31

эммм

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

чёт не соображу вобще
мнеж сначало нуно определить каким момтором управлять по 1 символу в буфере
а потом уже делать твой код

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
(привел регулярные выражения которыми бы воспользовался для автозамены)

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

}

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

Vooon » 16 окт 2007, 23:28

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

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

а что так все плохо? все погорело? :(

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

Myp » 17 окт 2007, 09:36

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

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

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

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

rig » 17 окт 2007, 09:46

оловоотсос хорошая штука в таких случаях, по старинке можно экраном от кабеля воспользоватся
пользовался пару раз, но лучше конечно кроватка

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

Myp » 17 окт 2007, 17:11

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


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

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

блин ещё вспомнил
у меняж там транзистор стоит с током всего 100 мА слабенький такой транзюк
а я новых ик диодов прикупил, они каждый по 100 мА едят
Вложения
.JPG
.rar
(34.79 КиБ) Скачиваний: 21
Последний раз редактировалось Myp 17 окт 2007, 17:42, всего редактировалось 3 раз(а).

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

rig » 17 окт 2007, 17:20

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

! вспомнил, можно же дорожки отрывать если плата не нужна , она и так скорей всего в негодность придет. подальше от микрухи дорожку нагреть, подцепить и отрывать с помощью паяльника.
Когдато так макетки делал из ненужных плат.

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

Myp » 18 окт 2007, 15:41

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

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

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

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

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

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

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

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


cron
Rambler\'s Top100 Mail.ru counter