| 
 
  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. |