-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathNavigationpi.py
130 lines (112 loc) · 2.71 KB
/
Navigationpi.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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
import os
import requests
import pymysql
import RPi.GPIO as ir
from time import sleep
ir.setwarnings(False)
ir.setmode(ir.BOARD)
ir.setup(3,ir.OUT)
ir.setup(5,ir.OUT)
ir.setup(7,ir.OUT)
ir.setup(11,ir.OUT)
ir.setup(13,ir.OUT)
ir.setup(15,ir.OUT)
ir.setup(19,ir.OUT)
ir.setup(21,ir.OUT)
ir.setup(23,ir.OUT)
ir.setup(29,ir.OUT)
ir.setup(31,ir.OUT)
ir.setup(35,ir.OUT)
ir.setup(12,ir.OUT)
ir.setup(16,ir.OUT)
ir.setup(18,ir.OUT)
ir.setup(22,ir.OUT)
ir.setup(24,ir.OUT)
ir.setup(26,ir.OUT)
ir.setup(32,ir.OUT)
ir.setup(36,ir.OUT)
ir.setup(38,ir.OUT)
ir.setup(40,ir.OUT)
ir.setup(33,ir.OUT)
ir.setup(37,ir.IN)
ir.output(35,ir.HIGH)
circum=0.4
db=pymysql.connect(## Enter the Database connection Credentials to connect )
cursor =db.cursor()
direction=[]
distance=[]
parity_bit=[]
print("Dateabse Connected")
sql="""SELECT * FROM NAVIGATION"""
try:
cursor.execute(sql)
results=cursor.fetchall()
except:
print("Database Not Connected Proparly")
noofsteps=len(results)
for val in results:
direction.append(str(val[1]))
distance.append(int(val[2]))
parity_bit.append(int(val[3]))
print("Results fetched")
#print(direction)
#print(distance)
#print(parity_bit)
def stop():
print("Stop")
ir.output(3,ir.LOW)
ir.output(5,ir.LOW)
sleep(1)
def forward(value):
print("Forward "+str(value))
ir.output(3,ir.HIGH)
ir.output(5,ir.HIGH)
print(value)
value-=circum
print(value)
while value>=0:
if ir.input(37):
ir.output(3,ir.LOW)
sleep(0.05)
ir.output(3,ir.HIGH)
value-=circum
print(value)
print(value)
print("value satisfied")
stop()
def right(value):
print("Right "+str(value))
ir.output(3,ir.HIGH)
sleep(1.8)
stop()
forward(value)
def left(value):
print("Left "+str(value))
ir.output(5,ir.HIGH)
sleep(1.8)
stop()
forward(value)
if all(i==1 for i in parity_bit):
print("Parity_bit = 1")
i=0
while i<len(direction):
if direction[i] == "STRAIGHT":
forward(distance[i])
elif direction[i] =="RIGHT":
right(distance[i])
elif direction[i] =="LEFT":
left(distance[i])
i+=1
stop()
sql="UPDATE NAVIGATION SET PARITY_BIT = 0 WHERE PARITY_BIT = 1"
try:
cursor.execute(sql)
db.commit()
print("Changes Made successfully")
except:
print("Unable to make the changes")
db.rollback()
else:
print("Parity_Bit still 0")
db.close()
os.system("python3 /home/pi/Desktop/control_gpio/initial_check.py") ## Check this Path