78 lines
1.9 KiB
Go
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)
|
|
}
|
|
}
|