Post on 19-Jun-2015
description
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