def main(): # setup global lightSensors global proximitySensors lightSensors = TRSensor() proximitySensors = IRSensor GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(7, GPIO.IN, GPIO.PUD_UP) lightSensors.calibrate() proximitySensors.setup(robot) # make broadcasters topSensorsPub = rospy.Publisher("/alphabot2/top_sensors", Int32MultiArray, queue_size=10) bottomSensorsPub = rospy.Publisher("/alphabot2/bottom_sensors", Int32MultiArray, queue_size=10) # start node rospy.init_node('alphabot2_handler', anonymous=True) # subscribe movement_listener rospy.Subscriber("/alphabot2/control", Twist, movementCmdCallback) print "Alphabot2 is ready to operate!" rate = rospy.Rate(10) while True: while True: light, proximity = getSensorsInfos() topSensorsPub.publish(Int32MultiArray(data=proximity)) bottomSensorsPub.publish(Int32MultiArray(data=light)) rate.sleep() if GPIO.input(7) == 0: break robot.stop() time.sleep(2) while GPIO.input(7) != 0: time.sleep(0.1) time.sleep(1) robot.stop()
mqtt.on_disconnect = on_disconnect mqtt.on_message = on_message mqtt.will_set(SERVICE_NAME + "/state/status", "OFF", 1, True) mqtt.reconnect_delay_set(min_delay=1, max_delay=60) mqtt.connect(BROKER_ADDRESS, BROKER_PORT, 60) # connect to broker mqtt.publish(SERVICE_NAME + "/state/status", "ON", 1, True) # Modules pixels = Pixels(mqtt, SERVICE_NAME, DEBUG) buzzer = Buzzer(mqtt, SERVICE_NAME, DEBUG) cameraServo = CameraServo(mqtt, SERVICE_NAME, DEBUG) infrared_receiver = InfraredReceiver(mqtt, SERVICE_NAME, DEBUG) infrared_sensor = InfraredSensor(mqtt, SERVICE_NAME, DEBUG) joystick = Joystick(mqtt, SERVICE_NAME, DEBUG) obstacle_avoidance = ObstacleAvoidance(mqtt, SERVICE_NAME, DEBUG) trSensor = TRSensor(mqtt, SERVICE_NAME, 5, DEBUG) ultrasonic = Ultrasonic(mqtt, SERVICE_NAME, DEBUG) wheels = Wheels(mqtt, SERVICE_NAME, DEBUG) # Setup IR Sensor infrared_receiver.buzzer = buzzer infrared_receiver.camera_servo = cameraServo infrared_receiver.pixels = pixels infrared_receiver.wheels = wheels # Setup Joystick joystick.buzzer = buzzer joystick.camera_servo = cameraServo joystick.wheels = wheels # Setup Obstacle Avoidance
GPIO.setwarnings(False) GPIO.setup(Button,GPIO.IN,GPIO.PUD_UP) # LED strip configuration: LED_COUNT = 4 LED_PIN = 18 LED_FREQ_HZ = 800000 LED_DMA = 5 LED_BRIGHTNESS = 255 LED_INVERT = False maximum = 50; j = 0 integral = 0; last_proportional = 0 TR = TRSensor() Ab = AlphaBot2() Ab.stop() print("Line follow") time.sleep(0.5) for i in range(0,100): if(i<25 or i>= 75): Ab.right() Ab.setPWMA(30) Ab.setPWMB(30) else: Ab.left() Ab.setPWMA(30) Ab.setPWMB(30) TR.calibrate() Ab.stop()
Button = 7 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(Button, GPIO.IN, GPIO.PUD_UP) calibrate_turn_speed = 10 # maximum = 100; maximum = 15 # SET THE MAX SPEED HERE integral = 0 last_proportional = 0 TR = TRSensor() # create a new instance of the Tracking Sensor class # Ab = AlphaBot2() DCM = DCMotors( ) # create a new instance of the DC Motors (Variable Speed) class ### STEP 1 | Waiting to begin calibration sequence DCM.stop() # initally, we must set the DC motors to halt/stop print("Waiting to initiate calibration sequence") time.sleep(2) ### STEP 2 | Calibration sequence for i in range(0, 100): if (i < 25 or i >= 75): DCM.right() DCM.setPWMAX(calibrate_turn_speed) DCM.setPWMBX(calibrate_turn_speed)
#!/usr/bin/python import traceback, time from DCMotors_VS import DCMotors from TRSensors import TRSensor try: dcm = DCMotors() trs = TRSensor() edv = 100 # edge detection value speed = 2 dcm.setPWMAY(speed) # slow motor A down (forward/backward) dcm.setPWMBY(speed) # slow motor B down (forward/backward) dcm.setPWMAX(speed) # slow motor A down (turning) dcm.setPWMBX(speed) # slow motor B down (turning) while True: # store the TRSensor values (an array) trs_va = trs.AnalogRead() if trs_va[0] < edv or trs_va[1] < edv or trs_va[2] < edv or trs_va[ 3] < edv or trs_va[4] < edv: ## code for what happens when an edge is detected print("edge detected") dcm.stop() # stop both DC motors dcm.backward() #time.sleep(0.2)
import RPi.GPIO as GPIO from AlphaBot2 import AlphaBot2 from TRSensors import TRSensor import time TR = TRSensor() Ab = AlphaBot2() m = 0 cut = 0 move_time = [0.1,0.2,0.3,0.5,0.7] while(1): f = 0 input = TR.AnalogRead() for i in range(0,5): if(input[i] < 400): f += pow(2,i) if(f == 0 or f == 31): print("zero or full") if(m > 0): if(cut == 1): Ab.right(20) cut = 0 elif(cut == 0): Ab.left(20) cut = 1 time.sleep(move_time[(10-m)/2])