Lixobô
Programa Lixobô. bas Desenvolvido por Márcio José Soares Revista Mecatrônica Fácil Controla robô Lixobô 3 servos: 1 de rotação e 2 de posição servos para posicionamento de antena parabólica p Presente display s operando a 9600, N 1 * ligado diretamente OF4 Para usar display serial Tato operando a ligado diretamente a PDI alterar valor em $baud para 4800 As funções de controle do display também deverão ser alteradas, de acordo com os comandos presentes no manual do LCD da Tato Equipamentos Eletrônicos Obs: Lcd’s seriais que com velocidade de 2400 não podem ser utilizados neste projeto Dim As Byte
DimJ As Integer Dim KAS Byte configura servos servol -; rotação -; movimento do robô serv02 -; posição -; direção do robô serv03 -; posição -; abre a tampa da lixeira Config Servos = 3 , Servol = Portb. O , Serv02 = Portb. l , Serv03 = Portb. 2 , Reload = 10 configura portas porta B – servo de rotacao – servo de posicao – direcao PBI – servo de posicao – tampa PB3 _ disparo do sensor IR – sinal de entrada do sensor IR PB4 – sinal de entrada do sensor de som PB5 – ledl PB7 – led 2 porta D PDO – nao utilizado PDI – saida para display serial PD2 – saida para beep – bumper de colisão direito
PD3 PD4 – bumper de colisão esquerdo PDS – nao utilizado – nao utilizado PD6 display Call para() ‘robo parado Call Centro() ‘direção a frente Call Ftampa() ‘tampa fechada Toggle Portb. 6 ‘inverte ledis Toggle Portb. 7 If Pinb. 5 = O Then ‘som detectado, hora da coleta!!! Exit Do ‘sai do loop End If Loop Set Portb. 6 Iliga led 1 Reset Portb. 7 ‘desliga led 2 For = 5 To 10 Step 1 ’emite beep•s * 20 Sound Portd. 2 , 300 , J waitrns 100 Next While K 60 ‘faz 60 vezes Set Portb. 3 ‘liga sensor IR Call Msg_lixo() ‘insere mensagem no display Call Pfrente() ‘move para frente Call Centro() ‘sempre a frente Call Atampa() . m tampa aberta Toggle Portb. 6 ‘inverte led’s If Pinb. 4 = O Then ‘0bstáu 3 com IR do pulso Reset Portb. l ‘aba’xa pulso Waitms 5 ‘aguarda para fazer novamente For J ¯ — 1 To 10 ‘move para tras Foriz 1 -ro 100 Set Portb. O ‘levanta pulso Waitus 2500 ‘aguarda Reset Portb. 0 ‘aba’xa pulso Enable Interrupts ‘habilita int novamente Call Para() ‘pára robô Waitms 1 00 Set Portb. 6 ‘liga leds Reset portb. 7 End Sub subrotinas de controle do display Symphony ‘imprime mensagens no display Sub Msg_obst() Call Apaga_disp() ‘apaga display Print ” Obstaculo”; Call Imp_comando(&H0d) ‘muda de linha print ” Detectado”; End sub 4DF4