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()
示例#2
0
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
示例#3
0
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()
示例#4
0
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)
示例#6
0
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])