# data[].attributes.body
Raspberry Pi Sense HAT 실행 권한

video, input, i2c 그룹에 속해있어야 실행 가능

sudo usermod -aG video <username>
sudo usermod -aG input <username>
sudo usermod -aG i2c <username>

# data[].attributes.body
https://lucid-jepsen-1cdf6a.netlify.com/

# data[].attributes.body
https://teachablemachine.withgoogle.com/models/34u_5FiK/

# data[].attributes.body
https://www.tinkercad.com/things/aNMm17Xb49d

# data[].attributes.body
https://thirsty-darwin-355efc.netlify.com

# data[].attributes.body
https://determined-booth-fc4bee.netlify.com/

# data[].attributes.body
https://gist.githubusercontent.com/L4by/024c9a702d1562135b22ac67bd798657/raw/df411c5e60140643736442a39ea15ba399343e08/main.py

# data[].attributes.headline
충북고등학교 10901 김동현

# data[].attributes.subject
충북고등학교 10901 김동현

# data[].attributes.body
탈모 위험군 진단기

# data[].attributes.attachment_link.description
Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more - no expertise or coding required.

# data[].attributes.body
작동 동영상, 사진 -> 블로그
https://blog.naver.com/dmsql7544/221759492286

# data[].attributes.attachment_link.title
내가 사는 별의 이름은 : 네이버 블로그

# data[].attributes.headline
충북고등학교 10917 장우진 

# data[].attributes.subject
충북고등학교 10917 장우진 

# data[].attributes.body
안구 질병 검사기

# data[].attributes.attachment_link.description
Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more - no expertise or coding required.

# data[].attributes.headline
인공지능 개발 라이브러리

# data[].attributes.subject
인공지능 개발 라이브러리

# data[].attributes.body
텐서플로우

# data[].attributes.attachment_link.description
모두를 위한 엔드 투 엔드 오픈소스 머신러닝 플랫폼입니다. 도구, 라이브러리, 커뮤니티 리소스로 구성된 TensorFlow의 유연한 생태계를 만나 보세요.

# data[].attributes.body
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
sum_t=0
sum_h=0
sum_p=0

for i in range(24):
i+=1
sum_t=sum_t+sense.get_temperature()
sum_h=sum_h+sense.get_humidity()
sum_p=sum_p+sense.get_pressure()
sleep(3600)
if i==23:
aver_t=sum_t/24.0
aver_h=sum_h/24.0
aver_p=sum_p/24.0
aver_t=round(aver_t,1)
aver_h=round(aver_h,1)
aver_p=round(aver_p,1)
sense.show_message("Average temperature:"+str(aver_t)+"Average humidity:"+str(aver_h)+"Average pressure"+str(aver_p))

# data[].attributes.headline
충북고등학교 10917 장우진

# data[].attributes.subject
충북고등학교 10917 장우진

# data[].attributes.body
from sense_hat import SenseHat
sense = SenseHat()

while True:
sense.clear()
# Take readings from all three sensors
t = sense.get_temperature()
p = sense.get_pressure()
h = sense.get_humidity()

yellow = (15,15, 0)

# Round the values to one decimal place
t = round(t, 1)
p = round(p, 1)
h = round(h, 1)

# Create the message
# str() converts the value to a string so it can be concatenated
Temp = "Temperature: " + str(t)
Humid =  " Humidity: " + str(h)
Press = " Pressure: " + str(p)
D1 = 0.01*h
D2 = 0.99*t-14.3
d  = 0.81*t+D1*D2+46.3
d = round(d, 1)
Discom = "Discomfort index: " + str(d)

for event in sense.stick.get_events():
# Check if the joystick was pressed
if event.action == "pressed":
sense.clear()
# Check which direction
if event.direction == "up":
sense.show_message(Press, scroll_speed=0.01)     # Up arrow
elif event.direction == "down":
sense.show_message(Discom, scroll_speed=0.01 )      # Down arrow
elif event.direction == "left":
sense.show_message(Temp, scroll_speed=0.01)   # Left arrow
elif event.direction == "right":
sense.show_message(Humid, scroll_speed=0.01)     # Right arrow
elif event.direction == "middle":
sense.stick.direction_middle = sense.show_message("Have a Nice day, sir!", back_colour = yellow,scroll_speed=0.1) # Enter key
sense.clear()

# data[].attributes.body
import sys
from time import sleep

sense = SenseHat()

green = (0, 255, 0)
yellow = (255, 255, 0)
blue = (0, 0, 255)
red = (255, 0, 0)
white = (255,255,255)
nothing = (0,0,0)
pink = (255,105, 180)
skyblue=(0,128,255)
cyan=(128,255,255)

while True:

# Take readings from all three sensors
t = sense.get_temperature()
p = sense.get_pressure()
h = sense.get_humidity()

# Round the values to one decimal place
t = round(t, 1)
p = round(p, 1)
h = round(h, 1)

message_t = "Temperature: " + str(t)
message_p = " Pressure: " + str(p)
message_h = " Humidity: " + str(h)

for event in sense.stick.get_events():
# Check if the joystick was pressed
sense.set_pixel(7,4,white)
sense.set_pixel(6,4,white)
sense.set_pixel(5,5,white)
sense.set_pixel(4,5,white)
sense.set_pixel(3,5,white)
sense.set_pixel(2,6,white)
sense.set_pixel(1,6,white)
sense.set_pixel(0,6,white)
sense.set_pixel(7,5,cyan)
sense.set_pixel(6,5,cyan)
sense.set_pixel(5,6,cyan)
sense.set_pixel(4,6,cyan)
sense.set_pixel(3,6,cyan)
sense.set_pixel(2,7,cyan)
sense.set_pixel(1,7,cyan)
sense.set_pixel(0,7,cyan)
sense.set_pixel(7,6,skyblue)
sense.set_pixel(6,6,skyblue)
sense.set_pixel(5,7,skyblue)
sense.set_pixel(4,7,skyblue)
sense.set_pixel(3,7,skyblue)
sense.set_pixel(7,7,blue)
sense.set_pixel(6,7,blue)
sense.set_pixel(0,0,yellow)
sense.set_pixel(1,0,yellow)
sense.set_pixel(2,0,yellow)
sense.set_pixel(3,0,yellow)
sense.set_pixel(4,0,yellow)
sense.set_pixel(5,0,yellow)
sense.set_pixel(6,0,yellow)
sense.set_pixel(7,0,yellow)
sense.set_pixel(0,1,yellow)
sense.set_pixel(1,1,yellow)
sense.set_pixel(2,1,yellow)
sense.set_pixel(3,1,yellow)
sense.set_pixel(4,1,yellow)
sense.set_pixel(5,1,yellow)
sense.set_pixel(6,1,yellow)
sense.set_pixel(7,1,yellow)
sense.set_pixel(0,2,yellow)
sense.set_pixel(1,2,yellow)
sense.set_pixel(2,2,yellow)
sense.set_pixel(3,2,yellow)
sense.set_pixel(4,2,yellow)
sense.set_pixel(5,2,yellow)
sense.set_pixel(6,2,yellow)
sense.set_pixel(7,2,yellow)
sense.set_pixel(0,3,yellow)
sense.set_pixel(1,3,yellow)
sense.set_pixel(2,3,yellow)
sense.set_pixel(3,3,yellow)
sense.set_pixel(4,3,yellow)
sense.set_pixel(5,3,yellow)
sense.set_pixel(6,3,yellow)
sense.set_pixel(7,3,yellow)
sense.set_pixel(0,4,yellow)
sense.set_pixel(1,4,yellow)
sense.set_pixel(2,4,yellow)
sense.set_pixel(3,4,yellow)
sense.set_pixel(4,4,yellow)
sense.set_pixel(5,4,yellow)
sense.set_pixel(0,5,yellow)
sense.set_pixel(1,5,yellow)
sense.set_pixel(2,5,yellow)
if event.action == "pressed":

# Check which direction
if event.direction == "up":
sense.show_message(message_t, scroll_speed=0.05)      # Up arrow
elif event.direction == "down":
sense.show_message(message_p, scroll_speed=0.05)      # Down arrow
elif event.direction == "left":
sense.show_message(message_h, scroll_speed=0.05)      # Left arrow
elif event.direction == "right":
if 15<t<30 and h<80 and p>900:
sense.set_pixel(2,1,white)
sense.set_pixel(1,2,white)
sense.set_pixel(3,2,white)
sense.set_pixel(6,1,white)
sense.set_pixel(7,2,white)
sense.set_pixel(5,2,white)
sense.set_pixel(1,4,white)
sense.set_pixel(2,5,white)
sense.set_pixel(3,6,white)
sense.set_pixel(4,6,white)
sense.set_pixel(5,6,white)
sense.set_pixel(6,5,white)
sense.set_pixel(7,4,white)
sense.set_pixel(0,0,blue)
sense.set_pixel(0,1,blue)
sense.set_pixel(0,2,blue)
sense.set_pixel(0,3,blue)
sense.set_pixel(0,4,blue)
sense.set_pixel(0,5,blue)
sense.set_pixel(0,6,blue)
sense.set_pixel(0,7,blue)
sense.set_pixel(1,0,blue)
sense.set_pixel(1,1,blue)
sense.set_pixel(3,1,blue)
sense.set_pixel(4,1,blue)
sense.set_pixel(5,1,blue)
sense.set_pixel(7,1,blue)
sense.set_pixel(0,2,blue)
sense.set_pixel(2,2,blue)
sense.set_pixel(4,2,blue)
sense.set_pixel(6,2,blue)
sense.set_pixel(0,3,blue)
sense.set_pixel(1,3,blue)
sense.set_pixel(2,3,blue)
sense.set_pixel(3,3,blue)
sense.set_pixel(4,3,blue)
sense.set_pixel(5,3,blue)
sense.set_pixel(6,3,blue)
sense.set_pixel(7,3,blue)
sense.set_pixel(0,4,blue)
sense.set_pixel(2,4,blue)
sense.set_pixel(3,4,blue)
sense.set_pixel(4,4,blue)
sense.set_pixel(5,4,blue)
sense.set_pixel(6,4,blue)
sense.set_pixel(0,5,blue)
sense.set_pixel(1,5,blue)
sense.set_pixel(3,5,blue)
sense.set_pixel(4,5,blue)
sense.set_pixel(5,5,blue)
sense.set_pixel(7,5,blue)
sense.set_pixel(0,6,blue)
sense.set_pixel(1,6,blue)
sense.set_pixel(2,6,blue)
sense.set_pixel(6,6,blue)
sense.set_pixel(7,6,blue)
sense.set_pixel(0,7,blue)
sense.set_pixel(1,7,blue)
sense.set_pixel(2,7,blue)
sense.set_pixel(3,7,blue)
sense.set_pixel(4,7,blue)
sense.set_pixel(5,7,blue)
sense.set_pixel(6,7,blue)
sense.set_pixel(7,7,blue)
sense.set_pixel(2,0,blue)
sense.set_pixel(3,0,blue)
sense.set_pixel(4,0,blue)
sense.set_pixel(5,0,blue)
sense.set_pixel(6,0,blue)
sense.set_pixel(7,0,blue)
sleep(1)
else:
sense.show_message("--",red)
sleep(1)
elif event.direction == "middle":
sys.exit(1)

sense.clear()

# data[].attributes.body
Flask 프레임워크를 사용하기 때문에 웹 서버가 필요하여 실습 시 사용하는 라즈베리파이의 /home/laby/my-project 디렉터리에 저장해두었습니다.

# data[].attributes.body
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
sense.set_rotation(270)
sense.rotation = 270
sense.clear()

red = (255, 0, 0)
green = (0, 255, 0)

sense.clear()
while True:
for event in sense.stick.get_events():
if event.action == "pressed":
if event.direction == "up":
h = sense.get_humidity()
h = round(h, 1)
messagea = "Humidity : " + str(h)
if h < 10 or h > 50:
bga = red
else:
bga = green
sense.show_message(messagea, scroll_speed=0.05, text_colour=bga)
elif event.direction == "down":
t = sense.get_temperature()
t = round(t, 1)
messageb = "Temperature : " + str(t)
if t < 7 or t > 24:
bgb = red
else:
bgb = green
sense.show_message(messageb, scroll_speed=0.05, text_colour=bgb)
elif event.direction == "left":
p = sense.get_pressure()
p = round(p, 1)
messagex = "Pressure : " + str(p)
if p < 1000 or p > 1200:
bgx= red
else:
bgx = green
sense.show_message(messagex, scroll_speed=0.05, text_colour=bgx)

sleep(0.5)
sense.clear()

# data[].attributes.body
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()

red = (255, 0, 0)
blue = (0, 0, 255)
green = (0, 255, 0)
yellow = (255, 255, 0)
black = (0, 0, 0)

Y = yellow
B = black

up_pixels = [
B, B, B, Y, Y, B, B, B,
B, B, Y, Y, Y, Y, B, B,
B, Y, Y, Y, Y, Y, Y, B,
Y, Y, B, Y, Y, B, Y, Y,
Y, B, B, Y, Y, B, B, Y,
B, B, B, Y, Y, B, B, B,
B, B, B, Y, Y, B, B, B,
B, B, B, Y, Y, B, B, B
]
down_pixels = [
B, B, B, Y, Y, B, B, B,
B, B, B, Y, Y, B, B, B,
B, B, B, Y, Y, B, B, B,
Y, B, B, Y, Y, B, B, Y,
Y, Y, B, Y, Y, B, Y, Y,
B, Y, Y, Y, Y, Y, Y, B,
B, B, Y, Y, Y, Y, B, B,
B, B, B, Y, Y, B, B, B
]
left_pixels = [
B, B, B, Y, Y, B, B, B,
B, B, Y, Y, B, B, B, B,
B, Y, Y, B, B, B, B, B,
Y, Y, Y, Y, Y, Y, Y, Y,
Y, Y, Y, Y, Y, Y, Y, Y,
B, Y, Y, B, B, B, B, B,
B, B, Y, Y, B, B, B, B,
B, B, B, Y, Y, B, B, B
]
right_pixels = [
B, B, B, Y, Y, B, B, B,
B, B, B, B, Y, Y, B, B,
B, B, B, B, B, Y, Y, B,
Y, Y, Y, Y, Y, Y, Y, Y,
Y, Y, Y, Y, Y, Y, Y, Y,
B, B, B, B, B, Y, Y, B,
B, B, B, B, Y, Y, B, B,
B, B, B, Y, Y, B, B, B
]
center_pixels = [
B, B, B, Y, Y, B, B, B,
B, B, Y, Y, Y, Y, B, B,
B, Y, Y, Y, Y, Y, Y, B,
Y, Y, Y, Y, Y, Y, Y, Y,
Y, Y, Y, Y, Y, Y, Y, Y,
B, Y, Y, Y, Y, Y, Y, B,
B, B, Y, Y, Y, Y, B, B,
B, B, B, Y, Y, B, B, B
]
sense.clear()
while True:
for event in sense.stick.get_events():
if event.action == "pressed":
if event.direction == "up":
sense.set_pixels(up_pixels)
sleep(1)
sense.show_message("UP",back_colour=red)
elif event.direction == "down":
sense.set_pixels(down_pixels)
sleep(1)
sense.show_message("DOWN",back_colour=blue)
elif event.direction == "left":
sense.set_pixels(left_pixels)
sleep(1)
sense.show_message("LEFT",back_colour=yellow)
elif event.direction == "right":
sense.set_pixels(right_pixels)
sleep(1)
sense.show_message("RIGHT",back_colour=green)
elif event.direction == "middle":
sense.set_pixels(center_pixels)
sleep(1)
sense.show_message("CENTER",back_colour=black)
sleep(1)
sense.clear()

# data[].attributes.body
from sense_hat import SenseHat
from time import sleep
from datetime import datetime
sense = SenseHat()
sense.set_rotation(180)
sense.rotation = 180
now = datetime.now()
r = (255, 0, 0)
green = (0, 255, 0)
b = (255, 255, 0)
s = (255,0,0)
w = (0, 0, 0)

while True:

t = sense.get_temperature()
p = sense.get_pressure()
h = sense.get_humidity()

t = round(t, 1)
p = round(p, 1)
h = round(h, 1)

message_T = "Temperature: " + str(t)
message_P = " Pressure: " + str(p)
message_H = " Humidity: " + str(h)

for event in sense.stick.get_events():
# Check if the joystick was pressed
if event.action == "pressed":

# Check which direction
if event.direction == "up":
sense.show_message(message_T, scroll_speed=0.05, back_colour=bg)
elif event.direction == "down":
sense.show_message(message_P, scroll_speed=0.05)
elif event.direction == "left":
sense.show_message(message_H, scroll_speed=0.05)
elif event.direction == "middle":
sense.show_message ("Have a nice day", scroll_speed=0.03)
elif event.direction == "right":
sense.show_message ( '%s-%s-%s' % ( now.year, now.month, now.day ) )

sense.clear()
else:
heart_pixels = [
b, b, b, b, b, b, b, b,
b, r, r, b, b, r, r, b,
r, s, s, r, r, s, s, r,
r, s, s, s, s, s, s, r,
b, r, s, s, s, s, r, b,
b, b, r, s, s, r, b, b,
b, b, b, r, r, b, b, b,
b, b, b, b, b, b, b, b
]
sense.set_pixels(heart_pixels)

if t > 18.3 and t < 26.7:
bg = green
else:
bg = r

# data[].attributes.body
from sense_hat import SenseHat
from time import sleep
sense = SenseHat()
sense.set_rotation(270)
sense.rotation = 270
sense.clear()

red = (255,0,0)
green = (0,255,0)
white = (255,255,255)

sense.clear()
while True:
for event in sense.stick.get_events():
if event.action == "pressed":
if event.direction == "up":
h = sense.get_humidity()
h = round(h, 1)
messagea = "Humidity : " + str(h)
if h > 80:
bga = red
else:
bga = green
sense.show_message(messagea, scroll_speed=0.05, text_colour=white, back_colour=bga)
elif event.direction == "left":
t = sense.get_temperature()
t = round(t, 1)
messageb = "Temperature : " + str(t)
if t > 30 or t < -10:
bgb = red
else:
bgb = green
sense.show_message(messageb, scroll_speed=0.05, text_colour=white, back_colour=bgb)
elif event.direction == "right":
p = sense.get_pressure()
p = round(p, 1)
messagec = "Pressure : " + str(p)
if p > 1000 or p < 200:
bgc = red
else:
bgc = green
sense.show_message(messagec, scroll_speed=0.05, text_colour=white, back_colour=bgc)

sleep(0.5)
sense.clear()

# data[].attributes.body
작동 동영상,사진 -> 블로그 https://blog.naver.com/dmsql7544/221756318700

# data[].attributes.attachment_link.title
내가 사는 별의 이름은 : 네이버 블로그

# data[].attributes.headline
충북고등학교 10901 김동현

# data[].attributes.subject
충북고등학교 10901 김동현

# data[].attributes.body
https://www.tinkercad.com/things/hg2L9dlXfHR-/editel?sharecode=SeViuqIhJy7LfMkiebLjR3Tai0LIc5piF-7qthZltHQ=

# data[].attributes.headline
충북고등학교 10917 장우진 

# data[].attributes.subject
충북고등학교 10917 장우진 

# data[].attributes.body
https://www.tinkercad.com/things/1OSsMt98QA9-copy-of-/editel?sharecode=lEmseQf4tu3_4iE6wRysUbAzIghRVgKzFe1lasASZdE=

# data[].attributes.body
https://www.tinkercad.com/things/2lcGTP2wpvx

# data[].attributes.body
https://www.tinkercad.com/things/j4VZ7Zn0Aiv

# data[].attributes.body
https://www.tinkercad.com/things/gbCjoneFFXU

# data[].attributes.body
https://www.tinkercad.com/things/dJ9wVk0ugmf

# data[].attributes.body
https://www.tinkercad.com/things/9hJv9ciujHO

# data[].attributes.body
https://www.tinkercad.com/things/3uHYujBvnf4

# data[].attributes.body
충북고 10901 김동현

# data[].attributes.body
충북고 10901 김동현

# data[].attributes.body
충북고등학교 10917 장우진
답: 4, 1, 2, 5, 3

# data[].attributes.attachment_link.title
공동교육과정 문제 내기 -2

# data[].attributes.headline
알고리즘설계 - 청여고 10727 최보경

# data[].attributes.subject
알고리즘설계 - 청여고 10727 최보경

# data[].attributes.body
정답 : 2,5,5,2,3,4,1,3,4,1

# data[].attributes.headline
가상 기억 장치 관리 - 주성고 10205 김민성

# data[].attributes.subject
가상 기억 장치 관리 - 주성고 10205 김민성

# data[].attributes.attachment_link.title
가상 기억 장치의 관리 - 주성고 10205 김민성

# data[].attributes.headline
컴퓨터 시스템의 구성 해설지

# data[].attributes.subject
컴퓨터 시스템의 구성 해설지

# data[].attributes.body
충북고등학교 10917 장우진

# data[].attributes.attachment_link.title
공동 교육 과정 해설지

# data[].attributes.headline
디지털 정보의 표현-봉명고 10720 이수민

# data[].attributes.subject
디지털 정보의 표현-봉명고 10720 이수민

# data[].attributes.body
충북고등학교 10917 장우진

# data[].attributes.attachment_link.title
공동교육과정 문제 내기

# data[].attributes.headline
네트워크 설정 명령어 - 충대부고 20313 서민기

# data[].attributes.subject
네트워크 설정 명령어 - 충대부고 20313 서민기

# data[].attributes.body
답 포함

# data[].attributes.attachment_link.title
컴퓨터시스템일반 - 네트워크 설정 명령어 문제

# data[].attributes.headline
논리연산과 논리회로 - 중앙여고 20717 이은비

# data[].attributes.subject
논리연산과 논리회로 - 중앙여고 20717 이은비

# data[].attributes.headline
입출력과 파일관리 - 중앙여고 20717 이은비

# data[].attributes.subject
입출력과 파일관리 - 중앙여고 20717 이은비

# data[].attributes.headline
프로세스관리 - 청여고 10727 최보경

# data[].attributes.subject
프로세스관리 - 청여고 10727 최보경

# data[].attributes.headline
네트워크의 이해 - 주성고 10205 김민성

# data[].attributes.subject
네트워크의 이해 - 주성고 10205 김민성

# data[].attributes.attachment_link.title
네트워크의 이해 시험문제 - 주성고 10205 김민성

# data[].attributes.headline
디지털 정보의 연산-봉명고 10720 이수민

# data[].attributes.subject
디지털 정보의 연산-봉명고 10720 이수민

# data[].attributes.headline
리눅스 관리자 명령어 문제 - 충대부고 20313 서민기

# data[].attributes.subject
리눅스 관리자 명령어 문제 - 충대부고 20313 서민기

# data[].attributes.body
답 포함

# data[].attributes.attachment_link.title
컴퓨터시스템일반 - 리눅스 관리자 명령어 문제

# data[].attributes.body
충북고등학교 10917 장우진
잘 부탁 드립니다.

# data[].attributes.body
-청여고 10727 최보경

# data[].attributes.body
충대부고 20313 서민기

# data[].attributes.body
봉명고 10720 이수민

# data[].attributes.body
봉명고 10720 이수민

# data[].attributes.headline
컴퓨팅 시스템의 구성과 동작 

# data[].attributes.subject
컴퓨팅 시스템의 구성과 동작 

# data[].attributes.body
충북고등학교 10917 장우진
잘 부탁 드립니다.

# data[].attributes.body
-- 10727 청여고 최보경

# data[].attributes.headline
입출력과 파일 관리 - 중앙여고 20717 이은비

# data[].attributes.subject
입출력과 파일 관리 - 중앙여고 20717 이은비

# data[].attributes.headline
논리 연산과 논리 회로 - 중앙여고 20717 이은비

# data[].attributes.subject
논리 연산과 논리 회로 - 중앙여고 20717 이은비

# data[].attributes.headline
리눅스 관리자 명령어 - 충대부고 20313 서민기

# data[].attributes.subject
리눅스 관리자 명령어 - 충대부고 20313 서민기

# data[].attributes.headline
네트워크의 이해 - 주성고등학교 10205 김민성

# data[].attributes.subject
네트워크의 이해 - 주성고등학교 10205 김민성

# data[].attributes.attachment_link.title
네트워크의 이해 - 주성고 10205 김민성

# data[].attributes.body
간단한 인공지능 프로그램 제작

# data[].attributes.attachment_link.description
Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create machine learning models for your sites, apps, and more - no expertise or coding required.

# data[].attributes.headline
라즈베리파이 시뮬레이션

# data[].attributes.subject
라즈베리파이 시뮬레이션

# data[].attributes.body
Sense HAT 에뮬레이션

# data[].attributes.attachment_link.readable_text
Over the last few months, we've been working with US-based startup Trinket to develop a web-based emulator for the Sense HAT, the multipurpose add-on board for the Raspberry Pi which is also the core component of the Astro Pi units on the International Space Station. We wanted to provide a unique, free learning resource that brings the excitement of programming our space-qualified hardware to students, teachers, and others all over the world.

We're delighted to announce its release today, and you can try it for yourself right now. Click the button below and see what happens!

The emulator will allow more people to participate in future Astro Pi competitions - you'll be able to join in without needing to own a Raspberry Pi computer or a Sense HAT.

The new emulator builds on Trinket's existing Python-in-browser platform, and provides the following features:

Virtual Sense HAT with environmental controls and joystick input

Full Python syntax highlighting

Contextual auto-complete

Intuitive error reporting and highlighting

Image upload

HTML page embedding

Social media integration

Project sharing via direct URL

Project download as zip (for moving to Raspberry Pi)

All major browsers supported

The Sense HAT has temperature, pressure and humidity sensors, and can change its behaviour according to the values they report. The Sense HAT emulator has sliders you can move to change these values, so you can test how your code responds to environmental variables.

Code written in this emulator is directly portable to a physical Raspberry Pi with a Sense HAT without modification. This means any code you write can be run by the Astro Pi units on board the ISS! It is our hope that, within the next 12 months, code that has been written in the emulator will run in space. Look out for news on this, coming soon on the Astro Pi site!

We owe huge thanks to Trinket, who have been wonderful partners in this project. The development work has been completed in just over two months, and has been a huge collaborative effort from the start. The software relies heavily on open-source technology and a global community of developers who are committed to making the power of code more accessible to students.

A closed group of beta testers, made up of previous Astro Pi participants and Code Club champions, has been putting the emulator through its paces over recent weeks. We're proud to say that we've just had a bug-free open beta over the weekend, and now we're looking forward to seeing it used as widely as possible.

So, where do you start? If you're new to the Sense HAT, you can just copy and paste a lot of the code examples from our educational resources like this one. You can also check out our e-book Sense HAT Essentials. For a complete list of all the functions you can use, have a look at the Sense HAT API reference here; please note that the IMU (movement-sensing) functions will be supported in a future update. Head over to the main Sense HAT emulator site to see loads of other cool examples of what's possible. Flappy LED, anyone?

Don't forget to share your projects!

# data[].attributes.attachment_link.description
Over the last few months, we've been working with US-based startup Trinket to develop a web-based emulator for the Sense HAT, the multipurpose add-on board for the Raspberry Pi which is also the core component of the Astro Pi units on the International Space Station.

# data[].attributes.body
틴커캐드

# data[].attributes.attachment_link.title
Tinkercad | From mind to design in minutes

# data[].attributes.attachment_link.description
Tinkercad is a free, easy-to-use app for 3D design, electronics, and coding.

# data[].attributes.attachment_link.title
Teach, learn, and make with the Raspberry Pi Foundation

# data[].attributes.attachment_link.description
We are a charity with the mission to enable young people to realise their full potential through the power of computing and digital technologies.

# data[].attributes.attachment_link.description
Open-source electronic prototyping platform enabling users to create interactive electronic objects.

# data[].attributes.attachment_link.title
나 사용 설명서-이수민

# data[].attributes.headline
청주중앙여자고등학교 20717 이은비

# data[].attributes.subject
청주중앙여자고등학교 20717 이은비

# data[].attributes.headline
청주중앙여자고등학교 20717 이은비

# data[].attributes.subject
청주중앙여자고등학교 20717 이은비

# data[].attributes.headline
주성고등학교 10205 김민성

# data[].attributes.subject
주성고등학교 10205 김민성

# data[].attributes.attachment_link.title
나를 소개합니다. 주성고 김민성

# data[].attributes.headline
청주여자고등학교 10727 최보경

# data[].attributes.subject
청주여자고등학교 10727 최보경

# data[].attributes.headline
충북고등학교 10917 장우진

# data[].attributes.subject
충북고등학교 10917 장우진

# data[].attributes.body
잘 부탁드려요

# data[].attributes.attachment_link.title
정보처리기능사_실기_알고리즘

# data[].attributes.attachment_link.title
정보처리기능사_핵심요약

# data[].attributes.body
정보의 표현[편집]

1. 수의 체계   -  주성고 김민수

2. 디지털 정보의 연산 - 봉명고 이수민

3. 디지털 정보의 표현 -  봉명고 이수민

컴퓨팅 시스템[편집]

1. 컴퓨팅 시스템의 구성과 동작 - 충북고 장우진

2. 논리 연산과 논리 회로 - 중앙여고 이은비

3. 네트워크의 이해 - 주성고 김민성

운영 체제의 자원 관리[편집]

1. 운영 체제의 구성 -  주성고 김민수

2. 프로세스 관리 -  청여고 최보경

3. 주기억 장치 관리 -  충북고 김동현

4. 보조 기억 장치 관리 - 충북고 김동현

5. 가상 기억 장치 관리 - 주성고 김민성

6. 입출력과 파일 관리 - 중앙여고 이은비

운영 체제 운용[편집]

1. 리눅스의 이해 - 음성고 김용남

2. 기본 명령어 - 음성고 김용남

3. 사용자 관리와 파일 속성 - 음성고 김용남

4. 리눅스 관리자 명령어 -  충대부고 서민기

5. 네트워크 설정 명령어 -  충대부고 서민기

문제 해결과 알고리즘[편집]

1. 추상화 - 충북고 장우진

2. 알고리즘 설계 - 청여고 최보경

# data[].attributes.headline
충북대학교 사범대학 부설고등학교 2-3-13 서민기

# data[].attributes.subject
충북대학교 사범대학 부설고등학교 2-3-13 서민기

# data[].attributes.headline
가상 기억 장치 관리 - 주성고등학교 10205 김민성

# data[].attributes.subject
가상 기억 장치 관리 - 주성고등학교 10205 김민성

# data[].attributes.attachment_link.title
가상 기억 장치 관리 - 주성고 10205 김민성