Skip to content
Snippets Groups Projects
Commit e33aa200 authored by Dominik HAefner's avatar Dominik HAefner
Browse files

Added Virtual Map in 'Explore'and added possible Pathfinding in 'test'

parents bd23af94 62d14396
No related branches found
No related tags found
No related merge requests found
from bluepy.btle import Scanner
scanner = Scanner()
i = 0
d = 0
#m = 0
#h = 0
values = []
oldAverage = 0
average = 0
found = False
while True:
devices = scanner.scan(0.4) # low delay will result in a lot of iterations without RSSI
for device in devices:
if device.addr == "30:4b:07:ff:e0:3e":
#found = True
#h += 1
# Calculate rolling average
values.append(device.rssi)
valSum = sum(values)
if len(values) > 20:
values.pop(0)
valSum = sum(values)
oldAverage = average
average = valSum/(len(values))
# if oldAverage != 0:
# #print(average/oldAverage)
# if average/oldAverage > 1.01:
# i += 1
# d = 0
# elif average/oldAverage < 0.99:
# d += 1
# i = 0
# else:
# i = 0
# d = 0
#
# if d > 1:
# # Moving away
# print("decreasing")
# elif i > 1:
# # Coming closer
# print("increasing")
#
# print("D:" + str(d) + " I:" + str(i))
if average > oldAverage:
d += 1
i = 0
elif average < oldAverage:
i += 1
d = 0
if d > 3:
# Coming closer
print("decreasing")
elif i > 3:
# Moving away
print("increasing")
print("D:" + str(d) + " I:" + str(i))
#print(values)
#print("Average: " + str(average))
# else:
# m += 1
# print(m)
# if not found:
# m += 1
# else:
# found = False
# print("Hit: " + str(h) + "Miss: " + str(m))
\ No newline at end of file
# Libraries
#import RPi.GPIO as GPIO
import time
import Encoder from encoder
from encoder import Encoder
#import PWMoutputFunction
# GPIO Mode (BOARD / BCM)
......@@ -23,9 +23,8 @@ class Driving:
self.rotationspeed = 0.2 #speed in PWM percentage
self.leftPWM = 0
self.rightPWM =0
self.encoderLeft= Encoder(left,23)
self.encoderRight = Encoder(right,24)
self.encoderLeft = Encoder(name="encoder1", encoder_pin=23)
self.encoderRight = Encoder(name="encoder1", encoder_pin=24)
def stop(self):
self.speed= 0
......@@ -83,29 +82,51 @@ class Driving:
self.currentPulseCountRight= self.encoderRight.get_pulse_count()
if self.currentPulseCountLeft >= self.setpointPulseCountLeft:
self.leftPWM =0
self.leftPWM = 0
elif self.currentPulseCountLeft >= self.setpointPulseCountLeft-5:
self.leftPWM = self.speed*0.5
elif self.currentPulseCountLeft >= self.setpointPulseCountLeft-2:
elif self.currentPulseCountLeft >= self.setpointPulseCountLeft-2:
self.leftPWM = self.speed*0.1
else
else:
self.leftPWM = self.speed
if self.setpointPulseCountRight >= self.currentPulseCountRight:
self.rightPWM =0
#if self.setpointPulseCountRight >= self.currentPulseCountRight:
if self.currentPulseCountRight >= self.setpointPulseCountRight:
self.rightPWM = 0
elif self.currentPulseCountRight >= self.setpointPulseCountRight-5:
self.rightPWM = self.speed*0.5
elif self.currentPulseCountRight >= self.setpointPulseCountRight-2:
elif self.currentPulseCountRight >= self.setpointPulseCountRight-2:
self.rightPWM = self.speed*0.1
else
else:
self.rightPWM = self.speed
# safty control, left and right PWM should always be the same. If not, chose the smaler one
# safty control, left and right PWM should always be the same. If not, choose the smaller one
if self.leftPWM > self.rightPWM:
self.leftPWM = self.rightPWM
if self.rightPWM > self.leftPWM:
self.rightPWM = self.leftPWM
return self.leftPWM, self.rightPWM, self.directionLeftWheel, self.directionRightWheel
try:
motor = Driving()
motor.__init__()
leftPin = GPIO.PWM(LEFTMOTOR, 50)
leftPin.start(0)
motor.driveForward(30, 1)
while True:
leftDC, rightDC, dir1, dir2 = motor.getPWM()
leftPin.ChangeDutyCycle(leftDC)
print(leftDC)
time.sleep(0.01)
except KeyboardInterrupt: # Exit by pressing CTRL + C
leftPin.stop()
GPIO.cleanup()
print("Measurement stopped by User")
finally:
leftPin.stop()
GPIO.cleanup()
return self.leftPWM,self.rightPWM, self.directionLeftWheel, self.directionRightWheel
\ No newline at end of file
......@@ -62,16 +62,16 @@ class Encoder:
# Initialize the interrupt
GPIO.add_event_detect(self.encoder_pin, GPIO.BOTH, callback=self.callback_encoder, bouncetime=10)
try:
encoder1 = Encoder(name="encoder1", encoder_pin=4)
encoder1.init_callback()
while True:
print(encoder1.get_pulse_count())
print(encoder1.get_speed())
time.sleep(1)
except KeyboardInterrupt: # Exit by pressing CTRL + C
GPIO.cleanup()
print("Measurement stopped by User")
finally:
GPIO.cleanup()
# try:
# encoder1 = Encoder(name="encoder1", encoder_pin=4)
# encoder1.init_callback()
# while True:
# print(encoder1.get_pulse_count())
# print(encoder1.get_speed())
# time.sleep(1)
# except KeyboardInterrupt: # Exit by pressing CTRL + C
# GPIO.cleanup()
# print("Measurement stopped by User")
# finally:
# GPIO.cleanup()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment