Google+ Followers

domingo, 23 de março de 2014

Braço Mecânico para PC ( Parte 3)

LÓGICA E CONTROLE
Em nosso projeto, as funções de controle da unidade robótica foram deixadas cargo de um micro. O programa será feito com o objetivo de demonstrar como se pode acionar essas funções através da linguagem C. Os usuários de Pcs poderão usá-los como base, fazendo os ajustes necessários ao funcionamento de seu equipamento, e lembrando que o endereço normal da porta da impressora nos micros ela e 888 (378H).
Como se poderá perceber, o programa não esgota todas as possibilidades de controle, servindo, apenas, apara demonstrar como esse controle, poderá ser feito. As principais características do programa são:

-        1 Ajuste do passo
O acionamento dos motores, não e feito de forma continua, pois isso tornaria o controle dos movimentos muito difícil. O programa faz o acionamento dos motores em passos, ou seja, aciona o motor e aguarda certo tempo e desaciona-la em seguida. O tempo que e o pulso de acionamento fica ativo e controlado pelo usuário e pode ser posicionado de forma diferente para cada sentido de rotação de cada motor.
Dessa forma, compensa-se, em parte, a falta de precisão dos motores CC e permite que sejam usados motores com diferentes taxas de redução mecânica. O tempo acionamento ou passa, poderá ser maior para motores com taxa de redução e menor para motores com pouca redução.

- 2 Acionamentos pelo teclado
O programa permite que os motores sejam acionados diretamente a partir do teclado. Esse tipo de acionamento é feito usando as funções de leitura de teclado do C, que retornam o estado do botão que foi acionado.
A função retorna um valor numérico de posição, de acordo com o esquema da figura 5. A função retorna o valor 0 se a tecla não estiver pressionada e 1 se ele for pressionado.
O programa associa os valores retornados pelas funções, os movimentos a serem feitos, de acordo com a tabela 4.
Caso venha acionar uma unidade robótica diferente do braço mecânico, essa associação de valores e nos nomes poderá ser mudada alterando-se os conteúdos das variáveis (Nomes dos movimentos).


Figura 5 Valores retornados pela função.


Valor Colocado na Porta 145
Nome dado ao Movimento
1
Direita
2
Esquerda
4
Baixo
8
Cima
16
Sobe Braço
32
Desce Braço
64
Vago
128
Vago
Tabela 4 Associação de valores retornados pelas funções.

- 3 Acionamento por número de passos
Uma forma alternativa, mais precisa em termos de memorização/ repetição, para execução dos movimentos. O operador fornece o movimento a executar (de forma idêntica ao acionamento pelo teclado) e o número de passos a serem executados.
Como o movimento final resulta não só dos passos efetuados, mas também do tempo decorrido entre dois passos sucessivos (em função da inércia do motor), este tipo de acionamento deve ser usado, preferencialmente quando se pretende memorizar e repetir o movimento. O acionamento direto via teclado, é mais impreciso, pois o intervalo entre dois passos fica a cargo do usuário.

  - 4 Memorização de movimento
Ativando-se a função de memorização, o programa irá armazenar os movimentos efetuados, permitindo que se guarde até 2048 movimentos. A memorização será paralisada ativando-se a função “Finaliza memorização” e poderá ser reinicializada através da função “Limpa memorização”.

- 5 Repete memorização
Após memorizar uma determinada seqüência de movimentos, o usuário poderá repeti-la uma ou mais vezes, demonstrando, de forma simples, como se pode fazer uma unidade robótica “aprender” uma determinada tarefa e repeti-la quantas vezes for necessária. Para efetuar a repetição, o programa solicita um valor que controla a “pausa entre passo” e que representa o tempo em motor irá ficar inativo entre dois passos sucessivos. Deve-se ajustar este valor até que a repetição dos movimentos resulte no mesmo movimento total de quando a seqüência foi memorizada.
 Como foi dito, o movimento final é influenciado não só pelos passos, mas também pelo intervalo entre eles, que influencia, em função da inércia, o estado em que o próximo passo será recebido e executado pelo motor.

Na próxima semana estaremos falando da parte mecânica da lista de peças e alguns teste antes de escrever o programa.

sábado, 15 de março de 2014

Braço Mecânico para PC ( Parte 2)

Ola pessoal como tinha combinado segue a segunda parte do projeto do braço mecânico pra PC, hoje falaremos da interface paralela e do módulo de potencia. Uma boa leitura!

INTERFACE PARALELA

As grandes maiorias dos PC’s utilizam uma interface paralela de 8 bits, para a comunicação com a impressora. A interface é dita paralela porque permite a transferência de 8 bits (1 byte) simultaneamente (as interfaces seriais transferem 1 bit por vez).
Este padrão determina que os sinais de cada pino serão compatíveis com sinais TTL e estabelece a função de cada um conforme a tabela 1.

PINO
SINAL
PINO
SINAL
01
STROBE
08
D6
02
D0
09
D7
03
D1
10
N.C
04
D2
11
BUSY
05
D3
12/15
N.C
06
D4
16
GND
07
D5
17/36
N.C

Tabela 1 Padrão Centronic Assinalação dos sinais por pino.

Apesar do padrão, existem diferenças na saída da interface, no painel dos micros, tanto a nível de tipo de conector quanto a nível de pinagem. Para eliminar a interferência dessas diferenças, o projeto foi feito de forma a usar a interface após o cabo de conexão da impressora.
Os cabos disponíveis para cada micro eliminam as diferenças e entregam os sinais da tabela 1 num conector de impressora DB25.

Para o acionamento da unidade robótica serão usados os pinos 2 a 9 (D0 a D7) e 16 (GND), conforme pode ser visto na figura 2. Percebe-se que foi feita uma utilização direta da palavra de 8 bits para acionamento dos módulos de potencia. Como são necessários 2 bits por motor, temos então, a possibilidade de acionar ate 4 motores nos dois sentidos. A tabela 2 mostra o efeito do posicionamento dos bits no movimento dos motores.

Figura 2 Utilização dos sinais da interface.

Bits
EFEITO
0 0
Motor parado
0 1
Giro no sentido A
1 0
Giro no sentido B
1 1
Motor parado
Tabela 2 Efeito do posicionamento dos bits no movimento dos motores.

Veja que com uma saída de 8 bits seria possível acionamento de ate 128 motores em 2 sentidos (256 movimentos). Isso exigiria, no entanto, a presença de decodificadores após a interface para determinar, a partir do valor binário informado pela CPU, qual motor deveria ser acionado. O uso direto limita o numero de motores mais simplifica bastante o projeto.
 Nos Pcs, o endereço normal da porta paralela e 888 (378H). Esse endereço pode ser configurado se consultado o endereço de memória 0040:0008 (formato CS: OFF-SET em hexadecimal) que guarda o endereço da porta da impressora.
Na linguagem C, a porta devera ser acionada via instrução xxxx, pois e a única que permite acesso direto a interface, obrigando em nosso caso com o formato xxxxxxxxxxxxxxxx cujo valor binário ira acionar os módulos de potencia, de acordo com a tabela 3.

DECIMAL
BINARIO
EFEITO
0
00000000
Motores desativados
1
00000001
Motor1 sentido A
2
00000010
Motor1 sentido B
4
00000100
Motor2 sentido A
8
00001000
Motor2 sentido B
16
00010000
Motor3 sentido A
32
00100000
Motor3 sentido B
64
01000000
Motor4 sentido A
128
10000000
Motor4 sentido B 
Tabela 3 Tabela de valores para acionamento dos motores

MÓDULO DE POTÊNCIA
Cada um dos motores de unidade robótica necessita de um módulo de potência, cuja função é gerar, a partir dos sinais de acionamento à movimentação do motor.
O módulo de potência que é apresentado na figura 3, acionado diretamente a partir dos sinais digitais enviados pela CPU à interface paralela. Pela análise do circuito percebe-se que quando E1=E2 os transistores TIP125 ou os TIP120 estão cortados, não havendo, portanto, diferença de potencial sobre o motor, que permanecerá parado. Quando E1=0 e E2=1 o motor irá girar num sentido e quando E1=1 e E2=0 irão girar no outro. As entradas E1 e E2 poderão vir de circuitos TTL ou CMOS.

Figura 3 Diagrama do módulo de potência.


Para montagem de braço mecânico, serão necessários 3 módulos de potência, ligados aos sinais D0/D1, D2/D3 e D4/D5 da interface paralela. Os sinais D6/D7 não serão utilizados. A alimentação dos módulos será a mesma dos motores usados (6, 9, 12V), o módulo de potência poderá funcionar com voltagens maiores, devendo-se recalcular o resistor de base para controlar a corrente sobre o motor. Uma placa padrão poderá ser usada para a fabricação dos módulos de potência.

Na próxima semana estaremos falando da lógica e do controle.

domingo, 9 de março de 2014

Braço Mecânico para PC

Braço Mecânico para PC




A robótica é uma área muito interessante. Associando a capacidade dos computadores modernos e de movimento de dispositivos eletromecânicos, a robótica se apresenta hoje como um ramo de realizações sofisticadas, possibilidades quase ilimitadas e desafios constantes.
Nestas linhas iremos começar o projeto de um braço robótico controlado pelo PC, de fácil construção usando materiais de fácil aquisição. O projeto apresentado tem por objetivo introduzir os conceitos básicos da robótica, de forma a permitir que, além da obtenção de resultados imediatos o leitor possa adquirir conhecimentos que lhe permitiram evoluir para projetos mais sofisticados.
As principais características do projeto são:
-Controle de unidade robótica com ate 4 motores CC, reversíveis (giro em ambos os sentidos) 6 movimentos possíveis.
-Interfaceamento direto dos módulos de potencia com a saída paralela do micro, dispensando o uso de decodificadores e/ou conversores.
-Modulo de potencia de fácil construção e grande eficiência, com a penas 4 transistores por modulo acionamento via sinal digital CMOS, TTL ou TTL-LS e controle do giro do motor CC nos dois sentidos.
-Controle total por software, como sugestão, o projeto inclui os detalhes para construção completa de e um braço mecânico de 6 movimentos, com motores e caixas de redução reaproveitadas de aparelhos domésticos e brinquedos.
-Isolamento do módulo de potencia da interface paralela do PC.

UNIDADE ROBÓTICA

Ela pode ser dividida em 4 blocos principais, como ser visto abaixo.

O módulo de lógica e controle é responsável por todas as atividades de controle da unidade, armazenamento da programação de atuação a serem realizadas e, quando houver, interpretação dos sinais de realimentação.
Este módulo é representado, normalmente, por um micro processador e circuitos de apoio. O controle normalmente e realizado por palavras binárias, que identificam quais módulos mecânicos devem ser acionados. Os módulos de potência, quando acionados, geram a energia necessária ao acionamento dos módulos mecânicos. Estes, normalmente constituídos por motores elétricos (CC ou de passo), executam então o movimento comandado.
As funções de realimentação permitem que os sinais gerados por sensores colocados junto ás partes mecânicas informem ao módulo de controle situações que necessitem ser interpretadas e avaliadas.
Em nosso projeto, em função da simplicidade desejada, foram tomadas as seguintes decisões:
- Funções de lógica e controle implementadas em linguagem C.
-Sem realimentação.
-Uso de motores CC, e não de passo, já que os de passo exigem controles mais sofisticado assim fugindo da proposta do projeto de ser o mais simples possível.
Vamos iniciar a análise do projeto pela descrição da interface paralela, já que o funcionamento dos demais módulos seta diretamente relacionado à forma como ela foi utilizada.
Ate a semana que vem onde falaremos da Interface Paralela.