Este documento apresenta um resumo sobre o microcontrolador Basic Stamp e sua programação. Em 3 frases:
O Basic Stamp é um microcontrolador programável através da linguagem BASIC que possui 8 entradas/saídas digitais, memória RAM de 16 bytes e EEPROM de 256 bytes. Ele é alimentado entre 7,5V e 15V e programado usando um computador, compilador e cabo serial. O documento explica conceitos básicos de eletrônica digital e fornece exemplos de programação do Basic Stamp para controlar saídas digitais e
1. Universidade de Passo Fundo
Curso de Engenharia Elétrica
Introdução
ao Basic Stamp
Prof. Fernando Passold (2013)
Prof. Adriano Luís Toazza (2012)
2. 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
3. Basic Step
Portas de Entra/Saída
(conexões)
PIC16C56 microchip
5. 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)
8. 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)
9. 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.
15. 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.
Chanfro
A+ K-
16. 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
17. Experimento 2 – Trabalhando com saídas
b) Seqüencial de 6 canais
Chanfro
A+ K-
19. 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!
20. 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). Notar:
Se w0
=
1201 à Implica em:
§ 1 variável tipo byte: números de 0 até 255 (2^8
b1 = 4 e b0 = 177
-1);
Ou seja:
§ 1 variável tipo word: números de 0 até 65.535 1201 / 256 = 4
(2^16-1).
1201 - 256*4 = 1201 – 1024 = 177
§ Na prática o uC do Basic Stamp I disponibiliza
apenas 14 registradores de 8 bits cada um!
22. 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)!
23. Experimento 2 – Trabalhando com saídas
d) Display “especial”
§ Melhore o programa anterior (simples
contador), para outro que consiga mostrar
outros caracteres no display:
24. 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
25. 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 “
26. 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
27. 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
28. 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
29. Experimento 3 – Trabalhando com entradas
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.
a) Teclando tons musicais
30. Usando chaves push-botton
Note a
separação
Vista superior: elétrica Eletricamente:
Pistas (contatos)
Forma de usar no proto-board: do proto-board:
31. Desafio Proposto
§ Jogo de Memória;
§ Efeito luminoso aleatório;
§ Efeito luminoso + sonoro (jogo infantil)
32. 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.
33. 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).
34. 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