ev3/snippets: bluetooth: update rover example

This commit is contained in:
Laurens Valk
2020-05-19 15:19:18 +02:00
parent d5ee42156d
commit df06dc59cc
3 changed files with 34 additions and 3 deletions
@@ -28,7 +28,11 @@ def get_bluetooth_rfcomm_socket(address, channel):
class SpikePrimeStreamReader():
def __init__(self, address):
self.sock = get_bluetooth_rfcomm_socket(address, 1)
try:
self.sock = get_bluetooth_rfcomm_socket(address, 1)
except OSError as e:
print("Turn on Bluetooth on the EV3 and on SPIKE.")
raise e
self._values = None
+1 -2
View File
@@ -13,6 +13,5 @@ spike = SpikePrimeStreamReader('F4:84:4C:AA:C8:A4')
# Now you can simply read values!
for i in range(100):
print(spike.orientation())
print(spike.device('B'))
print(spike.values())
wait(100)
@@ -0,0 +1,28 @@
#!/usr/bin/env pybricks-micropython
from pybricks.hubs import EV3Brick
from pybricks.tools import wait
from pybricks.ev3devices import Motor
from pybricks.robotics import DriveBase
from pybricks.parameters import Port
from connection import SpikePrimeStreamReader
# Beep!
ev3 = EV3Brick()
ev3.speaker.beep()
# Create the connection. See README.md to find the address for your SPIKE hub.
spike = SpikePrimeStreamReader('F4:84:4C:AA:C8:A4')
# Initialize the motors and drive base
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)
robot = DriveBase(left_motor, right_motor, wheel_diameter=55.5, axle_track=104)
while True:
# Read the orientation
yaw, pitch, roll = spike.orientation()
# Set speed and turn rate based on orientation
robot.drive(-pitch*6, roll*2)
wait(20)