Reunião 04/03/2006

Presentes: Victory, Gilmar, Rodrigo

Muitas dificuldades e poucos resultados este foi o salda da reunião!

Concluimos toda a parte de escrita no LCD e partimos para a leitura dos sensores... e aí é que encontramos as dificuldades! A seguir close da montagem mecânica da carenagem do robô e dos motores.

Passamos a manhã toda tentando ler um push-button conectado à porta 2 do 8051 sem sucesso! Mas é isso mesmo... semana que vem tentamos novamente, afinal o robô depende disso!

Estudei muito sobre leitura de sensores e pude concluir que na verdade acho q teremos que usar interrupções que possibilitam a interrupção do ciclo de operação do programa para o tratamento do evento de interrupção, o que será importante por exemplo p/ dar prioridade a inversão do movimento no caso da detecção da linha branca do ringue.

Como o 8051 disponibiliza apenas 2 entradas de interrupções já tratei de procurar uma forma de como tratar os 4 leitores infra-vermelhos e 4 sensores de toque que estarão presentes no robô. Bom achei um circuito de expansão interessante que testaremos nas próximas reuinões. No esquema a seguir é possível expandir uma entrada de interrupção para até 4 sensores!

A reunião serviu tb para mostrar q nem tudo é tão fácil quanto parece ser... encontrei um conportamento bastante inesperado no código a seguir. Por mais estranho q possa parecer o retorno apresentado no LCD para a execução das MOV A, #30h e MOV A, R0 não é o mesmo! Se alguem poder me exeplicar pq estou aceitando qualquer comentário!

main:    
LCALL inic_display ;Inicializa as configurações do LCD
MOV R0, #30h      ;zera registrador

MOV A,#00h  ;Move para o acumulador a posicao que deve ser iniciada a escrita
LCALL set_pos  ;Chama função que seta a posicao do cursor do LCD
MOV A,#'M'  ;Move para o Acumulador o caracter a ser escrito
LCALL wrcar1  ;Chama a funcao que escreve o caracter no LCD
MOV A,#'1'
LCALL wrcar1
MOV A, #30h
LCALL wrcar1

MOV A,#' '
LCALL wrcar1
MOV A,#'M'
LCALL wrcar1
MOV A,#'2'
LCALL wrcar1
MOV A, R0
LCALL wrcar1

MOV a, #10  ;Move o valor 10 para o acumulador
CJNE a, #30, $  ;Se o valor do acumulador nao for 30, refaz o loop

Reunião dia 24/02/2006,

Presentes: Gilmar, Victory, Fellipe, Airton, Neto, Lourenço

Como sábado seria carnaval transferimos as atividades do grupo para a sexta-feira o dia inteiro. Segue foto do robô de sumô "arm-lock" no estágio atual

Victory e Fellipe trabalharam na conclusão do software de controle de leds que futuramente controlarão os relés de acionamento dos motores. Esta estapa já foi concluída e o código assembler necessário isolado para uso futuro. Segue abaixo foto da montagem e código assembler do programa

ORG 0000H
LJMP main
ORG 0030H               ;Pulando os enderecos das interrupcoes
main:    
MOV A, #00000000b
MOV P2, A     ;Atribuição da porta P2 = registrador
MOV R0, #0Ah     ;Atribue o acumulado
CALL atraso_5s    ;Executa atraso de 5 segundos
MOV A, #00000001b
MOV P2, A     ;Atribuição da porta P2 = registrador
(...)

atraso_5s:    
MOV TMOD, #00010001b    ;Configura timer 1 e 2 para modo 1 16 Bits
MOV TH0, #4Ch     ;Carrega parte alta do temporizador
MOV TL0, #04h     ;Carrega parte baixa do temporizador
CLR TF0      ;Limpa flag de overflow do timer 0
SETB TR0      ;Liga o timer 0as
JNB TF0, $      ;Aguarda flag de overflow do timer 0 estourar (TF0 = 1)
CLR TF0      ;Zera flag de overflow do timer
CLR TR0      ;desliga o timer 0
DJNZ R0, atraso_5s     ;decrementa e retrona se R0 <> 0
RET
 
END

Neto trabalhou na parte do circuito impresso. Usando o software PCBExpress fizemos a placa de controle dos motores e depois testes de tranferência do desenho impresso no papel Glossy para a placa de cobre.

Erramos várias vezes o processo mas no final parece q deu certo.

Airton trabalhou no fechamento do RT1 e na conclusão de diversos tópicos do RT2.

Bom carnaval já passou e sábado que vem agora tem mais!




[ ver mensagens anteriores ]



Meu Perfil
BRASIL , Nordeste , SALVADOR , IMBUI , Homem , Portuguese , English , Informática e Internet

 
Visitante número: