Nao_uの日記 このページをアンテナに追加 RSSフィード

2019-11-23

[]MicroBitでSuperBitの拡張を使うときのURL MicroBitでSuperBitの拡張を使うときのURL - Nao_uの日記 を含むブックマーク はてなブックマーク - MicroBitでSuperBitの拡張を使うときのURL - Nao_uの日記 MicroBitでSuperBitの拡張を使うときのURL - Nao_uの日記 のブックマークコメント

https://github.com/lzty634158/SuperBit


無線操縦で走る!荷台が動く!サイレン音が鳴り響く! 無線操縦で走る!荷台が動く!サイレン音が鳴り響く! - Nao_uの日記 を含むブックマーク はてなブックマーク - 無線操縦で走る!荷台が動く!サイレン音が鳴り響く! - Nao_uの日記 無線操縦で走る!荷台が動く!サイレン音が鳴り響く! - Nao_uの日記 のブックマークコメント

Running:bit【無線操縦編】

https://sanuki-tech.net/micro-bit/kit/remote-control-running-bit/

[]アナログジョイパッド入力 + 無線送受信のテストスクリプト アナログジョイパッド入力 + 無線送受信のテストスクリプト - Nao_uの日記 を含むブックマーク はてなブックマーク - アナログジョイパッド入力 + 無線送受信のテストスクリプト - Nao_uの日記 アナログジョイパッド入力 + 無線送受信のテストスクリプト - Nao_uの日記 のブックマークコメント

送信側

# 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)

トラックバック - http://game.g.hatena.ne.jp/Nao_u/20191123