# esp32-touch-espnow-robocar2w-sender.py 2023-01-24 import my_touch_sensors as zwecken import network, espnow, time, machine #kennung = "RoboCar2W-maxi" print('\n','#'*42) print("### main-touch-espnow-robocar2w-sender.py ##") print("### 2023-01-27 ###") print('','#'*42) kennung = "robocar2w-taxi" cnt = 0 zwecken.init(15, 33, 32, 12, 14, 27) # genutzte GPIO-Pins mit 'capicative touch' led = machine.Pin(2, machine.Pin.OUT); led.on() #led = machine.Pin(2,machine.Pin.OUT) wlan_sta = network.WLAN(network.STA_IF) wlan_sta.active(True) e = espnow.ESPNow() e.active(True) peer = b'\xff\xff\xff\xff\xff\xff' e.add_peer(peer) print("Programm durch gleichzeitiges Berühren aller Reißzwecken beendet") msg="halt()" nachricht = f'{kennung},{cnt},{msg}' print(nachricht) e.send(peer, nachricht) ende = False while not ende: led.value(not led.value()) time.sleep(0.25) msg=""; msg1="0"; msg2 = "0" erg = zwecken.read_all() if erg == 0: # alle Zwecken unberührt #continue # Falls die Tasten nicht dauerhaft berührt werden sollen. msg="f 0" elif erg == 63: # alle Zwecken berührt msg = "ENDE" ende = True elif erg == 1+32: # Die beiden äußeren Zwecken wurden berührt msg = "f 1000" elif erg == 2+16: # Die beiden mittlere Zwecken wurden berührt msg = "f 0" elif erg == 4+8: # Die beiden inneren Zwecken wurden berührt msg = "f -666" else: # nur linke Seite berührt links = erg%8 if links == 1: # 100 xxx msg1 = "888" elif links == 1+2: # 110 xxx msg1 = "666" elif links == 2: # 010 xxx msg1 = "0" elif links == 2+4: # 011 xxx msg1 = "-700" elif links == 4: # 001 xxx msg1 = "-777" # nur rechte Seite berührt rechts = erg//8 if rechts == 1: # "xxx 100" msg2 = "-777" elif rechts == 1+2: # "xxx 110" msg2 = "-700" elif rechts == 2: # "xxx 010" msg2 = "0" elif rechts == 2+4: # "xxx 011" msg2 = "666" elif rechts == 4: # "xxx 001" msg2 = "888" # print(f'1. {msg:8} {msg1:8} {msg2:8}') msg1 = msg1.replace(" xxx",""); msg2 = msg2.replace("xxx ","") if msg=="": msg = "f "+msg1+" "+msg2 cnt += 1 nachricht = f'{kennung},{cnt},{msg}' print(nachricht) e.send(peer, nachricht) print("Programm durch gleichzeitiges Berühren aller Reißzwecken beendet")