# ESP32-espnow-receiver-ADXL345-robocar2w.py import network, espnow, time, machine from robocar2w import * wlan_sta = network.WLAN(network.STA_IF) wlan_sta.active(True) e = espnow.ESPNow() e.active(True) peer = b'\xff'*6 # alle Sender e.add_peer(peer) led = machine.Pin(2,machine.Pin.OUT) # 'f -1023 -1023', 'f -1023 -1023', 'f -1023 -1023', 'f -1023 -1023', 'f -1023 -1023', 'f -1023 -1023', 'f -1023 -1023' # -3 -2 -1 0 1 2 3 fw =[ ['f 700 1023', 'f 850 1023', 'f 950 1023', 'f 1023', 'f 1023 950', 'f 1023 850', 'f 1023 700'], ['f 650 900', 'f 750 900', 'f 850 900', 'f 850', 'f 900 950', 'f 900 850', 'f 900 700'], ['f 600 800', 'f 700 800', 'f 750 800', 'f 700', 'f 800 750', 'f 800 700', 'f 800 650'], ['f 0 -800 ', 'f 0 -750', 'f 0 -666', 'f 0', 'f 666 0', 'f 750 0', 'f 850 0'], ['f -600 -800', 'f -700 -800', 'f -750 -800', 'f -700', 'f -800 -750', 'f -800 -700', 'f -800 -650'], ['f -650 -900', 'f -750 -900', 'f -850 -900', 'f -850', 'f -900 -850', 'f -900 -800', 'f -900 -650'], ['f -700 -1000', 'f -800 -1000', 'f -850 -1000', 'f -1000', 'f -1000 -850', 'f -1000 -800', 'f -1000 -700'] ] ende = False while not ende: host, msg = e.irecv(500) # ms bis Timeout if msg: tmp = msg.decode().replace("\x00","").split(",") if len(tmp)!=5: print(".", end="") continue #ADXL345-a,68,15,-20,281 kennung = tmp[0] if kennung != "ADXL345-a": print("Falsche Kennung: " + kennung) continue cnt = int(tmp[1]) ac_x = int(tmp[2]) ac_y = int(tmp[3]) ac_z = int(tmp[4]) dw = 100 spa = (ac_x+dw//2)//dw; zei = (ac_y+dw//2)//dw # formatierte Ausgabe mit der f'-Strings eingabe = fw[3-zei][3+spa] print(f'{ac_x:6}, {ac_y:6}, {ac_z:6}, {zei:2}, {spa:2}, {eingabe}') led.value(not led.value()) if ac_z<-100: print("Ende") eingabe="e" if eingabe=="": print("Nix passiert!") continue elif eingabe == "e": print("'Ende' wird eingeleitet!") ende = True continue elif eingabe == "h": halt() else: werte = eingabe.split(" ") l = len(werte) print( "werte: ", werte ) if werte[0]=="f": if l==2: fahre( int(werte[1]) ) elif l==3: fahre( int(werte[1]), int(werte[2])) else: pass else: print(".", end="")