Duda, no sabemos que está mal de este programa

robot = PiBot()
import time

while True:
(coordenada,area) = robot.dameObjeto()
if coordenada != None :
robot.girarIzquierda(0.25)
time.sleep(1)
elif coordenada[0] < 300:
robot.girarIzquierda(0.40)
time.sleep(1)
robot.avanzar(1)
elif coordenada[0] > 340:
robot.girarDerecha(0.40)
time.sleep(1)
robot.avanzar(1)
else:
robot.avanzar (1.5)

Disculpad la tardanza en contestar, hemos estado con labores de mantenimiento. En breve iremos contestando todas vuestras preguntas.

¡Muy bien esa primera aproximación!
Fijaos en que la primera condición que ponéis (if coordenada != None) debería englobar a todo el código que viene a continuación, porque si no puede pasar que cuando la variable coordenada tenga el valor None, vuestro código siga ejecutando las siguientes condiciones (elif coordenada[0] < 300:, elif coordenada[0] > 340: o elif coordenada[0] > 340). Entonces, al tratar de ejecutarlas os vais a encontrar un error que os avisa de que esa variable tiene el valor None. Creo que buscáis algo así:

from pibot.pibot import PiBot 
robot = PiBot()
import time

while True:
    (coordenada,area) = robot.dameObjeto()
    if coordenada != None :
        # si coordenada es distinto de None, se evalúan las siguientes condiciones
        if coordenada[0] < 300:
            robot.girarIzquierda(0.40)
            time.sleep(1)
            robot.avanzar(1)
        elif coordenada[0] > 340:
            robot.girarDerecha(0.40)
            time.sleep(1)
            robot.avanzar(1)
        else:
            robot.avanzar (1.5)
    else:
        # si coordenada es igual a None, ponemos al robot a girar para ayudarle a encontrar la pelota ;)
        robot.girarIzquierda(0.25)
        time.sleep(1)

¡Probadlo y nos contáis!