Escolar Documentos
Profissional Documentos
Cultura Documentos
Aprender a Programar
um Raspberry Pi
● Computador
● Pequeno
● Barato
● Baixo consumo
● Educativo
2
Versão mais recente
3
Tabela comparativa de versões
4
Sense Hat?
5
Sense Hat?
6
AstroPi na ISS
7
O que se pode fazer com o RaspberryPi na
Terra?
• Computador de secretária
8
O que se pode fazer com o RaspberryPi na
Terra?
• Computador de secretária
• Aprender programação
9
O que se pode fazer com o RaspberryPi na
Terra?
• Computador de secretária
• Aprender programação
• Web server
10
O que se pode fazer com o RaspberryPi na
Terra?
• Computador de secretária
• Aprender programação
• Web server
• Computação embebida
11
Sistemas Operativos:
https://www.raspberrypi.org/
12
Recursos
13
Programação em Scratch 1.4
Ativar GPIO
14
Formatar fundo da matriz de LED’s
15
Formatar cor do texto
16
Formatar velocidade texto
17
Exibir mensagens
18
Exibir mensagens
19
Exibir uma letra
20
iluminar um LED
21
Joystick do sense hat
22
PyCamera
23
Sensores do Sense Hat
24
Programar em Scratch 2.0
25
Programar em Scratch 2.0
27
Programação em Python
28
Formatar fundo da matriz de LED’s
29
Formatar cor do texto
30
Formatar velocidade texto
31
Exibir mensagens
sense.show_message("astropi”)
32
Exibir mensagens
sense.show_message("astropi”, scroll_speed=0.05 ,
text_colour=[255,0,0] , back_colour=[0,255,255])
33
Exibir uma letra
sense.show_letter("A”)
34
A matriz é um sistema de coordenadas x,y que
começa no zero e no topo à esquerda (porta
HDMI para baixo)
iluminar um LED
35
Joystick do sense hat
sense.stick.direction_middle =
sense.stick.direction_up = …
sense.stick.direction_down = …
sense.stick.direction_left = …
sense.stick.direction_right = …
36
PyCamera
#importar biblioteca da camera #inicia visualização
from picamera import PiCamera camera.start_preview()
#captura fotografia
Camera.capture(‘imagem.jpeg’)
39
Ler e apresentar a Temperatura, Pressão e
Humidade
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
40
Ler e apresentar a Temperatura, Pressão e
Humidade
# Arredondar com uma casa decimal
t = round(t, 1)
p = round(p, 1)
h = round(h, 1)
# Criar a mensagem a apresentar
msg = "Temperatura = %s C, Pressao=%s hPa, Humidade=%s %%" % (t,p,h)
sense.show_message(msg, scroll_speed=0.05)
# gravar e correr o programa
41
Avisar o Astronauta que há problemas na
temperatura (função if)
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
42
Avisar o Astronauta que há problemas na
temperatura (função if)
while True: # Loop
t = sense.get_temperature() # Ler temperatura e guardar em t
p = sense.get_pressure() # Ler pressão e guardar em p
h = sense.get_humidity() # Ler Humidade e guardar em h
t = round(t, 1) # Arredondar
p = round(p, 1)
h = round(h, 1)
43
Avisar o Astronauta que há problemas na
temperatura (função if)
if t > 18.3 and t < 26.7: # dentro do loop, se 18.3<t<26.7 o fundo fica verde
fundo = g
else: # fora do intervalo anterior o fundo fica vermelho
fundo = r
44
Avisar o Astronauta que há problemas na
temperatura, pressão e/ou humidade
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
45
Avisar o Astronauta que há problemas na
temperatura, pressão e/ou humidade
while True: # Loop
t = sense.get_temperature() # Ler temperatura e guardar em t
p = sense.get_pressure() # Ler pressão e guardar em p
h = sense.get_humidity() # Ler Humidade e guardar em h
46
Avisar o Astronauta que há problemas na
temperatura, pressão e/ou humidade
if t > 18.3 and t < 26.7 and p > 979 and p < 1027 and h > 58 and h < 62:
fundo = g
else: #fora dos intervalos anteriores o fundo fica vermelho
fundo = r
47
Exemplos de Atividades IBSE
http://www.golabz.eu/spaces/energia-t%C3%A9rmica-na-iss
http://www.golabz.eu/spaces/como-manter-tua-casa-modelo-quente-18
48
Acelerómetro
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
49
Acelerómetro
print("x=%s, y=%s, z=%s" % (x, y, z)) # Apresentar no monitor
50
Utilizar o acelerómetro para rodar uma
imagem
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
51
Utilizar o acelerómetro para rodar uma
imagem
seta=[e,e,e,r,r,e,e,e,# criar imagem
e,e,r,r,r,r,e,e,
e,r,r,r,r,r,r,e,
r,r,e,r,r,e,r,r,
r,e,e,r,r,e,e,r,
e,e,e,r,r,e,e,e,
e,e,e,r,r,e,e,e,
e,e,e,r,r,e,e,e]
52
Utilizar o acelerómetro para rodar uma
imagem
sense.set_pixels(seta) # Mostrar “seta” na matriz
53
Utilizar o acelerómetro para rodar uma
imagem
if x == -1: # dentro do Loop
sense.set_rotation(180)
elif y == 1:
sense.set_rotation(90)
elif y == -1:
sense.set_rotation(270)
else:
sense.set_rotation(0) # gravar e correr o programa
54
Sensor de vibrações
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
while True:
x, y, z = sense.get_accelerometer_raw().values()
x = abs(x)
y = abs(y)
z = abs(z)
55
Sensor de vibrações
if x > 2 or y > 2 or z > 2:
sense.show_letter("!", text_colour=[255, 0, 0])
else:
sense.clear()
56
Deteção de movimento com IMU (inertial
measurement unit)
Definição dos eixos:
57
Deteção de movimento com IMU (inertial
measurement unit)
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
while True:
inclinacao, rotacao, direcao = sense.get_orientation().values()
58
Gravar dados experimentais num ficheiro
CSV (comma-separated values)
from sense_hat import SenseHat # Importar bibliotecas...
sense = SenseHat()
import time
59
Gravar dados experimentais num ficheiro
CSV (comma-separated values)
for n in range(20): # cria uma série de 20 dados
t=sense.get_temperature() # guarda valor da temperatura
t=round(t,2) # arredonda com 2 casas décimais
2. Escrever:
3. sudo nano /etc/rc.local
61
Exemplos de Atividades IBSE
62
Links úteis
API do Sense Hat
https://pythonhosted.org/sense-hat/api/
Simulador on-line
https://trinket.io/sense-hat
63