■ SparkFun moto:bit の I2C 操作と MicroPython からの利用
■ MOVE miniスマホでリモコン操作する[プログラム編③]
http://www.umek.topaz.ne.jp/mameduino/move-mini_smartphone-1/
■ 無線操縦で走る!荷台が動く!サイレン音が鳴り響く!
Running:bit【無線操縦編】
https://sanuki-tech.net/micro-bit/kit/remote-control-running-bit/
■ [MicroBit]アナログジョイパッド入力 + 無線送受信のテストスクリプト
送信側
# Add your Python code here. E.g. from microbit import * import radio slist = ["50000","05000","00500","00050","00005"] def clamp( val, min_, max_): return max(min(val,max_), min_) # LED座標系に変換 def convLEDCoord( x ): return int( clamp( ((x+1)/2.0)*5, 0,4) ) def makeImg(x,y): ret="" for i in range(5): if y==i: ret += slist[x] else: ret += "00000" if i!=4: ret += ":" return Image(ret) radio.on() while True: pin2.write_digital(0) x0_raw = pin0.read_analog() y0_raw = pin1.read_analog() pin2.write_digital(1) x1_raw = pin0.read_analog() y1_raw = pin1.read_analog() x0 = clamp((x0_raw-504)/512, -1, 1) y0 = clamp((y0_raw-504)/512, -1, 1) x1 = clamp((x1_raw-504)/512, -1, 1) y1 = clamp((y1_raw-504)/512, -1, 1) send_str = "x0:%d y0:%d x1:%d y1:%d" % (x0_raw, y0_raw, x1_raw, y1_raw) radio.send(send_str) x = convLEDCoord(x0) y = 4-convLEDCoord(y0) im00 = makeImg(x,y); display.show(im00)
受信側
# Add your Python code here. E.g. from microbit import * import radio slist = ["50000","05000","00500","00050","00005"] def clamp( val, min_, max_): return max(min(val,max_), min_) # LED座標系に変換 def convLEDCoord( x ): return int( clamp( ((x+1)/2.0)*5, 0,4) ) def makeImg(x,y): ret="" for i in range(5): if y==i: ret += slist[x] else: ret += "00000" if i!=4: ret += ":" return Image(ret) radio.on() while True: x0_raw = 0 y0_raw = 0 msg = str(radio.receive()) if msg != "None": spr = msg.split() x0_raw = int(spr[0][3:]) y0_raw = int(spr[1][3:]) x1_raw = int(spr[2][3:]) y1_raw = int(spr[3][3:]) x0 = clamp((x0_raw-504)/512, -1, 1) y0 = clamp((y0_raw-504)/512, -1, 1) x = convLEDCoord(x0) y = 4-convLEDCoord(y0) im00 = makeImg(x,y); display.show(im00)