basic step1

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)

Upload: fernando-passold

Post on 19-Jun-2015

562 views

Category:

Education


2 download

DESCRIPTION

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

TRANSCRIPT

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