tópicos especiais em sistemas digitais i projeto braço mecânico lucas eduardo waechter lucas rosa...

44
Tópicos Especiais em Tópicos Especiais em Sistemas Digitais I Sistemas Digitais I Projeto Braço Mecânico Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Eduardo Waechter Lucas Rosa Cruz Reginato Lucas Rosa Cruz Reginato

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Tópicos Especiais em Tópicos Especiais em Sistemas Digitais ISistemas Digitais I

Projeto Braço MecânicoProjeto Braço Mecânico

Lucas Eduardo WaechterLucas Eduardo WaechterLucas Rosa Cruz ReginatoLucas Rosa Cruz Reginato

Page 2: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

SumárioSumário

Visão geral do projetoVisão geral do projetoInterface com a Porta ParalelaInterface com a Porta Paralela

Dados do joystick;Dados do joystick; Bloco VHDL;Bloco VHDL;

Interface com a Porta SerialInterface com a Porta Serial Especificação do Braço Mecânico;Especificação do Braço Mecânico; Protocolo de Comunicação;Protocolo de Comunicação; Limitações;Limitações;

Interface com o Sensor TérmicoInterface com o Sensor Térmico Especificação do Sensor Térmico;Especificação do Sensor Térmico; Protocolo I2C;Protocolo I2C;

Page 3: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Visão Geral do ProjetoVisão Geral do Projeto

FPGA

Joystick

Porta

Paralela

Porta Serial(CPLD)

Braço Mecânico

Display

Interface coma paralela

Gerência dasInterfaces

Interface coma serial

Interface c/ sensor térm

ico

SensorTérmico

Page 4: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Joystick usado : MegaDrive da SegaJoystick usado : MegaDrive da SegaPor que usar a porta paralela :

• Conector do joystick é do tipo DB9 usado em interfaces seriais.

• Usamos um conector DB25 para adaptar o joystick para o porta paralela.

• Assim é possivel prototipar os dois módulos na mesma plataforma de prototipação visto que esta possui apenas uma interface serial e uma interface paralela.

Page 5: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Conector tipo DB25Conector tipo DB25

Para conexãocom o joystick

Para conexãocom a porta

pararela

Page 6: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Pinos do Joystick do MegaDrivePinos do Joystick do MegaDrive

169

5

Select 1PowerUpDownGround

Select 2RigthLeftPower

Motivação do uso deste Joystick:

• Cada pino do joystick representa um botão.

• Quando um botão é pressionado é lido o nível lógico ‘1’.

• Caso o botão não é acionado é lido o nivel lógico ‘0’.

• Pino ‘Select’ seleciona se será apertado os botões ‘A’ e ‘B‘ ou ‘C‘ e ‘Start’.Conector Fêmea do joystick

Page 7: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Mapeamento dos pinos DB9 para DB25Mapeamento dos pinos DB9 para DB25

169

5 1131425

Porta serial do Joystick Porta paralela da FPGA

Page 8: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Pinos do Joystick do MegaDrive usadosPinos do Joystick do MegaDrive usados

Tabela de Mapeamento da porta serial do joystick para a porta paralela do FPGA

Joystick FunctionJoystick Function DB9 PinosDB9 Pinos DB25 PinosDB25 Pinos CoresCores Tipo em relação ao joystickTipo em relação ao joystick

UpUp 11 1212 BrancoBranco InIn

DownDown 22 1515 AzulAzul InIn

LeftLeft 33 1010 CinzaCinza InIn

RigthRigth 44 1111 LaranjaLaranja InIn

PowerPower 55 3 a 93 a 9 VermelhoVermelho InIn

Button1Button1 66 1313 MarronMarron InIn

SelectSelect 77 22 AmareloAmarelo OutOut

GroundGround 88 18 a 1918 a 19 PretoPreto OutOut

Button 2Button 2 99 11 RoxoRoxo InIn

Page 9: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Caracteristicas da Porta ParalelaCaracteristicas da Porta Paralela• Quando um pino se encontra no nível lógico ‘1’, este possui 5V de tensão, e um pino em nível lógico ‘0’ possui tensão inferior a 0,5V.

Caracteristicas do JoystickCaracteristicas do Joystick• Para alimentar o pino ‘Power do Joystick’ com os 5V necessários conectamos os pinos 3 a 9 da porta paralela com diodos, para certificar que não ocorresse uma inversão acidental da corrente elétrica.

Código C para leitura da da porta paralelaCódigo C para leitura da da porta paralela• Aplicação desenvolvida em ambiente Linux, compilado com o GNU Compiler, certifica se os pinos foram corretamente conectados.

Page 10: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Código C para leitura do Joystick (1)Código C para leitura do Joystick (1)# includes <…>

#define LPT1_DATA 0x378+0#define LPT1_CTRL 0x378+1

void *monitor();pthread_t monitor_id;

int main(int argc, char* argv[]) {/* Chama alguns métodos de inicialização *//* Verifica permissao para trabalhar com a porta desejada */if (ioperm(LPT1_DATA, 3, 1)) {

perror("Cannot obtain access to write on port LPT1"); exit(1);

} pthread_create(&monitor_id, NULL, (void *)monitor, NULL);

pthread_join(monitor_id, NULL);exit(0);

}

Page 11: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Código C para leitura do Joystick (2)Código C para leitura do Joystick (2)void *monitor() { /*Porta que estamos trabalhando */

unsigned char data;

while(1) {/*Seta em '1' o sinal select */

write_data(0xFF);data = inb(LPT1_CTRL);

/* Se o pino 10 (esquerda) */ if((data & 0x40) == 0) draw_arrow('L'); else clear_arrow('L');

/* Se o pino 11 (direita) */ if((data & 0x80) == 0) draw_arrow('R'); else clear_arrow('R');

...

refresh(); usleep(1);}

}

Page 12: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Bloco VHDL criado para esta tarefaBloco VHDL criado para esta tarefa

Interface coma paralela

Dados recebidos da porta paralela

ACK

Send

Arm

Hand

Base

LR

.

.

.

.

Page 13: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta ParalelaInterface com a Porta Paralela

Máquina de estados do Bloco VHDLMáquina de estados do Bloco VHDL

Polling Read

Write

Recebendosinais

Decodificaçãodos sinais

Enviando sinaispara o bloco serial

Page 14: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Especificação do Braço MecânicoEspecificação do Braço Mecânico

• Criado pela Fischer Technik ( http://www.fischertechnik.de/ ), empresaalemã, na década de 90.

• Basicamente, é um lego.

• Possui 3 motores para comandar o braço mecânico

• Possui sensores que indicam que um determinado comando não pode mais executar, caso contrário o braço mecânico pode se desmontar.

• Possui uma interface ( placa ) que interpreta os movimentos do braço.Esta placa possui um processador 8051 a ser detalhado mais adiante.

Page 15: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Figura do Braco MecânicoFigura do Braco Mecânico

Motor que giraa base

Motor que girao braço

Motor que giraa mão

Page 16: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Protocolo de comunicação do Braço Mec.Protocolo de comunicação do Braço Mec.

Bits da palavra enviada para o Braço Mec.Bits da palavra enviada para o Braço Mec. ComandoComando FunçãoFunção

88 77 66 55 44 33 22 11

00 00 00 00 00 00 00 11 1L1L Move Base p/ EsquerdaMove Base p/ Esquerda

00 00 00 00 00 00 11 00 1R1R Move Base p/ DireitaMove Base p/ Direita

00 00 00 00 00 11 00 00 2L2L Move Braço p/ BaixoMove Braço p/ Baixo

00 00 00 00 11 00 00 00 2R2R Move Braço p/ CimaMove Braço p/ Cima

00 00 00 11 00 00 00 00 3L3L Abre a mãoAbre a mão

00 00 11 00 00 00 00 00 3R3R Fecha a mãoFecha a mão

00 11 00 00 00 00 00 00 4L4L Acende a LuzAcende a Luz

11 00 00 00 00 00 00 00 4R4R Acende a LuzAcende a Luz

Page 17: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Código C++ para controlar o Braço Mec. (1)Código C++ para controlar o Braço Mec. (1)#includes <...>

class Robo{char Motorword; /* Palavra a ser enviada p/ o robo */

char serial[4]; /* O Nome da porta serial aberta */

/* Abre a serial COM"ser" para o envio e recepção de Comandos do Robo*/int abreSerial(int ser) {

const char *com1="COM1",*com2="COM2",*com3="COM3",*com4="COM4"; switch(ser){

case 1: strcpy(serial,com1);

break; case 2:

strcpy(serial,com2); break;

case ....break;

} Fischer_install(); return 1;

}

Page 18: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Código C++ para controlar o Braço Mec. (2)Código C++ para controlar o Braço Mec. (2)/* Seta parametros para a porta serial e abre a conexão com a mesma */void Fischer_install(){

....int hCom = CreateFile(serial, /* nome da COM */GENERIC_READ | GENERIC_WRITE, /* acesso de RW */0, /* não usado */NULL, /* não usado */OPEN_EXISTING, /* requerido */0, /* não usado */NULL); /* não usado */....fSuccess = GetCommState(hCom, &dcb);....dcb.BaudRate = 9600; // 9600 Bauddcb.ByteSize = 8; // 8 Bitsdcb.Parity = NOPARITY; // no paritydcb.StopBits = ONESTOPBIT; // 1 stopbit

fSuccess = SetCommState(hCom, &dcb);....motors_off();

}

Page 19: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Código C++ para controlar o Braço Mec. (3)Código C++ para controlar o Braço Mec. (3)

/* Define o comando a ser executado */void motor(int num, char dir){

char Result; switch (dir){ case 'L':

Motorword = clearBit(Motorword, (num * 2)); // seta bit em 1Motorword = setBit(Motorword, (num * 2 - 1)); // seta bit em 0break;

case 'R':....break;

case ‘....’:....break;

}Result = input_word(); // escreve o comando para a interface

Motorword = '0x00'; // zera-se o comando para o próximo comando}

// Demais métodos..........

Page 20: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Bloco VHDL para decodificação dos comandosBloco VHDL para decodificação dos comandos

BraçoMecânico(Serial)

ACK

Send

Arm

Hand

Base

LR

word

Page 21: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Máquina de estados do Blobo VHDLMáquina de estados do Blobo VHDL

Wait Read

Write

Recebendosinais

Decodificaçãodos sinais

Enviando sinaispara a porta serial

Page 22: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Bloco VHDL para comunicação com a serialBloco VHDL para comunicação com a serial

InterfaceSerial

tx_data (8 bits)word (8 bits)

Onde :

• tx_data representa os dados a serem enviados para a serial• tx_av indica que existe dado disponível em tx_data

tx_av (1 bit)

Page 23: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Máquina de estados do Bloco VHDLMáquina de estados do Bloco VHDL

Read Write

Recebendosinais

Enviandosinais

Page 24: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com a Porta SerialInterface com a Porta Serial

Bloco VHDL completoBloco VHDL completo

BraçoMecânico(Serial)

ACK

Send

Arm

Hand

Base

LR

InterfaceSerial

word (8 bits)tx_data (8 bits)

tx_av (1 bit)

Page 25: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Digital Temperature Sensor with I2C Interface

• Modelo TMP101 – 2 fios, saída serial

• Não requer nenhum componente externo para funcionamento

• Resolução máxima de 0.0625°C.

• Comunicação pelas interfaces SMBus e I2C™

• Comporta até 8 sensores no mesmo barramento. O TMP101 oferece função SMBus de alerta com até 3 sensores por barramento

Page 26: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Características:

• Opera entre –55°C a +125°C.

• Saída digital: I2C Serial 2-vias.

• Resolução: 9 a 12-Bits, selecionável.

• Margem de Erro: ±2.0°C em –25°C a +85°C (max) e ±3.0°C de -55°C a +125°C (max)

• Fornecimento: 2.7V a 5.5V.

• TINY SOT23-6 PACKAGE.

Page 27: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Aplicações:• Monitoração de fontes de energia

• Proteção contra superaquecimento de periféricos em computadores

• Notebooks

• Telefones Celulares

• Controle de baterias

• Máquinas de escritório

• Controles termostáticos

• Monitoramento de ambientes

• Controle de temperatura de componentes eletro-mecânicos

Page 28: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Esquemático do Sensor Térmico

Page 29: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor TérmicoCaracterísticas ElétricasCaracterísticas Elétricas

Page 30: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Características Típicas (1)Características Típicas (1)

Page 31: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Características Típicas (2)Características Típicas (2)

Page 32: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Estrutura de registrosEstrutura de registros

PointerRegister

I/O ControlInterface

ThighRegister

TlowRegister

ConfigurationRegister

TemperatureRegister

SCL

SDA

Page 33: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

P7

0

P5

0

P6

0

P4

0

P3

0

P1

Register Bits

P2

0

P0

P1 P0 Register

0011

0101

Temperature Register (r)Configuration Register (rw)Tlow (rw)Thigh (rw)

D7

T11

D5

T9

D6

T10

D4

T8

D3

T7

D1

T5

D2

T6

D0

T4

D7

T3

D5

T1

D6

T2

D4

T0

D3

0

D1

0

D2

0

D0

0

Registradores (1):Registradores (1):

• Pointer Register

• Temperature Register

Page 34: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Registradores (2):Registradores (2):

D7

Alert

D5

R0

D6

R1

D4

F1

D3

F0

D1

TM

D2

POL

D0

SD

D7

H11

D5

H9

D6

H10

D4

H8

D3

H7

D1

H5

D2

H6

D0

H4

D7

L3

D5

L1

D6

L2

D4

L0

D3

0

D1

0

D2

0

D0

0

D7

L11

D5

L9

D6

L10

D4

L8

D3

L7

D1

L5

D2

L6

D0

L4

D7

H3

D5

H1

D6

H2

D4

H0

D3

0

D1

0

D2

0

D0

0

• Tlow e Thigh RegistersTlow e Thigh Registers

• Configuration RegisterConfiguration Register

Page 35: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Registrador de Configurações (1)Registrador de Configurações (1)D7

Alert

D5

R0

D6

R1

D4

F1

D3

F0

D1

TM

D2

POL

D0

SD

Shutdown mode

Thermostat mode

Polarity

Fault Queue

Resolution

R1 R0 ResolutionConversion

Time0011

0101

9 bits (0.5)10 bits (0.25)

11 bits (0.125)12 bits (0.0625)

40 ns80 ns

160 ns320 ns

T1 T0Consecutive

Faults0011

0101

1246

SDConsecutive

Faults0011

1246

Page 36: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Registrador de Configurações (2)Registrador de Configurações (2)• Controle de AlertasControle de Alertas

Page 37: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (1)Protocolo I2C (1)

Introdução:Introdução:O custo de comunicação entre componentes O custo de comunicação entre componentes tem que ser sempre o mínimo possíveltem que ser sempre o mínimo possívelA eficiência geral depende dos componentes e A eficiência geral depende dos componentes e da estrutura de interconexãoda estrutura de interconexãoPara satisfazer essa necessidade, uma conexão Para satisfazer essa necessidade, uma conexão serial é a melhor escolhaserial é a melhor escolhaPor que? Menos fios e menos pinos de conexãoPor que? Menos fios e menos pinos de conexão

Page 38: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (2)Protocolo I2C (2)O I2C comporta ICs NMOS, CMOS, I2L, O I2C comporta ICs NMOS, CMOS, I2L, entre outrosentre outros2 fios (2 wires concept), Serial Data (SDA) 2 fios (2 wires concept), Serial Data (SDA) e Clock Serial (SCL), Carry Information e Clock Serial (SCL), Carry Information entre os ICs conectados ao mesmo entre os ICs conectados ao mesmo barramentobarramentoCada IC tem um endereço único no Cada IC tem um endereço único no barramentobarramento

Page 39: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (3)Protocolo I2C (3)

Cada IC pode operar como transmissor ou Cada IC pode operar como transmissor ou receptor, não importando se é um receptor, não importando se é um keyboard, um LCD, Sensor, Memória ou keyboard, um LCD, Sensor, Memória ou qualquer outra coisaqualquer outra coisa

Conceito de Master/SlaveConceito de Master/Slave

Multi-Masters em um barramentoMulti-Masters em um barramento

Page 40: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (4)Protocolo I2C (4)

SDASCL

LCD Driver

RAM Estática ou EEPROM

Micro computador B

Micro computador A

Sensor Térmico

I2C BUS

Page 41: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (5)Protocolo I2C (5)Transmissor: o I2C que manda dados para o barramentoTransmissor: o I2C que manda dados para o barramentoReceptor: o I2C que recebe dados do barramentoReceptor: o I2C que recebe dados do barramentoMaster: inicia a transmissão, gera o clock e acaba a Master: inicia a transmissão, gera o clock e acaba a transmissãotransmissãoSlave: IC endereçado pelo MasterSlave: IC endereçado pelo MasterMulti-Master: mais que um Master pode tentar controlar o Multi-Master: mais que um Master pode tentar controlar o barramento sem corromper as mensagensbarramento sem corromper as mensagensArbritration: Procedimento que garante que se mais de um Arbritration: Procedimento que garante que se mais de um Master tentar simultaneamente ganhar o controle do Master tentar simultaneamente ganhar o controle do barramento, somente um é permitido o fazer e não barramento, somente um é permitido o fazer e não corromper as mensagens de amboscorromper as mensagens de ambosSincronização: sincroniza clocks de 2 ou mais IcsSincronização: sincroniza clocks de 2 ou mais Ics

Page 42: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Protocolo I2C (6)Protocolo I2C (6)

1 2 7 8 9

Start End

Ack signal from receiver

Byte complete. Interrupt within receiver

Clock line held low while interrupts are serviced

Ack

Ack from Receiver

Transferência de dados no barramento I2C

SDA

SCLMSB

1 2 3-8 9Ack

Page 43: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

Interface com o Sensor TérmicoInterface com o Sensor Térmico

Acoplagem do Sensor a um FPGAAcoplagem do Sensor a um FPGA

Braço Mecânico

FPGA

Pinos

ST

Page 44: Tópicos Especiais em Sistemas Digitais I Projeto Braço Mecânico Lucas Eduardo Waechter Lucas Rosa Cruz Reginato

ConclusãoConclusão

• O braço mecânico é incapaz de efetuar uma rotação de 360 graus na base e na mão.

• Possui pouco mobilidade em seu braço, ou seja, não podemos levantar ou baixar demais o braço mecânico.

• Esperamos que este trabalho sirva de incentivo para trabalhos futuros.

• Esperamos ter uma maior mobilidade do braço mecânico.

•Código portável para qualquer placa FPGA.

Limitações e Futuras implementaçõesLimitações e Futuras implementações