Servo-Motor. por. Nuno Monteiro & Gabriel Dinis Eng. Electrotécnica, UTAD Junho de 2001. nuno_monteiro@portugalmail.com gabrieldinis@portugalmail.



Documentos relacionados
V1 5V +V. (14)Vdd (6)RB0 PIC 16F628A. (16) Clk-out. C1 33pF. C2 33pF. Figura 1 Circuito pisca-pisca.

7. Técnicas de Programação

Curso PIC 1 Desbravando o PIC. Eng. Diego Camilo Fernandes Labtools Mosaico Didactic Division

PIC16F628a. Pinagem do PIC16F628a:

C:\seminario\guiao_aluno\trab6\trab6.asm

MICROCONTROLADORES PIC PRIMEIROS PASSOS

Hardware Parte I. Fábio Rodrigues de la Rocha

BANKSEL ADCON1 clrf ADCON1 bsf ADCON1,ADFM ; seta AD para VCC, GND e entradas analogicas, setando o bit ADFM configura como justificado a direita

DOUGLAS DAL POZZO DIEGO VITTI

Programação Daniel Corteletti Aula 3 Parte III Página 1/7

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ ESCOLA POLITÉCNICA ENGENHARIA DE COMPUTAÇÃO MICROPROCESSADORES PROJETO PARDAL DOCUMENTAÇÃO

Utilize o programa fonte em linguagem assembly abaixo para responder as questões seguintes.

Arquitetura de Computadores. Prof. João Bosco Jr.

Placa McLab1 Upgrade PIC16F84A p/ PIC16F62x

Tutorial de Eletrônica Aplicações com 555 v

Controlo de servomotores com o microcontrolador BX-24

Sistemas Microcontrolados

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ PUC-PR CCET CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ENGENHARIA DE COMPUTAÇÃO. Luiz Renato Hey Schmidt

Capítulo 12. Projeto 5 Controle de Motores de Passo Circuito e Funcionamento

Sistemas Microcontrolados

Potenciometer [Potenciômetro] - Ligado ao eixo de saída do servo, monitora a posição do mesmo.

Servos - Analo gicos e Digitais - Funcionamento, uso e diferenças entre eles!

INTRODUÇÃO AOS SISTEMAS EMBEBIDOS

SEMINÁRIO ASSEMBLY: Arquitetura PIC

Sistemas Digitais e Microcontrolados

6. Estrutura do Programa em Assembly

Sequencial Supermáquina (TEMPORIZAÇÃO SIMPLES)

TEM VÁRIOS ESTADOS: 0V,0.1V,3V,3.3V,4V,5V,10V, ETC.

Interrupção Externa. Capítulo 1. Noções básicas sobre interrupções em Microcontroladores PIC

Guia de Trabalhos Práticos do Aluno

Servo Motores. Jener Toscano Lins e Silva

5. Conjunto de Instruções do MCU PIC

Programação em BASIC para o PIC Vitor Amadeu Souza

1.1 Noções básicas sobre interrupções em Microcontroladores

MPLAB IDE Instruções básicas de utilização Carlos Roberto da Silveira Jr

Eder Terceiro. Programação C com o PIC16F628a. Eder Terceiro. 31 de Outubro de 2016

Sistemas Digitais e Microcontrolados

PIC. PeripheralInterface Controller. Prof. EngºespLuiz Antonio Vargas Pinto Prof. Vargas

Marcelo Fernandes Valter Rodrigues de Jesus Junior. Thermal Control

UNIVERSIDADE FEDERAL DE SÃO JOÃO DEL-REI - UFSJ DEPARTAMENTO DE ENGENHARIA ELÉTRICA - DEPEL INTRODUÇÃO AOS MICROCONTROLADORES PIC

Construção de Robôs Jogadores de Futebol (2ª Parte)

CONTROLE DE UM SERVO MOTOR

Sistemas Digitais e Microcontrolados

OMPLAB é um programa para PC, que roda sobre a

Introdução ao PIC. Guilherme Luiz Moritz 1. 6 de novembro de DAELT - Universidade Tecnológica Federal do Paraná

Microcontroladores. 1 Microprocessadores x Microcontroladores Microprocessadores: Microcontroladores: 2 Microcontrolador x DSP

Microcontrolador PIC 16F877

OMNI-3MD. Placa Controladora de 3 Motores. Disponível Biblioteca para Arduino. Manual de Hardware. Outubro de 2013

2 - Considere a seguinte figura que representa uma parte dos componentes básicos de um microprocessador:

EXPERIÊNCIA 17 USO DO TEMPORIZADOR INTERNO

Guia de Trabalhos Práticos do Professor

Copyright 2013 VW Soluções

MICROCONTROLADORES O QUE É O PIC?

Na primeira aula, conhecemos um pouco sobre o projeto Arduino, sua família de placas, os Shields e diversos exemplos de aplicações.

Sistema de Controlo de Potência de Motores DC

Boletim Técnico R&D 03/08 CARACTERÍSTICAS DO DRIVER MPC6006L 14 de março de 2008

OMódulo Comparador Analógico consiste em um conjunto

MICROCONTROLADORES E MICROPROCESSADORES APOSTILA 01

Copyright 2011 VW Soluções

Palavras-chave: LED s, Fotorerapia, Sistemas Microcontrolados.

PIC18F4550. Curso Engenharia de Controle e Automação. Alex Vidigal Bastos alexvbh@gmail.com

ENGENHARIA ELECTROTÉCNICA. 2º Semestre 2015/2016 FUNDAMENTOS DE MICROPROCESSADORES (XX DIA/NOITE) 2ª FREQUÊNCIA - TIPO

Arquitetura de Computadores. Tipos de Instruções

Laboratório de Microprocessadores e Microcontroladores

PID control. (proportional, integral, derivative)

CONTROLE DIGITAL DE VOLUME

Suporta os microcontroladores: R. Leonardo da Vinci, Campinas/SP CEP F.: (19) /

Aula 19. Conversão AD e DA Técnicas

MICROCONTROLADORES - PIC 16F84/16F84A/16F628/16F628A

1.1. Microprocessadores e microcontroladores Sistemas genéricos e sistemas dedicados. 2. Microcontrolador PIC:

Prof. Daniel Hasse. Robótica Industrial

Curso de Programação PIC Prof. Msc. Engº Getúlio Teruo Tateoki

O protocolo I2C. Fig. 1 Diagrama em blocos e pinos do circuito integrado PT2313.

Aplicações de Microprocessadores I. Prof. Adilson Gonzaga

MICROCONTROLADORES. PIC16F87x

Um resumo do Microcontrolador PIC18xx

Descrição dos pinos do Módulo Driver Motor com Dupla Ponte-H - L298N:

Circuito integrado 555 e suas aplicações

Conheça o 4017 (ART062)

1- Scilab e a placa Lab_Uino. 2- Instalação do ToolBox

01. Identifique o conjunto de portas de entrada A e o conjunto de portas B na figura abaixo.

PC Robots V. 1.4 V.Lobo Escola Naval 2006

Fundamentos de Microprocessadores 2006/2007 1º Ano Eng. Electrotécnica (Bolonha) 1º Exame (14/07/2007)

Manual Técnico Interface Modbus

Índice. Utilizando o integrado Operação monoestável (Temporizador) Operação astável (Oscilador)... 07

ESCOLA DE ENGEHARIA DE SÃO CARLOS - USP KELEN CRISTIANE TEIXEIRA VIVALDINI MOTOR DE CORRENTE CONTÍNUA MATERIAL COMPLEMENTAR

C:\seminario\guiao_aluno\trab9\trab9p2\trab9VoltUart.asm

Introdução aos Microcontroladores PIC

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

Programação de Robótica: Modo Circuitos Programados - Avançado -

Microprocessadores. Cap. 4 Assembly

PROGRAMAÇÃO DE UM MICROPROCESSADOR

Guia do Usuário Placa de Desenvolvimento McLab1

PROJETO DE REDES

A idéia hardware sugerida é colocar a placa entre o PC e o microcontrolador, conforme mostrado no esquema abaixo.

C.I Prof. Getúlio Teruo Tateoki

DEPARTAMENTO DE ELECTROTECNIA. João Paulo Baptista. Curso de Engenharia Electrotécnica Electrónica e Computadores

Solução por Software para Implementar PWM em qualquer Microcontrolador PIC

ACIONAMENTOS ELETRÔNICOS (INVERSOR DE FREQUÊNCIA)

LENDO SINAIS. O computador poderá tomar uma ou várias decisões ao mesmo tempo, conforme o dado lido através de sensores específicos.

Transcrição:

Servo-Motor por nuno_monteiro@portugalmail.com gabrieldinis@portugalmail.pt Um servo-motor é um pequeno dispositivo cujo veio pode ser posicionado numa determinada posição angular de acordo com um sinal codificado que lhe é enviado. Enquanto esse código persistir na entrada, o servo irá manter a sua posição angular. Se o código de entrada variar a posição angular também varia. Na prática os servo-motores são usados no controlo de aviões telecomandados, robots, etc. Figura 1 - Servo-Motores Os servo-motores são extremamente úteis em robótica. Os motores são pequenos, possuem internamente o circuito de controlo, engrenagens redutoras, mecanismo de posicionamento por feedback e são extremamente potentes para o seu tamanho. Um servo possui 3 entradas. Uma é a alimentação (+5 V), outra é a massa e a outra é a entrada de controlo. Um servo é controlado enviando-lhe um sinal PWM (Pulse Width Modulation), ou seja, a posição angular irá depender da largura do pulso enviado. Figura 2 Servo-Motor (mecanismo de feedback) - 1 -

O sinal de controlo é uma onda quadrada (0 a 5 V) de frequência igual a 50 Hz (também funciona a 60 Hz). A uma frequência de 50 Hz corresponde um período de 20 ms ( 1 / 50 = 20 ms). O sinal PWM a enviar terá de ter sempre o primeiro milisegundo a 5 V. A partir daí, durante o milisegundo seguinte, o tempo que o sinal se mantiver a 5 V irá determinar a posição do veio do servo-motor. Ou seja, se imediatamente após o primeiro milisegundo o sinal passar a ser de 0 V, então servo ir-se-á colocar na posição 0º. Se em vez disso, o sinal for durante o primeiro milisegundo igual a 5 V e se esse valor se mantiver durante o segundo milisegundo (igual a a 5 V) então o servo-motor ir-se-á colocar na posição 180º (a posição angular máxima de um servomotor é normalmente de 180º). Em qualquer dos casos, a partir do segundo milisegundo e durante os 18 ms restantes (2 ms +18 ms =20 ms) o sinal de controlo deverá ser de 0 V. Vemos assim que é o tempo, durante o segundo milisegundo, que o sinal se mantem a 5 V, que determina a posição angular do servo. Ou seja, se o servo tem um raio de acção de 180º então, como 1/180 5 µs, bastam incrementos de 5 µs, para alterar a posição do servo Exemplos de sinais PWM e respectiva posição angular: 1 ms a 5 V e 19 ms a 0 V corresponde a uma posição angular de 0º 1,005 ms a 5 V e 18,995 ms a 0 V corresponde a uma posição angular de 1º 1,010 ms a 5 V e 18,990 ms a 0 V corresponde a uma posição angular de 2º... e assim sucessivamente... 1,995 ms a 5 V e 18,005 ms a 0 V corresponde a uma posição angular de 2º 2 ms a 5 V e 18 ms a 0 V corresponde a uma posição angular de 180º Para controlar o servo-motor o sinal deverá ser o seguinte: 5 V e repetir-se... 0V 1 ms 1 ms 18 ms 20 ms Este sinal deve repetir-se para que o servo se posicione na posição angular pretendida e se mantenha lá imóvel. Uma forma de gerar este tipo de sinal é usando um microcontrolador. Neste caso foi usado o PIC16F84 da Microchip. - 2 -

Usou-se a PORTB (todos os pinos) como variável de entrada para o processo unicamente para demonstrar o funcionamento deste controlador de servo-motores. Em utilizações reais do servo, bastaria usar um pino de entrada e enviar os dados ao microcontroldor via protocolo série (RS-232, SPI, I2C, etc). Este circuito deve ser uma referência para outras utilizações de um servo. O código em assembly que controla o servo é o seguinte: ;######################################## ##################################### ;######################################## ##################################### ;################ Circuito usado no projecto de 5º ano - Mapa de proximidade por ultra-sons ############# ;######################################################################################################## ;######################################################################################################## #include p16f84.inc org 000h ; POWER_ON Reset goto Start org goto 004h Start angulo equ 0x0D oquesobra equ 0x0E contador equ 0x0A MS_REG equ 0x0B US_REG equ 0x0C Start call call PortsInit Inicializa_interrupts bcf PORTA,0 ; O pino RA0 é usado como saída e é ligado à entrada de controlo do servo ; Os pinos da PORTB (RB0, RB1, RB2..., RB7, são usados como entrada ; O registo PORTB funciona assim como a variável ; A posição angula do servo irá ser proporcional aos valores existentes em PORTB - 3 -

ciclo_geral movf PORTB,w movwf angulo sublw.255 movwf oquesobra movf PORTB,w movwf angulo ciclo ciclo2 bsf PORTA,0 movlw.1 call WaitMS ; esperar 1 ms - primeiro milisegundo decfsz angulo,f ; manter a 5 V o tempo proporcional ao valor em PORTB goto ciclo bcf PORTA,0 ; no fim desse tempo, fazer a transição para 0 V decfsz oquesobra,f ; manter a 0 V o tempo que falta até completar os primeiro 2 milisegundos goto ciclo2 movlw.18 ;A partir daqui apenas resta esperar os 18 milisegundos finais com a saída RA0 a 0 V call WaitMS goto ciclo_geral ; Repetir todo o processo. Este processo deve repetir-se para o servo manter a sua posição angular ;************************************************************************************************ ;* Subroutime : WaitMS * ;* Purpose : Software delay in ms * ;* Parameter : ms in W Register (W=0 -> Delay = 256mS) * ;* Return Value : W=0 * ;* Var usage : MS_REG, US_REG * ;* Subrot.used : None * ;************************************************************************************************ WaitMS movwf MS_REG ; Store ms movlw 0FEH ; Correct call time (included movwf US_REG ; 1 movlw before calling for first loop WLoopMS movlw 0F9H ; 1 Loop 249*WLoopUS+4Cycles addwf US_REG, F ; Destination is F Register WLoopUS ; One Loop=4 cycles decfsz US_REG, F ; USReg - 1, skip if zero goto WLoopUS decfsz MS_REG, F ; MSReg - 1, skip if zero goto WLoopMS ; correct time of last ms loop retlw 000h ; return with W=000h ;######################## Rotina PortsInit ##################################### PortsInit bcf STATUS, RP1 bcf STATUS, RP0 ; BANK 0 clrf PORTA clrf PORTB bsf STATUS, RP0 ; BANK 1 movlw b'11111111' ; Configuração da PORTB movwf PORTB movlw b'00000000' ; Configuração da PORTA movwf PORTA retlw 0 ;################################################################################## ;########################### Inicializa Interrupts ################################ Inicializa_interrupts bsf STATUS, RP0 ; BANK1 bcf STATUS, RP1 movlw b'10000000' movwf OPTION_REG - 4 -

bcf STATUS, RP0 bcf STATUS, RP1 ; BANK0 movlw b'00000000' movwf INTCON retlw 0 ;################################################################################# end - 5 -