def __init__(self): #movement variables self.legs = Robot(left=(5, 6), right=(17, 27)) self.turning_right = False self.turning_left = False self.moving_forward = False self.moving_backward = False #used when preforming specific actions for fleeing Darth Vader self.turning_around = False self.time_turning_around = 0 self.running_away = False self.time_running_away = 0 self.fleeing = False #used to blink red-blue light self.light = RGBLED(red=16, green=20, blue=21) self.light.color = (1, 0, 0) self.red = True self.time_since_last_blink = 0 #used to make random movements self.time_stopped = 0 self.time_moving = 0 self.moving = False #used for reaction to characters self.seeing_Leia = False self.seen_Leia = False self.time_seeing_Leia = 0 self.seeing_Obiwan = False self.time_seeing_Obiwan = 0 self.seeing_Vader = False self.time_seeing_Vader = 0
class RobotWheels: robot = Robot(left=(5, 6), right=(22, 27)) def __init__(self): pass def move_forward(self): self.robot.forward(0.2) def move_backwards(self): self.robot.backward(0.2) def turn_right(self): self.robot.right(0.2) def turn_left(self): self.robot.left(0.2) def dance(self): self.move_forward() sleep(0.5) self.stop() self.move_backwards() sleep(0.5) self.stop() self.turn_right() sleep(0.5) self.stop() self.turn_left() sleep(0.5) self.stop() def stop(self): self.robot.stop()
def wheel_action(msg): data = json.loads(msg["data"]) duration = data["duration"] speed = data.get("speed", 1) direction = data["direction"] robot = Robot(left=config.WHEEL_LEFT, right=config.WHEEL_RIGHT) if direction in "left right forward backward".split(): getattr(robot, direction)(speed) time.sleep(duration)
def __init__(self, level='lvl0'): #instantiating all the motors and sensors on the bot self.robot = Robot(left=MOTOR_L, right=MOTOR_R) self.sonic = DistanceSensor(echo=SONIC_ECHO, trigger=SONIC_TRIG) self.ir_l = MCP3008(IR_L) self.ir_r = MCP3008(IR_R) self.button = MCP3008(BTN) self.bz = TonalBuzzer(BZ) self.led = RGBLED(R, G, B) #creating custom variables self.speed = self.get_speed(level)
def __init__(self): GPIO.cleanup() self.__leftencoder = Encoder(21) self.__rightencoder = Encoder(27) self.__robot = Robot(left=(23, 24), right=(26, 22)) self.__en1 = 12 self.__en2 = 13 GPIO.setmode(GPIO.BCM) GPIO.setup(self.__en1, GPIO.OUT) GPIO.output(self.__en1, GPIO.HIGH) GPIO.setup(self.__en2, GPIO.OUT) GPIO.output(self.__en2, GPIO.HIGH)
def __init__(self): #movement variables self.legs = Robot(left=(5, 6), right=(17, 27)) self.turning_right = False self.turning_left = False self.moving_forward = False self.moving_backward = False #light variables #used to blink red-blue light self.light = RGBLED(red=16, green=20, blue=21) self.light.color = (1, 0, 0) self.red = True self.time_since_last_blink = 0
def __init__(self): window = np.zeros((100,100)) #initialising a black 100x100 window for using escape to quit self.colour = {'red':0,'green':0,'blue':0,-1:0} #control dictionary for logic left = (4,14) #left wheel gpio pins right = (17,18) #right wheel gpio pins self.robot = Robot(left,right) #robot initialisation class call self.cap = cv2.VideoCapture(0) #recording video from camera 0 (i.e. the camera on rpi) while(True): ret, image = self.cap.read() #read from camera if cv2.waitKey(1) != 27 : cv2.imshow('window',window) #show the window previously made self.botmove(image) #main bot moving method call else: break #exit if escape key is pressed
def main(): """ メイン関数 """ # 接続ピン PIN_AIN1 = 6 PIN_AIN2 = 5 PIN_BIN1 = 26 PIN_BIN2 = 27 # 左右モーター設定(PWM) motors = Robot(left=(PIN_AIN1, PIN_AIN2), right=(PIN_BIN1, PIN_BIN2), pwm=True) # ループ処理 while True: # 0.2秒前進(50%) motors.forward(speed=0.5) sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒後退(50%) motors.backward(speed=0.5) sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒左カーブ(50%)前進(100%) motors.forward(speed=1, curve_left=0.5) sleep(0.2) # 0.2秒逆転 motors.reverse() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒右カーブ(50%)前進(100%) motors.forward(speed=1, curve_right=0.5) sleep(0.2) # 0.2秒逆転 motors.reverse() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2)
def main(): """ メイン関数 """ # 接続ピン PIN_AIN1 = 6 PIN_AIN2 = 5 PIN_BIN1 = 26 PIN_BIN2 = 27 # 左右モーター設定(PWM) motors = Robot(left=(PIN_AIN1,PIN_AIN2),right=(PIN_BIN1,PIN_BIN2),pwm=True) # 0.1秒毎周期30(約3秒)のSIN値の信号源 srcleft = post_delayed(sin_values(period=30),0.1) # 0.1秒毎周期30(約3秒)のCOS値の信号源 srcright = post_delayed(cos_values(period=30),0.1) # 左右モータに信号源を接続 motors.source = zip(srcleft,srcright) # 停止(Ctr+c)まで待機 pause()
def main(): """ メイン関数 """ # 接続ピン PIN_AIN1 = 6 PIN_AIN2 = 5 PIN_BIN1 = 26 PIN_BIN2 = 27 # 左右モーター設定(PWM) motors = Robot(left=(PIN_AIN1, PIN_AIN2), right=(PIN_BIN1, PIN_BIN2), pwm=True) # 1秒毎の正負パルス値の信号源 dirleft = post_delayed(scaled(alternating_values(True), -1, 1), 1) dirright = post_delayed(scaled(alternating_values(False), -1, 1), 1) # 左右モーターに信号源を接続 motors.source = zip(dirleft, dirright) # 停止(Ctrl+c)まで待機 pause()
def __init__(self): self._commands = [ 0, # forward 0, # backward 0, # left 0, # right 0, # turbo ] self._robot = Robot(left=(_LEFT_MOTOR_NEG_PIN, _LEFT_MOTOR_POS_PIN), right=(_RIGHT_MOTOR_POS_PIN, _RIGHT_MOTOR_NEG_PIN)) # A Driver exposes a number of multiprocess Events objects that # external objects can use to signal the need of an emergency stops. # It is up to the caller to clear the safety stop Event. self._safety_stop_event = mp.Event() self._safety_stop_forward_event = mp.Event() self._safety_stop_backward_event = mp.Event() _logger.debug('{} initialized'.format(self.__class__.__name__))
def main(): """ メイン関数 """ # 接続ピン PIN_AIN1 = 6 PIN_AIN2 = 5 PIN_BIN1 = 26 PIN_BIN2 = 27 # 左右モーター設定(ON/OFF) motors = Robot(left=(PIN_AIN1, PIN_AIN2), right=(PIN_BIN1, PIN_BIN2), pwm=False) # ループ処理 while True: # 0.2秒前進 motors.forward() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒後退 motors.backward() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒左旋回 motors.left() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2) # 0.2秒右旋回 motors.right() sleep(0.2) # 0.2秒停止 motors.stop() sleep(0.2)
def main(): """ メイン関数 """ # モータードライバ接続ピン PIN_AIN1 = 6 PIN_AIN2 = 5 PIN_BIN1 = 26 PIN_BIN2 = 27 # A/D変換チャネル数 NUM_CH = 4 # 左右モーター設定(PWM) motors = Robot(left=(PIN_AIN1,PIN_AIN2), \ right=(PIN_BIN1,PIN_BIN2), \ pwm=True) # フォトリフレクタ(複数)設定(A/D変換) photorefs = [MCP3004(channel=idx) for idx in range(NUM_CH)] # ライントレース処理 motors.source = line_follow(photorefs) # 停止(Ctr+c)まで待機 pause()
def setup(self): self.robot = Robot(left=left_wheel, right=right_wheel) dotbot_ros.Subscriber("cmd_vel", Twist, self.on_cmd_vel)
import curses from gpiozero import Robot import sys robot = Robot(left=(27, 24), right=(16, 23)) actions = { curses.KEY_UP: robot.forward, curses.KEY_DOWN: robot.backward, curses.KEY_LEFT: robot.left, curses.KEY_RIGHT: robot.right, } def main(stdscr): nextKey = None while True: curses.halfdelay(1) if nextKey is None: key = stdscr.getch() else: key = nextKey nextKey = None if key != -1: curses.halfdelay(3) action = actions.get(key) if action is not None: action() nextKey = key while nextKey == key: nextKey = stdscr.getch()
from gpiozero import DistanceSensor, Robot from time import sleep robot = Robot(left=(7, 8), right=(9, 10)) #robot.forward(0.3) def go_forward(n_seconds): robot.forward(0.5) sleep(n_seconds) robot.stop() def go_left(n_seconds): robot.left(0.5) sleep(n_seconds) robot.stop() def go_forward_cautious(): sensor = DistanceSensor(echo=18, trigger=17) robot.forward(0.3) while True: ##print('Distance: ', sensor.distance) if sensor.distance < 0.1: ##print("less than 0.1") robot.forward(0.5) if sensor.distance < 0.5: print("less than 0.05") robot.forward(0.025) if sensor.distance < 0.025: print("About to stop")
import signal from xbox360controller import Xbox360Controller from gpiozero import Robot robot = Robot(left=(19,26),right=(20,21)) def on_button_pressed(button): print('Button {0} was pressed'.format(button.name)) if button.name == "button_a": print('[Robot goes Forward]') robot.forward() elif button.name == "button_b": print('[Robot goes Backward]') robot.backward() elif button.name == "button_trigger_l": print('[Robot goes Left]') robot.left() elif button.name == "button_trigger_r": print('[Robot goes Right]') robot.right() def on_button_released(button): print('Button {0} was released'.format(button.name)) print('[Robot was Stoped]') robot.stop() def on_axis_moved(axis): print('Axis {0} moved to {1} {2}'.format(axis.name,axis.x,axis.y))
from gpiozero import Robot robot = Robot(left=(5,6), right=(13,19))
from gpiozero import Robot, Motor, MotionSensor from signal import pause robot = Robot(left=Motor(4, 14), right=Motor(17, 18)) pir = MotionSensor(5) pir.when_motion = robot.forward pir.when_no_motion = robot.stop pause()
from gpiozero import Robot, InputDevice, OutputDevice from time import sleep, time trig = OutputDevice(4) echo = InputDevice(17) olivia = Robot(right=(7, 8), left=(10, 9)) duration = 7 end_time = time() + duration running = True sleep(2) def get_pulse_time(): pulse_start, pulse_end = 0, 0 trig.on() sleep(0.00001) trig.off() while echo.is_active == False: pulse_start = time() while echo.is_active == True: pulse_end = time() return pulse_end - pulse_start
from gpiozero import DistanceSensor, LED, MotionSensor,Robot import gpiozero from signal import pause import time pir = MotionSensor(12) sensor = DistanceSensor(21, 20, max_distance=1, threshold_distance=0.2) led = LED(16) robot = Robot(left=(26, 19), right=(6, 13)) def sense(): #stop robot robot.stop() #record time start = time.time() #this function will stop when it see's any motion but if will stop anyway after 2 seconds pir.wait_for_motion(timeout=2) #if it took less than 2 seconds for the waitForMotion fuction to stop then it detected movement if time.time() - start < 1.9999999: #buzzer on led.on() #wait 2 seconds time.sleep(2) #buzzer off led.off() else: #the thing in front of the robot is a walll #turn to get out of the way robot.left() time.sleep(1) robot.stop()
from gpiozero import Robot, DistanceSensor from signal import pause sensor = DistanceSensor(23, 24, max_distance=1, threshold_distance=0.2) robot = Robot(left=(4, 14), right=(17, 18)) sensor.when_in_range = robot.backward sensor.when_out_of_range = robot.stop pause()
from time import sleep from gpiozero import Robot from bluedot import BlueDot from signal import pause robby = Robot(left=(9, 10), right=(8, 7)) tleft = 0.85 tright = 0.85 def line(): robby.forward(1) sleep(1.15) robby.left(1) sleep(tleft) robby.forward(1) sleep(2) robby.right(1) sleep(tright) robby.forward(0.4) sleep(0.5) robby.left(1) sleep(tleft) robby.forward(1) sleep(0.9) robby.stop() def remoteAndroid(): bd = BlueDot(
from bluedot import BlueDot from gpiozero import Robot bd = BlueDot() robot = Robot(left=(8, 7), right=(10, 9)) def move(pos): if pos.top: robot.forward() elif pos.bottom: robot.backward() elif pos.right: robot.right() elif pos.left: robot.left() def stop(): robot.stop() bd.when_pressed = move bd.when_moved = move bd.when_released = stop
from gpiozero import Robot, DistanceSensor from time import sleep import CERCBot import random burt_the_robot = Robot(left=(8, 7), right=(21, 20)) left_echo_pin = 14 left_trigger_pin = 15 centre_echo_pin = 17 centre_trigger_pin = 4 right_echo_pin = 23 right_trigger_pin = 18 threshold = 20 threshold2 = 25 dead_end = 0 fast = 0.7 slow = 0.6 def go_forwards(speed): burt_the_robot.forward(speed) print("Going forwards") def go_backwards(speed): burt_the_robot.backward(speed) print("Going backwards")
from gpiozero import Robot from time import sleep robot = Robot(left=(5, 6), right=(22, 27)) robot.forward(0.2) sleep(0.5) robot.backward(0.2) sleep(0.5) robot.stop()
cl = 0.1 def inrange(): global cl robot.stop() robot.backward(curve_right=0.5) sleep(2) #robot.right() #robot.reverse() sleep(1) robot.forward(curve_right=cl) def outrange(): global cl robot.stop() robot.forward(curve_right=cl) sensor = DistanceSensor(echo=20, trigger=21, max_distance=1, threshold_distance=0.15) sensor.when_in_range = inrange sensor.when_out_of_range = outrange #robot = Robot(left=(26, 19), right=(6, 13)) robot = Robot(right=(19, 26), left=(6, 13)) robot.forward(curve_right=cl) pause()
# ------------------------------------------------------------------------------------------------- from gpiozero import Robot # controls the robot hardware import paho.mqtt.client as mqtt # provides IoT functionality to send messages between computers # Settings # ------------------------------------------------------------------------------------------------- # If you need to change the defaults, change them in settings.py: from settings import * # Globals # ------------------------------------------------------------------------------------------------- # Set the GPIO pins used to connect to the motor controller robot = Robot(left=(19, 26), right=(16, 20)) # Functions # ------------------------------------------------------------------------------------------------- def map(n, a, b, c, d): return (n - a) * (d - c) / (b - a) def on_connect(client, userdata, flags, rc): # Called when the client receives connection acknowledgement response from the broker print("MQTT Connected with result code " + str(rc)) # Subscribing in on_connect() means that if we lose the connection and
high = bus.read_byte_data(d_address, adr+1) val=(high<<8)+low if(val > 32768): val = val - 65536 return val magneto_start() in1=17 in2=27 in3=23 in4=24 en1=PWMOutputDevice(18) en2=PWMOutputDevice(19) GPIO.setmode(GPIO.BCM) robot = Robot((in1, in2), (in3, in4)) speed=1 en1.value=speed en2.value=speed #def user_input(): # while 1: # global speed # i=input("Please enter a number: ") # print ('wrong input') # if i== 'w': # robot.forward() # elif i=='s': # robot.backward() # elif i=='a':
from gpiozero import Button, Robot from gpiozero.pins.pigpio import PiGPIOFactory from signal import pause factory = PiGPIOFactory(host='192.168.1.17') robot = Robot(left=(4, 14), right=(17, 18), pin_factory=factory) # remote pins # local buttons left = Button(26) right = Button(16) fw = Button(21) bw = Button(20) fw.when_pressed = robot.forward fw.when_released = robot.stop left.when_pressed = robot.left left.when_released = robot.stop right.when_pressed = robot.right right.when_released = robot.stop bw.when_pressed = robot.backward bw.when_released = robot.stop pause()