'Robô IR - versão 1.0 'Desenvolvido por Márcio José Soares 'Compilador Basic Step 1 versão 0.9.23.0 'Definição das variáveis e declarações symbol ir = 0 'entrada do sinal de IR symbol tras = %01000000 symbol frente = %00010000 symbol direita = %00110000 symbol esquerda = %10010000 dirs = %11111110 'todos pinos como saída 'exceto pino 0 pins = %11110000 'desabilita motores 'rotina principal inicio: pulsin ir,0,w0 'aguarda start bit if w0 < 200 then inicio 'start bit é > 200 pause 20 'pula primeiro envio pulsin ir,0,b0 'aguarda 2º start bit pulsin ir,0,b1 pulsin ir,0,b2 'lê cada bit do código IR. pulsin ir,0,b3 pulsin ir,0,b4 pulsin ir,0,b5 pulsin ir,0,b6 pulsin ir,0,b7 bit0=b1/96 'extrai LSB bit1=b2/96 bit2=b3/96 bit3=b4/96 bit4=b5/96 bit5=b6/96 bit6=b7/96 'extrai MSB bit7=0 'para testes do controle remoto 'retire a aspas simples da frente do 'comando debug e analise cada tecla 'se diferente, troque os valores de teste 'de b0 'debug b0,b1 'testa e realiza comando if b0<8 then inicio 'se menor volta if b0 = 8 then ptras 'tecla chan if b0 = 9 then pfrente 'tecla vol if b0 = 10 then pdir 'tecla rew if b0 = 11 then pesq 'tecla ff if b0 = 15 then para 'tecla mute goto inicio 'nenhum valor aceito 'subrotinas para movimentar o robô ptras: 'movimenta p/ tras b1=tras goto move pfrente: 'movimenta p/ frente b1=frente goto move pdir: 'movimenta p/ direita b1=direita goto move pesq: 'movimenta p/ esquerda b1=esquerda goto move para: 'para movimento b1=%11110000 move: 'realiza movimento setando pinos pins=pins | $F0 pins=pins & b1 goto inicio 'retorna p/ nova leitura