-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhellomakeblock.py
100 lines (82 loc) · 2.32 KB
/
hellomakeblock.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import cyberpi, time, event, mbot2
# initialize variables
import socket
#import websockets, asyncio
cyberpi.network.config_sta('TP-LINK_8748', '18884845')
cyberpi.network.create_client()
HEADER = 64
PORT = 5050
FORMAT ='utf-8'
DISCONNECT_MESSAGE = '!DISCONNECT'
SERVER = '192.168.0.104'
ADDR = (SERVER,PORT)
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(ADDR)
last_move={
0:'RIGHT',
1: "None"
}
byte_str_move_dict={
b'\x00': 'UP',
b'\x01': 'RIGHT',
b'\x02': 'DOWN',
b'\x03': 'LEFT'
}
move_dict={
('UP','RIGHT') : 90,
('UP','LEFT') : -90,
('UP','UP') : 0,
('UP','DOWN') : 180,
('RIGHT','DOWN') : 90,
('RIGHT','UP') : -90,
('RIGHT','LEFT') : 180,
('RIGHT','RIGHT') : 0,
('LEFT','UP') : 90,
('LEFT','DOWN') : -90,
('LEFT','RIGHT') :180,
('LEFT','LEFT') : 0,
('DOWN','RIGHT') : 90,
('DOWN','LEFT') : -90,
('DOWN','UP') : 180,
('DOWN','DOWN') : 0,
}
def receive_messages():
# URI = "ws://192.168.0.101:5050"
# async with websockets.connect(URI) as websocket:
# while True:
# message=await websocket.recv()
# print(message)
while True:
message = client.recv(1024)
new_message=byte_str_move_dict[message]
last_move[1]=new_message
print("mensaje recibido ",new_message)
#n = int(message)
cyberpi.console.print("mensaje recibido ")
cyberpi.console.println(new_message)
last_move_made=list(last_move.values())
move(move_dict[tuple(last_move_made)])
def move(moved):
mbot2.turn(moved)
mbot2.straight(10)
def send(msg):
message = msg.encode(FORMAT)
msg_lenght = len(message)
send_lenght=str(msg_lenght).encode(FORMAT)
send_lenght += b' '*(HEADER-len(send_lenght))
client.send(send_lenght)
client.send(message)
recv = client.recv(2048).decode(FORMAT)
cyberpi.console.print(recv+'\n')
move(str(recv))
@event.start
def on_start():
cyberpi.network.config_sta('TP-LINK_8748', '18884845')
cyberpi.network.create_client()
while not cyberpi.network.is_connect():
pass
cyberpi.led.show('green green green green green')
cyberpi.console.print(cyberpi.network.get_ip())
cyberpi.led.show('cyan cyan cyan cyan cyan')
receive_messages()
# send('Hi')