SERVO CONTROL – CONTROLE PARA ATÉ 8
SERVOS
Encontrei esse artigo/projeto
que escrevi em 2008 e não me lembro de tê-lo
publicado nas revistas da saudosa Editora Saber
durante o período em que fui um dos seus
colaboradores. Apesar de um pouco antigo o mesmo
ainda pode ser montado já que seus componentes
ainda estão disponíveis no mercado ou pelo menos
pode servir de base para aqueles que desejam
projetar algo similar. Seja qual for a sua
escolha, boa leitura!
Pequenos robôs muitas vezes requerem a
movimentação de um ou mais servos. É o caso de pequenos
braços mecânicos que podem ser utilizados em sala de
aula para o aprendizado das teorias que envolvem a
robótica e/ou apresentados em feiras e até mesmo como
trabalho de conclusão de curso. O projeto proposto neste
artigo permite controlar até oito servos através da
porta RS-232 de um PC e poderá ser utilizado nos mais
variados projetos.
A proposta A proposta deste artigo é bem simples,
mas bastante interessante. Através de um único
microcontrolador será demonstrado como controlar até
oito servos, de maneira simultânea, através de uma porta
de comunicação RS-232 presente na maioria dos
computadores atuais. O circuito também poderá ser
utilizado em conjunto com outros “sistemas”
microcontrolados, que utilizem a comunicação RS-232. As
principais características do projeto Servo Control
são:
Antes de falar
a respeito do circuito, é interessante conhecer um pouco
sobre o funcionamento dos servos (figura acima), já que
estes são muito empregados hoje em dia na robótica
educacional. O fato é que de todos os elementos capazes
de converter energia elétrica em movimento mecânico, o
servo é o que permite a maior gama de aplicações.
Podemos emprega-los na construção de braços mecânicos
(robôs manipuladores), tratamento e controle de
alavancas no geral, entre outras. Graças a sua
simplicidade de operação, aliada as suas características
mecânicas, seu emprego para fins didáticos pode ser
feita com muita facilidade.
Como você pode notar através da
figura mais acima, o servo transforma sinais elétricos em
movimentos mecânicos. Isso porque existe uma
“proporcionalidade” entre os sinais (pulsos) que são
levados ao servo e a posição da alavanca. Veja com maior
detalhes como isso ocorre na figura abaixo. De acordo com a
largura de pulso recebido pelo servo a alavanca do
mesmo avança ou recua para uma determinada posição.
Este pulso têm largura predeterminada que varia entre
1ms (1x10-3 segundos) e 2,5ms (2,5x10-3
segundo) com um espaçamento médio de 20ms (20x10-3
segundos) entre cada pulso (sempre contínuos). Assim
sua alavanca é posicionada de acordo com o sinal
enviado.
O circuito A figura acima mostra o circuito eletrônico do Servo Control. O microcontrolador CI1, um PIC16F628, faz todo o trabalho desde a comunicação com o computador até o controle dos servos. Este microcontrolador já é um velho conhecido dos maker's mais velhos e as principais características deste microcontrolador são:
CI2, um MAX232 ou equivalente, permite converter os níveis de tensão do padrão RS-232 (+/-15VDC) para o padrão TTL (0-5VDC) do microcontrolador, e vice-versa. O jumper JP1 permite selecionar a velocidade de comunicação do Servo Control. Com o JP1 aberto a mesma é de 2400bps (nível lógico “1” no pino 3 - RA4 - do microcontrolador) e fechado de 9600bps (nível lógico “0” no pino 3 - RA4 - do microcontrolador). O jumper JP2 permite a comunicação RS-232 diretamente com o microcontrolador no modo TTL. Ela será útil se você precisar conectar o Servo Control diretamente a um microcontrolador. Lembrando apenas que, neste caso, o circuito deverá utilizar o modo de comunicação RS-232 invertido ou ainda, providenciar esta inversão via hardware (através de transistores ou portas lógicas NOT). Os capacitores C1 e C6 atuam como “desacopladores” (filtros) para CI1 e CI2, respectivamente. Os capacitores C2 a C5 são capacitores auxiliares para a CI2. Eles ajudam na “adaptação” dos níveis de tensão TTL para RS-232 e vice-versa. CI3 é um regulador para 5VDC/1A, C7 a C10 capacitores de filtro e D1 protege o circuito e servos contra uma possível inversão na entrada de alimentação do circuito. O LED1 pisca a uma frequência de 1 Hz, avisando sobre a presença de alimentação e funcionamento do circuito (seu piscar é controlado pelo microcontrolador). O conector CN1 é um DB09 e serve para a conexão do circuito ao computador, através de um cabo que pode ser confeccionado de acordo com o esquema abaixo:
Montagem Na figura acima você tem a minha sugestão do lay-out para a confecção do circuito impresso (PCI). O mesmo tem apenas uma face e sua confecção não será trabalhosa, mesmo para os que usam o traçado manual. A montagem do circuito em placas tipo padrão ou mesmo em matrizes de contato também é possível. A escolha de um método ou outro é livre. Utilize suportes para os CI’s 1 e 2. Os capacitores C2 a C5, C7 e C10 são do tipo eletrolíticos e, portanto polarizados. Tome cuidado ao monta-los na placa. Já os capacitores C1, C6, C8 e C9 não são polarizados e não exigem qualquer cuidado quanto a sua montagem, exceto pelo fato de C1 e C6 serem capacitores cerâmicos e C8 e C9 de poliéster e com valores diferentes. Tenha cuidado para não trocá-los durante a montagem. Os jumpers J1 e J2 na placa podem ser feitos com pequenos pedaços de fio rijo. É recomendável o uso de uma barra de pinos para JP1. Desta forma, com o uso de um strap fica fácil a seleção da velocidade (2400 ou 9600bps). Na falta deste tipo de terminal você poderá soldar um fio diretamente na placa, selecionando de maneira permanente a velocidade. No caso do uso da placa se feito com outro microcontrolador, CI2 e os capacitores C2 a C6 poderão ser omitidos do circuito. Neste caso a ligação dos pontos para a comunicação (TX, RX e GND) deverá ser feita através de JP2. Utilize o circuito elétrico para realizá-la de maneira correta. O conector CN1 é um DB09 90º fêmea e na falta do mesmo você poderá montar o cabo diretamente na placa. Protocolo de comunicação Este protocolo é composto basicamente por 4 caracteres (bytes), conforme apresentado abaixo e deve ser utilizado ao criar o seu próprio programa de controle. <STX><Nr
do servo><Posição para o
servo><ETX>
Ainda sobre os caracteres do protocolo, você deve compreender que estes não são os caracteres ASCII “1” (31H), “2” (32H), “3” (33H), etc. Sua interpretação deve ser feita no formato hexadecimal (01H, 02H, 03H, etc). Sendo assim os mesmos encontram-se no inicio da tabela ASCII e geralmente não estão presentes no teclado de um computador. Como exemplo, tomarei o primeiro caracter do protocolo, 02H ou STX (start of text). Este caracter não é o caracter ASCII “2” conforme dito anteriormente. Recomendo você estudar atentamente o protocolo em conjunto com a tabela ASCII para compreender melhor o que foi dito. Teste e uso Após a montagem, seja qual for o método escolhido, aconselho uma verificação minuciosa na mesma. Reveja todas as ligações, as soldas, posições dos componentes, etc. Gaste alguns minutos nesta verificação. Não tenha pressa em ligar o circuito. Alguns minutos gastos em uma boa verificação podem representar a diferença entre o sucesso e o fracasso em qualquer montagem. Pegue o arquivo HEX disponível no pacote disponibilizado mais abaixo em "Downloads", grave-o em seu microcontrolador e em seguida insira o mesmo na placa. Não entrarei nos detalhes envolvidos na programação do microcontrolador PIC Microchip neste artigo. Acredito que quem se propôs a montar o circuito aqui sugerido possui alguma experiência necessária com a gravação dos microcontroladores PIC O melhor e mais simples teste que pode ser feito com o Servo Control é ligá-lo um computador e utilizando um programa tipo terminal como o Hyper Terminal do Windows, o minicom do Linux ou outro a sua escolha, realizar um teste preliminar do circuito. Os procedimentos seriam, como segue:
Você irá perceber que a cada caracter correto enviado o Servo Control devolve uma string "ok" seguida de CR+LF (Carriage Return + Line Fide = 0DH + 0AH) e se o caracter estiver errado a string "err" seguida também de CR+LF. Se um caracter for enviado errado, você deverá iniciar o protocolo do inicio. Conclusão Com um pequeno microcontrolador você pode criar alguns circuitos bastante interessantes para aplicação em robótica. O uso deste circuito no controle de um pequeno braço mecânico é bastante viável e permitirá, se o conjunto for aplicado em sala de aula, um melhor aprendizado por parte dos alunos sobre o assunto robótica. Espero ter colaborado com todos aqueles que me acompanham com mais este circuito. Boa montagem e até a próxima! - Circuito do Servo Control - Desenho do lay-out para circuito impresso - arquivo PDF - Pacote com arquivos do programa para o microcontrolador - Lista de materiais |
Copyright deste conteúdo reservado para Márcio José Soares e protegido pela Lei de Direitos Autorais LEI N° 9.610, de 19 de Fevereiro de 1998. É estritamente proibida a reprodução total ou parcial do conteúdo desta página em outros pontos da internet, livros ou outros tipos de publicações comerciais ou não, sem a prévia autorização por escrito do autor. |