34
Introdução ao Basic Stamp Universidade de Passo Fundo Curso de Engenharia Elétrica Prof. Fernando Passold (2013) Prof. Adriano Luís Toazza (2012)

Basic step1

Embed Size (px)

DESCRIPTION

Material para alunos do curso de Introdução à Engenharia Elétrica, Universidade de Passo Fundo, linha de Mecatrônica.

Citation preview

Page 1: Basic step1

Introdução ao Basic Stamp

Universidade de Passo Fundo Curso de Engenharia Elétrica

Prof. Fernando Passold (2013)

Prof. Adriano Luís Toazza (2012)

Page 2: Basic step1

O Microcontrolador Basic Step

§  É uma versão brasileira do Basic Stamp I, kit do fabricante americano Parallax à www.tato.ind.br

§  Fácil de programar (linguagem BASIC) pois os comando estão em português e inglês.

§  Alimentação de 7,5V a 15V

§  Possui 8 entradas e saídas com capacidade de corrente de até 25mA (um led comum consome tipicamente uns 12 mA) 1 mA = 0,001 A

Page 3: Basic step1

Basic Step

Portas de Entra/Saída (conexões)

PIC16C56 microchip

Page 4: Basic step1

Basic Stamp

§ uC: Microchip PIC 16C56a § 4 MHz; § 2.000 instruções/seg; § RAM: 16 bytes (2 I/O, 14

variáveis); § EEPROM: 256 bytes, 80

instruções; § 1 mA Run/ 25 uA Slep; § 32 comandos BASIC

Page 5: Basic step1

Basic Step - Software

§ O Basic Step é programado pela linguagem Tbasic ou Pbasic ambas muito fácil de programar (uma em inglês e a outra em português)

Page 6: Basic step1

Basic Step

Page 7: Basic step1

Compilador – barra de ferramentas

Page 8: Basic step1

Programação do Basic Step

§ Para programar o Basic Stamp são necessários: F Placa do Basic Step

F  Fonte de alimentação CC

F  Compilador Basic Step

F  Computador

F  Cabo de gravação (serial)

Page 9: Basic step1

Intro. Eletrônica Digital

§ Alguns conceitos: -  Estado: situação em que se encontra parte do circuito. No caso de

sistemas digitais, só existem 2 estados distintos: 2 possibilidades, conhecido como sistema binário (2), cujos algarismos (ou estados) são: “0” ou “1”.

-  O “0” poder ser interpretado como desligado, apagado, desativado, desconectado; Em eletrônica digital à “0”: nível lógico BAIXO

-  O “1” pode ser interpretado como ligado, acesso, ativado, conectado; Em eletrônica digital à “1”: nível lógico ALTO.

Page 10: Basic step1

Experimento 1

K- A+ Chanfro

Amarelo,violeta, marrom, dourado = 470 Ohms, 5%

Laranja, laranja, marrom, dourado = 330 Ohms, 5% ou

Page 11: Basic step1

Experimento 1

Programa: output 0 novamente: pin0=0 pause 1000 pin0=1 pause 1000 goto novamente

K- A+ Chanfro

Page 12: Basic step1

Experimento 1

Page 13: Basic step1

Experimento 1

Page 14: Basic step1

Lista de Instruções (Palavras reservadas do Basic Stamp)

Page 15: Basic step1

Experimento 2 – Trabalhando com saídas

a) Sinalizador para saída de veículos Faça um programa capaz de alternar o estado dos leds.

K- A+ Chanfro

Page 16: Basic step1

Experimento 2 – Trabalhando com saídas

a) Sinalizador para saída de veículos

Faça um programa capaz de alternar o estado dos leds. Exemplo: repita: low 0 ‘nível baixo na porta 0 high 0 ‘nível alto na porta 0 pause 500 ‘espera 0,5 seg low 1 ‘nível alto na porta 1 high 0 ‘nível baixo na porta 0 pause 500 goto repita

Page 17: Basic step1

Experimento 2 – Trabalhando com saídas

b) Seqüencial de 6 canais

K- A+ Chanfro

Page 18: Basic step1

Experimento 2 – Trabalhando com saídas

Observações

Page 19: Basic step1

Variáveis no Basic Stamp

§ Para declarar variáveis usar comando ‘symbol’: Ex.: symbol  contador  =  b0  

§ 3 tipos de variáveis disponívels: bit, byte (8 bits) e word (16 bits). § Declarar variáveis do menor tipo possível (economizar memória);

§ O Basic Stamp possui número limitado de variáveis (máximo): -  7 variáveis do tipo word (w0 até w6);

-  14 variáveis do tipo byte (b0 até b13) e

-  16 variáveis do tipo bit (bit0 até bit15).

§ 1 variável tipo byte: números de 0 até 255 (2^8 -1);

§ 1 variável tipo word: números de 0 até 65.535 (2^16-1). § Na prática o uC do Basic Stamp I disponibiliza apenas 14 registradores

de 8 bits cada um!

Page 20: Basic step1

Variáveis no Basic Stamp

§  Para declarar variáveis usar comando ‘symbol’: Ex.: symbol  contador  =  b0  

§  3 tipos de variáveis disponívels: bit, byte (8 bits) e word (16 bits).

§  Declarar variáveis do menor tipo possível (economizar memória);

§  O Basic Stamp possui número limitado de variáveis (máximo): -  7 variáveis do tipo word (w0 até w6);

-  14 variáveis do tipo byte (b0 até b13) e -  16 variáveis do tipo bit (bit0 até bit15).

§  1 variável tipo byte: números de 0 até 255 (2^8 -1);

§  1 variável tipo word: números de 0 até 65.535 (2^16-1).

§  Na prática o uC do Basic Stamp I disponibiliza apenas 14 registradores de 8 bits cada um!

Notar: Se w0  =  1201 à Implica em: b1 = 4 e b0 = 177 Ou seja: 1201 / 256 = 4 1201 - 256*4 = 1201 – 1024 = 177

Page 21: Basic step1

Exemplo usando variáveis Experimento 2) b)

2^6 = 64

Page 22: Basic step1

Experimento 2 – Trabalhando com saídas

c) Contador de década

§ Monte o circuito da figura ao lado.

§ Não esquecer de incluir resistores de 470 Ohms na conexão (série) de cada terminal do display com cada porta do Basic Step (sob pena de danificar o Display)!

Page 23: Basic step1

Experimento 2 – Trabalhando com saídas

d) Display “especial”

§ Melhore o programa anterior (simples contador), para outro que consiga mostrar outros caracteres no display:

Page 24: Basic step1

Experimento 2 – Trabalhando com saídas

e) Gerando tons musicais

O Basic Step possui um comando próprio para gerar tons musicais e ruídos. Todos os comandos utilizados pelo Basic Step podem ser consultados detalhadamente no “help” do compilador.

Pin 7

Page 25: Basic step1

Experimento 2 – Trabalhando com saídas

e) Gerando tons musicais aleatoriamente

O Basic Step possui um comando próprio para gerar notas musicais e ruídos “ SOUND “

Page 26: Basic step1

Experimento 2 – Trabalhando com saídas

e) Gerando tons musicais aleatoriamente

O Basic Step possui um comando próprio para gerar notas musicais e ruídos “ SOUND “

SOUND  pino,  (nota,  duração)  

Onde: nota varia de 0 127

duração varia de 1 a 255 “passos” de 12 ms

Monte o circuito abaixo e conecte o “+” do capacitor no pino 7 do Basic Step

Page 27: Basic step1

Experimento 2 – Trabalhando com saídas

e) Gerando tons musicais aleatoriamente

PROGRAMA: Gera tons aleatórios

repete:  

SOUND  7,(20,100,56,100,100,100,120,100)  'gera  tons  musicais  

SOUND  7,  (250,140)  'gera  certo  tom  por  determinado  tempo  

GOTO  repete  

Monte o circuito abaixo e conecte o “+” do capacitor no pino 7 do Basic Step

Page 28: Basic step1

Experimento 2 – Trabalhando com saídas

e) Gerando tons musicais aleatoriamente

PROGRAMA: Gera tons aleatórios 2

for  b2  =  0  to  127  

 SOUND  7,(25,10,b2,10)  'sound  pino,  (nota,  duração)  

Next                                                                    

'nota  [0..127]    duração  [1..  255  passos  de  12ms]  

Monte o circuito abaixo e conecte o “+” do capacitor no pino 7 do Basic Step

Page 29: Basic step1

Experimento 3 – Trabalhando com entradas

a) Teclando tons musicais

Para declarar um pino como entrada utiliza-se o comando input e como saída o comando output. Porém, se não for declarado, todos os pinos estão configurado para serem entrada.

Page 30: Basic step1

Usando chaves push-botton

Vista superior: Eletricamente:

Forma de usar no proto-board: Pistas (contatos) do proto-board:

Note a separação

elétrica

Page 31: Basic step1

Desafio Proposto

§  Jogo de Memória; § Efeito luminoso aleatório;

§ Efeito luminoso + sonoro (jogo infantil)

Page 32: Basic step1

Comandos Avançados

§ GOSUB rotina ‘ ou EXECUTE ... end ‘ término do programa, não avança para próximas linhas rotina: ... return ‘ fim da sub-rotina, retorno da sub-rotina.

Page 33: Basic step1

Experimento 3 – Trabalhando com entradas

b) Escolhendo um Led: dentre 4 led’s será possível escolher um deles por intermédio de um único interruptor Este circuito utiliza o mesmo princípio de alguns relógios digitais e outros equipamentos eletrônicos. Uma tecla permite selecionar várias funções (led).

Page 34: Basic step1

Experimento 3 – Trabalhando com entradas

b) Escolhendo um Led: dirs=%01111111    ‘pino  7  declarado  como  entrada,  demais  como  saída  let  b2=0:b3=0:b4=0    ‘zera  algumas  variáveis  ‘pins=$7f    loop:  if  pin7=0  then  proximo        'quando  o  botão  é  acionado  vai  para      

 rotina  proximo  goto  loop                                      ‘senão  salta  para  loop    proximo:                                  ‘rotina  que  irá  incrementar  os  led’s  pause  300  if  b3<4  then  tabela            'se  b3  for  menor  que  4  salta  para  tabela        b3=0                                    'se  b3  for  maior  que  4  b3  e  b4  serão  zeradas        b4=0  tabela:                                          'rotina  que  contém  a  tabela  de  saída  lookup  b3,(14,13,11,7),pins  b3=b3+1                                          'incrementa  em  uma  unidade  b4=b4+30  SOUND  6,(b4,20)  goto  loop                          'salta  para  o  início  do  programa