Trang thông tin tổng hợp
Trang thông tin tổng hợp
  • người nổi tiếng
  • chính tả
  • Giáo Dục
  • Meme
  • Avatar
  • Tranh Tô Màu
  • Ảnh Nail
người nổi tiếng chính tả Giáo Dục Meme Avatar Tranh Tô Màu Ảnh Nail
  1. Trang chủ
  2. Giáo Dục
Mục Lục

Pimoroni Explorer Kit Tutorial

avatar
mana
03:06 28/09/2025

Mục Lục

The following code demonstrates the use of the Pimoroni Explorer Kit as a desktop auto clock/calendar/weather station. I hope someone finds it useful.

Triangles used to be difficult but the latest version of picographics makes them easy to use. I really like the larger screen. It shows off the 320x240 pixels much better. The multi-sensor-stick is really easy to use.

# Pimoroni Explorer Demo # Analog/ Digital clock - Tony Goodhew, Leicester UK - 6 Nov 2024 # Uses the Multi-Sensor Stick (BME280 + LTR559 + LSM6DS3) from explorer import display, i2c, button_z, button_x, button_y, BLACK, WHITE, GREEN, RED, BLUE, YELLOW, CYAN from breakout_bme280 import BreakoutBME280 from breakout_ltr559 import BreakoutLTR559 import math import time # Check sensor stick connected try: bme = BreakoutBME280(i2c, address=0x76) ltr = BreakoutLTR559(i2c) except RuntimeError: display.set_layer(0) display.set_pen(RED) display.clear() display.set_pen(WHITE) display.text("Multi-Sensor Stick missing", 10, 95, 320, 3) display.update() WIDTH, HEIGHT = display.get_bounds() # Get current time year, month, day, h, m, s, wd, _ = time.localtime() days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] # Used for minute and hour hands def hand(ang, long): ang = ang-90 ls = long/10 x0 = int(round(long * math.cos(math.radians(ang))))+cx y0 = int(round(long * math.sin(math.radians(ang))))+cy x1 = int(round(ls * math.cos(math.radians(ang+90))))+cx y1 = int(round(ls * math.sin(math.radians(ang+90))))+cy x2 = int(round(ls * math.cos(math.radians(ang-90))))+cx y2 = int(round(ls * math.sin(math.radians(ang-90))))+cy display.triangle(x0,y0,x1,y1,x2,y2) display.circle(cx,cy,int(ls)) display.set_backlight(1.0) display.set_layer(0) display.set_pen(BLACK) display.clear() display.set_layer(1) display.set_pen(BLACK) display.clear() cx = 199 # centre of clock cy = 119 l = 110 # Draw clock face display.set_pen(BLUE) display.circle(cx,cy,110) display.update() ls = 94 display.set_pen(WHITE) for angle in range(0,360,6): xx = int(round(l * math.cos(math.radians(angle)))) yy = int(round(l * math.sin(math.radians(angle)))) display.line(cx,cy,cx+xx,cy+yy) display.set_pen(BLACK) display.circle(cx,cy,100) display.set_pen(WHITE) for angle in range(0,360,30): xx = int(round(l * math.cos(math.radians(angle)))) yy = int(round(l * math.sin(math.radians(angle)))) display.line(cx,cy,cx+xx,cy+yy) # Sensor titles display.set_pen(WHITE) display.text("Temperature",5,40,310,1) display.text("Lux",5,80,300,1) display.text("Rel Humidity",5,120,300,1) display.text("Air Pressure",5,200,300,1) # === Main Loop ====== while True: # Draw face numbers display.set_pen(BLACK) display.circle(cx,cy,93) # Clear centre of clock face display.set_pen(YELLOW) display.text("9",118,108,320,3) display.text("3",268,108,320,3) display.text("10",128,70,320,3) display.text("2",258,70,320,3) display.text("1",230,45,320,3) display.text("11",160,45,320,3) display.text("12",190,37,320,3) display.text("6",193,186,320,3) display.text("7",156,176,320,3) display.text("5",230,176,320,3) display.text("4",258,150,320,3) display.text("8",130,150,320,3) # Draw hands mang = int((m + s/60)* 6) # angle of minute hand hang = int((h + m/60 )* 30 ) # angle of hour hand display.set_pen(BLUE) hand(mang,90) display.set_pen(RED) hand(hang,70) sang = 6 * s - 90 xs = int(round(ls * math.cos(math.radians(sang)))) ys = int(round(ls * math.sin(math.radians(sang)))) display.set_pen(WHITE) display.line(cx,cy,cx+xs,cy+ys) display.circle(cx,cy,3) # Assemble Digital time ss = "0" + str(s) lgs =len(ss) ss = ss[lgs-2:lgs] ms = "0" + str(m) lgs = len(ms) ms = ms[lgs-2:lgs] hs = "0" + str(h) lgs = len(hs) hs = hs[lgs-2:lgs] dt = hs+":"+ms+":"+ss # Clear sensor text areas display.set_pen(BLACK) display.rectangle(5,10,127,18) display.rectangle(5,50,90,18) display.rectangle(5,90,80,18) display.rectangle(5,130,80,18) display.rectangle(5,210,115,18) display.rectangle(5,163,90,28) # Write digital time & sensor readings display.set_pen(YELLOW) display.text(dt,5,10,320,3) # read the sensors temperature, pressure, humidity = bme.read() temp = round(temperature,1) display.set_pen(GREEN) display.text(str(temp)+" C",5,50,320,3) # Convert pressure to hPa pressurehpa = int(pressure / 100) display.text(str(int(humidity)) +" %", 5,130,320,3) display.text(str(pressurehpa)+" hPa",5,210,320,3) prox, a, b, c, d, e, lux = ltr.get_reading() lux = int(lux) display.set_pen(CYAN) display.text(str(lux),5,90,320,3) # Update date/time year, month, day, h, m, s, wd, _ = time.localtime() display.text(days[wd],5,163,320,1) display.text(str(day)+" "+months[month-1],5,173,320,2) display.update() time.sleep(0.1)

Video here: https://youtu.be/p8yvwJqr3u4

If you would like a tutorial on using the tilt aspects of the IMU, please leave a comment.

0 Thích
Chia sẻ
  • Chia sẻ Facebook
  • Chia sẻ Twitter
  • Chia sẻ Zalo
  • Chia sẻ Pinterest
In
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS
  • Điều khoản sử dụng
  • Chính sách bảo mật
  • Cookies
  • RSS

Trang thông tin tổng hợp itt

Website itt là blog chia sẻ vui về đời sống ở nhiều chủ đề khác nhau giúp cho mọi người dễ dàng cập nhật kiến thức. Đặc biệt có tiêu điểm quan trọng cho các bạn trẻ hiện nay.

© 2025 - itt

Kết nối với itt

lịch âm hôm nay https://nghengu.vn/ lịch âm hôm nay Xem thời tiết tại thoitiet24.edu.vn vivu88 fo88 88VV Kingfun WinClub 88VV 33Win 555WIN
Trang thông tin tổng hợp
  • Trang chủ
  • người nổi tiếng
  • chính tả
  • Giáo Dục
  • Meme
  • Avatar
  • Tranh Tô Màu
  • Ảnh Nail
Đăng ký / Đăng nhập
Quên mật khẩu?
Chưa có tài khoản? Đăng ký