basic step1

Post on 19-Jun-2015

562 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Introdução ao Basic Stamp

Universidade de Passo Fundo Curso de Engenharia Elétrica

Prof. Fernando Passold (2013)

Prof. Adriano Luís Toazza (2012)

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

Basic Step

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

PIC16C56 microchip

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

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)

Basic Step

Compilador – barra de ferramentas

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)

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.

Experimento 1

K- A+ Chanfro

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

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

Experimento 1

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

K- A+ Chanfro

Experimento 1

Experimento 1

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

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

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

Experimento 2 – Trabalhando com saídas

b) Seqüencial de 6 canais

K- A+ Chanfro

Experimento 2 – Trabalhando com saídas

Observações

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!

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

Exemplo usando variáveis Experimento 2) b)

2^6 = 64

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)!

Experimento 2 – Trabalhando com saídas

d) Display “especial”

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

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

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 “

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

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

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

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.

Usando chaves push-botton

Vista superior: Eletricamente:

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

Note a separação

elétrica

Desafio Proposto

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

§ Efeito luminoso + sonoro (jogo infantil)

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.

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

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  

top related