TCC – CONTROLE ROBÓTICO REFERENCIADO POR SISTEMA DE VISÃO COMPUTACIONAL UTILIZANDO O KINECT

Anúncios

Simulador Ladder – LDMICRO

LadderA pedido de amigos, vai uma dica de como treinar os conhecimentos adquirido na cadeira de Informática Industrial. A linguagem LADDER nasceu na necessidade de facilitar a programação em ambientes industriais, remetendo para uma linguagem de alto nível e fácil de ser utilizada. No entanto existe um programa, LDMICRO  de Jonathan Westhues, que permite a programação LADDER de microcontroladores, que viabiliza o estudo e implementação de controles de baixíssimo custo.
Este software é muito versátil, não requer instalação (basta executar o arquivo ldmicro.exe em ambiente windows ou emulador compatível), e é de livre distribuição.

Abaixo segue link para o download do LDMICRO, manual e alguns exemplos.

Software -> http://www.cq.cx/dl/ldmicro.exe

Manual -> http://www.mecatronica.org.br/disciplinas/programacao/019/LDMICRO_TUTORIAL.pdf

Exemplos -> http://www.mecatronica.org.br/disciplinas/cuscopic/artigos/ladder/exemplos.zip

Tabela em Assembly para escrever em um display de LCD com PIC

Após ter apanhado um monte com assembly e perturbado bastante o professor da cadeira de projetos com microcontroladores aprendi a trabalhar com tabelas em assembly, mesmo sabendo que percorrer uma tabela em assembly no microcontrolador PIC é um sacrifício (que no final recompensa o trabalho). Mas vamos deixa de conversa e ir direto aos trabalhos…

Primeiro devemos conhecer uma das diretivas de dados do assembly, a responsável de gerar series de instruções RETLW (Instrução que retorna de uma chamada CALL com o resultado de W ), uma instrução para cada termo.

DT: Definindo uma tabela de dados

Sintaxe:     dt [termo]

Descrição:  Esta diretiva vai gerar uma série de instruções RETLW, uma instrução para cada termo.

dt “Mensagem” , 0
dt primeiro, segundo, terceiro

Após saber como funciona o DT vamos escrever em um LCD com essa instrução (em um outro post irei informar como inicializar e configurar um Display LCD 16×2).

A rotina abaixo é parte de um projeto que desenvolvi, que tem a função de escrever em um LCD de 16×2 que pula para próxima linha do LCD automaticamente após o termino da escrita na primeira linha.


;*********************************************************
;* MSG *
;*********************************************************
LCD_PRINCIPAL ;DEFINIÇÃO DE FUNÇÃO
BANK0
CLRF CONT_MENS ;LIMPA VARIÁVEL
CALL ESCREVE_LINHA1 ;INFORMA A LINHA EM QUE VAI ESCREVER
MOVLW .16 ;DEFINE A QUANTIDADE DE COLUNAS
MOVWF LINHA ;JOGA DENTRO DE LINHA
BCF POSICAO ;INFORMA A POSIÇÃO DE ESCRITA 0 = PRIMEIRA LINHA MSG_PRINCIPAL
BANK0
MOVF CONT_MENS,W ;JOGA O VALOR DE CONT_MENS PARA W
CALL STRING_LCD ;VAI PARA ESCRITA DA MENSAGEM
MOVWF CARACTER ;COLOCA O RETORNO DA FUNÇÃO STRING EM CARACTER
SUBLW .0 ;SUBTRAI W DE ZERO
BANK0
BTFSC STATUS,Z ;O RESULTADO DEU ZERO?
GOTO VARRE ;SE == 0, JÁ LEU TODA STRING E VAI PARA A ROTINA PRINCIPAL
INCF CONT_MENS,1 ;SE =! 0, INCREMENTE 1 NA VARIÁVEL CONT_MENS
MOVF CARACTER,W ;JOGA A LETRA QUE ESTA EM CARACTER E JOGA PRA W
MOVWF DADOS_LCD ;JOGA CARACTER PARA O LCD
CALL PULSO ;ROTINA DO LCD
DECFSZ LINHA,1 ;DECREMENTA OS 16. QUE E A QUANTIDADE MÁXIMA DE ESCRITA EM UMA LINHA
GOTO RECOMECA ;RECOMEÇA O ENVIO DE UMA PRÓXIMA LETRA NA LINHA 1
GOTO RECOMESA_POS2 ;RECOMEÇA O ENVIO DE UMA PRÓXIMA LETRA NA LINHA 2 STRING_LCD
BANK0
ADDWF PCL,1 ;SOMA W AO DESLOCAMENTO AO PC (PROGRAM COUNT) - W + PC
MSG_LCD DT "MENSAGEM A SER ENVIADA PRO LCD",0 ;CADA LETRA LIDA PELA POSIÇÃO DO PC E ADICIONADA EM W E RETORNA PELO COMANDO RETLW RECOMECA
GOTO MSG_PRINCIPAL ;RECOMEÇA O ENVIO DE UMA PRÓXIMA LETRA RECOMESA_POS2
BANK0
BTFSS POSICAO ;A ESCRITA ESTA EM QUE POSIÇÃO? SE "0" VAI PRA FUNÇÃO ESCREVE_LINHA2 E
CALL ESCREVE_LINHA2 ;DEFINE ESCRITA NA LINHA 2 E MUDA VALOR DA VARIÁVEL POSIÇÃO PARA 1, SENÃO CONTINUA ESCREVENDO NA LINHA 1
GOTO MSG_PRINCIPAL

Abaixo segue a logica do código:
lcd_principal

Aguarde os próximos capítulos, pois estarei disponibilizando mais algumas técnicas que aprendi com essa cadeira.

Edição de arquivos remoto via SSH/SFTP com Eclipse

Antes de conhecer o plugin RSE – Remote System Explorer para o eclipse, eu utilizava a dupla notepad++ e Winscp no windows e o Kate no linux para programar em PHP, mas comecei a ter alguns problema de sincronismo de arquivos com a dupla do windows, por isso fui atras de uma outra alternativa.
Em minha procura, encontrei o projeto DSDP, responsável por criar plugins para desenvolvimento de sistemas embarcados com eclipse, e um desses plugins é o RSE no qual é uma otima ferramenta para acessar um host remoto.
Abaixo descrevo como deve seguir a instalação e uma configuração básica desse plugin.

1 – Instalação:

  • Acesse Help->Software updadtes -> Find and Intall…
  • Marque a opção “Search for new features to install”
  • Escolha a opção “New Remote Site…”

o segundo mirror já vem no Eclipse europa e no Zend 6.

  • Marque os dois mirros que foi adicionado e clique em “Finish”
  • Continue até o termino da instalação

2 – Configurando o RSE:

  • Acesse Window -> Open Perspective -> Other, escolha a opção “Remote Systems Explorer” e clique em OK
  • No lado esquerdo da IDE irá aparecer uma aba com o RSE
  • Para adicionar uma nova conexão clique com o botão direito do mouse e escolha “NEW”, depois escolha a opção “SSH Only”,adicione os dados pedidos e pronto, a conexão com o servidor remoto está feita.

Obs: na opção “HostName” pode ser utilizado o IP do servidor.

Esse post teve o intuito apenas de apresentar esse plugin, em um outro post irei mostrar como utiliza-lo.
Testei esse plugin no Eclise Europe, no EasyEclipse PHP e no Zend Framework 6, todos com sucesso.