Hi
I created a basic joystick with xaxis on analog Pin0 and yaxis on analog Pin1.
the values of these were read and then sent with radio.SendValue(pinName, value)
.
on the receiver microbit, these were picked up with radio.OnReceivedValue()
This all worked totally fine.
Now i’m trying to add in a third and fourth analog pin and things are starting to go quite crazy.
there seems to be a mixup of names and values that get sent. Almost like there’s some kind of race condition…
would appreciate any help
here is the sender code:
let lesX = 0
let lesY = 0
let yfinal = 0
let lesP2 = 0
let lesP3 = 0
let normP2 = 0
let normP3 = 0
basic.forever(function () {
lesX = pins.analogReadPin(AnalogPin.P0)
lesY = pins.analogReadPin(AnalogPin.P1)
yfinal = (lesY / 1024 - 0.5) * 20
lesP2 = pins.analogReadPin(AnalogPin.P2)
lesP3 = pins.analogReadPin(AnalogPin.P3)
normP2 = -((611 - lesP2) / 611) * 50
normP3 = ((990 - lesP3) / 990) * 50
radio.sendValue("xaxis", lesX)
radio.sendValue("yaxis", yfinal)
radio.sendValue("P2", normP2)
radio.sendValue("P3", normP3)
//basic.showNumber(normP2,100)
})
radio.setGroup(59)
})
here is the receiver code:
let divTenVal = 0
let convertedVal = 0
radio.onReceivedValue(function (name, value) {
if (name == "xaxis") {
wuKong.setMotorSpeed(wuKong.MotorList.M1, 0 - divTenVal)
}
if (name == "P2") {
wuKong.setMotorSpeed(wuKong.MotorList.M2, value)
}
if (name == "P3") {
wuKong.setMotorSpeed(wuKong.MotorList.M2, value)
}
else {
}
})
radio.setGroup(59)
things ive tried:
- delays between
radio.sendValue()
- moving the calculations from the receiver code to the sender code
- different number in
radio.setGroup()