Upload
fernando-passold
View
562
Download
2
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
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