badges/accel3d_gopherbadge.go
Daniel Esteban b3363a7fd7 almost everything working for nicebadge
- missing logo image
- cmd to generate logo image
2026-04-17 18:43:42 +02:00

78 lines
1.9 KiB
Go

//go:build gopher_badge
// +build gopher_badge
package main
import (
"time"
"tinygo.org/x/tinydraw"
"tinygo.org/x/tinyfont"
"tinygo.org/x/tinyfont/freesans"
)
func Accel3D() {
display.FillScreen(colorWhite)
tinydraw.Rectangle(&display, 50, 16, 260, 16, colorBlack)
tinydraw.Rectangle(&display, 50, 56, 260, 16, colorBlack)
tinydraw.Rectangle(&display, 50, 96, 260, 16, colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular12pt7b, 20, 180, "MOVE the Gopher to see", colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular12pt7b, 32, 200, "the accelerometer in", colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular12pt7b, 90, 220, "action.", colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular24pt7b, 4, 40, "X:", colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular24pt7b, 4, 80, "Y:", colorBlack)
tinyfont.WriteLine(&display, &freesans.Regular24pt7b, 4, 120, "Z:", colorBlack)
x, y, z := accel.ReadRawAcceleration()
for {
if !btnA.Get() || !btnB.Get() {
break
}
x, y, z = accel.ReadRawAcceleration()
x = x / 250
y = y / 250
z = z / 250
if x > 128 {
x = 128
}
if y > 128 {
y = 128
}
if z > 128 {
z = 128
}
if x < -128 {
x = -128
}
if y < -128 {
y = -128
}
if z < -128 {
z = -128
}
display.FillRectangle(51, 22, 258, 6, colorWhite)
display.FillRectangle(51, 62, 258, 6, colorWhite)
display.FillRectangle(51, 102, 258, 6, colorWhite)
if x < 0 {
display.FillRectangle(179+x, 22, -x, 6, colorRed)
} else {
display.FillRectangle(179, 22, x, 6, colorRed)
}
if y < 0 {
display.FillRectangle(179+y, 62, -y, 6, colorGreen)
} else {
display.FillRectangle(179, 62, y, 6, colorGreen)
}
if z < 0 {
display.FillRectangle(179+z, 102, -z, 6, colorBlue)
} else {
display.FillRectangle(179, 102, z, 6, colorBlue)
}
println("X:", x, "Y:", y, "Z:", z)
time.Sleep(50 * time.Millisecond)
}
}